Mission: Build the ultimate browser-based DAW, fusing classic MIDI workflow (Cubase-style) with next-generation AI Vocal Synthesis (TTS Sampling).
Current Velocity: 1 Feature per Run Architectural Focus: Polyphony & Vocal Granularity
- Refactor SingingVoice State: Expose alignment state setters in
SingingVoiceto avoid type casting hacks and improve multi-bank alignment handling. - TTS Slice Triggering: Implement a logic where a MIDI Note NoteOn event can trigger a specific slice or word from the TTS buffer (e.g., Note C3 = "Hello", Note D3 = "World").
- Hybrid Polyphony: Finalize
VoiceManagerto handle 8-voice polyphony forsynth-1while keepingsynth-2strictly monophonic (legato priority). - Phoneme Elasticity: Connect
rubberband.wasmto the sequencer steps. If a note is dragged longer, the specific phoneme should time-stretch to match the duration without altering pitch. - Polyphonic Singing: Implement
SingingVoiceManagerto allow polyphonic playback (chords) for the TTS engine, supporting multiple simultaneous phoneme streams.
-
Per-Step Delay Send: Allow sequence steps to override the global delay send amount.
-
Step-Sequenced Vibrato: Allow individual sequencer steps to override the global Vibrato Depth, enabling natural vocal phrasing without affecting short rhythmic syllables.
-
Vocal Envelope Shaper: Upgraded the
ExpressiveVoiceProcessorto use a full ADSR (Attack, Decay, Sustain, Release) envelope, exposing Decay and Sustain knobs to theSamplerPanelto allow granular shaping of TTS syllables into sharp plucks or smooth pads. -
Dynamic Tremolo (AM) Effect: Expose the Tremolo effect from
ExpressiveVoiceProcessorto the UI (Rate and Depth knobs) and map it toSingingVoiceandSamplerPanelto make TTS playback more rhythmic. -
Per-Step Freeze Amount: Implemented
freezeparameter inNoteSelectorand mapped it throughuseAudioEnginetoSingingVoiceto allow for rhythmic, per-step granular stutters and smears. -
Step-Sequenced Formant Shifts: Allow users to pitch shift the formants of the TTS engine independently of the fundamental frequency per step.
-
Text-to-Drumkit: Implement logic to generate drum kit sequences by mapping short transient consonants to hats/snares and vowels to kicks based on TTS phrases.
-
Dynamic Phoneme Pitch Glide: Implemented pitch slide logic in
SingingVoice.ts,useAudioEngine.tsandApp.tsxto glide TTS pitch naturally when a step has slide enabled. -
Slice Mode UI: Add a toggle in
SamplerPanelto enable "Phoneme Slice Mode", allowing users to play slices via MIDI keyboard. -
Visual Slice Feedback: Highlight the active phoneme slice in the UI during playback, visualizing real-time TTS articulation.
-
Rubber-Band Selection: Implement multi-note selection via mouse drag in
Sequencer.tsx(andApp.tsxmain view). -
Clipboard Operations: Standardize
Ctrl+C/Ctrl+Vlogic to handle both Note Data and associated TTS Metadata (which word is attached to the note). -
Per-Step Parameters: Create a UI to edit "Expression" or "Timbre" for individual sequencer steps (vital for humanizing TTS output).
-
Melodic Lyric Mode: Decouple "Slice Selection" from "Pitch" in the Sampler. Allow playing melodies (Pitch) while triggering specific phonemes (Slice Index) via
LyricMapper. -
Note Slice UI: Visualize the selected phoneme/slice index directly on the sequencer note (e.g., small text label) to improve TTS workflow.
-
Unify Sequencer Components: Refactor
App.tsxto use the standaloneSequencercomponent or moveApp.tsxlogic into a reusable view to reduce duplication. -
Glitch Mode: Add a probability knob that randomly retriggers/stutters the start of a TTS sample (granular synthesis) in the UI.
-
Cleanup Legacy Code: Identify and remove unused components like
src/components/Sequencer.tsxto streamline maintenance. -
Refactor NoteSelector Focus Management: Verified
NoteSelectorrobustness with new test suitesrc/components/__tests__/NoteSelector.test.tsxmockingrequestAnimationFrame. -
Step-Sequenced Drive: Allow individual sequencer steps to override the global Drive/Distortion amount for aggressive, rhythmic vocal accents.
-
Glissando/Portamento Curves: Allow users to draw custom pitch curves or select between Linear and Exponential glide types between steps. (Implemented Exponential Glide in
SingingVoice.ts!) -
Per-Step Breath Intensity: Allow sequence steps to override global breathiness for rhythmic breathing and whisper effects. (Implemented in
useAudioEngine.ts!) -
Custom Sample Slicing UI: Add a waveform view to
SamplerPanelthat allows users to manually add, move, and remove transient markers for slicing a custom WAV file instead of just auto-slicing by phoneme. -
Voice Layering / Chorus per Voice: Allow a detune spread parameter per step for instant vocal thickening.
-
Gesture Controls: Implement pinch-to-zoom for the sequencer timeline to handle longer patterns or finer steps.
-
Custom Waveform LFO: Allow users to draw custom LFO shapes for formant and freeze modulation. (Implemented in FormantShifter and SamplerPanel using DrawableLFO and PeriodicWave via DFT!)
-
Gesture Controls: Implement pinch-to-zoom for the sequencer timeline to handle longer patterns or finer steps.
-
Custom Waveform LFO: Allow users to draw custom LFO shapes for formant and freeze modulation.
-
Vocal Formant Envelope: Add a dedicated Attack/Decay envelope specifically for formants to create plucky or sweeping vocal filter effects on every note.
-
Step-Sequenced Reverb Types: Allow sequence steps to override the global reverb type (e.g., switch from a small room to a massive hall on a specific snare or vocal slice).
-
Per-Step Delay Send: Allow sequence steps to override the global delay send amount to create rhythmic echoes for TTS or synth sequences.
- Touch Targets: Audit
Sequencer.tsxclick listeners to ensure mobile drag-to-create works smoothly. - A11y Colors: Verify high-contrast separation between
synth-1(Chords) andsynth-2(Lead) notes. - Formant Automation: Implemented continuous vowel morphing by drawing curves for formant shift over time, interpolating parameters globally.
- [2026-04-25] - Implemented Step-Sequenced Reverb Types: Added
reverbTypeparameter toNoteinterface and updatedNoteSelectorUI to include a space dropdown (Room, Plate, Hall). RefactoreduseAudioEngine.tsto instantiate all three convolution spaces simultaneously to prevent pop artifacts on hot-swapping and updatedaudioPlayback.tsrouting to send signals to the correct activereverbNodesRefbased on the sequence step.
-
Idea: "Spectral Granulator" - Add a granular synthesis mode to the sampler that uses FFT to freeze and smear TTS phonemes over time. (Implemented in Sampler and RubberBandProcessor via a 100ms looping Hann window!)
-
Idea: "Chord Evolving" - Allow drawing automation curves for the chord inversions or voicings used by
VoiceManagerin Polyphonic Synth A. (Implemented via automation track logic inuseStepHandler.tsandApp.tsx!) -
Idea: "Step-Sequenced Formant Shifts" - Allow users to pitch shift the formants of the TTS engine independently of the fundamental frequency per step. These are concepts to be fleshed out by the agent during "Architect Mode".
-
Idea: "Voice Layering / Chorus per Voice" - Allow a detune spread parameter per step for instant vocal thickening. (Implemented per-step choir in NoteSelector/useAudioEngine!)
-
Idea: "Lyric Track" - A global text input that automatically distributes syllables across selected MIDI notes. (Implemented via global Lyric Track lane and
sliceIndexauto-mapping!) -
Idea: "Choir Stack" - Using Polyphony to detune the TTS voice slightly on 3 channels to create a chorus effect. (Implemented via Polyphonic Singing update!)
-
Idea: "Gesture Controls" - Implement pinch-to-zoom for the sequencer timeline to handle longer patterns or finer steps.
-
Idea: "Per-Step Reverse" - Allow reversing the TTS sample on a per-step basis for creative rhythmic effects. (Implemented in Sampler phoneme slicing!)
-
Idea: "Dynamic Phoneme Pitch Bends" - Allow drawing pitch bend automation within a single phoneme slice (e.g. going up a fifth on a single vowel). (Implemented as Slide/Glide property!)
-
Idea: "Text-to-Drumkit" - Auto-generate a drum kit from a TTS phrase by mapping short transient consonants (t, k, p) to hats/snares and vowels to kicks/toms.
-
Idea: "Vocal Envelope Shaper" - Add granular attack/decay ADSR shaping explicitly for TTS syllables to create sharp plucks or smooth pads from any word. (Implemented in ExpressiveVoiceProcessor and exposed to SamplerPanel!)
-
Idea: "Dynamic Tremolo" - Expose Tremolo Rate and Depth to UI to pulse vocals. (Implemented!)
-
Idea: "LFO to Freeze Amount" - Automate the Freeze parameter with an LFO to create rhythmic pulsing granular clouds. (Implemented in RubberBandProcessor and exposed to SamplerPanel!)
-
Idea: "Per-Step Filter & Resonance" - Allow sequence steps to override cutoff and resonance for rhythmic acid-style filtering of TTS samples. (Implemented!)
-
Idea: "Filter Envelope Mod" - Allow the sequence steps to have an envelope mod amount that specifically shapes the filter envelope per step. (Implemented!)
-
Idea: "Vocal Formant LFO" - Introduce a Formant LFO with rate and depth controls for dynamic rhythmic Wah-Wah effects on TTS vowels. (Implemented in FormantShifter and SamplerPanel!)
-
Idea: "Step-Sequenced Formant LFO" - Allow individual steps to override the global Formant LFO rate and depth for highly articulated rhythmic sequences.
-
Idea: "Custom Waveform LFO" - Allow users to draw custom LFO shapes for formant and freeze modulation. (Implemented in FormantShifter and SamplerPanel using DrawableLFO and PeriodicWave via DFT!)
-
Idea: "LFO Rate Sync to Tempo" - Allow LFO rates (like Formant LFO or Freeze LFO) to sync to the sequencer tempo. (Implemented in NoteSelector, SamplerPanel, and useAudioEngine!)
-
Idea: "Microtonal Scale Mapping" - Allow specifying custom microtonal scales rather than the standard 12-TET for Synth and Sampler parts.
-
Idea: "Custom Waveform LFO" - Allow users to draw custom LFO shapes for formant and freeze modulation. (Implemented via DrawableLFO and FormantShifter Fourier Transform!)
-
Idea: "Glissando/Portamento Curve Drawing" - Allow users to draw custom pitch curves between steps, rather than just a linear glide. (Implemented!)
-
Idea: "Phoneme-Aware Velocity" - Automatically adjust the amplitude envelope attack/decay based on the phoneme type (e.g., plosives get faster attack, vowels get smoother attack). (Implemented via dynamic envelope overrides in
SingingVoice.ts!) -
Idea: "Spectral Morphing" - Implement functionality to morph spectrally between two different TTS phonemes or samples over a sequence of steps. (Implemented via FormantShifter Voice Character Morphing and step-sequenced automation!)
-
Idea: "Dynamic Reverb" - Allow users to draw automation curves for reverb send per step. (Implemented!)
-
Idea: "Global Saturation / Tape Warmth" - Add a master channel saturation unit to glue the mix together. (Implemented via WaveShaperNode!)
-
Idea: "Auto-Slice by Transients" - Use energy-based analysis to automatically detect and place slice markers at drum hits or clear transients when a custom sample is loaded. (Implemented via
AUTO-SLICEbutton logic inWaveformDisplayandSamplerPanel!) -
Idea: "Per-Step Delay Send" - Allow sequence steps to override the global delay send amount to create rhythmic echoes for TTS or synth sequences. (Implemented!)
-
Idea: "Vocal Formant Envelope" - Add a dedicated Attack/Decay envelope specifically for formants to create plucky or sweeping vocal filter effects on every note. (Implemented in FormantShifter and SamplerPanel!)
-
Idea: "Step-Sequenced Reverb Types" - Allow sequence steps to override the global reverb type (e.g., switch from a small room to a massive hall on a specific snare or vocal slice). (Implemented via three separate global ConvolverNodes inside useAudioEngine allowing glitchless dynamic per-step routing!)
-
Idea: "AI Auto-Mix Assistant" - Automatically adjusts levels, panning, and EQ based on track content to maintain a balanced mix.
-
Idea: "Real-time Convolution Reverb for Vocal Spaces" - Enhance the dynamic reverb by allowing users to select impulse response types. (Implemented!)
-
Idea: "Per-Step Breath Intensity" - Allow sequence steps to override global breathiness for rhythmic breathing and whisper effects. (Implemented!)
-
Idea: "Advanced Slice Tuning" - Allow users to fine-tune slice sensitivity and adjust the threshold parameters for Auto-Slice. (Implemented in
SamplerPanelandWaveformDisplay!) -
Idea: "Per-Step Delay Send" - Allow sequence steps to override the global delay send amount. (Implemented!)
-
Idea: "Master Bus Compressor" - Add a
DynamicsCompressorNodeto the master output for gluing the mix together. (Implemented via a fixed "Glue Compressor" block before the Master Gain!) -
Idea: "Sidechain Compression" - Allow routing the kick drum to a dedicated sidechain bus to dynamically duck the bass/synths. (Implemented via scheduled GainNode automation on kick hits!)
- Idea: "Granular Envelope Follower" - Allow mapping the amplitude envelope of the voice sample to control granular parameters like grain size or freeze amount.
- [2026-06-29] - Implemented Sidechain Compression: Added
sidechainBusbetween the master saturation and master compressor to duck Synths/Basses when the kick drum triggers. ImplementedtriggerSidechainDuckinaudioPlayback.tsto use deterministic native browser parameter scheduling (linearRampToValueAtTime/exponentialRampToValueAtTime) on the new sidechain gain node to avoid CPU overhead and achieve a classic EDM pump. Fulfills the "Sidechain Compression" Innovation Lab idea. - [2026-06-28] - Implemented LFO Rate Sync to Tempo: Added toggles and subdivision dropdowns to
SamplerPanelandNoteSelectorforfreezeLfoRateandformantLfoRate. UpdateduseAudioEngine.tsto calculate real-time Hz values from BPM and note subdivisions when sync mode is enabled. Fulfills the "LFO Rate Sync to Tempo" Innovation Lab idea. Added new idea: "Granular Envelope Follower". - [2026-06-27] - Implemented Master Bus Compressor: Inserted a default
DynamicsCompressorNodeconfigured as a gentle "Glue Compressor" (Threshold: -15dB, Ratio: 4:1, Attack: 30ms, Release: 250ms) into the master audio chain (masterSaturation->masterCompressor->masterGain->masterPanner). UpdateduseAudioEngine.tsto reflect the new master bus input point and updatedPlaybackRefs. - [Date] - Implemented Custom Waveform LFO: Added
DrawableLFOcomponent to allow users to draw custom LFO shapes for formant modulation. Integrated withFormantShifter.tsto convert the drawn array into aPeriodicWaveusing a Discrete Fourier Transform (DFT), passingformantLfoShapefrom theSamplerPanelthroughSingingVoiceanduseAudioEngine. Added new ideas: "LFO Rate Sync to Tempo" and "Microtonal Scale Mapping". - [2026-06-27] - Implemented Vocal Formant Envelope: Added Formant Envelope parameters to
SamplerBankParamsandNoteinterfaces, allowing users to modulate formant detune amounts via an attack/decay envelope onConstantSourceNodeandGainNode. Added global and per-step controls toSamplerPanelandNoteSelector. - [2026-06-27] - Verified Gesture Controls: Confirmed pinch-to-zoom is fully implemented in
MainSequencer.tsxand marked as complete. - [2026-06-27] - Implemented Per-Step Delay Send: Added
delaySendparameter toNoteinterface and updatedNoteSelectorUI to include a slider. Plumbed the parameter throughApp.tsxand updateduseAudioEngine.tsto allow both Sampler (playSamplerVoice) and Synth (VoiceManager) engines to override the global delay send bus per-step. Fulfills the "Per-Step Delay Send" Innovation Lab idea. - [2026-06-26] - Implemented Custom Waveform LFO: Added a new
DrawableLFOcanvas component toSamplerPanelallowing users to draw an arbitrary LFO shape. Added a Discrete Fourier Transform (DFT) engine insideFormantShifter.tsto convert the normalized shape into aPeriodicWaveused by the internal Web AudioOscillatorNode. - [2026-06-25] - Implemented Step-Sequenced Formant Shifts: Added
formantShiftparameter toNoteinterface andNoteSelectorUI. Wired it throughuseAudioEngineanduseStepHandlerto allow per-step overrides of the global Formant Shift parameter, fulfilling the "Step-Sequenced Formant Shifts" Innovation Lab idea. - [2026-06-24] - Implemented Real-time Convolution Reverb for Vocal Spaces: Added
ReverbType('room', 'plate', 'hall') totypes.tsand updateduseAudioEngine.tsto dynamically generate and swap the convolution impulse response based on the selected type usingcreateReverbImpulseResponse. Added a dropdown selector toApp.tsxnext to the Master Saturation control to allow global reverb type switching. - [2026-06-23] - Implemented Advanced Slice Tuning: Added an auto-slice sensitivity slider to the
WaveformDisplaycomponent. Plumbed the sensitivity state throughSamplerPaneldown toPhonemeAligner.detectSegmentBoundariesvia a newthresholdMultiplierparameter, allowing users to fine-tune transient detection for different sample types. - [2026-06-22] - Implemented Auto-Slice by Transients: Added an "AUTO-SLICE" button to the
WaveformDisplaycomponent that uses energy-based peak detection inPhonemeAligner.tsto automatically detect drum hits and transients and populate custom slice markers. - [2026-06-21] - Implemented Custom Sample Slicing UI: Enhanced
WaveformDisplay.tsxto support interactive mousedown, drag, and double-click events, allowing users to manually slice custom WAV files directly on the canvas. Connected to the AudioEngine viasetAlignment. - [2026-06-20] - Implemented Glissando/Portamento Curves & Per-Step Breath Intensity: Added
slideTypeparameter (Linear/Exponential) to allow musical variations of pitch glides in TTS, and allowed individual steps to override global breath noise viabreathIntensity. Added Custom Sample Slicing UI to Active Backlog. - [2026-06-19] - Implemented Global Saturation: Added a master channel
WaveShaperNodewith a variable distortion curve mapped to a "Warmth" (Saturation) slider in the top utility UI. Routed the entire master mix through it to add glue and presence. Added new idea: "AI Auto-Mix Assistant". - [2026-06-18] - Implemented Dynamic Reverb: Added a
ConvolverNodehooked up to the master output with a generated exponential decay noise impulse response. MappedreverbSendfrom individual sequence steps inNoteSelectorto send audio from the TTSSingingVoiceinto the new global reverb bus. Added new idea: "Global Saturation / Tape Warmth". - [2026-06-17] - Implemented Spectral Morphing: Added
characterMorphandmorphTargetto allow smooth interpolation between voice characters (e.g., male to female) per sequence step usingFormantShifter.ts. Added Morph knob and target selector toSamplerPanel.tsxand override controls toNoteSelector.tsx. - [2026-06-16] - Implemented Phoneme-Aware Velocity: Modified
triggerSliceinSingingVoice.tsto dynamically scale the amplitude envelope attack and decay based on thephoneme.categoryparameter (e.g., extremely fast attack for plosives, smoother attack for vowels). Added new Innovation Lab idea: Spectral Morphing. - [2026-03-31] - Implemented Phoneme-Aware Velocity: Modified
SingingVoice.tsandtriggerSliceto dynamically scale the envelope attack and decay based on thephoneme.categoryproperties (e.g. extremely fast attacks for plosives, smooth for vowels) for more natural articulated vocal rendering. Added new idea: Voice Layering / Chorus per Voice. - [2026-06-15] - Implemented Step-Sequenced Vibrato: Added
vibratoDepthcontrols to theNoteSelectorcomponent and wired them intoApp.tsxanduseAudioEngine.tsto allow per-step overrides of the global Vibrato Depth for natural phrasing. Added new ideas: "Glissando/Portamento Curve Drawing" and "Phoneme-Aware Velocity". - [2026-06-14] - Implemented Step-Sequenced Formant LFO: Added
formantLfoRateandformantLfoDepthcontrols to theNoteSelectorcomponent and wired them intoApp.tsxanduseAudioEngine.tsto allow per-step overrides of the global Formant LFO settings for dynamic, rhythmic Wah-Wah effects. Added new idea: Custom Waveform LFO. - [2026-06-13] - Implemented Vocal Formant LFO: Added
formantLfoRateandformantLfoDepthtoFormantShifter.ts, routing an internal oscillator to the detune parameters of the peaking filters to create a rhythmic Wah-Wah effect. Added UI controls toSamplerPanel.tsx. Fulfills the "Vocal Formant LFO" Innovation Lab idea. Added new idea: Step-Sequenced Formant LFO. - [2026-06-12] - Implemented Chord Evolving: Added 'Chord Inversion' automation parameter allowing users to draw curves that dynamically shift the inversions of chords per step for synth and bass tracks, fulfilling the Chord Evolving Innovation Lab idea.
- [2026-06-11] - Implemented Global Lyric Track: Replaced
LyricMapperdialog with a dedicatedLyricTrackcomponent inApp.tsx. Text generation now automatically maps syllables/words to consecutive active notes in the sequence usingsliceIndex, fulfilling the Lyric Track Innovation Lab idea. - [Date] - Implemented Dynamic Tremolo Effect: Exposed Tremolo Rate and Depth knobs to the
SamplerPanelUI and mapped them throughuseAudioEngine.tsandSingingVoice.tsdown to theRubberBandProcessorAudioWorklet to allow dynamic amplitude modulation for rhythmic pulsing effects on vocals. - [2026-06-10] - Implemented Vocal Envelope Shaper: Upgraded
ExpressiveVoiceProcessorto support a full ADSR (Attack, Decay, Sustain, Release) envelope for TTS samples. Added Decay and Sustain knobs to theSamplerPanelUI and mapped parameters viaSingingVoiceanduseAudioEngine. Added a new Innovation Lab task for Tremolo Effect. - [2026-06-09] - Implemented Filter Envelope Mod: Added
envModcontrol toNoteSelectorand wired it throughApp.tsxandaudioPlayback.tsto allow step-sequenced filter envelope modulation amounts. - [2026-06-08] - Implemented Per-Step Filter & Resonance: Mapped
noteParams.filterCutoffandnoteParams.filterResonanceinuseAudioEngine.tsto process per-step filter configurations correctly on both stretch (TTS SingingVoice) and standard buffer sampler playback nodes. - [2026-06-07] - Implemented LFO to Freeze Amount: Added
freezeLfoRateandfreezeLfoDepthtoRubberBandProcessorparameter descriptors and processing logic to allow rhythmic granular cloud pulsing. Integrated UI controls inSamplerPanel. - [2026-06-07] - Implemented Per-Step Freeze Amount: Added
freezeparameter toNoteSelectorUI and mapped tonoteParamsinuseAudioEngineandSingingVoice.tsfor per-step granular synthesis control. - [2026-03-14] - Implemented Step-Sequenced Formant Shifts: Updated
SingingVoice.tsto utilizeFormantShifter.tsand enabled formant shifting inuseAudioEngine.tsto process per-step timbre offsets correctly via Biquad filters. - [2026-06-06] - Implemented Spectral Granulator: Added
freezeparameter toRubberBandProcessorto continuously loop a ~100ms Hann-windowed grain when activated. Wired toSamplerPanelandNoteSelectorfor global and per-step granular smearing. - [2026-06-06] - Implemented Formant Automation: Updated
FormantShifter.ts,SingingVoice.ts, anduseAudioEngine.tsto support continuous interpolation (linearRampToValueAtTime) of formant shifting over step durations during automation playback. - [2026-06-06] - Implemented Spectral Granulator (Freeze): Integrated granular freeze into
rubberband-processor.tsby halting the sample read pointer and looping a ~100ms grain, smearing TTS phonemes. Added Freeze knob to SamplerPanel. - [2026-06-05] - Implemented Text-to-Drumkit Feature: Added a 'TEXT TO DRUMS' action in the Lyric Mapper that automatically populates the Kick, Snare, and Hi-Hat tracks by rhythmically mapping TTS phonemes based on their phonetic properties (vowels to kicks, fricatives/plosives to hats and snares).
- [2026-06-04] - Implemented Dynamic Phoneme Pitch Glide: Enhanced
SingingVoiceand sequencer to slide between TTS phonemes smoothly when slide is active. - [2026-06-03] - Implemented Per-Step Reverse: Updated
SingingVoice.tsanduseAudioEngine.tsto allow reversing individual TTS phoneme slices on a per-step basis, matching the "Per-Step Reverse" Innovation Lab idea. - [2026-03-03] - Implemented A11y Colors: Updated
getNoteColorlogic to apply complementary hue shifts and lightness contrast forsynth-2(Bass/partB) notes vssynth-1(Lead/partA), significantly improving visual separation in the sequencer. - [Date] - Roadmap re-initialized for long-term recursion.
- [Date] - Implemented Vocal Envelope: Added Attack/Release envelope controls to
ExpressiveVoiceProcessorand exposed them toSamplerPanelto allow softer vocal attacks and prevent clicks on rapid retriggering. ImprovedSingingVoice.tsprecise noteOff timing handling via absolute target times. - [Date] - Implemented Glitch Mode UI: Added probability knob for random TTS retriggers.
- [2026-06-02] - Implemented Polyphonic Singing: Added
SingingVoiceManagerto handle a pool of TTS voices, enabling chord playback and multi-voice "Choir" effects in the Sampler. - [2026-06-01] - Wired up Melodic Lyric Mode in
App.tsx, connecting state toSamplerPaneltoggle andMainSequencerrendering. Verified and testedNoteSelectoraccessibility. - [2026-05-30] - Implemented Note Slice UI: Visualized TTS phonemes directly on sequencer steps in
MainSequencer.tsx. Verified absence of legacySequencer.tsx. - [2026-02-05] - Implemented Phoneme Elasticity in Sampler Engine.
- [2026-05-21] - Refactored SingingVoice state management to eliminate type casting hacks and improve multi-bank alignment handling.
- [2026-05-22] - Implemented TTS Slice Triggering (Phoneme Mode) in Audio Engine.
- [2026-05-23] - Implemented Slice Mode UI in SamplerPanel, enabling Phoneme Slice Mode triggering via MIDI keys.
- [2026-05-24] - Implemented Rubber-Band Selection (Shift+Drag) in the main sequencer view (
App.tsx), enabling multi-step selection and bulk deletion. - [2026-05-25] - Implemented Hybrid Polyphony using
VoiceManager, enabling 8-voice polyphony for Synth A and legato monophony for Synth B. - [2026-05-26] - Implemented Visual Slice Feedback in SamplerPanel using canvas-based WaveformDisplay and imperative playback highlighting.
- [2026-05-27] - Implemented Clipboard Operations (Ctrl+C/V) and Drag-to-Edit (Painting) in the main sequencer view (
App.tsx). - [2026-05-28] - Implemented Per-Step Parameters (Timbre, Probability, Microtiming) in Audio Engine and NoteSelector UI.
- [2026-05-29] - Implemented Phoneme-Aware Time Stretching DSP in RubberBandProcessor, enabling dynamic vowel stretching during playback.
- [2026-05-29] - Implemented Melodic Lyric Mode: Added
sliceIndexto Note data, allowing independent pitch control and slice triggering for "Singing" TTS. Updated LyricMapper to preserve pitch. - [2026-05-30] - Refactored Sequencer UI: Extracted
Sequencer,SequencerRow,SvgStepinto dedicated components, removed legacy code, and centralized sequencer constants.