BitPerfect (was: Audirvana Alternatives)
May 30, 2011 at 6:34 PM Post #16 of 801
1) If you start BetterSound after iTunes starts you need to stop BetterSound and select a new song before music will play.
2) All UI-based volume changes, whether on the OS-level or through iTunes are ignored.
3) iTunes track-seeking still doesn't work.
 
Right now you're kind of straddling this line between passive enhancement of iTunes audio and a dedicated playback program. I really think you need to choose one or the other because the middle is causing a number of problems with usability.
 
Personally, I think the issue with the volume isn't acceptable. Ideally, I'd like to be able to turn it off outright. There are already ways in OS X itself to change the volume by more than 20 steps even if you don't count simply dragging the volume controller. What's happening now breaks all but one of the ways in which you change volume in OS X and that way is buggy.
 
I'd rather see BetterSound go the direction of an entirely passive system that merely enhances system audio. All the complaints I've ever heard about iTunes have been it doesn't support some format and the sound quality is horrible. There are plugins for dealing with the various formats issue but nothing that really deals with the audio quality issue as I've seen. Rather than fighting iTunes I'd rather see BetterSound augment it to make it better, but that's just me.
 
May 30, 2011 at 7:44 PM Post #17 of 801
Track seeking and volume control via iTunes are now on my TODO list.
 
I'm not sure what problem you're seeing with volume control. If BetterSound is playing through the default output device, then the volume control keys will control a secondary device and BetterSound will control the default device, otherwise only the default device's volume will be changed (by BetterSound.) Since I'm not understanding this problem you'll have to be more specific for me to fix it.
 
Issue 1 is a non-starter unfortunately. The problem is, BetterSound needs to be told what to play by iTunes. I suppose I could try and make it detect what is currently playing, even seek to the correct part, but it won't be seamless, so I haven't bothered. This is tied into the idea of BetterSound being a passive program that enhances all sound. To do this, I would have to implement BetterSound as a virtual sound card (like Soundflower.) While possible, I don't think it would yield higher quality sound for 2 reasons:
 
1) BetterSound would have no control over how iTunes decodes audio. If iTunes chooses to downsample your 24/96 track to 16/44.1 (which it does if your output device is set to 16/44.1) then BetterSound would have no say in the matter. iTunes will not intelligently change the output settings on your device and BetterSound could not know that there was a problem.
 
2) 90% of the increase in sound quality comes from having exclusive control of the sound device. This has to be requested by the program playing the sound. I believe the improvement is due to exclusive mode bypassing the system mixer. Even when only 1 stream of audio is playing, the mixer still does it's thing, degrading quality. If BetterSound were implemented as a sound driver, it would not be able to require iTunes to output in exclusive mode, so multiple audio streams would still have to be mixed together.
 
I believe it is for the above 2 reasons that applications like Pure Music and Amarra are both implemented as dedicated playback applications driven by iTunes, just like BetterSound is now.
 
Longer-term, I'm planning on writing a music library manager driven by the BetterSound output code, but that is a long way off. Hence my aim for now is to get workable integration with iTunes in the same way that Pure Music and Amarra do.
 
May 30, 2011 at 10:41 PM Post #18 of 801
Right now, with BetterSound working, the volume control item in the menu bar has no effect on system volume.
 
With the first issue, I don't think people would expect it to be seemless. However, it's better than it doing nothing, from a user's point of view. People who don't know how to deal with it are going to think it's broken. A solution should be implemented if only to save you the dozens of support e-mails when this becomes popular.
 
Is there a way to keep the control part of the interface as passive? That might solve the volume control issues. One thing that seems a little strange, if I quit BetterSound having changed the volume, it appears to go back to the volume it was before.
 
If your aim is for integration than it should be as seamless as possible, no? Ideally, from a user's perspective, they should launch BetterSound and it should just sit in the background as if it wasn't there at all, the only noticeable difference is a slight pause when it first starts and then improved sound quality afterwards.
 
The sound quality part is a definite improvement. I've yet to purchase the AMP/DAC I'm saving for but BetterSound is already a great improvement. My music sounds warmer and more alive through my headphones.
 
The problem I'm having is I'm constantly having to quit and open the app because of the UX bugs.
 
It might be worth your time to implement the ability to enable and disable BetterSound from the menu item without quitting it. That'll help in the future if users come across applications BetterSound doesn't play well with but that they need to use for a short period of time. Bonus points if it could be tied to a key-command or only enabled when iTunes is playing.
 
[edit:]
 
Hmm. Here's another weird bug. If you change the star rating of a song while it's playing the song restarts.
 
May 31, 2011 at 8:02 AM Post #19 of 801
Thank you, agentsim!
 
It's great that you're making BetterSound compatible with FLAC. Although most of my files are Apple Lossless, I do have a significant number of FLACs that I haven't got around to converting with XLD yet.
 
My LD DAC_I only seems to run in integer mode when connected via USB - even though I use toslink from my iMac, I will try out integer mode over USB once it becomes functional (next version?).
 
I will eagerly await version 0.15 :)
 
 
 
May 31, 2011 at 11:06 AM Post #20 of 801
@Doug: I'm almost done with volume control and seek using the iTunes control. The UI integration is pretty seamless. I've also changed the way BetterSound gets notified of changes by iTunes, instead of waiting to be told what happened, BetterSound polls iTunes a few times per second to find out what is going on. This approach fixes the weird bugs like songs restarting when you star them.
 
@Goldmbe: I'm starting on Integer mode now, I'm glad you'll be able to test it. I'm hoping to have a build with Integer mode by the end of the weekend. I don't have an Integer mode DAC, so I have to wait for the week-end to test/dev using a friend's DAC :)
 
Jun 2, 2011 at 10:35 PM Post #22 of 801
New version (0.15) available here.
 
Changes Include:
  1. Poll iTunes state to respond to UI changes quickly, instead of waiting on notifications.
  2. Obey volume control from iTunes.
  3. Seek via iTunes, very fast for Apple Lossless, not so great for FLAC.
  4. FLAC was playing left channel out of both left and right speakers.
  5. Changing rating no longer restarts playback.
  6. Integer mode (experimental, untested).
  7. Device/Stream info option in the menu for helping me with device specific bugs.
 
The "Sound Check" button is not hooked up yet. I'm looking into options for user selectable sample rate converters for the next build, other than libsamplerate, libfsrc and SoX, let me know if you have any suggestions/requests.
 
@Doug: This should improve iTunes integration significantly. Let me know what other suggestions you have in that regard.
@goldmbe: Integer mode is enabled. Very experimental since I haven't got an integer capable device. If it doesn't work, email me the contents of the "Device Info..." output preferably while sound is playing (if possible.)
 
Jun 3, 2011 at 1:29 PM Post #23 of 801
Thanks Agentsim*
 
"BetterSound" is exactly what I was looking for.
 
It is so disappointing that itunes does not sound better...
Aurirvana is fine, but the integration with itunes is not user-friendly.
 
So far I do good experiences with BetterSound.
I appreciate the itunes volume control on version .15 and the better responsiveness to itunes commands.
I have some problems with Soundflower, which sometimes hanged up with color wheel.  I removed it. I son't need it at it is possible to select the audio output from BetterSound.
With version .15, I had twice a similar problem with iTunes. I tried to reproduce the bug and I find the manipulations leading to itunes's crash, I will let you know.
 
I look forward to seeing the next versions.
 
All the best
 
Kuglopf
 
 
Jun 3, 2011 at 1:33 PM Post #24 of 801
Seek works (yay!) and rating a song no longer restarts it (double-yay!) so great job there.
 
Issues still to fix:
 - Play position isn't updated during playback in iTunes (this translates to other programs such as Bowtie and similar iTunes controllers)
 - Cross-fade doesn't work (low priority as it's a nice thing to have but not really required, just another seamlessness thing)
 - System-level volume menu bar item has no effect on sound volume
 
One thing I have to say is BetterSound is really friendly in terms of system resources. I'm hitting around 1% of CPU usage (Intel Core i7 2.93 Ghz) and around 140 MB of RAM. My guess is this would actually run well on older Macs and lower-end Macs without any noticeable hit on the system, which is great. Given the quality increase I half expected to see it using half my processor but it's not. It did grab 100% of one of my cores when it first started up but that only lasted for a few seconds.
 
Jun 3, 2011 at 9:46 PM Post #25 of 801
@Kuglopf: Thanks for the feedback, keep it coming :) If you find the cause of the hangs, be sure and let me know.
 
