User Guide

AU EngineCore
Reference Manual

A professional-grade iOS mixer designed for live performance. Hosts Audio Unit plug-ins directly in the signal path with stable, low-latency operation across full sessions.

Version 1.0 iOS 17 or later iPad & iPhone
01 — Overview

Overview

AU EngineCore is a professional-grade iOS mixer designed for live performance use. It runs on iPad or iPhone and hosts Audio Unit plug-ins directly in the signal path, maintaining stable, low-latency operation through full sessions with 8–12 (or more, depending on plug-ins and hardware capabilities) channels and buses simultaneously loaded with insert processors.

Routing, plug-in state, scene recall, and output configuration are non-destructive and can be modified in EDIT mode. In LIVE mode, edit functions are hidden to allow continuous operation without interrupting audio, ensuring a smooth performance free of artifacts in the audio signal path.

Design Principles

Zero-latency host threading
All DSP runs on a dedicated real-time thread. UI interaction never interacts with the audio engine.
AU-native architecture
Plug-ins are loaded directly into the host — no inter-app audio bridging, no latency overhead.
Deterministic scene management
Every parameter, routing decision, and plug-in preset is captured and restored automatically, for each audio interface model.
Band-optimised scale
Tested and validated at 8–12 channels with full AU insert chains on every strip and bus (48 kHz, 64 buffer).
02 — Signal Flow

Signal Flow

Every channel follows an identical, predictable path before contributing to one or more buses.

Channel Path

Input capture Pre-fader inserts Fader & pan Post-fader inserts Bus sends

Each channel is independent. Pre-fader inserts process the raw signal before level is applied; post-fader inserts receive the levelled signal. This distinction is significant for dynamics processors: a compressor placed pre-fader tracks the source, not the fader position.

Bus Path

Channel contributions Pre-fader inserts Bus fader & pan Post-fader inserts Hardware output or return send

Buses are first-class signal processors. A bus can carry a monitor mix, an effects return, or a submix routed to another bus. Buses operate simultaneously, each capable of hosting a full insert chain.

Hardware Output

The signal leaves the audio chain through hardware output pairs assigned per bus. A single bus can feed one stereo output pair. Multiple buses can share an output pair by accumulation, allowing parallel mix topologies without additional routing hardware.

Output assignment is non-destructive. Changing an output pair takes effect at the next audio buffer boundary with no dropout.

Routing Topology

Element Description
Channel sendPer-channel contribution level to a specific bus, 0 dB to −∞
Bus faderMaster output level for the bus, applies after all channel contributions sum
Hardware pairStereo output pair on the connected interface assigned to a bus
Bus return sendRoutes a bus output into another bus — used for effects returns and submixes
Master busDesignated bus that feeds the recording engine independently of hardware routing
03 — Channel Strips

Channel Strips

Each channel strip is a complete input processor. Controls are arranged top to bottom in signal order. The strip width is fixed to allow up to 12 strips to be visible simultaneously on a 12.9-inch iPad.

Controls

ControlFunction
▶ Input sourceSelects the hardware input feeding this channel
⬡ LabelChannel name — tap to rename, double-tap to reset to default
↕ Inserts sectionOrdered list of AU plug-ins in the pre- or post-fader chain
◈ FaderChannel output level — double-tap returns to unity (0 dB)
M · SMute and Solo — Solo is exclusive by default
⊙ PanStereo position — double-tap centres; displayed as L / C / R value
Bus sendsIndividual send levels to each configured bus, displayed below pan

Inserts

Inserts are loaded by tapping Add Insert at the bottom of the inserts section. The system AU browser appears; any compatible Audio Unit installed on the device is available.

Loaded inserts can be:

  • Bypassed individually — tap the plug-in row to toggle bypass state
  • Opened for editing — double-tap to open the plug-in editor
  • Moved to pre- or post-fader position — available in the insert options sheet

AU EngineCore processes channels simultaneously, each with an independent insert chain. The audio engine allocates a dedicated processing slot per plug-in instance; no sharing occurs between channels or buses.

Performance Considerations

AU plug-ins vary significantly in DSP cost. The CPU meter in the toolbar reflects real-time render load as a percentage of the available buffer window. At 128-frame buffer depth and 48 kHz sample rate, the render window is approximately 2.7 ms.

Practical guidance for 8-channel live use:

  • Gate and EQ processors are typically negligible — one or two per channel adds less than 2% load
  • Convolution reverb and high-order dynamic processors are more costly — monitor CPU when loading
  • If load exceeds 70%, increase buffer size in Settings before adding additional inserts
04 — Buses

Buses

Buses are the mixing and routing backbone of the application. Where channels represent inputs, buses represent outputs — to hardware, to other buses, or to the recording engine. Buses operate simultaneously, each fully independent.

Creating and Removing Buses

Tap the + button in the bus section header to add a new bus. A default hardware output pair is automatically assigned if one is available. Buses are appended to the right of the existing bus order.

To remove a bus, open Bus Options by tapping the bus name, then select Remove Bus. Channels that had sends to the removed bus retain their send level settings; the sends become inactive until a replacement bus is created.

Bus Strip Controls

ControlFunction
▬ Colour barVisual identifier — long-press to open colour picker; also functions as drag handle for reordering
⬡ Bus nameTap to open Bus Options; includes output assignment, routing, and remove
↗ Output rowDisplays hardware output pair or return-send destination; tap to change
↕ InsertsAU insert chain for this bus — identical mechanics to channel inserts
◈ FaderBus output level — double-tap for unity
M / BUSMute toggle; badge confirms bus type. Master bus shows REC button instead
⊙ PanBus stereo position — double-tap centres

Output Routing

Each bus routes its output to one of:

  • A hardware output pair on the connected interface
  • Another bus (return send topology)
  • No output — the bus processes internally and contributes to its return-send destinations only

Return sends allow effects chains to be centralised. For example, a reverb bus receives sends from multiple channels, processes them through a single reverb instance, and routes the wet signal back into the master bus at the desired level. This reduces plug-in count and DSP load compared to per-channel insert reverb.

Master Bus

One bus is designated as the Master. The Master bus feeds the recording engine directly, independent of hardware output configuration. This allows recording to capture the final mix regardless of which hardware output pair the master is routed to.

The Master bus is identified by the REC button in the mute row. Recording controls — start, stop, format, and segment duration — are all accessible from the Master bus strip.

05 — AU Plug-ins

AU Plug-ins

AU EngineCore hosts any Audio Unit effect installed on the device. Plug-ins run in-process on the real-time audio thread, with full state persistence and no additional latency beyond the declared plug-in processing latency.

Loading Plug-ins

Tap Add Insert in any channel or bus strip. The AU browser lists all compatible Audio Units grouped by manufacturer. Select a plug-in to instantiate it; it appears at the bottom of the insert chain and is active immediately.

Plug-ins are loaded per-strip. A compressor loaded into Channel 1 is an independent instance from the same plug-in loaded into Channel 2. Preset state is saved independently per instance.

Editor Access

Double-tap a loaded insert row to open the plug-in editor in a sheet. The editor is the plug-in's native UI — AU EngineCore does not modify or wrap it. Parameter changes made in the editor take effect immediately.

The editor sheet can remain open while the session runs. Adjusting parameters while audio is active is supported; no audio interruption occurs on editor open or close.

Bypass and Pre/Post Position

Each insert has two independent states:

  • Bypass — the plug-in is excluded from the signal path; its DSP thread allocation is released
  • Pre-fader / Post-fader — determines whether the insert processes before or after the strip fader

Both states are accessible from the insert options sheet, opened by long-pressing the insert row. State changes are parameter-snapshot safe — bypassing a plug-in does not modify its internal preset.

Compatibility

AU EngineCore supports effect-type Audio Units. Instruments and MIDI processors are not applicable in this version. Plug-ins must declare stereo or mono-to-stereo processing capability.

If a previously loaded plug-in is unavailable at session load (uninstalled or licence expired), the insert slot displays a placeholder. The slot remains in the chain at its position; audio passes through unprocessed as if bypassed. Reinstalling the plug-in restores full operation.

06 — Scene Management

Scene Management

A scene is a complete snapshot of the mixer state: all channel parameters, bus configuration, routing, send levels, hardware output assignments, and the full preset state of every loaded AU plug-in. Scenes are saved to and recalled from device storage.

Auto-Save

AU EngineCore writes the current state automatically every 3 seconds when any parameter has changed since the last write. Auto-save is non-blocking — it runs without interrupting audio or UI responsiveness.

The auto-save target is the last manually saved scene. If no scene has been saved, the state is written to an internal recovery slot named after the connected hardware. This slot is loaded automatically at the next application launch with the same hardware connected.

Manual Save and Recall

Open the Scene browser from the toolbar. To save the current state, tap Save As and enter a name. Scenes are listed chronologically with the last-modified timestamp. Tap any scene to recall it.

The audio engine continues running during scene load; channels that already exist retain their signal path. New channels and buses are inserted at the next buffer boundary. The transition is inaudible under normal operating conditions.

Scene Contents

ContentsDetail
Channel parametersName, input source, fader, pan, mute, solo state for all channels
Insert chainsPlug-in identity, bypass state, pre/post position, and full parameter preset for every insert
Bus configurationName, colour, fader, pan, mute, hardware output, and insert chains for all buses
Send levelsPer-channel, per-bus send levels — full matrix
Routing topologyReturn send assignments and destinations
Hardware contextOutput pair assignments — recalled if matching hardware is connected at load
07 — Recording

