Memory Playback - Not exactly what I was expecting?

Discuss Decibel, a high quality audio player.
Post Reply
maxdb
Posts: 15
Joined: Fri Feb 03, 2012 6:58 pm

Memory Playback - Not exactly what I was expecting?

Post by maxdb » Fri Feb 03, 2012 7:33 pm

So... I use a FireWire 800 Library hard disk, USB DAC, Mac Mini (fall 2010, aluminum unibody with internal DVD drive, Intel processor), 8GB RAM, 80GB solid state disk drive.

I was doing some evaluation of FireWire 800 cables using memory playback mode in Decibel 1.2.5 (25) and I wanted to see what would happen with the FireWire 800 cable disconnected after allowing sufficient time to load 25 tracks into memory (with this setup, that seems to take maybe 5 seconds at most... it is VERY fast). But I allowed about a minute, just in case. I then ejected the external hard disk, turned it off, and disconnected the FireWire 800 cable.

Selecting Play starts the playlist normally. The first track plays through fine, the second track plays through fine, then no matter what you do next, there's an I/O error message and Decibel seems "stuck"... it will play that second track over and over, but you can't go back to the first track nor forward to the 3rd track, nor can you double click on some other random track... well, you can double click, but you get the I/O error message.

So it would appear that even though the tracks are in memory, Decibel is still somehow tied to the FireWire 800 drive. Seems to me that SHOULDN"T be necessary... the tracks are in memory after all. The assumption would be that the tracks would be in something equivalent to a temporary "RAM Disk" where they could be accessed as a file on any physical drive without having to have their original "home" drive present.

Is there some mechanism in the Macs that prevents this sort of operation (library hard drive disconnected after loading tracks into memory)? Or is there some kind of oversight in Decibel that causes it to get "lost" after a couple of tracks and needs to "see" the library drive for some reason?

Waffles
Posts: 9
Joined: Fri Jan 27, 2012 3:23 am

Re: Memory Playback - Not exactly what I was expecting?

Post by Waffles » Mon Feb 13, 2012 4:49 am

To my mind, it stands to reason that Decibel wouldn't necessarily load an entire playlist into memory all at once. It wouldn't take that much for the size of a playlist of, for instance, 24/96 FLAC files to exceed your computer's RAM capacity. It seems only logical to me that Decibel would load the tracks into memory sequentially. Two tracks in memory at a time also seems to make sense, so that no extra delay is required between the track changes. Changes memory use as I open different tracks in Decibel seem roughly consistent with this assumption. Anyway, maybe the dev will give us the official facts, but I doubt you'd find any player with memory playback that always tries to load an entire playlist into RAM. After all, the point of memory playback is to ensure smooth playback by not having to read a track off disk as it's playing; the point is not to cache entire playlists so you can disconnect external disks.

citro
Posts: 9
Joined: Mon Mar 19, 2012 1:36 am

Re: Memory Playback - Not exactly what I was expecting?

Post by citro » Mon Mar 19, 2012 2:19 am

Waffles wrote:To my mind, it stands to reason that Decibel wouldn't necessarily load an entire playlist into memory all at once. It wouldn't take that much for the size of a playlist of, for instance, 24/96 FLAC files to exceed your computer's RAM capacity. It seems only logical to me that Decibel would load the tracks into memory sequentially. Two tracks in memory at a time also seems to make sense, so that no extra delay is required between the track changes. Changes memory use as I open different tracks in Decibel seem roughly consistent with this assumption. Anyway, maybe the dev will give us the official facts, but I doubt you'd find any player with memory playback that always tries to load an entire playlist into RAM. After all, the point of memory playback is to ensure smooth playback by not having to read a track off disk as it's playing; the point is not to cache entire playlists so you can disconnect external disks.
I agree with you on this one, it's just not practical/possible. My music collection has about 250 Gb, and there are guys that surely surpass this number with ease. You couldn't have a big enough RAM/Buffer memory to deal with it.

maxdb
Posts: 15
Joined: Fri Feb 03, 2012 6:58 pm

Re: Memory Playback - Not exactly what I was expecting?

Post by maxdb » Tue Mar 20, 2012 5:59 pm