@Doug: Item 1), this is an iTunes "bug". If there is no output device iTunes can use (BetterSound has hogged the default device) then iTunes doesn't update the play position. Not much I can do there... Item 3) is a similar kind of thing. Once BetterSound hogs the default output device, no other system process can control it in any way, that means no volume control outside of BetterSound (keyboard shortcuts) or any other kind of control. I'll consider making hog mode optional, but be warned, an playing audio without hog mode will not sound much better than iTunes.
 
I'll add cross-fade to my TODO list :)
 
Jun 3, 2011 at 10:14 PM Post #26 of 801
Could you create a dummy output device or in some other way trick it? Heck, you could have it playing through BetterSound and iTunes with the iTunes stream muted, or would that not be possible?
 
As for the UI control, since BetterSound is taking control of all audio playback would it be possible to do what you're doing with iTunes's volume controller only with the system-wide one with some sort of listener or by pinging it the way you are iTunes for star ratings? Or is that just something you can't touch at all?
 
Hmmm. OK, so out of curiosity what is it exactly that iTunes does that you're stopping it from doing with BetterSound? I can definitely tell a difference but I'm not entirely sure why there is one.
 
Jun 4, 2011 at 11:50 AM Post #27 of 801
 
I have identified three issues.
1) It is not possible to qui iTunes while BetterSound is open, because it will re-launch iTunes. Workaround : I need to first quit BetterSound otherwise.
2) I am note able to listen to the iTunes store "preview clips" or to any steamed content. Workaround : I fist need to qui BetterSound before playing streamed audio in iTunes.
3) I still have a (serious) compatibility issue with SoundFlower. When I start my session, I can listen to sound from other applications, e.g. Safari, which is sent by default to Soundflower 2ch and routed to "Built-in Output". If I listen to any application via SoundFlower and then I quit them and I listen to iTunes (with BetterSound), then SoundFlower is mute. If I quit BetterSound + iTunes, and I open any other application, it does not produce any sound. I have to close my session and to re-open it to be able to hear anything via SoundFlower.
 
Thanks for checking whether they are already known (I guest the second one is not surprising) and, where appropriate, to fix them...
 
K
 
P.S. My config : an intel imac with system 10.6.7, connected (mini-jack) by optical cable to a musical fidelity V-DAC, connected to a NAD amplifier.
 
Jun 5, 2011 at 3:55 PM Post #28 of 801
@Doug: If I create a dummy output device it would be the same thing as Soundflower (but with more bugs
wink.gif
). As for muting iTunes, that is possible, but most of the increase in SQ comes from BetterSound having total control of the output device. I'll see about hooking into the system volume control, but I don't have high hopes.
 
As for what iTunes does that BetterSound prevents, well BetterSound prevents iTunes from playing anything at all. iTunes does a few things wrong, notably, it does not select the correct bit depth and sample rate for the track being played. However, IMHO the single biggest improvement is hog mode (exclusive access). iTunes will never hog the output device. IIRC, without hog mode, all the sound you play through the device goes through some kind of system-wide mixer (mixing multiple output streams together). It goes through the mixer even if there is 1 output stream and that mixer is what degrades the quality, not iTunes per se.
 
 
@Kuglopf:
 
1) Thanks for the bug report, will be fixed in the next release.
2) You're right, this one isn't surprising, the output device has been hogged.
3) Is BetterSound configured to go through Soundflower, built-in output or the V-DAC? I'll look into this some more, my hunch is that you've found a Soundflower problem, but I can't be sure yet.
 
Jun 5, 2011 at 7:23 PM Post #29 of 801
agentsim, I cannot get integer mode to work at all. BetterSound hangs whenever the integer mode box is checked and I try to play a track. I have to manually force quit in Activity Monitor. If you want the device info I'll PM it to you.
 
Jun 6, 2011 at 5:54 PM Post #30 of 801
 
 
Quote:
@Kuglopf:

...

3) Is BetterSound configured to go through Soundflower, built-in output or the V-DAC? I'll look into this some more, my hunch is that you've found a Soundflower problem, but I can't be sure yet.

BetterSound goes through built in output. As the V-DAC is connected via toslink, it does not appear as an identified output. If I connect via USB, it is recognised, but its bit depth limited to 16.
 
thanks
 
k
 

Users who are viewing this thread

Back
Top