Skip to content

FAD: The good old click-less fractionally addressed delay#109

Open
kunitoki wants to merge 9 commits into
mainfrom
dev/fractionally_addressed_delay
Open

FAD: The good old click-less fractionally addressed delay#109
kunitoki wants to merge 9 commits into
mainfrom
dev/fractionally_addressed_delay

Conversation

@kunitoki
Copy link
Copy Markdown
Owner

@kunitoki kunitoki commented Jun 1, 2026

Adds a new Fractional Delay audio graph node powered by a DSP-level Fractionally Addressed Delay (FAD) implementation, along with state serialization support for existing nodes.

Changes

  • Added yup::FractionallyAddressedDelay to yup_dsp.
    • Fractionally-addressed delay line based on Rocchesso's FAD architecture
    • Supports fractional delay lengths, block/in-place processing, and delay modulation
    • Comprehensive unit test coverage
  • Added Fractional Delay node to the AudioGraph example
    • Independent left/right delay times
    • Feedback and Dry/Wet controls
    • Node state persistence
    • Integrated into the node registry and palette
  • Added state serialization/deserialization for:
    • Oscillator node
    • Gain node
    • Low-pass filter node
    • Updated NodeViewHelpers to support multiple inline parameter rows, enabling richer node UIs.

This provides a new modulation-friendly delay primitive in yup_dsp and demonstrates its use through a fully functional AudioGraph node.

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 1, 2026

Codecov Report

❌ Patch coverage is 86.81948% with 46 lines in your changes missing coverage. Please review.
✅ Project coverage is 77.13%. Comparing base (8854a46) to head (3897654).

Files with missing lines Patch % Lines
...audio_processors/processors/yup_AudioProcessor.cpp 51.16% 21 Missing ⚠️
...ules/yup_gui/themes/theme_v1/yup_ThemeVersion1.cpp 0.00% 15 Missing ⚠️
...ules/yup_audio_graph/graph/yup_AudioGraphModel.cpp 86.36% 6 Missing ⚠️
modules/yup_dsp/nonlinear/yup_AaIirAntialiaser.h 98.36% 3 Missing ⚠️
...es/yup_dsp/delays/yup_FractionallyAddressedDelay.h 98.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #109      +/-   ##
==========================================
+ Coverage   77.04%   77.13%   +0.08%     
==========================================
  Files         602      605       +3     
  Lines       60147    60483     +336     
==========================================
+ Hits        46340    46651     +311     
- Misses      13807    13832      +25     
Files with missing lines Coverage Δ
...odules/yup_audio_graph/graph/yup_AudioGraphModel.h 66.66% <ø> (ø)
.../yup_audio_graph/graph/yup_AudioGraphProcessor.cpp 94.78% <100.00%> (ø)
...les/yup_audio_processors/processors/yup_AudioBus.h 100.00% <ø> (ø)
...p_audio_processors/processors/yup_AudioProcessor.h 83.78% <100.00%> (+2.70%) ⬆️
modules/yup_dsp/dynamics/yup_HardClipper.h 100.00% <100.00%> (ø)
...es/yup_dsp/delays/yup_FractionallyAddressedDelay.h 98.00% <98.00%> (ø)
modules/yup_dsp/nonlinear/yup_AaIirAntialiaser.h 98.36% <98.36%> (ø)
...ules/yup_audio_graph/graph/yup_AudioGraphModel.cpp 93.58% <86.36%> (-0.71%) ⬇️
...ules/yup_gui/themes/theme_v1/yup_ThemeVersion1.cpp 37.91% <0.00%> (-0.46%) ⬇️
...audio_processors/processors/yup_AudioProcessor.cpp 74.56% <51.16%> (-14.18%) ⬇️

... and 3 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8854a46...3897654. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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.

1 participant