Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ervinb/e102deeeb6470e645e3d75c2169039b4 to your computer and use it in GitHub Desktop.
Save ervinb/e102deeeb6470e645e3d75c2169039b4 to your computer and use it in GitHub Desktop.
How to boost the microphone volume on Mac above the OS limit. Useful for quality microhpones, which are too quiet out-of-the box.

How to boost your microphone above the Mac OS limit

If you just bought a good mic but got dissapointed how quiet it is, this post will sort you out. My Blue Snowball iCE was way too quiet out of the box and I've used this procedure to make it sound great.

mic-vst-light

First we'll set up BlackHole, but the focus will be on Element, which is a great VST host application. It enables the manipulation of an input singnal through VST, AU and its built-in plugins. This is a good alternative to AU Lab, which actually works. We will also install AU Lab for it's plugins however.

The rest of the chain is just passing on a hot potato.

BlackHole

An open-source audio router (virtual cable) for connecting inputs to outputs.

$ brew install blackhole-2ch

Doesn't need further configuration for our purpose. Check the docs for usage examples if you're interested.

On Linux you can use JACK and QjackCtl.

On Windows VB-Cable.

Element

This is an open-source application. To get it, you have two options:

  1. Donate $2 and download the executable (Mac, Windows)
  2. Build it yourself (Mac, Windows, Linux)

We're picking the second option, but consider getting the donate version, as you will avoid the extra steps below.

# pre-requisites
$ brew install git boost

# build and install Element
$ git clone https://github.com/kushview/Element.git
$ cd Element
## the exact version I've used - can be ignored
$ git checkout 5d355d91
$ git submodule update --init
$ ./waf configure; ./waf build; ./waf install

Element is now installed, but it will not work out-of-the-box. Because we built it with waf, it's missing some components and upon startup it will now be able to access the microphone. From this point on we will use 2 methods to run Element, depending on the purpose:

  1. Configuration: run the application from your launcher or Applications folder. This will be infrequent.
  2. Audio processing: run the application from the terminal (as a foreground or background process)

The donate version will work without this hassle, and you can launch the app normally from the launcher. Then, do the Configuration and Audio processing as described below.

Configuration

Start Element from the launcher.

File > Preferences:

  • Input: [your mic]
  • Output: Blackhole 2CH
  • Auto load the last project [X]
  • Save before exit [X]
  • ! Load plugins on startup [] (turn it on only when configuring; the command line version can't start up with this enabled)

Note: if Blackhole 2CH is missing from the UI, first make sure it's installed, and then enabled it: image

Connecting the components

  1. Create a new Volume component, by dragging it onto the working area

    image

  2. Connect your microphone's output to the Volume's input. Double click on this component and pull the slider up to around 10.5 (this worked best for my Blue Snowball)

  3. Connect the Volumes output to the output BlackHole

Screenshot 2020-12-12 at 08 41 14

You can chain together multiple Volume components like this, but the distortion will be high after the second one. 1 should be plenty. These options can be edited when starting Element from the command line too, and that's where we will test it. The only options which can't be changed there are the audio devices.

Audio processing

Start Element from the command line:

$ Element &

You can add this to your startup (or ~/.zshrc), so that it automatically starts with the system.

A prompt will show up about allowing access to the microphone. The requesting application will be your terminal (eg. iTerm) because that's where we're running the application from. With this we are also losing the top bar, so we can't access the Element preferences. This is why we did the configuration phase first.

Starting Element should show you a window with your setup from last time. There will be an E icon in system toolbar, at the top right.

To test it you can do a quick recording with Audacity or Quicktime. Make sure to select Blackhole 2CH as the input in these programs.

If everything sounds good, change the input of your target application (Slack, Teams, Discord, etc.) to Blackhole 2CH.

Element needs to be constantly running from the terminal (or normally if you have the donate version) for this setup to work.

Bonus: Installing more plug-ins

When you want to load new plugins into Element:

  • Start it from the launcher
  • Tick the Load plugins at startup option
  • Restart the program to load the plugins
  • When you verify that the plugins are loaded, turn off Load plugins at startup option

AU Lab

Install Apple's AU Lab for additional plugins: https://www.apple.com/itunes/mastered-for-itunes/

Download, unpack and start. Then close it.

This package has a great graphic equlizer which you can use in Element.

Now do the plugin loading procedure in Element described above.

image

Third party plugins

  • Installing custom VST plugins:

    • Download the latest installer file from the plug-in manufacturer's website and run it.
  • Most plug-ins will install themselves to the default system folders, others might simply need to be moved to the correct folder. Here are the default system folders:

Macintosh HD:/Library/Audio/Plug-Ins/Components/ (AU .component file extension)
Macintosh HD:/Library/Audio/Plug-Ins/VST/ (VST 2 .vst file extension)
Macintosh HD:/Library/Audio/Plug-Ins/VST3/ (VST 3 .vst3 file extension)

Certain plug-ins may install themselves to the <user> folder. This folder is hidden by default, here's how to access hidden folders.

Macintosh HD:/Users/[Your Username]/Library/Audio/Plug-Ins/Components/ (AU)
Macintosh HD:/Users/[Your Username]/Library/Audio/Plug-Ins/VST/ (VST 2)
Macintosh HD:/Users/[Your Username]/Library/Audio/Plug-Ins/VST3/ (VST 3)

Loopback

https://existential.audio/blackhole/support/#micsystem

Mic + computer audio -> app (Audacity); for Slack/Zoom, use the aggregate device (mic + blackhole) directly; they don't support virtual devices like blackhole - Zoom doesn't work at all with this

image

image

image

image


image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment