Categories
Mac

Introducing SoundBlossomer

SoundBlossomer LogoA while back I wrote about my hack that allowed me to have multiple instances of Soundflower that I used to record a multi-track Skype group call for podcasting purposes. That guide became pretty popular, and it was even linked in Cycling 74’s blog.

Today I’m introducing a new project, SoundBlossomer, a little utility that lets you easily add, edit and delete your Soundflower audio interfaces.

Basically, this app figures out which Soundflower instances you already have defined in your /System/Library/Extensions/Soundflower.kext/Contents/Info.plist file and shows them in a list, allowing you to add additional ones, as well as renaming, changing the number of channels and deleting the other ones.

SoundBlossomer Screenshot

I spent about a day putting together this app, which by the way is my first Mac app ever, and I think it works reasonably well, at least in all the testing I’ve made. If you find any issues, please, let me know.

SoundBlossomer is 100% open source, it is released under the BSD license and you can find all of its source code on the GItHub page. I strongly encourage you to check it out, and even to improve it if you can, I’d gladly pull your changes into the main repository.

11 replies on “Introducing SoundBlossomer”

Wow, your hack article was great but this tool is awesome 😀

Do you know if there is any way Soundflowerbed actually recognize the defined virtual devices to be able to list them and configure inpunts and outputs?

Unfortunately it’s not possible, as far as I know. You even have to preserve the original Soundflower (2ch) and Soundflower (64ch) interfaces for it to keep working.
You could use LineIn by Rogue Amoeba, which lets you pass audio from one input to one output.
It should be possible to launch more than one instance of it by typing:
open -n /Applications/LineIn.app
in the terminal.

Hi Luca, thanks for all the great information you posted. I am a relative newbie to the Mac world and SoundBlossom is exactly what I have been looking for. The problem is that I am running El Capitan (10.11.4) and the kexts need to be signed. I installed the signed version of Soundflower (2.0b2), which puts the kext in /Library/Extensions, not /System/Library/Extensions. Since running the compiled version didn’t produce any errors, it just didn’t find Soundflower, I thought I would give a try at loading the source code into Xcode and replace any references to /System/Library/… with /Library/… I then ran the code and it worked. I added the additional channels, ran the terminal command
sudo nvram boot-args=”kext-dev-mode=1″
to shut off the requirement for signed kexts and rebooted the machine. None of the new channels showed up. I then opened info.plist file inside the Soundflower.kext and saw that the changes were made, but they did show up. I reran SoundBlossom and it showed all of the new channels. I am not sure what to do next. Any ideas?

—Andrew

Hi Andrew!
It looks like it is a kext cache issue: the changes were applied, but OS X is still loading the cached version of Soundflower, which has the old plist.
The Apple-sanctioned way to trigger a cache reset is to touch /System/Library/Extensions (plus /Library/Extensions with El Capitan, I think), then reboot:

sudo touch /System/Library/Extensions /Library/Extensions

If it doesn’t work, you can’t try the hard way:

sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches

And then reboot.

Thanks for your reply. I tried the first way and it did not work. I had to reinstall SoundFlower and then my SoundBlossomer did not work. I reran my modified version of SoundBlossomer, added the new channels and while it wouldn’t let me save and apply, it let me save. I rebooted and SoundBlossomer had my new channels added but it did not show on the Audio Midi Setup. I opened terminal and tried the first kextcache command and I received the following:

Untrusted kexts are not allowed
Soundflower.kext has invalid signature; omitting.

I tried this command with my security lowered to letting anything be installed and after the following command again (which is how I got around the signing issue with my modified SoundFlower install

sudo nvram boot-args=”kext-dev-mode=1″

Did I do this in the wrong order? Any thoughts?

—Andrew

P.S. Thanks again for taking the time to help me on this.
I tried this command with both install from anywhere

The only thing that comes to my mind is to make sure you have disabled SIP (you have to reboot into recovery mode, launch the terminal from Utilities/Terminal, run csrutil disable and reboot).

Allowing unsigned kexts (which on El Cap requires disabling SIP aka rootless) is necessary for SoundBlossomer to work properly: it changes the Info.plist file inside the kext, thus making its signature not match and causing OS X to run around screaming. Unfortunately AFAIK there’s no way to whitelist a single unsigned kext.

Thanks Luca, last question. Do I need to leave SIP disabled? If so, that might create a security problem that I would prefer to avoid. One workaround, might be to disable SIP when I am using SoundBlossom to record a show and re-enable it at the end. Do you think that would work? Also, do you know if there is going to be a signed version of SoundBlossomer in the foreseeable future that gets around this? Thanks again for your help.

Yeah, you need to keep it disabled to be able to use SoundBlossomer.
Disabling and re-enabling it would definitely work but, frankly, it’s more trouble than it’s worth: if you’re careful with what you run on your Mac I think that you can afford to leave it off.

Could you kindly provide an updated version of the app that has the fix that Andrew above did – so that those of us who don’t know how to do what Andrew did (editing/complying/etc) can use SoundBlossomer on 10.11+ (I am using 10.12)?

Thanks in advance.

Leave a Reply to LucaTNT Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.