Add vibrato support + fix feedback loop + GUI improvements

Vibrato (LFO frequency modulation):
- New VibratoSpec in SoundSpec: rate (Hz), depth (cents), delay (s)
- ChannelRenderer applies vibrato to frequency each tick
- Supported on Pulse and Triangle channels
- GUI: vibrato controls (enable, rate, depth) in channel panel
- Enables bird chirps, sirens, wobbles

Feedback loop fixes:
- generate_batch now accepts full SoundSpec array (not just names)
  so each sound is unique
- render_sound returns reference examples from feedback DB
- Fixed GUI bug: clicking stars no longer erases feedback text
- Feedback text auto-saves on Enter / focus loss
- Replaced emoji buttons (✓/🗑) with text (Save/Del)
- Green saved indicator when feedback exists in DB

99 tests passing, 0 warnings
This commit is contained in:
Emil
2026-06-21 23:54:25 +03:00
parent 3e2376ac26
commit 58c47fe286
12 changed files with 243 additions and 68 deletions
+3
View File
@@ -132,6 +132,7 @@ mod tests {
frequency: FrequencyAutomation::fixed(440.0),
envelope: None,
filter: None,
vibrato: None,
volume: 0.5,
pan: 0.0,
}],
@@ -156,6 +157,7 @@ mod tests {
frequency: FrequencyAutomation::fixed(440.0),
envelope: None,
filter: None,
vibrato: None,
volume: 0.5,
pan: 0.0,
}],
@@ -182,6 +184,7 @@ mod tests {
frequency: FrequencyAutomation::fixed(440.0),
envelope: None,
filter: None,
vibrato: None,
volume: 1.0,
pan: 0.0,
}],