Audio Device Setup

Aether plays through the macOS default output device by default. If that is the wrong device - external interface, HDMI output, or a specific set of headphones - change it in Preferences.

Opening Preferences

Two ways:

  • Keyboard: Cmd-, - the standard macOS Preferences shortcut.
  • Command palette: press Space Space, type "Preferences", press Return.

The dialog opens as a modal overlay with three dropdowns: output device, sample rate, buffer size.

Output Device

The dropdown lists every output device cpal enumerates on the host, plus a System default sentinel at the top. System default follows whatever macOS is routing to - change the output in Control Centre or Audio MIDI Setup and Aether follows. Picking a specific device by name pins Aether to it regardless of system default.

If the saved device is unplugged between launches, Aether warns with a toast on startup ("Audio device 'X' not available. Using 'Y' instead.") and falls back to the host default. The saved preference is not cleared - plugging the device back in and restarting restores the pinned selection.

Sample Rate

The dropdown offers a System default option plus the rates 44.1 kHz, 48 kHz, 88.2 kHz, 96 kHz, 192 kHz. A rate is hidden only if no enumerated device reports support for it; if your selected device doesn't support a listed rate but some other device does, the rate still appears and cpal will fail on stream build when you Apply. If you Apply a rate the active device cannot produce, audio disables until you restart with a supported rate.

Trade-offs:

  • 44.1 kHz / 48 kHz - standard rates. Lowest CPU load. Fine for most use.
  • 88.2 kHz / 96 kHz - higher headroom for aliasing in heavy oscillator / distortion chains. Doubles CPU work per sample.
  • 192 kHz - rarely useful for audio output. Some DACs prefer it; most do not benefit.

If a device should support a rate that does not appear, open Audio MIDI Setup (/Applications/Utilities/Audio MIDI Setup.app) and set the rate on the device there first, then restart Aether.

Buffer Size

System default plus 128 / 256 / 512 / 1024 / 2048 samples. Lower = lower latency + higher CPU load. Higher = more headroom + more latency. Unlike sample rate, the buffer-size list is not filtered against device capabilities - cpal picks a usable value if the requested size isn't accepted.

Reasonable starting points:

  • 128 - low-latency monitoring. CPU-heavy patches may glitch.
  • 256 - default for most use. Comfortable headroom on modern Macs.
  • 512+ - heavy patches, Mode3D active, or fanless laptops on battery.

Applying Changes

Hit Apply. A toast appears: "Audio preferences saved. Restart Aether to apply." cpal requires a full stream rebuild to change device, rate, or buffer - live swap is not supported in this release.

Cancel discards changes without writing to settings.

Where Settings Live

~/Library/Application Support/aether/settings.json. The audio key holds the preferences. Hand-editing works if the dialog is ever wedged:

{
  "audio": {
    "output_device": null,
    "sample_rate": 48000,
    "buffer_size": 256
  }
}

output_device is nullable - null means follow the host's default output device. A string value pins to a named device; the "System default" label in the Preferences dropdown maps to null on save.

Delete the audio block to fall back to host defaults on next launch.

  • No Audio - troubleshooting when no sound comes out.
  • MIDI Setup - MIDI device routing, separate from audio.