Thursday, February 25, 2010

How to Fix Audio Issues After OS X 10.6 Upgrade from OS X 10.5

Note: Some mention in this post that this didn't work for them, or the directory wasn't even there, but the fix that Matt Notley noted worked for me! Thanks to Matt and to whoever figured this out, if it wasn't Matt originally!

After being unable to hearing streaming audio via Adobe Acrobat Connect after the upgrade from OS X 10.5 to 10.6 (Snow Leopard) (and subsequent patches to OS X 10.6.2), even after going into System Preferences -> Sound and adjusting volume and setting the device (I use a Eutectics IPP200), I was unable to hear any sound. If I set my sound output to speaker I could hear it fine, but I just wasn't able to play sound for that particular application through that USB device.

Fix

I did a Google search for "snow leopard sound issue" and the top post was "Snow Leopard Sound Bug? - MacTalk Forums". In that post, Matt Notley (mattnotley2004) of Melbourne, VIC states, 'In " Macintosh HD / Library / Preferences / Audio " there are two audio setting files. Delete them. Set your sound to the desired setting. Restart. You may have trouble logging on after a restart, if this happens... just power off your Mac for 10 seconds, then turn it back on. Your sound issue should now be fixed!!'

I backed up the files just in case by just moving them to Desktop like:

sudo mv /Library/Preferences/Audio/* ~/Desktop/
and then closed all applications and restarted. After I rebooted, I opened System Preferences -> Sound and noticed that it retained the setting to use my USB device for sound output.

I also checked to make sure that the /Library/Preferences/Audio/com.apple.audio.DeviceSettings.plist and /Library/Preferences/Audio/com.apple.audio.SystemSettings.plist had been created. I then went back to that same presentation I had previously been unable to hear, and was able to listen to it via my USB device!

What Did This Change?

For those wishing to see what the difference was in the files- I can't say for certain that the ownership of the files changed, but the new owner is _coreaudiod. Here are the diffs, showing that the "input streams" key and settings section was missing from com.apple.audio.DeviceSettings.plist. This is a diff of old (broken) vs. new (working) files:
$ diff /Users/.../Desktop/com.apple.audio.DeviceSettings.plist /Library/Preferences/Audio/com.apple.audio.DeviceSettings.plist
434c434
<     <real>1</real>
---
>     <real>0.77777779102325439</real>
444c444
<     <real>1</real>
---
>     <real>0.77777779102325439</real>
700a701,1066
>   <key>input streams</key>
>   <array>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>   </array>
>   <key>output streams</key>
>   <array>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>    <dict>
>     <key>bits per channel</key>
>     <integer>32</integer>
>     <key>bytes per frame</key>
>     <integer>4</integer>
>     <key>bytes per packet</key>
>     <integer>4</integer>
>     <key>channels per frame</key>
>     <integer>1</integer>
>     <key>format flags</key>
>     <integer>25</integer>
>     <key>format id</key>
>     <integer>1819304813</integer>
>     <key>frames per packet</key>
>     <integer>1</integer>
>     <key>sample rate</key>
>     <real>44100</real>
>    </dict>
>   </array>
Here is the diff of com.apple.audio.SystemSettings.plist (old broken vs. new fixed). It made some changes and removed several keys:
$ diff /Users/.../Desktop/com.apple.audio.SystemSettings.plist /Library/Preferences/Audio/com.apple.audio.SystemSettings.plist
8c8
<   <string>AppleHDAEngineInput:1B,0,1,0:3</string>
---
>   <string>AppleUSBAudioEngine:Eutectics Inc.:Eutectics IPP200:07162001-01:2</string>
10,12c10
<   <string>AppleHDAEngineOutput:1B,0,1,2:0</string>
<   <key>current default system output device</key>
<   <string>AppleHDAEngineOutput:1B,0,1,2:0</string>
---
>   <string>AppleUSBAudioEngine:Eutectics Inc.:Eutectics IPP200:07162001-01:1</string>
22,36d19
<   <key>primary default input device</key>
<   <string>AppleUSBAudioEngine:Eutectics Inc.:Eutectics IPP200:07162001-01:2</string>
<   <key>primary default output device</key>
<   <string>AppleUSBAudioEngine:Eutectics Inc.:Eutectics IPP200:07162001-01:1</string>
<   <key>primary default system output device</key>
<   <string>AppleUSBAudioEngine:Eutectics Inc.:Eutectics IPP200:07162001-01:1</string>
<   <key>secondary default output device</key>
<   <string>AppleHDAEngineOutput:1B,0,1,2:0</string>
<   <key>secondary default system output device</key>
<   <string>AppleHDAEngineOutput:1B,0,1,2:0</string>
<  </dict>
<  <key>92</key>
<  <dict>
<   <key>current default system output device</key>
<   <string>AppleHDAEngineOutput:1B,0,1,2:0</string>

5 comments:

Lori Z said...

Thank you thank you thank you for your amazingly simple solution to this problem!!! Sincerely, Lori

Lori Z said...

This comment has been removed by the author.

Lori Z said...

This was the only piece of information i actually needed to take care of it
'In " Macintosh HD / Library / Preferences / Audio " there are two audio setting files. Delete them.

Gary S. Weaver said...

Thanks! Glad it helped.

disappearheremusic said...

Thanks, this solved long standing problems I've had with various USB audio devices running with Parallels on SL.

Not the sort of issues I'd expect from the worlds most advanced operating system...