• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Playing bit-perfect music on your Macintosh

apastuszak

Member
Joined
Dec 1, 2020
Messages
12
Likes
12
I have a Topping D10s that I bought based on Amir's review, and was deeply disappointed when I found out that most Apple music players WILL NOT switch sample rate and bit depth on the fly when you play a 24/192 song or a DSD file. There are players available which will do that, but they cost $10, $20, even $40, and often don't get good reviews. Some are still in the Mac app store, but are pretty much abandonware, not seeing updates for as long as 3 years.

Particularly disappointing was Apple Music, that now supports up to 24/192, but the DAC will not auto switch to 24/192. You can force it to 24/192 using the Midi Settings app, but then it's stuck there and when you play 16/44.1, it's upsampling everything.

To be clear from the outset, I'm in the "CD is as good as it gets" camp, when it comes to digital music. But I really wanted to find a way to get this to work.

Because I am a cheap bastard, I wanted to find a free solution.

And I found one: the venerable mpd.

mod happily switches sample rates on the fly and will even play DSD using DoP.

But I struggled setting it up, so I figure I would post the audio_output section of my config that finally works, so you don't waste 30 min figuring this out:

audio_output { type "osx" name "D10s " device "D10s " # optional mixer_type "disabled" dop "yes"

The two things here that tripped me up were:
  • The name and device lines. For some reason Apple adds a space to the end of the device name for the DAC. This is not unique to the D10s. It has done it for every USB DAC I have connected.
  • The dop line enables DSD over PCM.
I only have 2 ripped SACDs, but when I play the dsf files, the DAC now shows "2.82 DSD" on the display, and when I switch back to a CD quality FLAC is says "44.1 PCM."

I really like mpd, because I can control it from my iPhone or my Mac, or from the Mac terminal.

I hope this post helps someone.
 
I have a Topping D10s that I bought based on Amir's review, and was deeply disappointed when I found out that most Apple music players WILL NOT switch sample rate and bit depth on the fly when you play a 24/192 song or a DSD file. There are players available which will do that, but they cost $10, $20, even $40, and often don't get good reviews. Some are still in the Mac app store, but are pretty much abandonware, not seeing updates for as long as 3 years.

Particularly disappointing was Apple Music, that now supports up to 24/192, but the DAC will not auto switch to 24/192. You can force it to 24/192 using the Midi Settings app, but then it's stuck there and when you play 16/44.1, it's upsampling everything.

To be clear from the outset, I'm in the "CD is as good as it gets" camp, when it comes to digital music. But I really wanted to find a way to get this to work.

Because I am a cheap bastard, I wanted to find a free solution.

And I found one: the venerable mpd.

mod happily switches sample rates on the fly and will even play DSD using DoP.

But I struggled setting it up, so I figure I would post the audio_output section of my config that finally works, so you don't waste 30 min figuring this out:

audio_output { type "osx" name "D10s " device "D10s " # optional mixer_type "disabled" dop "yes"

The two things here that tripped me up were:
  • The name and device lines. For some reason Apple adds a space to the end of the device name for the DAC. This is not unique to the D10s. It has done it for every USB DAC I have connected.
  • The dop line enables DSD over PCM.
I only have 2 ripped SACDs, but when I play the dsf files, the DAC now shows "2.82 DSD" on the display, and when I switch back to a CD quality FLAC is says "44.1 PCM."

I really like mpd, because I can control it from my iPhone or my Mac, or from the Mac terminal.

I hope this post helps someone.
Interesting . :)

Can you really hear the differences between 44.1 kHz or upsample to 96 kHz ? MacOS SINAD doing this is about -140 dB in digital domain. I cant hear the difference with my Genelec 8340 with digital input . With Windows 10 upsample engine you would hit a SINAD about -60, clearly audible.
 
Last edited:
Try Pine Player for Mac in the App Store. It’s free.
 
Hi,
I tried Pine Player on my mac mini today, but I can not figure out how to get it to send dsd data to my dac as dop, via a usb. The dac shows the file is converted to pcm 44.1 khz.
Is it possible to get Pine Player to transmit as dop?
 

It does replaygain/MP3Gain and gapless playback (at least in the PC build!). It's ugly as sin to look at but can be skinned to be acceptable....
 
I have a Topping D10s that I bought based on Amir's review, and was deeply disappointed when I found out that most Apple music players WILL NOT switch sample rate and bit depth on the fly when you play a 24/192 song or a DSD file. There are players available which will do that, but they cost $10, $20, even $40, and often don't get good reviews. Some are still in the Mac app store, but are pretty much abandonware, not seeing updates for as long as 3 years.

Particularly disappointing was Apple Music, that now supports up to 24/192, but the DAC will not auto switch to 24/192. You can force it to 24/192 using the Midi Settings app, but then it's stuck there and when you play 16/44.1, it's upsampling everything.

To be clear from the outset, I'm in the "CD is as good as it gets" camp, when it comes to digital music. But I really wanted to find a way to get this to work.

Because I am a cheap bastard, I wanted to find a free solution.

And I found one: the venerable mpd.

mod happily switches sample rates on the fly and will even play DSD using DoP.

But I struggled setting it up, so I figure I would post the audio_output section of my config that finally works, so you don't waste 30 min figuring this out:

audio_output { type "osx" name "D10s " device "D10s " # optional mixer_type "disabled" dop "yes"

The two things here that tripped me up were:
  • The name and device lines. For some reason Apple adds a space to the end of the device name for the DAC. This is not unique to the D10s. It has done it for every USB DAC I have connected.
  • The dop line enables DSD over PCM.
I only have 2 ripped SACDs, but when I play the dsf files, the DAC now shows "2.82 DSD" on the display, and when I switch back to a CD quality FLAC is says "44.1 PCM."

I really like mpd, because I can control it from my iPhone or my Mac, or from the Mac terminal.

I hope this post helps someone.
iphone and iPad does auto switch via a cable. Your Mac does not run Apple Music is exclusive mode which is why it does not switch.
 
iphone and iPad does auto switch via a cable. Your Mac does not run Apple Music is exclusive mode which is why it does not switch.
Apple Music will switch for locally stored files with the use of the app “BitPerfect”.
 
After a lot of experimentation, especially trying to get DSD/DoP to work with my DAC, I settled for Audirvana which as far as I can tell is able to manage switching between sampling rates and DSD correctly.
I tried mpd (no clue how to make it work), Pine Player + several other options.
Audirvana is pretty expensive imo, 50% of Roon. They offer a 1-month free trial.
 
With MacOS , theres no need for the program bitperfect because there is no exclusive mode in ”core”.
This is true ONLY if you select the right samplingfrequency for each album while using Apple Music lossless because otherwise the Mac will do SRC to the frequency you have chosen in the ”midi” setup.

However - theres a new solution to this that will automaticaly switch the sample frequency correct in your new Mac: ”LosslessSwitcher”.
 
Last edited:
With MacOS , theres no need for the program bitperfect because there is no exclusive mode in ”core”.
This is true ONLY if you select the right samplingfrequency for each album while using Apple Music lossless because otherwise the Mac will do SRC to the frequency you have chosen in the ”midi” setup.

However - theres a new solution to this that will automaticaly switch the sample frequency correct in your new Mac: ”LosslessSwitcher”.

Thanks for this info! But I'm not sure I understand what you are saying about the BitPerfect app. BitPerfect claims to enable on-the-fly resolution switching and by all indications that's exactly what it does. I'm not sure how the presence or absence of exclusive mode in Core Audio connects with that, and if what you are saying is true, it would seem that BitPerfect cannot actually function as it claims, rather than that there is "no need" for it.

Can you please clarify?
 
Thanks for this info! But I'm not sure I understand what you are saying about the BitPerfect app. BitPerfect claims to enable on-the-fly resolution switching and by all indications that's exactly what it does. I'm not sure how the presence or absence of exclusive mode in Core Audio connects with that, and if what you are saying is true, it would seem that BitPerfect cannot actually function as it claims, rather than that there is "no need" for it.

Can you please clarify?
Bitperfect is perfect (!) if you dont want to switch sample freq manually all the time , just like losslessswitcher. But - if you switch manually in midi settings so the samplingfreq is the native from the recording, then there should be no soundquality difference between Core and bitperfect or losslessSwitcher.
 
Bitperfect is perfect (!) if you dont want to switch sample freq manually all the time , just like losslessswitcher. But - if you switch manually in midi settings so the samplingfreq is the native from the recording, then there should be no soundquality difference between Core and bitperfect or losslessSwitcher.

Ah, now I understand what you are saying - thanks! And yes, that squares with my understanding too. BitPerfect is useful only if you want to be able to switch resolutions on-the-fly rather than manually (so you can, for example, play a 16/44.1kHz album and then immediately play a 24/96k album without pausing the playback and going into the Audio MIDI utility in between).

And of course BitPerfect is useful only if you feel that sticking with the music files' native resolution is necessary. I used to think it was, but after being educated by @danadam on how non-integer resampling can actually retain perfect analogue reconstruction of a digital signal within the Nyquist limit of the lowest sample rate involved, I tried setting my Mac mini music server's Audio MIDI to 24/96k permanently and then turning off BitPerfect, and I can't say I heard any audible difference in any of my music.

I have since re-enabled BitPerfect, but only because I found that for some reason the Audio MIDI settings would randomly reset themselves to 44.1k periodically. I should chase down that bug, but re-enabling BitPerfect was just easier in my case since I already have it installed and it works so simply behind the scenes.

One other small convenience/use-case note RE BitPerfect: because of a quirk in how iTunes/Apple Music works with 3rd party apps/plugins, BitPerfect is unable to reliably know which song is up next. With a typical studio album or random playlist, this is of no consequence - behind the scenes BitPerfect has to delay the transition between songs by a tiny fraction of a second, but it's too brief to be detectable as an increased silence between tracks. But if you are playing a live album or a similarly gapless album with no silence between tracks, then BitPerfect will sometimes add a tiny but audible fraction of a second of silence between the tracks.

As best as I can tell, what's going on when this happens is that the only iTunes/Apple Music info BitPerfect has access to about the next track is the order in which the tracks were first added to the iTunes/Music library. And because the music files vary in size (because they might have very different running times), iTunes/Music will often import the tracks out of order (because it can process, say, a 2-minute Track 9 faster than a 6-minute Track 8). It will of course display them in order, and it will play them in order - but BitPerfect doesn't "see" them in the right order behind the scenes so it has to quickly start caching the next track from scratch, resulting in that tiny silence.

The workaround is that when you import a live or otherwise gapless album into iTunes/Music, you need to manually drag each track into the library, one at a time, in the running order. That ensures that iTunes/Music imports the files in the order of the tracks on the album, thereby enabling BitPerfect to pre-cache the correct track and eliminating that tiny gap.
 
Last edited:
With MacOS , theres no need for the program bitperfect because there is no exclusive mode in ”core”.
This is true ONLY if you select the right samplingfrequency for each album while using Apple Music lossless because otherwise the Mac will do SRC to the frequency you have chosen in the ”midi” setup.

However - theres a new solution to this that will automaticaly switch the sample frequency correct in your new Mac: ”LosslessSwitcher”.
I e been waiting for this. Thanks for bringing it to my attention! It works reasonably well. Better than having to switch over to my iPhone for high quality streaming music. Now if only Apple could do this natively for Macs.
 
A few comments as a long time user of BitPerfect and iTunes (Music) for Mac. BitPerfect operates in “Hog Mode” allowing only BitPerfect to control the audio output exclusively. It also supports “Integer Mode”. It is my understanding that with both of these modes operating you have exclusive communication with the outboard DAC. If you are having issues with gap-less playback and Music using BitPerfect, try u checking the feature “Fixed Indexing” it has solved the problem for most of my albums.

One last comment. BitPerfect applies itself only to the playback of local files and not streaming files. This is where the value of LosslessSwitcher comes in as it applies but perfect playback to streamed files.
 
J.River Media Center ($50 with frequent discounts & trial version available) is an iTunes/Apple Music replacement and will flawlessly play back files at the correct sample rate/bit depth with no further modifications, i.e. "bit perfect" (unless you implement DSP). It also supports DSD, HDCD, virtually every audio file format, and provides gapless playback, as well as numerous different types of non-audio media files. It will rip CDs but unfortunately will not burn CDs in the Mac version. The interface and options have a learning curve, but basic operation as an audio player is quite simple. It does support streaming services, but I never tested that.

BitPerfect (mentioned in a couple of other posts in this thread) also works well, but in my experience, sometimes truncates the first fraction of a second when sample rates change, and I found that it doesn't consistently provide gapless playback, although it is cheap ($8 I recall). It's not clear whether BitPerfect is actively supported, when I last looked it hadn't been updated in a couple of years. J.River Media Center is actively developed and frequently updated.

I used J.River for a couple of years, I was entirely satisfied, but these days I play back audio directly from external storage via USB to my AVR.
 
J.River Media Center ($50 with frequent discounts & trial version available) is an iTunes/Apple Music replacement and will flawlessly play back files at the correct sample rate/bit depth with no further modifications, i.e. "bit perfect" (unless you implement DSP). It also supports DSD, HDCD, virtually every audio file format, and provides gapless playback, as well as numerous different types of non-audio media files. It will rip CDs but unfortunately will not burn CDs in the Mac version. The interface and options have a learning curve, but basic operation as an audio player is quite simple. It does support streaming services, but I never tested that.

BitPerfect (mentioned in a couple of other posts in this thread) also works well, but in my experience, sometimes truncates the first fraction of a second when sample rates change, and I found that it doesn't consistently provide gapless playback, although it is cheap ($8 I recall). It's not clear whether BitPerfect is actively supported, when I last looked it hadn't been updated in a couple of years. J.River Media Center is actively developed and frequently updated.

I used J.River for a couple of years, I was entirely satisfied, but these days I play back audio directly from external storage via USB to my AVR.
JRiver is great, but does not support streaming like Apple Music does, so I use both. I am now using LosslessSwitcher to get bit perfect streaming with Apple Music (and it is free).

A definite plus for JRiver Media Player is to get the “MO 4Media” app for your iPhone or iPad as it is a remote for JRiver. Give you the same convenience as Apple’s “Remote” for Apple Music (iTunes) but all the benefits of JRiver. The remote is like $4 for a year license.
 
LosslessSwitcher works as advertised - can see the sampling rate change on my Topping D90 and in Audio Midi Setup. It takes a few seconds to switch from the previous song's settings to the new one but other than that seems flawless in execution.

2017 iMac 27 on Monterey 12.3.1 running Apple Music in 24/192
 
I installed LosslessSwitcher this morning, and the problem with it is the hiccup in the audio when changes the sample rate. I have a Topping D10s DAC, and it looks like whenever the sampling rate changes, the DAC goes to 48kHz and then to the sampling rate that is native to the file. And when this happens, the audio drops out for a second and you hear silence.

I set up mpd on my Mac a while ago, and it will change sample rates and even play native DSD. But it knows the sample rate of the file before it starts to play it, so it can adjust the sample rate before the audio starts.

LosslessSwitcher monitors the Apple Music log looking to see what the sample rate is of the file that's playing and then changes the DAC's sampel rate. The problem with this is that the song is going to start playing before this app can change the sample rate, so any time a new song starts with a different sample rate you're going to get that drop out as the sample rate changes.

Apple Music should do this natively. We should not need a third-party tool like this.

A third party add-on has no way of knowing what's going to play, so it has to work on what IS playing. And if you add the option to pause the song, adjust the sample rate, and then start the song, that's going to mess with gapless albums.

So your options are:

1. Realize that 16/44.1 is all you need and set Apple music up accordingly
2. Don't use Apple Music and go back to local files
3. Leave Apple feedback and ask them to please add automatic sample rate switching to Apple Music: https://www.apple.com/feedback/apple-music.html

In your feedback, I would ask Apple to add automatic sample rate selection to Apple Music. I would also like Apple to develop a full API for Apple Music so peolple could write third party clients for Apple Music and streaming devices can add it as a plugin, they way they do Tiday, Spotify and Quoboz now.

I have the app installed now and I changed my settings to allow hi-res streaming. But that dropout when the sample rate changes is really annoying and distracting.

The author did the best he could with the limitations of what he has to work with in MacOS and Apple Music.
 
So your options are:

1. Realize that 16/44.1 is all you need and set Apple music up accordingly
2. Don't use Apple Music and go back to local files
3. Leave Apple feedback and ask them to please add automatic sample rate switching to Apple Music: https://www.apple.com/feedback/apple-music.html
Well, there's option 1A ... after reading Benchmark's blog where they expressed satisfaction with Apple's upsampling, I set 24/96 (the highest rate I've noticed on things I listen to) or 24/192 (the highest native res I'll get from Apple) and don't worry further. Except when it resets every now and then. Which is less frequent an annoyance than gaps.

Edit: no criticism of the effort put into the LosslessSwitcher app however.
 
Last edited:
Well, there's option 1A ... after reading Benchmark's blog where they expressed satisfaction with Apple's upsampling, I set 24/96 (the highest rate I've noticed on things I listen to) or 24/192 (the highest native res I'll get from Apple) and don't worry further. Except when it resets every now and then. Which is less frequent an annoyance than gaps.

Edit: no criticism of the effort put into the LosslessSwitcher app however.
Can you please share a link to that blog? Very curious as to how all that works. Thanks.
 
Back
Top Bottom