Using Audio Hijack with VoiceOver



Many users with vision impairments work (and play) with audio extensively. With that in mind, we worked very hard to make Audio Hijack fully accessible to those using VoiceOver on their Macs. You should be able to pick up the app and get started with relative ease, but the following article may help fill in any gaps.

The Audio Grid

Audio Hijack's basic document is the Session, which is a reusable collection of settings used to capture audio. The heart of each Session is its Audio Grid, which will contain a pipeline you construct, consisting of Blocks to capture, adjust, and record audio. Audio flows through your pipeline and interacts with Blocks along the way. The simplest Grid consists of a Source Block (such as an app) leading to an Output Block (such as a recorder). When activated, audio would enter the Grid via the Source Block, and flow on to the Recorder Block.

Details on the Pipeline

A pipeline is constructed by placing Blocks in the Audio Grid, where they will connect to one another. These connections flow from left to right (and thus, so does the audio), moving either horizontally or on a diagonal. Note that audio connections are automatically made between Blocks based on how they are positioned relative to one another. Users do not make connections manually. Instead, the user moves Blocks to achieve the desired connections. Because of this, moving Blocks around is the key to creating the pipeline you want.

An In-Depth Look at Constructing Pipelines

Pipelines can be quite simple, with just a few Blocks in the Audio Grid arranged left to right. They can also become much more involved, with multiple inputs, multiple outputs, and many effects in-between. Since all audio flows from left to right, its helpful to think of connections as being made from left to right as well. Connections will head to the nearest Block on the right, can span as many as 6 grid units and can be made at angles less than 45 degrees from horizontal. Source Blocks (the Application, Input Device and System Audio Blocks) don't accept audio connections from their left, but all other Blocks will allow connections both to and from them.

One configuration we often keep in mind 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 connections merging together into one Block (vertically centered with the rows the inputs form), before ending on the right with one or more recorders and outputs. When many Blocks are involved like that, it is possible for any motion of a Block on the left to cause a cascade of motion to the right. Indeed, it will often break your intended connections. A sighted user can see the effects on the fly as they drag, but even then, things can sometimes be confusing. Know that you can always use Undo to revert changes you've made to the Audio Grid!

Tips on Navigating And Moving Blocks

  • Blocks are available from the library on the right of the window. The library cannot normally be accessed from the keyboard, but VoiceOver can do so handily. VO-interact with the library, and then again on any of the 5 sublists inside it to list audio Blocks. VO-press on an audio Block to copy it. Once copied, you can paste it on top of a selected Block in the Audio Grid, and it’ll take that position and bump the existing Block to the right.

  • Cursor keys can navigate between Blocks, moving the selection. The numeral keys 1 through 9 will cause selection to jump directly to the Block logically associated with that number (counting left to right and top to bottom).

  • To step through the pipeline, use VoiceOver navigation. This will visit each Block, as well as the connections between them, allowing you to inspect your pipeline.

  • Holding Command and pressing the cursor keys will move any selected Blocks by a full Block's width. Holding Option and pressing the cursor keys will move them a quarter-Block's width. Note that Blocks won’t overlap, so moving a Block can push others out of the way to the right.

  • 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 small example, the "Voice Chat" template has 5 Blocks in it, with some above others. Selecting and moving the first (Application Source) Block to the right will move every other Block to the right. Move it 2 units the right, and the second Block (VU Meters) will jump back to its original location, putting it (rather uselessly) to the left of the selected Application Block.

Grid Coordinates

The Block size corresponds to 1 unit of the grid. If you place one Block at 1x, 1y and a second at 2x, 1y, they're next to one other, as close together as they can be. The grid allows you to position Blocks on quarter-unit increments, such as for example 1.25x, 1.5y. Sighted users will never see grid coordinates, but they should help VoiceOver users understand and navigate the grid.

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:

  • Most Blocks feature controls and settings in a popover. In a few simple cases, controls are 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 sections. Just VO-interact with these to expand them if necessary, and to find more controls.

  • Sliders can be moved with the cursor keys, as well as via VoiceOver. Sliders read values in units like dB or Hertz where appropriate. A VO-Press on a slider will move it to its default value.

The Home Window

The Home window is your starting point each time you open Audio Hijack, with three tabs to provide access to all of Audio Hijack. The Sessions tab lists all of your saved Sessions, for re-use. Any recordings you have made are found in the Recordings tab. Finally, the Schedules tab allows you to set up timed recordings. Below are some assorted notes on the Home window:

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

  • Recordings are listed in the Recordings tab, and are grouped under the Session that made them. VO-interact with a Session to access its recordings.

  • VO-interact with a recording to access its playback controls and tags.

  • The Template Chooser opens from the Home 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 templat.

Renaming a Session

Renaming a session via VoiceOver is currently a bit tricky. We'll likely improve this soon, but for now:

     1) Access the Sessions tab, of the Home window.

     2) Move to the session name you wish to change.

     3) Press Return, then VO-Shift-Space (mouse-click).

That should get you set.

Recording Audio From VoiceOver

If you're using VoiceOver, you may also wish to record audio from it. This is very easy, but it's a bit tricky to discover. VoiceOver audio on your Mac is provided by two hidden applications: The com.apple.speech (voice) and the ''VoiceOver" app (sounds). To capture all of this audio, you'll want to use two Application blocks, one for each of these apps. To select these apps, option-click the Application Source menu (this reveals a long list of hidden processes normally hidden). Find the correct application in the list and select it. Once you have both sources in your chain, you'll be able to capture VoiceOver audio.

Alternately, using a System Audio Block will get all system audio at once, which will include VoiceOver audio.

Wrapping Up

That's all for now, but you can always reach us via our support form. Happy hijacking!

← Back to Audio Hijack index