Repository navigation
Releases: mrbrainz/OpenSL3
Releases · mrbrainz/OpenSL3
Release list
v1.0.1
Install
Requires macOS 12 or later. Quit any audio apps first.
- Download
OpenSL3-1.0.1.zipfrom the assets below. - Unzip it and remove the download quarantine, so macOS will load the driver:
(If your browser already unzipped it, skip the
cd ~/Downloads unzip OpenSL3-1.0.1.zip xattr -dr com.apple.quarantine SL3Device.driver
unzipline.) - 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 - 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.
- Download
OpenSL3-1.0.1.zipfrom the assets below. - Unzip it and remove the download quarantine:
cd ~/Downloads unzip OpenSL3-1.0.1.zip xattr -dr com.apple.quarantine SL3Device.driver
- 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 coreaudiodChanges
- 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
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 coreaudiodOr 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. sl3bridgesets 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|48000sets the box's sample rate (vendor command0x31). 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
sl3plugtesttool (built bymake 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
sl3usbtimingtool compares isochronous capture timing between IOUSBHost and libusb. - Experimental
sl3bridge-iousbhostbuild: 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.