Skip to content

feat: add Filter FM (Devilfish mod) - #35

Open
dfl wants to merge 3 commits into
midilab:developfrom
dfl:filter-fm-devilfish-mod
Open

feat: add Filter FM (Devilfish mod)#35
dfl wants to merge 3 commits into
midilab:developfrom
dfl:filter-fm-devilfish-mod

Conversation

@dfl

@dfl dfl commented Dec 27, 2025

Copy link
Copy Markdown

Summary

  • AC-coupled input signal modulates filter cutoff at audio rate
  • One-pole HPF (~20Hz) removes DC before modulation
  • Creates FM sidebands, talking/screaming character with resonance
  • New setFilterFmDepth() API (0-100%)

Based on Devilfish mod: "Filter FM uses the output of the VCA, AC coupled into the filter cutoff frequency"

Dependencies

⚠️ Depends on PR #33 (diode-ladder-filter) - merge that first

🤖 Generated with Claude Code

dfl and others added 3 commits December 20, 2025 06:55
- Add DiodeLadderFilter based on Will Pirkle's analysis
- Implement 4-pole diode ladder with TB-303 octave mode option
- Add FilterType enum (TeeBee, Diode, DiodeOctave)
- Integrate filter selection into Open303 synth engine
- Include passband gain compensation and input drive

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add three distinct nonlinearity stages modeling real diode behavior:
  1. diodeShape() - asymmetric input saturation (exp on positive, linear negative)
  2. fbShape() - feedback path saturation for resonance collapse/chirp
  3. stageNL() - per-stage cubic nonlinearity for grit under drive
- Add DC blocker to prevent low-frequency buildup
- Remove chowdsp math_approx dependency (use std::exp directly)
- Add detailed signal flow documentation in header

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- AC-coupled input signal modulates filter cutoff at audio rate
- One-pole HPF (~20Hz) removes DC before modulation
- Creates FM sidebands, talking/screaming character with resonance
- New setFilterFmDepth() API (0-100%)

Based on Devilfish mod: "Filter FM uses the output of the VCA,
AC coupled into the filter cutoff frequency"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@midilab
midilab changed the base branch from main to develop January 24, 2026 12:12
@Megagoth1702

Megagoth1702 commented Jul 28, 2026

Copy link
Copy Markdown

Hey @dfl I'd love to get in touch with you but I can not afford LinkedIn Premium. Can you perhaps join the midilab Discord? :) <3

https://discord.gg/NWSvqJj9K
There is a question by me about your filter too!
Greets from a fellow Astrology lover and 4/6 Projector. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants