Skip to content

About

Independent DriverKit audio driver and native macOS controls for the original Clarett 2Pre Thunderbolt

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Clarett Bridge

An independent macOS driver and control app for the original Focusrite Clarett 2Pre Thunderbolt.

Clarett Bridge connects this interface to Core Audio through DriverKit and AudioDriverKit. It provides playback, recording, hardware direct monitoring, output mute, output volume with per-pair maximum levels, selectable sample rates and adjustable driver margins while keeping Full Security enabled on the tested Mac.

Why this exists

The original Clarett 2Pre Thunderbolt is still a useful audio interface, but its official macOS driver uses a kernel extension. On Apple silicon, Focusrite's installation instructions require booting into Recovery, selecting Reduced Security, and allowing user management of kernel extensions. That changes the Mac's startup security policy; it is not simply permission to connect a Thunderbolt accessory.

Clarett Bridge was created to keep this hardware usable with Full Security enabled, without a trip through Recovery or changes to device-management policy. It replaces the kernel extension with a user-space DriverKit/AudioDriverKit driver and a native control app. This worked on the development Mac without IT involvement; signing, normal macOS extension approval and any management policies still apply on other Macs.

Clarett Bridge overview

Representative interface preview. Readiness, active settings and diagnostics in the app come from the connected device; this image uses example values.

Current status

This is an experimental source release, tested on one Clarett 2Pre Thunderbolt with an Apple silicon Mac running macOS 27.0.1 and Xcode 27. It is independent of Focusrite and is not endorsed by the manufacturer.

Feature Result
Driver activation and PCI attachment Passed with user-confirmed Full Security; SIP enabled
Playback and recording Clear Spotify playback and Audacity recording/listen-back
Software monitoring Clean, acceptably responsive monitoring in GarageBand at a 256-frame driver margin
Hardware direct monitoring Input 1/2 or stereo mix, selectable output pairs and live/computer blend; manually verified
Sample rates 44.1, 48, 88.2 and 96 kHz: hardware clock and both stream formats verified; new-rate listening tests pending
Transport channels 14 capture / 4 playback; 10 capture slots are live at 88.2/96 kHz; these are not physical socket counts
Margins below 256 frames Unreliable: crackling observed at 64 and 128 frames
MIDI, 176.4/192 kHz, external clocks, Focusrite Control Not implemented

The playback, recording and monitoring listening results above cover the previous version 12 / 48 kHz baseline. Driver 13 has passed idle sample-rate switching and format-readback checks; listening/recording at the new rates is still pending.

The verified software-monitoring test used an effective 512-frame Core Audio buffer. Selecting a requested buffer in the app does not guarantee another audio application will use it. Numerical round-trip latency, sustained load and sleep/wake are not yet qualified. See validation.

Build and install

There is no broadly installable signed binary in this release. A developer build requires Xcode 27 / DriverKit 27, an Apple Developer team, and provisioning with the DriverKit, PCI and audio-family development entitlements. The current driver deployment target is macOS 27.

git clone https://github.com/jthrilly/clarett-bridge.git
cd clarett-bridge
bash scripts/test.sh
scripts/build.sh audio DEVELOPMENT_TEAM=YOUR_TEAM_ID -allowProvisioningUpdates
python3 scripts/verify-signing.py 'build/audio/Build/Products/Debug/Clarett Bridge.app'

New developers must register their own bundle identifiers and capabilities; see the complete build and signing guide. Install the verified app in /Applications, open Driver Setup → Activate driver, and complete the normal macOS approval flow. Keep Full Security and SIP enabled. Device-management approval policy may differ on other Macs.

Host build 18 (0.3.2) adds an Outputs page and requires activating audio driver version 17 for hardware-backed volume controls. Sample-rate changes require driver 13 or later. Driver 16's volume controls and revised range passed a manual Spotify check. See validation for the tested scope and remaining checks.

Use it

  1. Select Clarett 2Pre Thunderbolt (Experimental) as the input and output in your audio app.
  2. To change rate, open Audio Settings → Sample rate. Turn direct monitoring off, select 44.1, 48, 88.2 or 96 kHz and click Apply rate. Check the active value; both input and output share this rate.
  3. For software monitoring and effects, use Audio Settings → Driver responsiveness → 256 frames and enable monitoring in your audio app. GarageBand passed the manual listening test. Turn hardware monitoring off for this path.
  4. For hardware direct monitoring, open Monitoring, choose inputs and outputs, adjust the live/computer blend, then enable monitoring. Turn the audio app’s software monitoring off to avoid two delayed copies.
  5. Check the active buffer value after a request. Audio apps may override it. The driver margin resets to 512 when the device reattaches; choose 256 again if desired.

Audacity 4.0.1’s software-monitoring path requests its audio library’s high input-latency hint, which was 100 ms on the test Mac even with Audacity’s buffer preference at 10 ms. That is separate from driver crackling at smaller margins. See monitoring and latency.

Monitoring controls

Representative monitoring preview; changes are applied explicitly and the resulting route/mixer state is read back.

Output volume

The Outputs page offers software ownership for line outputs 1–2 and 3–4/headphones, with a separate maximum for each pair. The main slider and macOS volume keys use the hardware gain commands. With a −20 dB maximum, 100% software volume remains −20 dB at the hardware. Limits are enforced in the driver, default to −30 dB, and can be adjusted from −60 to 0 dB. Raising a maximum preserves the current level until you deliberately turn up. Driver 16 uses a 48 dB normal adjustment range (about 3 dB per standard Mac volume-key step), with 0% selecting the quiet hardware floor.

The Mute button and Mac mute key use the hardware master mute for all four analogue outputs, including headphones and direct monitoring, in either gain-control mode. Unmute preserves your chosen volume and verifies the capped gains of software-controlled pairs before releasing silence.

Start with physical levels down. New connections leave device controls unchanged until software control is enabled. A return to knob control is refused if its position would make the output jump louder. These limits apply in software mode and are not a calibrated loudness limit. See output volume and safety.

Outputs controls

Representative output-control preview; hardware readback and listening validation are recorded separately.

Documentation

Command-line tools

zsh scripts/audio-configure.sh rate 44100   # Request; verify hardware/stream readback
zsh scripts/audio-status.sh                 # Read-only device/client report
zsh scripts/audio-configure.sh margin 256   # Briefly restarts existing I/O
zsh scripts/audio-configure.sh buffer 128   # Request; verify actual result
bash scripts/package-source.sh HEAD         # ZIP and tar.gz of committed source

CI runs sanitized C++ protocol/ring/mixer/sample-rate/volume-safety/mute tests, checks generated project files, and type-checks the SwiftUI host. It does not sign, activate a driver or validate audio hardware. The project includes no credentials, provisioning profiles, certificates, private keys or device UDIDs.

License and provenance

GPL-2.0-only. Protocol research and the reference Linux driver are credited in THIRD_PARTY.md. No Focusrite binary was modified or disassembled. Focusrite and Clarett are their owners’ trademarks.

About

Independent DriverKit audio driver and native macOS controls for the original Clarett 2Pre Thunderbolt

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages