No Audio

Aether launches, the graph is built, but no sound reaches the speakers. Run through the checklist in order - the top items catch the most common causes.

1. Is the Transport Playing?

Anything driven by the Sequencer, Arranger, or transport clock only runs while the transport is running. Check the top-bar play button: if it shows the play icon (pointing right), the transport is stopped.

Press F5 (works from the canvas, not while a text field has focus) or click Play on the top-bar transport. Audio should start immediately for a correctly-wired graph driven by one of those sources.

Free-running nodes - Oscillator, LFO, Noise, DroneOscillator - ignore the transport and play continuously once connected. If the graph uses one of those as its source, transport state isn't the problem; keep going down the checklist.

2. Is the Master Volume at Zero?

The top-bar transport has a master volume control (a draggable value, 0.0–1.0). Fresh graphs start at 0.5 (-6 dB) for headroom, but a loaded project restores whatever the saved value was - including zero.

3. Is the Graph Actually Wired?

An audible signal needs an unbroken path from a source through to the AudioSink node - that's the single terminator that reaches the speakers. Missing one connection in the chain drops the signal silently. (Other recording nodes like SampleRecorder consume audio too, but they don't terminate the path to the speakers.)

Quick check: select the sink, open its properties panel, confirm there is an incoming connection to the Audio In port. If not, trace back to find the break. Turning on the activity monitor (toggle("activity") in the console) shows per-node CPU - a source producing no output shows zero activity.

4. Is the Output Device Right?

Open Preferences (Cmd-,). The Output Device dropdown shows the selected device. Three common failure modes:

  • System Default is set, but macOS is routing to a device Aether cannot play (rare, but possible with pro-audio interfaces in exclusive mode). Pin a specific device by name.
  • A specific device is pinned, but that device is unplugged. A toast at startup warns when this happens; plug it back in or pick another device.
  • The wrong device is pinned. HDMI outputs often appear in the list and can be picked by accident.

Changes require restarting Aether (cpal limitation). See Audio Device Setup for the full dialog reference.

5. Is the Sample Rate Incompatible?

Aether requests the sample rate configured in Preferences. If the device refuses the rate, the audio stream fails to start and the engine falls back to silence.

Open Audio MIDI Setup (/Applications/Utilities/Audio MIDI Setup.app) and confirm the device supports the configured rate. Setting the device rate there, then restarting Aether, usually fixes it.

6. Is the Audio Thread Alive?

Audio-thread panics are caught and silenced for the rest of the session (see Crash Reports). A patch that triggers a DSP panic will go silent with no obvious error. Symptom: audio stops mid-session without any user action.

Check the current ~/Library/Logs/Aether/journal-<timestamp>.log for the line audio callback panicked - stream silenced for remainder of session and the panic context before it. A caught audio panic does not produce a crash-*.log; only uncaught panics that terminate the process do.

To recover: stop the transport, fix or remove the offending node, restart Aether. The silence latch resets on a clean start.

7. Permissions

macOS does not require microphone permission for audio output. The NSMicrophoneUsageDescription in the bundle is only triggered by the AudioInput node. If the permission dialog never appeared but input nodes aren't reading, check System Settings → Privacy & Security → Microphone and ensure Aether is allowed.

Still Nothing?

Send the most recent log from ~/Library/Logs/Aether/ plus the project file to hello@voidrealm.com. Startup audio init logs every step; the trace above the silent state points at the cause in most cases.