Adam Viaud — iOS/macOS engineer SWIFT · 2026
← All projects

CORE AUDIO · MACOS CLI

audioctrl

A command-line window into Core Audio devices and their typed—or deliberately raw—properties.

audioctrl EXAMPLES
$ audioctrl list
    ID  Name                               Rate     In  Out  Transport
----------------------------------------------------------------------
    71  Built-in Microphone               48000      2    0  Built-in
    72  Built-in Speakers                 48000      0    2  Built-in
   136  AirPods Pro                       24000      1    0  Bluetooth
   130  AirPods Pro                       48000      0    2  Bluetooth
    89  BlackHole 2ch                     44100      2    2  Virtual
    91  Studio Display                    48000      0    2  USB
    55  Sample Aggregate Device           48000      2    0  Aggregate

$ audioctrl get BlackHole
  name           BlackHole 2ch
  uid            BlackHole2ch_UID
  sample-rate    96000
  buffer-size    512
  transport      Virtual
  is-running     0
  is-hidden      0
  volume         1    [output]
  volume-db      0    [output]
  volume-input   1    [input]
  mute           0    [output]
  mute-input     0    [input]
  clock-source   0    [global]
  'evis'         —    [output]

$ audioctrl set Speakers volume 0.8
$ audioctrl get --id 72 nsrt --type float64   # kAudioDevicePropertyNominalSampleRate
THE IDEA

Use the friendly path until the system needs precision.

Known properties get useful names and types. Unknown selectors remain reachable using their four-character code or hexadecimal value, so the abstraction never blocks lower-level work.

WHY IT MATTERS

Small tools reveal platform structure.

Scopes, elements, selectors, and devices become inspectable without building a one-off application every time.