Using Audio Hijack 4 with VoiceOver



We know that many users with vision impairments work (and play) with audio extensively. To help facilitate that, we strive to make Audio Hijack fully accessible to those using VoiceOver on their Macs. While you should be able to pick up the app and get started with ease, the following article may help fill in any gaps.

If you previously used Audio Hijack 3, you may wish to jump to the Changes in Audio Hijack 4 section. If you're new to Audio Hijack, start with the next section on the audio pipeline.

Basics: The audio grid and pipeline

Audio Hijack's basic document is the session, which is a reusable collection of settings used to capture audio. Each session consists of an audio pipeline, which is constructed in the window's audio grid. A pipeline consists of blocks chained together via wires. Blocks can add effects, record to files, and output to devices and streams.

When a session is run, audio is brought in to the audio grid, where it flows through your pipeline, interacting with blocks along the way.

Sessions consisting of many blocks and even multiple audio chains are possible. However, a useful session may have as few as two blocks, such as a simple chain of an Application source block connected to a Recorder block.

Constructing a pipeline

A pipeline is constructed by connecting blocks to one another in the audio grid on the left side of the session window. By default, connections are automatically made between blocks based on how they are positioned relative to one another. Audio Hijack also offers a manual connection mode, which can be activated per-session, by turning off “Automatic Connections” in the “Info” tab. When a session is set to manual mode, you create connections between blocks.

For VoiceOver users, blocks within the grid are described with a grid position - an X and Y value. Each block takes one grid unit of space, but the grid allows blocks to be aligned on quarter block steps. Visually, this is important to Audio Hijack users for laying out blocks. VoiceOver users may prefer to place blocks on whole number grid positions. For example, ‘1X, 2Y’ reads better than ‘1.25X, 1.75Y’. Be aware that moving blocks can bump other blocks to new positions, and when using automatic connections, it's possible to break wires by moving blocks.

Below, we cover working with both automatically and manually configured pipelines.

Working with automatically configured pipelines

In the default automatic mode, wires between blocks are placed for you using built-in heuristics. Wires are placed between blocks that are closest to each other, from left to right. Automatic wires won’t reach more than 6 units away, and will only be made at angles up to 45 degrees. Blocks that have already found inputs or outputs don’t try to add more wires, while blocks without will. Audio flows through the pipeline from left to right, moving either horizontally or on a diagonal.

A common configuration is having several sources on the left stacked vertically, with each feeding directly to their own effects or Recorder blocks. This is often then followed by up to five blocks merging together to the right, connecting to a horizontal chain of one or more recorders and outputs. The audio from all sources is mixed to be processed further, recorded, or sent to an output device. This style of arrangement allows multiple sources to be handled easily, bringing all their audio together at the end.

It's possible to create quite large and complicated sessions with Audio Hijack. When using automatic connections, blocks must be positioned precisely, so the desired wires are created. Moving blocks can cause other blocks to move in a cascade, so care is needed. Know that you can always use Undo to revert changes you've made to the audio grid.

Working with manually configured pipelines

In Audio Hijack 4, a new manual connection mode was introduced. This allows you to explicitly create and delete connections between audio blocks. While automatic connections are the default, VoiceOver users in particular may find manual mode more direct. Wires in manual mode can be made between blocks regardless of their location, and blocks can be moved anywhere without breaking wires. This means that an audio grid doesn’t need to be visually organized to work.

To engage manual connections, turn off Automatic Connections in the Session menu or via the switch in the session’s Info sidebar.

When you switch to manual mode, automatic wires that already exist are kept, but they can now be deleted as desired. New wires can be made between the sockets which are displayed on the left and right side of blocks. The sockets are navigated by VoiceOver, along with blocks and wires in the grid.

To delete a wire, navigate to it and press Command-Delete.

You create wires starting from sockets. Once you’ve navigated to a socket, there are two different ways to make a new wire:

Option 1. Mark the originating socket by VO-pressing on it, then navigate to a second socket and VO-press again to create a wire between them. Of course, not all wires would make sense. For example, you can’t connect an output from one block to an output from another block. You're also prevented from creating loops in the audio flow. If Audio Hijack refuses to make a wire, it will tell you why. If you mark a socket and need to unmark it, navigate back to it and VO-press again to clear the mark.

Option 2. Use the context menu on a socket (VO-shift-m). This will list every possible wire that can be made from this socket. Selecting one will create the wire.

The two options have different strengths. Marking may be simple for blocks you are confident navigating between, while the context menu gives an exhaustive and accurate list of all potential wires.

When a session is using manual connections, you can toggle the editing of wires on and off. When editing is off, sockets are hidden for simplicity, prevented from being part of VoiceOver navigation. You can toggle the editing state via the menu item in the Session menu (command-E), as well as with the Edit Connections/Stop Editing button in the session window.

Tips on navigating and moving blocks

  • New blocks can be added by navigating to the Block library in the session window’s sidebar, then selecting a block and VO-pressing on it to copy it. Once copied, it can be pasted into the audio grid. If you navigate to an existing block in the grid and paste, the new block will be placed directly to its right. This makes it simple to build a horizontal chain of blocks. Existing blocks may also be copied, pasted, and duplicated.

  • To step through the pipeline, use VoiceOver navigation. This will visit both blocks and wires, allowing you to inspect your pipeline.

  • Cursor keys can navigate between blocks, moving the selection. You can also jump to the first 9 blocks (counted left to right and top to bottom) in a session by pressing the numeral keys 1 to 9 (with no modifier key). This will navigate to a block and select it from anywhere in the session window.

  • Blocks can be moved by whole units with Command-arrow keys, and by quarter unit steps with Option-arrow keys. Blocks are not allowed to overlap. When you move a block into another block, it will push the other block to the left or right (not up or down). Push a block far enough, and it will jump over the block you are moving, back to its original position. Audio Hijack will report how many other blocks are displaced as you move a block.

  • In general, moving a block to the right will push other blocks farther right. Moving a block to the left will cause any block it collides with to jump over it to the right. In both cases, whilst you are moving blocks without changing the selection or doing anything else (that is, you only hit command or option-arrow), blocks that have been pushed out of position will jump back to their original position if that position becomes empty. Also worth noting, if you have multiple blocks selected, all of them are moved together.

    As a simple example, the Voice Chat template has five blocks in it, with some above others. Selecting and moving the first block (Application) to the right will move every other block to the right. Move it two units to the right, and the second block (Peak/RMS Meters) will jump back to its original location, putting it (rather uselessly) to the left of the selected Application block.

  • Most blocks allow wires connecting both to and from them, allowing audio to flow through them. The output from an audio effect block will contain modified audio from the effect. Other blocks, such as the Recorder block, or Meter blocks, let audio flow through them unchanged.

    Source blocks like Input Device and Application provide audio to the session. Unlike other blocks, they do not accept input wires. They always sit at the beginning of an audio chain.

  • When creating and editing your pipeline, remember that Undo and Redo are always available if needed.

Adjusting block settings

Once your pipeline is in configured, you'll likely want to adjust the settings of individual blocks. Here are some notes on doing so.

  • All blocks feature controls and settings in a popover. In a few simple cases, controls are also placed directly on the block face. Use VO-interact to reach controls on the face of a block. Use VO-press (or hit space) to select a block and open its popover. Hitting space again, or pressing escape, will close the popover.

  • Within a few more complex popovers, you’ll find groups of additional controls exposed by a disclosure button. For example, an “Advanced Disclosure” button will reveal an “Advanced Group” following it. Navigate to the group and interact with it for the additional controls.

  • Sliders can be moved with the arrow keys, as well as via VoiceOver. Holding Shift while using the arrow keys applies a 10x multiplier, to move the slider in larger increments. Sliders read values in units like dB or Hertz where appropriate.

The Session List window

The Session List window acts as a starting point for using Audio Hijack. It contains a list of all of your saved sessions, ready for re-use. Below are some assorted notes on the Session List window:

  • To open an existing session from the Session List window, use VO-press on a highlighted session. Alternately, select the session, then press Command-O.

  • The Template Chooser opens from the Session List window, when clicking New session, or when you select New session from the Session menu.

  • A VO-press on a selected template is equivalent to double-click, and will create a new session from that template.

Recording audio from the VoiceOver process

If you're using VoiceOver, you may also wish to record audio from it. VoiceOver audio on your Mac is actually provided by two different processes: The “com.apple.speech.speechsynthesisd” process for the voice, and the hidden “VoiceOver” app for sound effects. Audio Hijack makes it easy to capture all of this audio at once. To do so, just select the “VoiceOver” special source in Audio Hijack's source selector.

If you wish to capture VoiceOver's spoken audio, but not its sound effects, select the “Text to Speech” special source instead.

Finally, in the interest of completeness, you may wish to capture only the sound effects from VoiceOver. In that case, you'll need to access the hidden sources found in the “Running Processes” sub-menu. This is normally accomplished with an option-click on the Application Source menu. You may wish to instead hold down the Option key and press the space bar, while the Source Application popup button is selected, rather than using the VO-modifier key. Once you've done so, navigate to Running Processes. Within this sub-menu, select “VoiceOver”.

Wrapping up

We hope this article has provided helpful information for VoiceOver users. If you have questions or suggestions, please don't hesitate to reach us via our support form.


Changes in Audio Hijack 4

Some features in Audio Hijack 4 have been moved from where they were found in Audio Hijack 3. If you used Audio Hijack 3, these changes are likely to be the most noticeable.

  • Within Audio Hijack's main window (called the “Session List”), you can interact with sessions for additional controls and information. Each session can be run and stopped here, without opening its window.

  • Recordings and scheduled timers have been moved from the main Audio Hijack window into the specific sessions to which they belong. Find them in the sidebar of the session’s window, which contains a group of five tabs: Blocks, Recordings, Schedule, Scripting, and Info.

  • The library of blocks in each session sidebar now allows VoiceOver users to hide or reveal several categories of blocks within it. There is also a Filter field, to quickly reduce the list. Any portion of a word in a block’s title or description can be used to filter.

  • There is a new manual connection mode available for configuring your sessions. This allows you to explicitly create and delete connections between audio blocks, rather than relying on Audio Hijack's automated configuration. Automatic mode is still the default, but VoiceOver users may find this manual connection mode more direct.

  • All blocks now have popovers, and some existing popovers have been reorganized. The settings for some blocks are now sorted into tabs, including the Recorder block.

  • Blocks can be renamed in the audio grid, by editing the title field of their popover. These block nicknames are useful to to identify blocks easily.

  • In Audio Hijack 3, groups of additional settings were expanded automatically for VoiceOver users. Audio Hijack 4 instead uses navigable buttons to reveal or hide additional settings areas. As noted earlier, an “Advanced Disclosure” button will reveal an “Advanced Group” following it. Navigate to the group and interact with it for the additional controls.