Skip to content

Releases: dappermint/occam

v0.4.6

Choose a tag to compare

@github-actions github-actions released this 08 Oct 06:35
v0.4.6
32a6cbd

Full Changelog: v0.4.5...v0.4.6

v0.4.5

Choose a tag to compare

@github-actions github-actions released this 11 Sep 02:51
v0.4.5
864e844

Full Changelog: v0.4.4...v0.4.5

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 01 Sep 09:20
v0.4.4
5197847

Full Changelog: v0.4.3...v0.4.4

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 01 Sep 08:51
v0.4.3
775246c

Full Changelog: v0.4.2...v0.4.3

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 01 Sep 04:39
v0.4.2
31bbcf3

Full Changelog: v0.4.1...v0.4.2

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 01 Sep 04:34
v0.4.1
03f4c60

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 03:03
v0.4.0
2ed83e0

Full Changelog: v0.3.0...v0.4.0

occam v0.2.3

Choose a tag to compare

@dappermint dappermint released this 27 Aug 18:08

Native macOS control for the Razer BlackShark V3 Pro, plus binaural rendering.
Synapse does not ship for macOS, so this is the missing piece.

brew install dappermint/tap/occam
brew services start occam

what is new since 0.1.2

Two renderers. occam-spatial renders a file to binaural offline.
occmixer does the same to system audio as it plays, capturing through a
CoreAudio process tap and rendering in Rust on the audio render thread, at 128
frames and 2.7 ms a cycle. Both use measured SADIE II KU100 head impulses.

A settings window in the shape of System Settings, with tabs for the
headset, the microphone and spatial audio. Noise control lives in the status
menu too, as a segmented picker with its strength.

Ambient turned out to be 0x50, not the 2 that had been assumed. The
register stores any small byte without validating and reports it back
faithfully, so the wrong value read back correctly while doing nothing at all.
Found by polling the register while pressing the earcup button.

Writes were leaving their replies queued on the interrupt-IN pipe, which
desynchronised the next read and hid every device-level rejection.

Output level is measured through the chain rather than derived from the
speaker count, which was about 7 dB too quiet in both renderers. The feeds are
all derived from one mid/side pair, so they sum close to coherently rather than
as independent sources.

what it does

Ten-band headset and microphone equalisers with Razer's cloud preset library,
noise cancelling mode and strength, microphone mute and monitoring, game/chat
balance, dongle indicator modes, auto power-off, HyperSpeed low latency.
Settings save to a profile and re-apply themselves whenever the dongle
reconnects.

No permissions required, not even for the menu bar agent. macOS only: it talks
to IOHIDManager through cgo, with no hidapi and no vendored C.