From e000e30fcabdd18bbd5d5bcf8555351706d124d7 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sun, 2 Aug 2026 13:37:17 +0000 Subject: [PATCH] feat(web-synth): add Phase Inversion, Filter Bypass, DC Offset, and fix Reverb Mix - Fixed Reverb Mix param wiring in store.ts - Implemented Phase Inversion toggle in GainNode with UI - Implemented true bypass mode for FilterNode using dry/wet gains with UI - Added new DC Offset node and integrated it into the app - Updated JOURNAL.md with new tasks and marked completed ones Co-authored-by: kkd16 <112675076+kkd16@users.noreply.github.com> --- projects/web-synth-9x1a/JOURNAL.md | 14 +++++ projects/web-synth-9x1a/src/App.tsx | 5 ++ .../src/audio/nodes/processors.ts | 62 ++++++++++++++++--- .../web-synth-9x1a/src/audio/nodes/sources.ts | 14 +++++ .../src/components/nodes/DcOffsetNode.tsx | 38 ++++++++++++ .../src/components/nodes/FilterNode.tsx | 9 +++ .../src/components/nodes/GainNode.tsx | 9 +++ projects/web-synth-9x1a/src/store.ts | 11 +++- 8 files changed, 152 insertions(+), 10 deletions(-) create mode 100644 projects/web-synth-9x1a/src/components/nodes/DcOffsetNode.tsx diff --git a/projects/web-synth-9x1a/JOURNAL.md b/projects/web-synth-9x1a/JOURNAL.md index 097010ba..d8f70d14 100644 --- a/projects/web-synth-9x1a/JOURNAL.md +++ b/projects/web-synth-9x1a/JOURNAL.md @@ -90,3 +90,17 @@ - [ ] Add Volume meter to Output Node - [ ] Implement node collapsing/folding - [x] Add a "Reset to Default" button on nodes + +## Expansion Phase 8 (New Improvements) +- [x] Fix Reverb Node Mix control wiring in store +- [ ] Fix AudioCore to support separate input and output nodes for complex effects +- [ ] Add Dry/Wet mix control to Delay Node +- [x] Add Phase Inversion toggle to Gain Node +- [x] Implement Node Bypassing for Filter Node +- [ ] Add a Clipping Indicator to Output Node +- [x] Add a DC Offset Node +- [ ] Implement auto-pan LFO sync in Panning Node +- [ ] Add an Invert Phase option to Oscillator Node +- [ ] Add a "Randomize Parameters" button to node UIs +- [ ] Implement Node Bypassing for Delay Node +- [ ] Add a Drive/Saturation parameter to the Filter Node diff --git a/projects/web-synth-9x1a/src/App.tsx b/projects/web-synth-9x1a/src/App.tsx index 53e77aec..40a88f54 100644 --- a/projects/web-synth-9x1a/src/App.tsx +++ b/projects/web-synth-9x1a/src/App.tsx @@ -17,6 +17,7 @@ import { ReverbNode } from './components/nodes/ReverbNode'; import { AnalyserNode } from './components/nodes/AnalyserNode'; import { OutputNode } from './components/nodes/OutputNode'; import { AdsrNode } from './components/nodes/AdsrNode'; +import { DcOffsetNode } from './components/nodes/DcOffsetNode'; import { ChorusNode } from './components/nodes/ChorusNode'; import { Settings, Waves, Sliders, AudioWaveform, Activity, MonitorPlay, X } from 'lucide-react'; import { useState } from 'react'; @@ -37,6 +38,7 @@ const nodeTypes = { reverbNode: ReverbNode, analyserNode: AnalyserNode, adsrNode: AdsrNode, + dcOffsetNode: DcOffsetNode, chorusNode: ChorusNode, outputNode: OutputNode, }; @@ -71,6 +73,9 @@ export default function App() { Noise + + +
+ +
+ + + ); +} diff --git a/projects/web-synth-9x1a/src/components/nodes/FilterNode.tsx b/projects/web-synth-9x1a/src/components/nodes/FilterNode.tsx index 775d431c..4b065af3 100644 --- a/projects/web-synth-9x1a/src/components/nodes/FilterNode.tsx +++ b/projects/web-synth-9x1a/src/components/nodes/FilterNode.tsx @@ -28,6 +28,15 @@ export function FilterNode({ id, data }: { id: string, data: Record
+