Commit Graph

10 Commits

Author SHA1 Message Date
b1rdmania 7a7a76a92b v2: Mute noise channel temporarily 2026-01-26 00:12:27 +00:00
b1rdmania f829e992c7 v2: Fix playback engine with progressive scheduling and gain tuning
- Add progressive note scheduling (2 seconds ahead) to prevent browser overwhelm
- Tune channel gains: pulse 0.12, wave 0.15, noise 0.02
- Reduce per-note noise gains for cleaner drums
- Re-enable arpeggiation for harmony tracks
- Limit to 8 channels max
- Add scheduler cleanup on stop
2026-01-26 00:10:48 +00:00
b1rdmania f095f9a2a7 Fix distortion with limiter and reduced gains
- Added DynamicsCompressorNode limiter at master output
- Reduced channel gains (pulse: 0.08, wave: 0.12, noise: 0.05)
- Disabled arranger by default (was adding overlapping notes)
- Total max gain now 0.66 with headroom for overlap
2026-01-20 20:05:32 +00:00
b1rdmania 5b294f2e5a Simplify audio chain - bypass all effects to fix distortion
- Bypass colorizer entirely (master -> destination directly)
- Remove wave channel lowpass filter
- Clean, direct audio path with no processing
- Should eliminate all distortion artifacts
2026-01-20 19:58:54 +00:00
b1rdmania 6dec8bf7cd Simplify v2 - remove GBC/GBA/Clean presets
- Removed sound mode buttons from UI
- Simplified colorizer to just one clean GB sound
- Less complexity, cleaner interface
2026-01-20 19:56:35 +00:00
b1rdmania dd4e1cfebd Fix clicky distortion - proper gain staging and reduced saturation
- Reduced channel gains: pulse 0.12, wave 0.18, noise 0.08
- Total max gain now ~1.0 instead of 2.7 (was clipping)
- More aggressive limiter: -12dB threshold, ratio 20
- Reduced saturation from 0.2-0.3 to 0.08-0.1 in all presets
- Should eliminate clicky distortion during playback
2026-01-20 19:55:03 +00:00
b1rdmania 9311e82538 Fix bass channel - warmer, less synthetic sound
- Use pure triangle wave for bass preset (warmest option)
- Reduce harmonics from 64 to 16 with gentle rolloff
- Add 2kHz low-pass filter to wave channel
- Route all wave sounds through filter for warmth
2026-01-20 19:50:55 +00:00
b1rdmania 03738dd68c Disable phantom drum track and hi-hats in arranger 2026-01-20 19:45:37 +00:00
b1rdmania 7aa1d6f660 Fix stop button - track and stop all active audio nodes
- Track all oscillators/sources in APU activeNodes Set
- Add stopAll() method that immediately stops all tracked nodes
- Auto-remove nodes from tracking when they end naturally
- GameBoyPlayer.stop() now calls apu.stopAll()
2026-01-20 19:45:08 +00:00
b1rdmania 5e127c3a3e Add v2 Game Boy sound engine (isolated from v1)
- Authentic DMG-CPU sound chip implementation:
  - 4 Pulse channels with duty cycle control (12.5%, 25%, 50%, 75%)
  - 2 Wave channels with 4-bit wavetables
  - 2 Noise channels with LFSR (7-bit and 15-bit modes)

- GameBoy Colorizer effect chain:
  - Low-pass filter (natural GB rolloff)
  - Bit-crushing (4-bit DAC simulation)
  - Sample rate reduction
  - Saturation and high-pass filter
  - Presets: DMG, GBC, GBA, Clean

- Intelligent MIDI processing:
  - Track analysis and role detection (bass, lead, drums, etc.)
  - Automatic channel mapping to GB channels
  - Chord arpeggiator for polyphony handling
  - GameBoy Arranger for fuller sound

- BitMidi search integration
- Completely isolated from v1 (no changes to src/)
2026-01-20 19:36:13 +00:00