ZX Spectrum: Experimenting with 1-Bit Sound

ibobev 95 points 31 comments September 08, 2026
bumbershootsoft.wordpress.com · View on Hacker News

Discussion Highlights (15 comments)

_def

reminds me of: https://github.com/protodomemusic/mmml

feintruled

The article ends to a link to a video that shows off the technique and it blows my mind the Spectrum beeper could produce this: https://www.youtube.com/watch?v=7cOu32m3wvQ

fallat

People may enjoy this too https://www.youtube.com/watch?v=_6f8PURcPEE End result of it playing 1-bit music: https://www.youtube.com/watch?v=IjTihhFG03o

bezko

Turns out 1-Bit encoding is the most efficient solution, even for the highest end of audio quality: https://en.wikipedia.org/wiki/Delta-sigma_modulation

alienbaby

Some apparent links don't appear to work at the start of the page, and I couldn't see any links to listen to the output?

mdp2021

I hope everybody knows Tim Follin - or will now come to know his genius. > Agent X ( https://www.youtube.com/watch?v=T42WuUpBuHE ) or Agent X II ( https://www.youtube.com/watch?v=gNc_xczyGLc ) or Chronos ( https://www.youtube.com/watch?v=u-D24A_N4d4 ) or Raw Recruit ( https://www.youtube.com/watch?v=kl8dAVybwq8 ) or Future Games ( https://www.youtube.com/watch?v=orEXKOBIv_8 )... // A modern attempt, the ON and OFF album by Rich 'Tufty' Hollins ( https://www.youtube.com/watch?v=4nEfO4Yu7Mg ) (Repost originally for submission Furnace - the biggest multi-system chiptune tracker ever made https://news.ycombinator.com/item?id=41609254 )

geori

Reminds me of an experiment that we did with TI calculators in the late 90s. Someone found that you can put an AM radio next to the calculator and it would beep based on what instructions were run on the Z80. There were some demos that played songs via 1 bit beeps like this, but since games actually have to run instructions, you couldnt reliably play background music during gameplay.

Zardoz84

It would be interesting if someone could implement or adapt Roman Black's BTC algorithm to model the Speccy beeper. https://www.romanblack.com/BTc_alg.htm

virgil_disgr4ce

A friend of mine built his entire career as a composer around 1-bit music (famously in the form of an album that is physically a circuit inside a jewel case) https://www.youtube.com/watch?v=dBUVKNqdsEo

asdefghyk

I recall, One bit sound was detailed extensively in Byte Magazine starting in mid 70s. A square wave that has its frequency varied. A google of the words " Generating speech with a square wave wave , Byte magazine " picks up lots links about this technique. Fourier transform show a square wave consists of odd sine wave harmonics. [A more advanced technique (more than one bit) would use microprocessor interrups to generate several sqare waves, output them with more than one IO pin and combine them with a resister network] This mention of one bit sound made me remember the Lis’ner 1000 project of Steve Ciarca , cira 1984 , WHICH WAS speech recognition system of about 30 words. It used a GI SP1000 chip

gwbas1c

> multichannel sound through the 1-bit speaker—basically, playing chords. Ahem, that's polyphonic sound, not multichannel sound. Multichannel sound is playback through multiple speakers.

elpepo

Another incredible 1-bit sound demo for ZX Spectrum in just 9KB from Dmitry Milk: https://www.youtube.com/watch?v=98PJFIIJDiA https://speccy.pl/archive/prod.php?id=833

khedoros1

> My previous work with PWM relied on being able to set a hardware timer to control when the speaker turns on and off. I've got an Arduino project where I did that. The output is on a single digital pin, audio encoded as PWM. It turns the output off at the beginning of an audio frame, and sets a timer to trigger an interrupt when it's time to turn the output on. I've got a memory block of event structs, each event representing a write to NES sound hardware. I emulate enough of the features to support everything that the Legend of Zelda title theme uses. 16MHz is more than enough to decide on the sample for 2 square channels, 1 triangle, and 1 noise, outputting a 6-bit output sample at a 31250Hz sample rate. The output is only slightly scratchy; the polyphony is actually surprisingly smooth.

sehugg

I did a PWM demo on the Apple II using a format similar to the DPCM samples on the NES. Those samples have a pretty simple format: a 1 bit raises the amplitude, a 0 bit lowers it. So you're kinda approximating the waveform with a bunch of triangles. The NES has a 7-bit DAC, but since we're bit-banging with the CPU we only have enough time between samples for about 13 levels. Each level has its own toggle-wait-toggle-wait routine, and then we shift another bit and decide whether to branch to the next (level+1) routine or the previous (level-1) routine. https://8bitworkshop.com/v3.12.1/?platform=apple2&file=delta...

a1o

Super cool. Anyone recommends an oscilloscope for this day and age? I loved the Tektronix ones, but haven’t touched one in 16 years. I think it would be nice to have one to look into these kinds of signals - I know they are relatively simple enough to imagine, but this looks like something cool to show to kids.

Semantic search powered by Rivestack pgvector
5,917 stories · 53,755 chunks indexed