Skip to content

Releases: mrbrainz/OpenSL3

Release list

v1.0.1

Choose a tag to compare

@mrbrainz mrbrainz released this 09 Oct 16:04

Install

Requires macOS 12 or later. Quit any audio apps first.

  1. Download OpenSL3-1.0.1.zip from the assets below.
  2. Unzip it and remove the download quarantine, so macOS will load the driver:
    cd ~/Downloads
    unzip OpenSL3-1.0.1.zip
    xattr -dr com.apple.quarantine SL3Device.driver
    (If your browser already unzipped it, skip the unzip line.)
  3. Move the driver into place and restart the audio service:
    sudo mv SL3Device.driver /Library/Audio/Plug-Ins/HAL/
    sudo chown -R root:wheel /Library/Audio/Plug-Ins/HAL/SL3Device.driver && sudo killall coreaudiod
  4. Plug in the SL3. Rane SL3 appears in Audio MIDI Setup and in your apps.

Upgrade

Same as installing, but remove the old driver first. Moving the new one onto an installed driver would put it inside the old bundle rather than replacing it.

  1. Download OpenSL3-1.0.1.zip from the assets below.
  2. Unzip it and remove the download quarantine:
    cd ~/Downloads
    unzip OpenSL3-1.0.1.zip
    xattr -dr com.apple.quarantine SL3Device.driver
  3. Remove the old driver, move the new one into place and restart the audio service:
    sudo rm -rf /Library/Audio/Plug-Ins/HAL/SL3Device.driver
    sudo mv SL3Device.driver /Library/Audio/Plug-Ins/HAL/
    sudo chown -R root:wheel /Library/Audio/Plug-Ins/HAL/SL3Device.driver && sudo killall coreaudiod

Uninstall

sudo rm -rf /Library/Audio/Plug-Ins/HAL/SL3Device.driver && sudo killall coreaudiod

Changes

  • Project renamed to OpenSL3 (previously sl3-bridge).
  • Builds target macOS 12 and later. The 1.0.0 release download was built for macOS 27 only.

v1.0.0

Choose a tag to compare

@mrbrainz mrbrainz released this 09 Oct 15:56

Install

Build from source (recommended):

make device-plugin
sudo rm -rf /Library/Audio/Plug-Ins/HAL/SL3Device.driver
sudo cp -R build/SL3Device.driver /Library/Audio/Plug-Ins/HAL/ && sudo killall coreaudiod

Or use the attached SL3Device-1.0.0.zip (ad-hoc signed): unzip, run xattr -dr com.apple.quarantine SL3Device.driver, then copy it as above.

Uninstall: sudo rm -rf /Library/Audio/Plug-Ins/HAL/SL3Device.driver && sudo killall coreaudiod

See the README for Mixxx setup.

Changes

The Core Audio driver (SL3Device.driver) is now the way to use the SL3; the bridge is kept and documented in docs/BRIDGE.md.

  • README rewritten around the driver; bridge documentation moved to docs/BRIDGE.md.
  • sl3bridge sets the box to 44.1 kHz at start, so a box left at 48 kHz (by the Core Audio driver or Rane's driver) no longer runs off speed.
  • SL3Device.driver: 44.1 and 48 kHz, chosen in Audio MIDI Setup or the app and remembered. The driver now sets the box's rate at every start, so a box left at another rate (for example by Rane's driver) no longer runs off speed.
  • sl3ctl set-rate 44100|48000 sets the box's sample rate (vendor command 0x31). The rate survives power cycles.
  • SL3Device.driver: hot-plug. Apps using the SL3 keep the device through an unplug (the decks fall back to thru) and resume when it is plugged in again; when nothing uses it, an unplugged SL3 disappears from Core Audio until it is back.
  • SL3Device.driver: fixed coreaudiod spinning at high CPU (and Core Audio apps hanging) after a few device start/stop cycles.
  • New sl3plugtest tool (built by make device-plugin): loads the driver outside Core Audio, checks every property and cycles IO start/stop.
  • make device-plugin: Core Audio driver (SL3Device.driver) that makes the SL3 a 6-in/6-out device running on its own clock, with no bridge, BlackHole or resampling. About 18 ms in and 22 ms out plus the app buffer; restarts the USB streams if they stop.
  • New test tools: sl3rec (input levels, channel correlation, callback timing), sl3tone (sine on all outputs), sl3loop (round-trip latency through a loopback cable).
  • make probe-plugin: experimental Core Audio plug-in (SL3Probe.driver) that only checks whether a HAL plug-in can open the SL3 through IOUSBHost. It publishes no device.
  • Lower default latency: about 24 ms in and 29 ms out, down from 33 and 45.
  • New options to tune the ring buffers and USB transfer sizes (--out-target, --cap-pkts, --cap-xfers, --play-pkts, --play-xfers).
  • Status output shows the estimated latency and USB packet rates.
  • New sl3usbtiming tool compares isochronous capture timing between IOUSBHost and libusb.
  • Experimental sl3bridge-iousbhost build: same bridge on Apple's IOUSBHost framework instead of libusb (audio streams and control channel), with no libusb dependency. It measures the SL3 and loopback clocks from hardware timestamps and sets the resampling ratios from them, which keeps the output ratio steadier.

Note: the attached zip only loads on macOS 27. Use v1.0.1 instead.