I wasn't expecting to load my entire 1+ TB music library into memory. I was expecting that if I put Decibel in memory playback mode and had maybe 25 tracks in the playlist that the entire playlist would be loaded into RAM and played from RAM without accessing the hard disk storing the music.

I use 8GB of RAM because, for some unexplained reason, it sounds better than 4GB or 2GB. Not a lot better, but slightly better (and so does Snow Leopard 10.6.x... Lion 10.7 and higher is a sonic step backwards... at least so far). I only use this solid-state-drive Mac Mini for playing music and nothing else so everything not required to play music is either disabled or uninstalled.

With 8 GB of RAM, I should be able to load 8-10 hours of music in RAM (I only play FLAC format and am basing this estimate on how large the FLAC files would be when decoded to WAV/PCM). I would probably never load that much music at any one time... 25 or 30 tracks (maybe 2.5 hours) is about the most I ever put in a playlist at any one time.

The whole point of memory playback is to have nothing else running while playing music... no disc drive, no hard disc, no external hard disk, etc.

Waffles
Posts: 9
Joined: Fri Jan 27, 2012 3:23 am

Re: Memory Playback - Not exactly what I was expecting?

Post by Waffles » Thu Mar 22, 2012 3:23 pm

Your logic is a little flawed. What about people who have less memory? Should Decibel always try to load as much into memory as possible, to the point of filling up available RAM? What if loading 10 of those 25 tracks leaves me with no memory, and I need to work on a document or browse the web while I'm listening? Not everyone has the luxury of a separate machine with 8GB of RAM used exclusively for playing music. The type of memory play you describe would be great for you, but it hardly seems like a reasonable default (without at least the ability to set a maximum amount of RAM for Decibel to use). So long as the currently playing track is being read from memory, Decibel doesn't need to read that track from disk as it's playing, which fulfills the description on the Decibel home page: "Finally, Decibel can load and play files entirely in memory, eliminating audio glitching associated with disk access."

maxdb
Posts: 15
Joined: Fri Feb 03, 2012 6:58 pm

Re: Memory Playback - Not exactly what I was expecting?

Post by maxdb » Thu Mar 22, 2012 5:58 pm

"Your logic is flawed"

Uh... no, it's not. You're just making baseless excuses. (in fact I've been tested numerous times and only 1 person in 40,000 has equal or better logical reasoning skills than I do... true story... not bragging... I suck at many other things... logic just happens to be one of the few things I don't suck at). It is SIMPLE for an application to determine how much available memory the computer has. S-I-M-P-L-E That makes it easy for the software to determine how much of a playlist can go into memory now and that it needs to flush the memory and add more tracks later. Memory management for multiple applications is also SIMPLE... like one of the most basic computer software functions... software doesn't even have to do much to manage memory effectively ('much' is the operative word... software DOES have to do memory usage thing correctly or you can have 'memory leaks' that eventually lead to running out of memory even though there's plenty of memory not being used), the operating system "helps" the application with memory management. If you were using 500MB for internet or word processing, then you quit that program, that memory automatically becomes available for some other application or it can sit unused if some other app doesn't need it. If you are running a single application that has seen how much memory there is and is using all or almost all of it, then you start a second application, the computer (software and operating system) will provide memory for the new application automatically without you having to do ANYTHING. This is all VERY simple, very basic stuff. It has been perfected over the 30+ years personal computers have been available and 20 more years prior to that when computers were only available as industrial/commercial mainframes and memory was VERY expensive.

And beyond thsat

citro
Posts: 9
Joined: Mon Mar 19, 2012 1:36 am

Re: Memory Playback - Not exactly what I was expecting?

Post by citro » Thu Mar 22, 2012 6:52 pm

maxdb wrote:"Your logic is flawed"

Uh... no, it's not. You're just making baseless excuses. (in fact I've been tested numerous times and only 1 person in 40,000 has equal or better logical reasoning skills than I do... true story... not bragging... I suck at many other things... logic just happens to be one of the few things I don't suck at). It is SIMPLE for an application to determine how much available memory the computer has. S-I-M-P-L-E That makes it easy for the software to determine how much of a playlist can go into memory now and that it needs to flush the memory and add more tracks later. Memory management for multiple applications is also SIMPLE... like one of the most basic computer software functions... software doesn't even have to do much to manage memory effectively ('much' is the operative word... software DOES have to do memory usage thing correctly or you can have 'memory leaks' that eventually lead to running out of memory even though there's plenty of memory not being used), the operating system "helps" the application with memory management. If you were using 500MB for internet or word processing, then you quit that program, that memory automatically becomes available for some other application or it can sit unused if some other app doesn't need it. If you are running a single application that has seen how much memory there is and is using all or almost all of it, then you start a second application, the computer (software and operating system) will provide memory for the new application automatically without you having to do ANYTHING. This is all VERY simple, very basic stuff. It has been perfected over the 30+ years personal computers have been available and 20 more years prior to that when computers were only available as industrial/commercial mainframes and memory was VERY expensive.

And beyond thsat
The computer will provide memory for the new application if it still has memory left, if it doesn't, the computer will crash/fail, whatever you want to call it. I understand your point, but I don't know if a computer can allocate so much of its RAM to one single process without hanging, as I believe the RAM must have some space to "breed". Of course you can tell me that that's defined by the program itself, but I don't know whether there are not OS limitations of some kind that will prevent the high RAM allocation.
But I guess this has more to do with semantics... if Decibel had an option that said "Load files partially into memory" then we wouldn't be having this discussion ;)
BTW, why not having the external disc always connected to the Mac Mini? That's how I do it anyhow. My Mac Mini is also used exclusively as my media server, and even with only 1 GB Ram playing 250 Gb of music (AIFF) on an external hard drive on FAT, I never had an issue. I'm just saying... ;)

maxdb
Posts: 15
Joined: Fri Feb 03, 2012 6:58 pm

Re: Memory Playback - Not exactly what I was expecting?

Post by maxdb » Thu Mar 22, 2012 10:23 pm

