The Sinclair ZX Spectrum was a popular computer in the 8-bit era, and particularly so in its homeland of the United Kingdom. It was known more for its low cost than its capabilities, but it gained many add-ons over the years. One of those was the Cheetah SpecDrum, which turned the Spectrum into a rudimentary drum machine. [PianoMatt] wasn’t happy with the original drum samples, so he set about loading a custom kit into the SpecDrum.
The SpecDrum software initially came with extra sample tapes, so [PianoMatt] knew it was an achievable task to load in custom samples. Starting by loading the software in an emulator, the RAM was then exported as raw data and loaded up in Audacity. After some experimentation, it was determined the samples were stored in 8-bit format at a sample rate of approximately 20 kHz. With this figured out, it was then possible to load replacement samples directly into RAM through the emulator.
However, this wasn’t enough for [PianoMatt]. Further digging enabled him to reverse engineer the format of the replacement sample tapes. Armed with this knowledge, [PianoMatt] then generated his own tape, complete with proper headers and labels for each drum sound.
It’s a tidy effort to bring a more modern sound to a now positively ancient piece of hardware. We’d love to hear a track with drums courtesy of the SpecDrum, so we’ll keep an ear out on Soundcloud. Mucking around with old sound hardware is a popular pastime in these parts – we’ve even seen people go so far as to build bespoke Sega chiptune players from scratch.
Great post!
The SpecDrum for the Amstrad CPC was called “Amdrum” and my project provides a modern re-implementation (emulation) of Amdrum:
https://hackaday.io/project/165677-lambdaspeak-3
I have a video online where you can hear the original Amdrum software running on LambdaSpeak:
https://youtu.be/pBuBxT3YEuI
Cheers
Michael
I love the work done to import custom samples in the SpecDrum software. Thanks!
Last year I redesigned (copied) the PCB because I could not obtain the original hardware.
I’d love to get de syncing of multiple SpecDrums working (or with a TR-8s)
Is your redesigned pcb available as open source project? I too want to replicate it!
Thanks
If I know where to put it I can share it. It’s done in Eagle.
https://github.com/Scanboostar/SpecDrum-Reloaded
Back in the day, I remember building my own SpecDrum hardware, because I was an impoverished student.
I think the hardware was something as simple as an 8 or possibly 16 bit DAC, which I think I replicated using a couple of 8 bit latches and some resistors
Right, its a very simply circuit and 8bit DAC – see here
http://www.cpcwiki.eu/index.php/Amdrum
It is more interesting to do the PCM in software with an ATmega though.
No I see the schematic, the part number of the DAC rings a bell, I suspect I used the ZN428E as well.
I an remember what I used to decode the address bus, but it will have been something pretty simple.
I think they tended to use addresses which didn’t need too many gates to decode, especially if it was a “data” peripheral, as I think there was a separate signal line to indicate the Write or Read was to a data device rather than memory
Right partial address decoding. OxFFxx with xx arbitrary was used for the CPC Amdrum. And the z80 has just ioreq and write. Read is not needed for Amdrum
Yes the address was partially decoded. For the CPC, Amdrum listened to 0xFFxx (xx = anything). The Z80 uses IOREQ and READ / WRITE for port addressing. IOREQ and READ is not needed, and IOREQ and WRITE is the same as for the CPC. It seems that SpecDrum only decoded A6 and MEMREQ instead of IOREQ is being used:
http://www.worldofspectrum.org/pub/sinclair/technical-docs/CheetahSpecDrum_Schematics.gif