Focusrite SaffireControl LE responsiveness fix for Mac OS X and macOS

I’ve recently bought used Firewire Focusrite Saffire LE audio interface to connect an electric guitar. Despite it’s old age, it works perfectly on OS X, however on Yosemite and El Capitan SaffireControl LE software that is used for metering and to configure the internal mixer behaved really slugish. I soon discovered that the reason was the UI not being redrawn on updates – this happened only when app window got focus or tooltip appeared. Unfortuanetly, the device and software are no longer supported by the vendor and that means – no updates. Accidentally, I found the solution to unblock the UI.

Workaround: After you open SaffireControl LE, click Save and cancel the file chooser dialog. The interface will unblock and work properly.

Update #1: Focusrite Saffire LE works fihe with macOS Sierra.

Update #2 (2017-08-28): This works fine with late 2016 MacBook Pro with USB-C ports with OWC Thunderbolt 3 Dock as Firewire adapter. Dock provides more stable power than old 2011 MacBook, so I don’t have to use external power supply for interface.

Update #3 (2018-10-11): Confirmed to work with macOS Mojave. Note that SaffireControl LE app is 32-bit and next major macOS release will drop support for those. Luckily, I’ve managed to reverse-engineer how to control internal mixer of the Saffire programatically. We should be able to control the device, unless Apple drops support for Firewire audio.

Update #4 (2019-12-09): As expected SaffireControl LE does not work on macOS Catalina, but the device drivers work fine. I developed a replacement mixer application.

Denon DRA-F109 control protocol

One of readers, Philipp Smutny, provided data dump from DNP-F109 network player. It was done by plugging Raspberry Pi in out connector of Network Player, where originally you would connect CD player. It looks like that protocol is quite similar to binary protocol described in earlier post and the only difference is 0x01 instead 0x00 after payload length – possibly it marks this as command.

For instance, 00 ff 55 01 01 00 40 00 05 9b means Set volume to 05, while 00 ff 55 01 01 00 41 00 01 98 means Mute On and 00 ff 55 01 01 00 41 00 00 97 is Mute Off. There’re few more commands present in the dump provided by Philipp in gist embeded below.

Unfortuanetly, retransmitting this data doesn’t work with my setup. I get back data I send through DRA-F109 loopback circuit, but amp doesn’t react. I suppose that this may be due to the fact that I’m using 3.3V (5V tolerant) serial USB adapter, however I can’t verify this hypothesis now.

Continue reading

Prevent Google Chrome accessing all passwords in keychain (solved!)

Recently I found that iCloud keychain isn’t covered by Mac OS X Time Machine backups or at least my quick research tells. As cloud services are concerned, cloud may stand for Can’t Locate Our User Data and since I don’t own any iDevice, so I don’t benefit in any other way from iCloud, I decided to migrate all passwords to regular Mac OS X Keychain, which is stored in regular file. I followed instructions by Ricky Mondello to copy passwords from iCloud Keychain to regular one, then I disabled iCloud Keychain in System Preferences.

Once I did it the problems started: every time I opened Google Chrome it asked for permissions for each password stored in KeyChain. Clicking Always Allow several hundred times is not an option and I don’t necessarily want to send all my passwords to Google. There was no way to dismiss this dialogs at once (so annoying!), and when left that dialog in the background after few minutes the browser started to have connectivity issues. This bug was reported for years and only workarounds I found are to remove passwords from KeyChain which is not an option.

On Quora I found discussion on it where Stephen Ornelas suggested to remove Chrome Safe Storage from KeyChain. Once I did it, I was logged out of Google Account in Chrome and the issue did no longer occur. This led me to final solution: log out Chrome from Google Account, and going further – it is enough to disable Chrome password sync.

TL;DR: The solution

To stop Google Chrome accesing all passwords in keychain: disable Google Chrome password sync or log out Chrome from Google Account.

Hacking Denon remote connector – progress update

I updated original post on hacking Denon DRA-F109 remote connector. Since I now have DAB+ broadcast in my place I was able to add DAB+ specific commands to the spec. I also found out that the extra byte that is (not always) present is simple checksum. Sadly, in some cases it is not being sent, so there is no use of it.

Using native OS X NAT with VirtualBox

VirtualBox provides built-in NAT, but on OS X it doesn’t allow to access VM from host, so every time I need to set up host only network. I wanted to have one, fully functional virtual network with NAT routing. OS X has built-in NAT capability that is used by Internet Sharing – why not use it with VirtualBox?

Continue reading