Dolby Atmos on MacOS

QuadraphonicQuad

Help Support QuadraphonicQuad:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
If others can comment my feedback report or open one, that would be awesome, I'm just a lonely voice and tickets get processed when they fix things for many people: Feedback Assistant - No longer a 5.1.4 option in configure speakers in Audio Midi Setup
That link doesn't work for me. I get "Feedback Not Found"
I also found out my 5.1.4 setup in the com.apple.audioSystemSettings.plist, so I should be able to have 5.1.4 by editing this file directly, in case I loose it.
Can you say where com.apple.audioSystemSettings.plist is located and what you put in it to get 5.1.4?

Thanks!
 
That link doesn't work for me. I get "Feedback Not Found"
Can you say where com.apple.audioSystemSettings.plist is located and what you put in it to get 5.1.4?
Thanks!
You will find it in /Library/Preferences/Audio

This is the extract of it that relates to my 5.1.4 setup on my rogueamoeba virtual audio device

For instance the outputs on my card are mapped like this
1->left speaker(1)
2->right speaker(2)
3->subwoofer(5)
4->center speaker(6)
5->surround left speaker(3)
6->surround right speaker(4)
7->height front left(13)
8->height front right(15)
9->height back left(52)
10->height back right(54)

in the developper doc, it shows that the 5.1.4 setup is encoded by this value
kAudioChannelLayoutTag_Atmos_5_1_4 = (195U<<16) | 10
which I think is 12779530 but I could not find this value in the file, so not sure it is important.

Let me know if that works for you.

XML:
<key>device.com.rogueamoeba.Loopback:4FF4210B-DAAF-43B0-9842-7083A1E70138</key>
    <dict>
        <key>global.arrival</key>
        <dict>
            <key>seed</key>
            <integer>292</integer>
            <key>time</key>
            <integer>2113005000000000</integer>
        </dict>
        <key>output.surround</key>
        <dict>
            <key>channel bitmap</key>
            <integer>0</integer>
            <key>channel descriptions</key>
            <array>
                <dict>
                    <key>channel flags</key>
                    <integer>0</integer>
                    <key>channel label</key>
                    <integer>1</integer>
                    <key>coordinates</key>
                    <array>
                        <real>0.0</real>
                        <real>0.0</real>
                        <real>0.0</real>
                    </array>
                </dict>
                <dict>
                    <key>channel flags</key>
                    <integer>0</integer>
                    <key>channel label</key>
                    <integer>2</integer>
                    <key>coordinates</key>
                    <array>
                        <real>0.0</real>
                        <real>0.0</real>
                        <real>0.0</real>
                    </array>
                </dict>
                <dict>
                    <key>channel flags</key>
                    <integer>0</integer>
                    <key>channel label</key>
                    <integer>5</integer>
                    <key>coordinates</key>
                    <array>
                        <real>0.0</real>
                        <real>0.0</real>
                        <real>0.0</real>
                    </array>
                </dict>
                <dict>
                    <key>channel flags</key>
                    <integer>0</integer>
                    <key>channel label</key>
                    <integer>6</integer>
                    <key>coordinates</key>
                    <array>
                        <real>0.0</real>
                        <real>0.0</real>
                        <real>0.0</real>
                    </array>
                </dict>
                <dict>
                    <key>channel flags</key>
                    <integer>0</integer>
                    <key>channel label</key>
                    <integer>4</integer>
                    <key>coordinates</key>
                    <array>
                        <real>0.0</real>
                        <real>0.0</real>
                        <real>0.0</real>
                    </array>
                </dict>
                <dict>
                    <key>channel flags</key>
                    <integer>0</integer>
                    <key>channel label</key>
                    <integer>3</integer>
                    <key>coordinates</key>
                    <array>
                        <real>0.0</real>
                        <real>0.0</real>
                        <real>0.0</real>
                    </array>
                </dict>
                <dict>
                    <key>channel flags</key>
                    <integer>0</integer>
                    <key>channel label</key>
                    <integer>13</integer>
                    <key>coordinates</key>
                    <array>
                        <real>0.0</real>
                        <real>0.0</real>
                        <real>0.0</real>
                    </array>
                </dict>
                <dict>
                    <key>channel flags</key>
                    <integer>0</integer>
                    <key>channel label</key>
                    <integer>15</integer>
                    <key>coordinates</key>
                    <array>
                        <real>0.0</real>
                        <real>0.0</real>
                        <real>0.0</real>
                    </array>
                </dict>
                <dict>
                    <key>channel flags</key>
                    <integer>0</integer>
                    <key>channel label</key>
                    <integer>52</integer>
                    <key>coordinates</key>
                    <array>
                        <real>0.0</real>
                        <real>0.0</real>
                        <real>0.0</real>
                    </array>
                </dict>
                <dict>
                    <key>channel flags</key>
                    <integer>0</integer>
                    <key>channel label</key>
                    <integer>54</integer>
                    <key>coordinates</key>
                    <array>
                        <real>0.0</real>
                        <real>0.0</real>
                        <real>0.0</real>
                    </array>
                </dict>
                <dict>
                    <key>channel flags</key>
                    <integer>0</integer>
                    <key>channel label</key>
                    <integer>-1</integer>
                    <key>coordinates</key>
                    <array>
                        <real>0.0</real>
                        <real>0.0</real>
                        <real>0.0</real>
                    </array>
                </dict>
 
Thanks! Is that portion of XML valid/complete? Or missing something like at the end?

I'm not seeing this part
XML:
                        <key>channel layout tag</key>
                        <integer>0</integer>
                        <key>number channels</key>
                        <integer>10</integer>
Maybe the formatting didn't survive the post. Maybe share the file
 
Last edited:
Thanks! Is that portion of XML valid/complete? Or missing something like at the end?

I'm not seeing this part
XML:
                        <key>channel layout tag</key>
                        <integer>0</integer>
                        <key>number channels</key>
                        <integer>10</integer>
Maybe the formatting didn't survive the post. Maybe share the file
yes, add this, for me the number of channels is 16, and any channel past number 9 has a channel label of -1
 
  • Like
Reactions: mkt
What minimum MAC requirements would one need to run Blackhole? I’m a longtime PC user with little knowledge of the MAC world. Ironically, I use the IPhone and IPad since inception. A MAC AIR M3, 8gb, 256 SSD can be had for a grand US.
 
What minimum MAC requirements would one need to run Blackhole? I’m a longtime PC user with little knowledge of the MAC world. Ironically, I use the IPhone and IPad since inception. A MAC AIR M3, 8gb, 256 SSD can be had for a grand US.
Any Mac that can at least Snow Leopard from 2006 or thereabouts. High Sierra (MacOS 10.13) is a good sweet spot currently for access to new and old software. Monterey (MacOS 12) is another decent landing point. I'd avoid the post-Jobs machines from the last few years now when they started soldering the hard drive in.

Monterey will have the newer audio controls and Atmos channel selections. I've written about the lock outs and muting the height channels for media players not whitelisted. The default 'no selection' workaround in Audio MIDI Setup lets you play 12 or 16 channel Atmos mixes in older MacOS back to at least Snow Leopard. I think the Dolby reference player needs High Sierra (10.13) or newer. Might not support newer than Monterey either though.

Monterey is a good newer MacOS build. Catalina is the first to "officially" support Atmos channel layouts. Still avoid Catalina (10.15) and Big Sur (MacOS 11). These were the "brick bug" prone builds. Black screen and firmware bricked after a random restart. Whole logic board replacement. Avoid that! Upgrade straight to Monterey or newer from older builds.
 
What minimum MAC requirements would one need to run Blackhole? I’m a longtime PC user with little knowledge of the MAC world. Ironically, I use the IPhone and IPad since inception. A MAC AIR M3, 8gb, 256 SSD can be had for a grand US.
Not exactly your question but I am using a 5 year-old intel MacBook Pro with Sonoma (14.4.1). No particular complaints but occasionally coreaudiod gets confused and I have to kill it. At some point I started using Loopback (not Blackhole), though in theory Audio MIDI Setup should be enough.

Interestingly (ok not really), Audirvāna plays to 12 channels devices regardless of whether or not they are configured in Audio MIDI Setup. Not my experience with other players.

If you buy from Apple you have 14 days to return for any reason. I used an Air as a loaner while I was getting a new battery and liked it.
 
Have to try Audirvāna media player then! Sort of settled for VOX for newer OS in the meantime.

I use Loopback too.
The thing you're told not to do: Aggregate device of a virtual device + hardware. Clock sync has to be "virtual". Ticking resync in Audio MIDI setup for Loopback seems more bulletproof than it should be. It just always works.

High Sierra is still my daily driver. I only boot into Monterey on my 2011 Macbook Pro when I need to record off a Digico mixer from the USB/MADI port.
 
  • Like
Reactions: mkt
Thanks all. I’ll continue my research. I would like to backup my ATMOS collection. Streaming is ok but i prefer my own library.
 
  • Like
Reactions: mkt
For the lossy version of Atmos with the Mac stuff they whitelist approved devices, FYI. (eg. Apple TV and some soundbars) The controls are blanked out in the Music player if you don't have a device on the whitelist connected. I haven't learned how to hack this yet. If someone has, that would be a great post!
 
They don't 'whitelist' anything. The issue is that MacOS doesn't support bitstream audio over HDMI. Even if you connect a Mac computer to a so-called 'approved' HDMI device like an Atmos-capable AVR or soundbar, the most you'll get out of Apple Music is 5.1 because the DD+/JOC audio is being decoded internally and sent over the cable as PCM.

If you want full 7.1.4 playback on a Mac, you have to route the output of Apple Music to a virtual soundcard and then send those signals out to your speakers via an external interface with line outputs. If Apple were so keen to lock people out as you suggest, it seems hard to believe they'd allow this.
https://www.production-expert.com/p...listen-to-dolby-atmos-without-costly-hardware
 
I've seen posted screen shots of the controls. I know they can be blanked out because I'm looking at it. I've seen other examples with MacOS where you can add a device to the whitelist. A list of approved devices makes more sense than a blacklist too. So there may be a solution to find! And this is only for the lossy. Decoded by the OS as you said. They only allow the lossy for this.

Using virtual devices and audio interfaces is outside of any decoding. That's been a stable platform for a long time. They probably figure they have it covered with access to the decoder and they really do.

The annoyance factor comes in because this feels like paying to be allowed to use your hardware you already own.

I'm rolling with lossless with the reference player and connected interface which is the main event. It might be nice to use the Music app for streaming lossy but I either have to learn how to hack permission or buy a new device and then try to figure how to route audio back to my system.
 
how can I play a Blu-ray Disc from my player with Dolby Atmos to my already Dolby Atmos ready AVR when there are on this AVR connected the 7.1 channels and the height channels are on a different AVR?
You can't do that. Hardware decode is all or nothing.
Using a hardware device with the decoder built in like that means it has to decode the whole thing. If that AVR had line level analog outputs or digital audio outputs, you could take the now decoded signal, send the channels in question to those outputs, and connect to additional amps. Of course no AVR has additional line outputs and they sure don't let you route and play with audio like a mixing board!

An audio interface wound let you do that. But this option means you need the Dolby reference player to software decode. Then it's just 12 channels of audio and you can use whatever and however many amps you please.

Dolby doesn't make a secret streaming media player app like their reference player at present. There's no good choice for streaming unless you are building a brand new full AVR-decoding based system from the ground up. Beyond unreasonable for those of us with large invested-in systems that we add to here and there. And for stepped on lossy sound to begin with. You could just buy some novelty device for streaming lossy. If fidelity comes first for music for you though, that might just be absurd.
 
I don't know how to use multiple amps for 7.1.4 Atmos without the Dolby Reference Player on a pc.
I know zip about Macs. But people do it.
I did use two separate amps for 7.1.4 playback on my former "frankenstein system" using the DRP and the ASIO4ALL software (free...DRP is not).
One AVR had HDMI input, and the second had DP > HDMI in to a 7.1 HDMI extractor then fed into an analog input AVR.
My longtime friend who is also here on QQ, provided the inspiration and the guidance.
 
Back
Top