Recording

The recording engine captures the Master bus output as a stereo interleaved file. Recording is independent of hardware output configuration: the Master bus signal is tapped internally before the hardware output stage, ensuring a clean capture regardless of monitoring setup.

Starting a Recording

Tap the REC button on the Master bus strip. Recording begins at the next buffer boundary — there is no pre-roll. The button transitions to a lit state; elapsed time is displayed below it in real time.

To stop, tap REC again. A short fade is applied to the tail of the recording to prevent a hard cut on stop (only in segment recording). The file is written to the application's Documents folder and is accessible via Files.

Format Selection

Recording format is set in Settings. Available formats:

FormatCharacteristics
WAVUncompressed, broadcast-compatible — recommended for final delivery
AIFFApple-native uncompressed format, identical audio quality to WAV 24-bit
AACCompressed — use for reference recordings or where storage is constrained

Segmented Recording

Segmented recording splits the output into fixed-duration files automatically. Set a segment duration in Settings (in minutes); when the current segment reaches the set duration, a new file begins seamlessly. The transition between segments is sample-accurate.

Segmented mode is useful for long sets where a single large file presents storage or import risk. Each segment is a complete, independently playable file.

08 — Settings

Settings

Audio Engine

SettingDescription
Buffer sizeAudio callback frame count — lower values reduce latency; higher values increase stability under DSP load. 64–128 frames is recommended for live use with full plug-in chains
Sample rateDetermined by the connected hardware; displayed for reference. Changing sample rate requires restarting the audio engine
Input gainGlobal input trim applied before channel faders — useful when interface preamp output is fixed

Recording

SettingDescription
FormatFile format for all new recordings — WAV, AIFF, or AAC
Segment durationAutomatic file splitting interval in minutes — ∞ disables segmentation
Output folderDestination folder within Files — defaults to the application Documents folder

Display

SettingDescription
VU meter decayRelease time constant for level meters — faster decay shows transients; slower shows average level
CPU meterShows real-time render load as percentage of buffer window
Strip labelsToggle full channel name display below the colour bar
09 — Quick Reference

Quick Reference

Gestures

Tap — strip name
Open options sheet for channel or bus
Tap — insert row
Toggle insert bypass
Double-tap — insert row
Open plug-in editor
Long-press — insert row
Open insert options (pre/post, remove)
Double-tap — fader label
Return fader to unity (0 dB)
Double-tap — pan label
Centre pan
Long-press — colour bar
Open colour picker
Drag — colour bar
Reorder bus strips

Toolbar Icons

IconFunction
◼ ScenesOpen scene browser — save, load, and manage scenes
⊕ Add channelAppend a new channel strip
⊕ Add busAppend a new bus strip
⌁ CPUReal-time DSP load percentage
⚙ SettingsOpen application settings

Status Indicators

● REC M MUTED S SOLO BYPASS CPU > 70%
IndicatorMeaning
● REC (red, lit)Recording in progress — audio is being written to file
M (amber, lit)Channel or bus is muted — no signal passes
S (green, lit)Channel is soloed — all non-soloed channels are silenced
Bypass label (grey)Insert is bypassed — plug-in is not processing
CPU > 70%Consider increasing buffer size before adding inserts
10 — Troubleshooting

Troubleshooting

No audio from a channel

Confirm the channel is not muted and its fader is above −∞. Verify the input source assignment matches the physical connection on the interface. If inserts are present, bypass them temporarily to isolate a plug-in that may be outputting silence.

No audio from a bus

Confirm the bus has at least one channel send above zero. Verify the bus has a hardware output pair assigned and the pair matches a physical output on the interface. Ensure the bus fader is not at minimum and the bus is not muted.

Plug-in does not appear in the browser

Only AU effect-type units are listed. Verify the plug-in is installed on the device by checking it appears in the App Library. Some plug-ins require a one-time launch from their host app before they register with the system AU browser.

CPU load is high

High DSP load is usually caused by convolution or algorithmic reverb inserts. Increase the buffer size in Settings to provide more render time per callback. Bypassing inserts that are not in use also releases their DSP allocation immediately.

Scene recall changes routing unexpectedly

Scenes save hardware output assignments by output pair index. If the connected interface has fewer outputs than the saved scene assumed, assignments shift to the highest available pair. Reassign outputs manually after recall with a different interface.

Recording file is not visible in Files

Recordings are written to the application's Documents folder. Open Files, navigate to On My iPhone (or On My iPad), and locate the AU EngineCore folder. If the folder is empty, confirm that a recording was completed — a session stop before the file close completes will result in a partial file.