Repository navigation
feat(audio): E2-Chord-Noten klingen in der Engine (v3.311.0) - #38
Merged
Merged
Conversation
Schliesst das v3.310-'next': importierte/editierte Akkorde (E2-Step-Bytes 5..7) waren sichtbar und roundtrip-fest, aber in der Preview stumm. - _scheduleStep triggert pro gueltiger Chord-Note eine zusaetzliche Stimme. Sample-Pfad: _triggerBufferWithFx mit Pitch = Note-72 (E2-Basis C5, identisch zu synthPitchToE2Note), gleiches Buffer inkl. reverse/stretch. Synth-Pfad: _triggerSynthOnChannel mit 440*2^((Note-72)/12). Velocity und Note-Laenge wie die Hauptnote. - Neuer auxVoice-Parameter an _triggerSynthOnChannel: Chord-Stimmen lesen und schreiben den _partSlideState nicht — sonst wuerde der naechste TB-303-Slide von der letzten Chord-Note statt von der Hauptnote starten. Chord-Stimmen sliden selbst nie. - Exportierte Helper chordVoicePitches() + E2_CHORD_BASE_NOTE (pure, testbar); 0-Slots und Werte ausserhalb MIDI 1..127 fallen raus. - Melodischer Pfad (Piano Roll) bleibt bewusst ohne Akkorde — das Feature stammt aus dem Drum-Step-Import. 7 neue Tests (e2-chord-playback.test.ts) ueber die _scheduleStep-Seam: Sample 1+N Voices mit richtigen Pitches, keine Regression ohne Akkord, Synth-Frequenzen + auxVoice-Flags, Slide-State bleibt auf der Hauptnote. tsc clean, Vollsuite 11480 gruen / 37 skipped. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Schließt das v3.310-„next": importierte bzw. editierte Akkorde (E2-Step-Bytes 5..7) waren im Step-Editor sichtbar und roundtrip-fest, aber in der Preview stumm.
Was neu ist
_scheduleSteptriggert pro gültiger Chord-Note eine zusätzliche Stimme. Sample-Pfad:_triggerBufferWithFxmit Pitch = Note − 72 (E2-Basis C5 — dieselbe Konvention wiesynthPitchToE2Notebeim Export), gleiches Buffer inkl. Reverse/Stretch. Synth-Pfad:_triggerSynthOnChannelmit 440·2^((Note−72)/12). Velocity und Note-Länge wie die Hauptnote.auxVoice-Parameter an_triggerSynthOnChannel: Chord-Stimmen lesen und schreiben den_partSlideStatenicht — sonst würde der nächste TB-303-Slide von der letzten Chord-Note statt von der Hauptnote starten. Chord-Stimmen sliden selbst nie.chordVoicePitches()+E2_CHORD_BASE_NOTE = 72(exportiert, testbar); 0-Slots und Werte außerhalb MIDI 1..127 fallen raus.Damit ist die Akkord-Kette komplett: Format entschlüsselt (v3.308) → sichtbar (v3.309) → editierbar (v3.310) → hörbar (v3.311).
Tests
7 neue Tests in
tests/features/e2-chord-playback.test.tsüber die_scheduleStep-Seam (Muster ausaudio-schedule-step-alloc.test.ts): pure Umrechnung, Sample-Pfad 1+N Voices mit richtigen Pitches, Keine-Regression ohne Akkord, Synth-Frequenzen + auxVoice-Flags, Slide-State bleibt auf der Hauptnote.Stand: tsc clean, Vollsuite 11480 grün / 37 skipped.
🤖 Generated with Claude Code