Skip to content

feat: Phase 2 — Audio module (MorsePlayer, WAV export, presets)#3

Merged
vaibhav1312 merged 1 commit intomainfrom
feat/audio
Mar 27, 2026
Merged

feat: Phase 2 — Audio module (MorsePlayer, WAV export, presets)#3
vaibhav1312 merged 1 commit intomainfrom
feat/audio

Conversation

@vaibhav1312
Copy link
Copy Markdown
Collaborator

Phase 2 — Audio

What's new

  • MorsePlayer — Web Audio API playback with play/pause/stop, gain envelope for click-free audio
  • 6 sound presets — telegraph, radio, military, sonar, naval, beginner (Farnsworth)
  • WAV export — toWav(), toWavBlob(), toWavUrl(), downloadWav()
  • Scheduler — morse to timed tone/silence events (shared by player + WAV)
  • Event callbacks — onPlay, onPause, onStop, onEnd, onSignal, onCharacter, onProgress
  • Sub-path export — @morsecodeapp/morse/audio

Numbers

  • 191 tests (12 files), all passing
  • 99.2% statement coverage, 100% function coverage
  • Bundle sizes: core 3.43KB, audio 5.37KB, full 6.45KB (gzipped)
  • 14 files changed, 2,002 insertions

Phase 2 implementation:
- MorsePlayer class (Web Audio API, play/pause/stop, gain envelope)
- 6 sound presets (telegraph, radio, military, sonar, naval, beginner)
- WAV export (toWav, toWavBlob, toWavUrl, downloadWav)
- Scheduler for morse → timed events
- Farnsworth spacing support in audio playback
- Event callbacks (onPlay, onPause, onStop, onEnd, onSignal, onCharacter, onProgress)
- Sub-path export: @morsecodeapp/morse/audio
- 191 tests, 99.2% statement coverage, 100% function coverage
- Bundle: core 3.43KB, audio 5.37KB, full 6.45KB (all gzipped)
@vaibhav1312 vaibhav1312 merged commit a0b675f into main Mar 27, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant