A C# Nokia Composer Emulator From First Principles
summary
A working Nokia 3310 composer emulator implemented in C# .NET Core parses the ringtone text transfer language with a regex parser (avoiding parser combinators), compiles notes to frequencies using 12‑tone equal temperament with A1 = 220 Hz, and outputs audio via the browser Web Audio API or as downloadable 44.1 kHz 16‑bit PCM WAV files. The project reproduces classic monophonic ringtones, exposes click artifacts in raw WAV transitions (no smoothing), and is available on GitHub.
AI-written summary · about
chapters (21)
- 0:00Nokia 3310 emulator intro
- 1:30Why build the emulator
- 2:52Emulator demo
- 4:00Sound generation in browser
- 6:10Custom ringtone from scratch
- 8:01Understanding Ringtone Text Transfer Language syntax
- 10:06Parsing ringtone text
- 13:57Tokens from parsed strings
- 15:00Sound physics and neurology
- 17:47Pure tone waveforms
- 19:13Note durations from tempo
- 22:25Music theory in 3 minutes for the emulator
- 26:19Pythagoras and scales
- 27:2112-tone equal temperament
- 29:50Calculating note frequencies
- 32:19Downloadable audio files
- 33:28Digital audio encoding
- 35:19WAV file packing
- 39:13Emulator design principles
- 43:53Future improvements
- 44:58Answering audience questions
related talks
19mComposing music with composed functions
56mEmulating a Game Boy in .NET 6
51mBuilding a Game Boy emulator in .NET Core!
48mBuilding a Game Boy emulator in .NET Core!
10mMaking Music! In Emacs?!
47mIs .NET any good for Audio?
40mHow I built a ZX Spectrum emulator from scratch using C# and Blazor
47mLearning Music — Developer Edition
