Add ring-bench to compare SI-01 with other feedback suppressors #3

Open
erdoar wants to merge 4 commits from bench into main
erdoar commented 2026-10-15 05:10:58 +00:00 (Migrated from github.com)

Summary

  • Adds bench/, a separate Swift package (ring-bench) that tests feedback suppressors from the outside, using the same signals for each.
  • It generates 8 test signals: a latency sweep, three growing howls (one on a sung note's harmonic), and four feedback-free voice signals (vibrato, straight note, fricatives, fry).
  • It renders them through SI-01's engine offline, through any Audio Unit plug-in offline (for example Defeedback), or through live hardware.
  • It reports latency, time to a 6 dB cut, howl depth, and loss on everything other than the howl.
  • No plug-in internals are inspected; plug-ins are only hosted and run.

First results (main, offline, 256-frame blocks)

SI-01 leaves voices intact (95th-percentile loss of 1.5 dB or less) but barely touches howls. It cuts the 2.5 kHz howl by 3.7 dB and the 315 Hz howl by 13.7 dB, and it misses a howl on a sung note's harmonic entirely.

Verification

  • ring-bench selftest passes: the measures recover a known 37-sample delay with a -3 dB gain, and a known notch that engages 0.3 s after onset.
  • The AU path was checked with Apple's AUHipass.
  • Defeedback has not been rendered yet: it needs its installer run first.

🤖 Generated with Claude Code

## Summary - Adds `bench/`, a separate Swift package (`ring-bench`) that tests feedback suppressors from the outside, using the same signals for each. - It generates 8 test signals: a latency sweep, three growing howls (one on a sung note's harmonic), and four feedback-free voice signals (vibrato, straight note, fricatives, fry). - It renders them through SI-01's engine offline, through any Audio Unit plug-in offline (for example Defeedback), or through live hardware. - It reports latency, time to a 6 dB cut, howl depth, and loss on everything other than the howl. - No plug-in internals are inspected; plug-ins are only hosted and run. ## First results (main, offline, 256-frame blocks) SI-01 leaves voices intact (95th-percentile loss of 1.5 dB or less) but barely touches howls. It cuts the 2.5 kHz howl by 3.7 dB and the 315 Hz howl by 13.7 dB, and it misses a howl on a sung note's harmonic entirely. ## Verification - `ring-bench selftest` passes: the measures recover a known 37-sample delay with a -3 dB gain, and a known notch that engages 0.3 s after onset. - The AU path was checked with Apple's AUHipass. - Defeedback has not been rendered yet: it needs its installer run first. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
This pull request has changes conflicting with the target branch.
  • SI01/Support/Info.plist
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin bench:bench
git switch bench

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff bench
git switch bench
git rebase main
git switch main
git merge --ff-only bench
git switch bench
git rebase main
git switch main
git merge --no-ff bench
git switch main
git merge --squash bench
git switch main
git merge --ff-only bench
git switch main
git merge bench
git push origin main
Sign in to join this conversation.
No description provided.