
Building a Millisecond-Accurate Morse Engine in JavaScript (Syncing 600Hz Web Audio, SVG, and the Camera Torch)
Most Morse code generators on the web do two things wrong: they render signals as plain periods (.)...
Tag archive

Most Morse code generators on the web do two things wrong: they render signals as plain periods (.)...
A score can contain a note that lasts beyond the passage someone selected for practice. If a player...
A printed tempo mark can say eighth note = 120, while a playback timeline measures speed in quarter...
A sampled piano can have many recordings for different pitches and playing strengths. Loading them...
Lessons from building live speech-to-text plus translation in plain browser JavaScript: audio capture, sentence segmentation, LLM translation with context, and latency.
How to record the audio of another browser tab (YouTube, web meetings) from a web app with getDisplayMedia, and the gotchas around video tracks, user gestures, cancellation, restarts and audio processing.
I build SongUp AI. This is the story of rebuilding one of its free tools, the Mashup Creator, and...
A practice loop can start below a score's written tempo and rise a little on each pass. The useful...
In the last post we made the browser beep in Morse. This one goes the other way: take sound from a...
Disclosure: I’m Giang Pham, Pianory’s maker. AI helped draft this source-based article. It describes...

When you finish a swim, Apple Watch can play a short, buzzy tone to push water out of its speaker....
A Morse code player only needs a few pieces: an oscillator for the tone, a gain node to turn it on...