diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-26 12:25:14 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-26 12:25:14 +0300 |
| commit | b99f2c6f8f426e97dea97ef2938fc3312690a0fe (patch) | |
| tree | 656c673715bb0c4bebcc3ceea3501dec8f566b21 /internal/version/version.go | |
| parent | e9bddae89614f12ce7d2d26e70c2c2de3b90590e (diff) | |
audio: make ambient music polyphonic with real songs, fix engine silence
Rewrite all 19 theme ambient presets with chord progressions, bass drones,
overlapping chord pads (dur > step on melodyNote), and swing melodies.
Add per-theme 16-step drum patterns (kick, snare, hat, clap) synthesized
in the Web Audio engine.
Go (theme_sounds.go):
- Add Step field to melodyNote for sequencer timing independent of duration
- Add Drums []string field to ambientPreset for 16-step patterns
- Add buildMeasure, buildSong, buildSwingMelody, and pat helpers
- Rewrite every sounds*() func with I–IV–V–I progressions, bass, and melody
JS (shared.js):
- Fix startEngine() to await ctx.resume() before scheduling
- Make masterGain a binary gate (fade to 1.0 in ~50 ms), not preset.gain
- Fix startDrones() to scale by preset.gain instead of 1.0/numDrones
- Add twin-oscillator detuned timbre in playMelodyNote()
- Add synthesized drum engine: playDrum(), scheduleDrums(), stopDrums()
- Keep splash sounds bypassing masterGain so they never get gated out
Diffstat (limited to 'internal/version/version.go')
0 files changed, 0 insertions, 0 deletions
