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.
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
Signal Flow
Every channel follows an identical, predictable path before contributing to one or more buses.
Channel Path
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
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 send | Per-channel contribution level to a specific bus, 0 dB to −∞ |
| Bus fader | Master output level for the bus, applies after all channel contributions sum |
| Hardware pair | Stereo output pair on the connected interface assigned to a bus |
| Bus return send | Routes a bus output into another bus — used for effects returns and submixes |
| Master bus | Designated bus that feeds the recording engine independently of hardware routing |
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
| Control | Function |
|---|---|
| ▶ Input source | Selects the hardware input feeding this channel |
| ⬡ Label | Channel name — tap to rename, double-tap to reset to default |
| ↕ Inserts section | Ordered list of AU plug-ins in the pre- or post-fader chain |
| ◈ Fader | Channel output level — double-tap returns to unity (0 dB) |
| M · S | Mute and Solo — Solo is exclusive by default |
| ⊙ Pan | Stereo position — double-tap centres; displayed as L / C / R value |
| Bus sends | Individual 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
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
| Control | Function |
|---|---|
| ▬ Colour bar | Visual identifier — long-press to open colour picker; also functions as drag handle for reordering |
| ⬡ Bus name | Tap to open Bus Options; includes output assignment, routing, and remove |
| ↗ Output row | Displays hardware output pair or return-send destination; tap to change |
| ↕ Inserts | AU insert chain for this bus — identical mechanics to channel inserts |
| ◈ Fader | Bus output level — double-tap for unity |
| M / BUS | Mute toggle; badge confirms bus type. Master bus shows REC button instead |
| ⊙ Pan | Bus 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.
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.
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
| Contents | Detail |
|---|---|
| Channel parameters | Name, input source, fader, pan, mute, solo state for all channels |
| Insert chains | Plug-in identity, bypass state, pre/post position, and full parameter preset for every insert |
| Bus configuration | Name, colour, fader, pan, mute, hardware output, and insert chains for all buses |
| Send levels | Per-channel, per-bus send levels — full matrix |
| Routing topology | Return send assignments and destinations |
| Hardware context | Output pair assignments — recalled if matching hardware is connected at load |
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:
| Format | Characteristics |
|---|---|
| WAV | Uncompressed, broadcast-compatible — recommended for final delivery |
| AIFF | Apple-native uncompressed format, identical audio quality to WAV 24-bit |
| AAC | Compressed — 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.
Settings
Audio Engine
| Setting | Description |
|---|---|
| Buffer size | Audio 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 rate | Determined by the connected hardware; displayed for reference. Changing sample rate requires restarting the audio engine |
| Input gain | Global input trim applied before channel faders — useful when interface preamp output is fixed |
Recording
| Setting | Description |
|---|---|
| Format | File format for all new recordings — WAV, AIFF, or AAC |
| Segment duration | Automatic file splitting interval in minutes — ∞ disables segmentation |
| Output folder | Destination folder within Files — defaults to the application Documents folder |
Display
| Setting | Description |
|---|---|
| VU meter decay | Release time constant for level meters — faster decay shows transients; slower shows average level |
| CPU meter | Shows real-time render load as percentage of buffer window |
| Strip labels | Toggle full channel name display below the colour bar |
Quick Reference
Gestures
Toolbar Icons
| Icon | Function |
|---|---|
| ◼ Scenes | Open scene browser — save, load, and manage scenes |
| ⊕ Add channel | Append a new channel strip |
| ⊕ Add bus | Append a new bus strip |
| ⌁ CPU | Real-time DSP load percentage |
| ⚙ Settings | Open application settings |
Status Indicators
| Indicator | Meaning |
|---|---|
| ● 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 |
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.