How a 1-Bit Buzzer Plays Three Voices
A trick from the 1990s that produces polyphonic sound from a 1-bit piezo buzzer has been rediscovered and documented for modern audiences.
In many ways, software development is easier today than it was in decades past. We no longer have to deal with severe resource constraints, like having only a few tens of kilobytes of memory to work with, for instance. Back when these systems ruled the day, developers had to get really creative to accomplish much of anything.
Kenkichi Motoi recently rediscovered a particularly clever trick that was used in the early 1990s with the SHARP PC-E550 pocket computer. It was light on processing power and memory, as you would expect for a portable from the era, and it also had an abysmal method of generating sound: a one-bit piezo buzzer. Motoi wanted to make music with this machine, so things weren’t looking too good — but that’s where the trick comes in.
A Japanese magazine called Pocket Computer Journal published code to produce polyphonic sound with the PC-E550 back in 1993. This was made possible by a custom driver that generates three-voice polyphonic music by using precise CPU timing and rapid time-division switching between notes. Motoi has reproduced this software and published it on GitHub for others to take advantage of.
The reconstructed driver, known as PLAY3, is an excellent example of squeezing performance out of extremely limited hardware. Since the PC-E550’s buzzer can only output a single tone at a time, PLAY3 rapidly alternates between three separate note streams. This time-division multiplexing happens fast enough that the human ear perceives it as simultaneous sound — effectively simulating polyphony where none should exist.
Motoi’s archive goes beyond simply preserving the code. It includes reconstructed assembly source, documentation, and example music programs such as “Holy Night” and tracks later used in games like Space Panicco. The reconstructed binary has even been verified against original hardware, with only a negligible size difference of a few bytes — an indication of how faithfully the project captures the original implementation.
Today, when even the simplest devices can stream high-quality audio with a few lines of code, PLAY3 serves as a reminder that ingenuity often thrives best under limitation.