From my testing a while ago, what Media Center appears to do with the
Play files from memory option enabled, is store the entire compressed file in memory.
So a 5MB MP3 will take up 5MB RAM, a 50MB FLAC file will take up 50MB RAM, a 500MB DSD file will will increase memory usage by 500MB during playback, and so on.
In addition to that, memory also increases by about 40MB or so during playback whether this option is enabled or not, which appears to be a buffer for decoded audio.
So if Media Center is idle at say 10MB, playback of a 50MB FLAC file will result in around 100MB of RAM usage. (10MB Media Center, 50MB FLAC file, 40MB buffer)
This means that Media Center is always playing audio that has been decoded to memory during playback from that ~40MB buffer.
It may be decoding later parts of the track into memory during playback, but not the part that is currently playing.
If you think about it, to have "full" memory playback, Media Center would have to decode your entire playlist into memory before playback, otherwise it's still going to be decoding other tracks into memory during playback - even if it's not the currently playing track.
Converting a 10-track SACD to Uncompressed WAV took about a minute on my system, resulting in almost 2.5GB of files.
Converting a 10-track 192kHz ALAC album to uncompressed WAV took about 30 seconds, and resulted in 3GB of files. (ALAC is faster to decode than DSD)
And that's what happens with only 10 tracks - think about how many tracks you might have in a large playlist.
Media Center's Play Doctor uses 100 tracks in its playlists for example. Do you have more than 25-30GB of RAM free in your system, and want to wait 5-10 minutes before playback can start?
Not that you could use Play Doctor with this hypothetical feature anyway, because as soon as one track is finished, Play Doctor would normally add another to the bottom of the list, so that there are always 99 upcoming tracks. This would cause Media Center to start work on decoding the track during playback, which removes the "benefits" of "full" memory playback. (no audio decoding during playback)
Audio decoding is a trivial task for a modern processor, and there have been a number of tests which have shown that even very high CPU usage has no impact on audio that is being played through external devices. (USB DACs etc)
People that dispute these facts, are trying to sell you something. (or have been misled by someone that is) And conveniently they will be unable to provide measurements, or may even claim that this is not something that can
be measured.
Expect a lot of comments from these people about how it's not only important to have "bit-perfect" playback, but to also get the
timing of this bit-perfect playback right. But don't look at jitter measurements! Oh no, they don't show the "timing" errors we're talking about -
those can't be measured!
To add this feature would just be a waste of time for the developers at JRiver, a waste of resources on your system, and make the program far less user-friendly during playback.
I've had "play from memory" enabled for ages now. Although, I seem to recall a mention that if playing from a NAS, "Play from Memory" is redundant because the data received via NAS is buffered in RAM anyway, and I've been using NAS for audio storage for years now.
I'm not sure about it being redundant, but the issue is that it may impact playback on slower networks because it will read the whole file from the NAS and place it in memory, then there's no more network traffic until the current song is finishing. If it can't download the next song into memory in time, or the network is slow to respond to new connections, there may be a break in playback.
With memory playback disabled, the song is streamed from the network, rather than the whole thing downloaded into memory at once, so it should be more seamless.