It seems that every active process in the computer causes a small hit in sound quality (when I enjoy music, I'm in a dark room doing nothing else, eyes closed, listening to every detail... the playback system is VERY good, listening to music on it is very transcendental... and I listen to nothing but CD-resolution or higher in lossless formats (no crap sounding MP3s or other compressed formats). My whole goal with the computer playback system is to have no moving parts while music is playing.

The hard disk is connected by FireWire 800... the original spinning hard disk is replaced with a solid state drive (it will reboot in about 10 seconds!)... the DAC is a USB model that runs on a battery that charges while the computer is in sleep mode.

It's actually quite easy to get a software application to "give back" RAM if you start another program... though there are limits. You want to leave maybe 1GB for the operating system to do it's thing unfettered... my estimates were for using 6GB out of 8GB of memory for the playback buffer. That's plenty for Decibel and the operating system to do their thing without problems. I could even run Safari without a problem with 2GB unused. If the software program has a memory allocation problem, though, it could slowly eat up all the RAM and not release any of it. When I say the memory allocation thing is easy... OK, maybe that's a bit of an oversimplification. Somebody starting out in programming... it may not be easy for them to manage memory effectively at the beginning. But anybody who identifies themselves as a programmer and has been at it for a while... should be no problem to deal with memory manabement issues of just about any kind. Sometimes you find them when you stress test the application and realize that RAM isn't allocating and de-allocating correctly... once found, those issues aren't usually too difficult to find, but it does depend to some extent on how "big" the software program is - it can be harder to find memory allocation issues if there are many people working on a large commercial application. For a single person working on a "manageable" program alone... it shouldn't be too hard.

There are programs that are RAM hogs and that don't behave well with others... but those are fewer and fewer every year. Certainly nothing about the operating system or any applications that come with the operating system should be behaving like that. They should all be good little programs that play well with just about anything else that may be running. I used to work on a software application that was a brute-force thing for the printing and publishing market. It was designed from the outset to be the only thing running on the computer and woe to the customer who failed to note the frequent warnings not to run anything else on the computer! LOL! That was 20 years ago though. WIth computers as powerful as they are and with operating systems as sophisticated as they are today, there's really no need for an application to take over the entire computer... well, not for any normal type of application. I imagine if you're processing computer graphics at 4K or higher resolution and you have weeks of just raw processing to do, you STILL, even with a powerful modern computer, wouldn't want anything else going on that might slow down the computer.

citro
Posts: 9
Joined: Mon Mar 19, 2012 1:36 am

Re: Memory Playback - Not exactly what I was expecting?

Post by citro » Fri Mar 23, 2012 2:04 am

maxdb wrote:It seems that every active process in the computer causes a small hit in sound quality (when I enjoy music, I'm in a dark room doing nothing else, eyes closed, listening to every detail... the playback system is VERY good, listening to music on it is very transcendental... and I listen to nothing but CD-resolution or higher in lossless formats (no crap sounding MP3s or other compressed formats). My whole goal with the computer playback system is to have no moving parts while music is playing.

The hard disk is connected by FireWire 800... the original spinning hard disk is replaced with a solid state drive (it will reboot in about 10 seconds!)... the DAC is a USB model that runs on a battery that charges while the computer is in sleep mode.

It's actually quite easy to get a software application to "give back" RAM if you start another program... though there are limits. You want to leave maybe 1GB for the operating system to do it's thing unfettered... my estimates were for using 6GB out of 8GB of memory for the playback buffer. That's plenty for Decibel and the operating system to do their thing without problems. I could even run Safari without a problem with 2GB unused. If the software program has a memory allocation problem, though, it could slowly eat up all the RAM and not release any of it. When I say the memory allocation thing is easy... OK, maybe that's a bit of an oversimplification. Somebody starting out in programming... it may not be easy for them to manage memory effectively at the beginning. But anybody who identifies themselves as a programmer and has been at it for a while... should be no problem to deal with memory manabement issues of just about any kind. Sometimes you find them when you stress test the application and realize that RAM isn't allocating and de-allocating correctly... once found, those issues aren't usually too difficult to find, but it does depend to some extent on how "big" the software program is - it can be harder to find memory allocation issues if there are many people working on a large commercial application. For a single person working on a "manageable" program alone... it shouldn't be too hard.

There are programs that are RAM hogs and that don't behave well with others... but those are fewer and fewer every year. Certainly nothing about the operating system or any applications that come with the operating system should be behaving like that. They should all be good little programs that play well with just about anything else that may be running. I used to work on a software application that was a brute-force thing for the printing and publishing market. It was designed from the outset to be the only thing running on the computer and woe to the customer who failed to note the frequent warnings not to run anything else on the computer! LOL! That was 20 years ago though. WIth computers as powerful as they are and with operating systems as sophisticated as they are today, there's really no need for an application to take over the entire computer... well, not for any normal type of application. I imagine if you're processing computer graphics at 4K or higher resolution and you have weeks of just raw processing to do, you STILL, even with a powerful modern computer, wouldn't want anything else going on that might slow down the computer.
Well, if you DO notice the differences each time a process of any kind is launched in your Mac Mini, then I understand your concerns.
Mine, as mentioned earlier, is playing the songs in AIFF which are located in an external USB HDD... the Mac Mini is connected by a Supra ZAC toslink cable to a Naim DAC, which, in its turn, is connected to a Copland CTA 305, powered by a Quad 606. Man, for me, it works like a treat, but my ears might not be as demanding as yours. (no irony here, I'm being honest).

maxdb
Posts: 15
Joined: Fri Feb 03, 2012 6:58 pm

Re: Memory Playback - Not exactly what I was expecting?

Post by maxdb » Fri Mar 23, 2012 4:08 pm

Probably the best thing you could do for your system is to get rid of the Toslink interface... Toslink is really lame compared to any other option. It's a shame really... an optical interface has a huge advantage in that the cable itself is non-conductive so you carry none of the ground noise or ground level differences from one component to another (you can often measure the "ground" of one component at (for example) .25 volts while another component might measure 1 volt on it's ground... when you connect those 2 components, current flows in the signal ground between the 2 components). There was a good optical digital interface... AT&T glass fiber interfaces appeared in some high-end gear in the 1990s and are arguably the best digital interface that ever existed. Toslink exists because it costs maybe 3 cents to implement in a mass produced product, not because it is a high performance digital interface. There's ZERO attention paid to jitter in Toslink interfaces and there are no "high end" Toslink interfaces. So you can see thousands of picoseconds of jitter in a Toslink interface versus low hundreds of picoseconds of jitter in a well designed "wired" digital interface (like SPDIF over RCA jacks). If you have the capability to replace the Toslink connection with SPDIF or AES-EBU or asynchronous USB, you'll probably get less distortion. Jitter translates DIRECTLY to distortion in the analog output (digital has to be converted to analog at some point). The random (or patterned) displacement of bits in time directly alters the analog waveform coming from the DAC. Digital music playback still has an analog component... time. Once jitter appears in a system, it is damn difficult to keep it out of power supplies, other components, etc. You get rid of jitter in the bitstream only to have it show up in the power supply for the DAC (the chip itself) and the jitter in the DAC power supply results in less than precision timing inside the DAC so the analog output is altered unexpectedly. English mathematician Malcom Omar Hawksford did a proof of jitter effects in the 1990s... and that really kicked in efforts to eliminate jitter in music playback systems once the mechanisms of how jitter adds distortion to the analog waveforms produced by the DACs. Except in the 3-cent Toslink interface... nobody seems to take it seriously. It COULD be a great interface, but it might cost $2-$3 per unit instead of 3-cents.

citro
Posts: 9
Joined: Mon Mar 19, 2012 1:36 am

Re: Memory Playback - Not exactly what I was expecting?

Post by citro » Fri Mar 23, 2012 7:04 pm

Thanks for the input, maxdb. I've read different opinions regarding jitter and toslink vs USB vs SPDIF coaxial, it seems like everyone has got something to say about this matter :). I can tell you I have no audible distortion in my system, at least, at volumes I can still hear music.

The Naim DAC normally has good reviews and "promotes zero jitter", despite knowing how difficult it is to assure that:

http://www.6moons.com/audioreviews/naim4/dac.html

http://www.whathifi.com/Review/Naim-DAC/

http://beta.techradar.com/reviews/audio ... 031/review

I'm now trying this cable instead of the Supra one:

http://www.audioasylum.com/audio/cables ... 53637.html

I haven't noticed any significant differences.

Waffles
Posts: 9
Joined: Fri Jan 27, 2012 3:23 am

Re: Memory Playback - Not exactly what I was expecting?

Post by Waffles » Thu Apr 05, 2012 8:34 pm

maxdb wrote:"Your logic is flawed"

Uh... no, it's not. You're just making baseless excuses. (in fact I've been tested numerous times and only 1 person in 40,000 has equal or better logical reasoning skills than I do... true story... not bragging... I suck at many other things... logic just happens to be one of the few things I don't suck at). It is SIMPLE for an application to determine how much available memory the computer has. S-I-M-P-L-E That makes it easy for the software to determine how much of a playlist can go into memory now and that it needs to flush the memory and add more tracks later. Memory management for multiple applications is also SIMPLE... like one of the most basic computer software functions... software doesn't even have to do much to manage memory effectively ('much' is the operative word... software DOES have to do memory usage thing correctly or you can have 'memory leaks' that eventually lead to running out of memory even though there's plenty of memory not being used), the operating system "helps" the application with memory management. If you were using 500MB for internet or word processing, then you quit that program, that memory automatically becomes available for some other application or it can sit unused if some other app doesn't need it. If you are running a single application that has seen how much memory there is and is using all or almost all of it, then you start a second application, the computer (software and operating system) will provide memory for the new application automatically without you having to do ANYTHING. This is all VERY simple, very basic stuff. It has been perfected over the 30+ years personal computers have been available and 20 more years prior to that when computers were only available as industrial/commercial mainframes and memory was VERY expensive.

And beyond thsat
I feel like I'm flogging a dead horse now, so I'll be brief. Your arguments about memory management don't quite hold up, despite your professed logical reasoning abilities. Memory management isn't magic; it can't just pull space out of thin air if the RAN is packed to capacity with a playlist. What if I start Decibel, then need to open a couple of memory-intensive applications immediately afterward? How could Decibel know how much RAM it could safely use? Would it then just drop a couple tracks if the system needed more memory later? The functionality you want would only be reasonable if Decibel contained a setting to allow the user to specify the maximum amount of RAM it could use. I have no problem with this idea, but my main point, which you missed entirely, is that the way Decibel currently works is sufficient to achieve the stated objective of minimizing skipping and interference caused by reading the currently playing track from disk.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest