Dolby Atmos on MacOS

QuadraphonicQuad

Help Support QuadraphonicQuad:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
MP4 is lossy not lossless
I'm quite aware of that. (Actually, I believe mp4 is technically capable of supporting TrueHD--see the table "Video container support for audio coding formats" in the "Audio coding formats support" section of this Wikipedia page--but as far as I know, that capability has only been explored on an experimental basis. In any case, no currently available software will support playback of mp4 with TrueHD, and every commercially available Atmos mp4 file I've seen uses a lossy audio codec.)
What we need to get a giant step forward in this issue is lossless: truehd or dts h-ma with Atmos, playing in MacOS with a third-party app
Agreed. As I say: Elmedia for Mac will apparently do that right now, as long as you're willing to pay for the "Pro" version. (I'm not.) I expect--hope--that other third-party media players for Mac will add an HDMI passthrough setting once the Sequoia OS is out of beta.
 
Can anyone with an Intel i7 Mac and specifically not having an approved Atmos device connected say if the Atmos controls in the Music app are still blanked out in Sequoia? (Some newer Mac's themselves are whitelisted as approved devices, FYI. So someone with an i7 machine that is not approved.)

I made an installer for the Sequoia beta. It hangs on launch on all my i7 machines. This is either too early a beta and maybe Apple Silicon only at present or maybe I've actually reached the final MacOS with Sonoma.

I'm not holding my breath expecting amnesty for the approved device thing, mind you. Just figured it was worth a try. Should probably keep digging to find the plist or xml file with that device whitelist and liberate Monterey. Kind of hoped someone with better tinkering skills would have found that by now!

Yes, I know this is for lossy streaming with the Music app only! I'm not doing pass-through to any hardware device.
 
With a recent upgrade I had lost my 5.1.4 setup.

But I found this utility to change the audio device from the command line (https://github.com/deweller/switchaudio-osx ) and I modified it and added a function and I restored my 5.14 setup.

Note my speaker assignment is not classic, so you may need to reorder the layout ChannelDescription list.

As is, this patch would not be accepted, I'll try to make it more generic and contribute back to the utility, if not I'll maintain my own fork.

C:
OSStatus setSpeakerLayout(ASDeviceType typeRequested) {
    AudioDeviceID currentDeviceID = kAudioDeviceUnknown;
    char currentDeviceName[256];
    UInt32 propertySize;
   
    currentDeviceID = getCurrentlySelectedDeviceID(typeRequested);
    getDeviceName(currentDeviceID, currentDeviceName);
   
    AudioObjectPropertyAddress propertyAddress = {
        .mSelector  = kAudioDevicePropertyPreferredChannelLayout,
        .mScope     = kAudioDevicePropertyScopeOutput,
        .mElement   = kAudioObjectPropertyElementMaster,
    };
   
    if (AudioObjectHasProperty(currentDeviceID, &propertyAddress)) {
        propertySize = 0;
       
        AudioObjectGetPropertyDataSize(currentDeviceID, &propertyAddress, 0, NULL, &propertySize);
        AudioChannelLayout* layout = (AudioChannelLayout*)malloc(propertySize);
       
        // 5.1.4 Atmos L R C LFE Ls Rs Vhl Vhr Ltr Rtr

        //layout->mChannelLayoutTag = kAudioChannelLayoutTag_Atmos_5_1_4;
        layout->mNumberChannelDescriptions = 10;
       
        layout->mChannelDescriptions[0].mChannelLabel = kAudioChannelLabel_Left;
        layout->mChannelDescriptions[1].mChannelLabel = kAudioChannelLabel_Right;
        layout->mChannelDescriptions[5].mChannelLabel = kAudioChannelLabel_Center;
        layout->mChannelDescriptions[4].mChannelLabel = kAudioChannelLabel_LFEScreen;
        layout->mChannelDescriptions[2].mChannelLabel = kAudioChannelLabel_LeftSurround;
        layout->mChannelDescriptions[3].mChannelLabel = kAudioChannelLabel_RightSurround;
        layout->mChannelDescriptions[6].mChannelLabel = kAudioChannelLabel_VerticalHeightLeft;
        layout->mChannelDescriptions[7].mChannelLabel = kAudioChannelLabel_VerticalHeightRight;
        layout->mChannelDescriptions[8].mChannelLabel = kAudioChannelLabel_LeftTopRear;
        layout->mChannelDescriptions[9].mChannelLabel = kAudioChannelLabel_RightTopRear;
       
        for (UInt32 i = 0; i < layout->mNumberChannelDescriptions; i++) {
            layout->mChannelDescriptions[i].mChannelFlags = kAudioChannelFlags_AllOff;
        }
       
        return AudioObjectSetPropertyData(currentDeviceID, &propertyAddress, 0, NULL, propertySize, layout);
    }
    return 0;
}
 
Last edited:
Hi Franck, it looks like your PR has been merged. Oops, i see you have your own space and it hasn't been merged. My fault.
no worries.
The PR is here https://github.com/deweller/switchaudio-osx/pull/68 if you want to leave a comment in the PR, this would help and that would be awesome. I sent an email to the maintainers as there are several PR in the queue that have not be actioned. So I don't know if the project is still maintained.
I could make it as a separate utility, but I prefer if it is integrated in a larger project.
 
Back
Top