I finally Finshed My Specdrum Clone

Started by wadmixfm, June 03, 2021, 18:14:35

Previous topic - Next topic

wadmixfm

Its taken a few months to finally get it working !!!!

Many younger people in here may not remember the Specdrum drum machine software for the Spectrum 48k machine
in 1985 it was a very cheap hardware add on for the computer which then the user would load from a tape the software

it was a hit for £25 and it supported 8 samples in memory at once and played them through the hardware which was a dac converter chip which then converted the data to a audio sample ok for its time they were 3bit but at that time was clear enough to use as a drum machine.

The default samples were

1 bass brum
2 snare
3 hi tom
4 lo tom
5 cowbell
6 hi hat closed
7 open hi hat
8 clap

there were 4 kits supplied on cassette

1 Standard kit
2 AfroKit
3 ElectroKit
4 LatinKit

I have made my Specdrum clone as close as i can to the original i have made it available for both Windows and Mac 64bit
i did originally write it with blitzmax 32 bit and then everything went heywire lol 64 bit showed its pretty little face and then blitzmax NG come on to the scene and well i had to rise to the challenge and convert all my code to make it run on 64 bit and its finally done.

i will post some photos from the original and from my version

cheers

Lee

wadmixfm

here are some old and new pics so far hope they work ok

lee

Pingus

Can't wait to see (and hear) a video !

wadmixfm


iWasAdam

Great project - I had the datel drum sampler back in the day ;)

wadmixfm

can we add videos in here ???? or do they have to be streamed from youtube for example ???

lee

wadmixfm



here is the video :)

please excuse my commentary i cant do voice overs very well :)

lee

Steve Elliott

Fantastic work!  I still have a working 48K ZX Spectrum and waiting on a ZX Spectrum Next, so to see your work pushing old hardware is great to see.   8)
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

wadmixfm


wadmixfm

i still use it as i mentioned in the video you can load your own samples in to it and create new kits too with the kit editor

, there is one thing i want to add to it but cant get my head around is reversing the samples , i want some code that can turn the ogg samples around make them play backwards at the flick of a switch and then i can save them

i will work on it

my next update will be using velocity for each note only 3 stages like a low mid and hi velocity on the older drum machines they were called accent.

:)

wadmixfm

Are we allowed to post the files here so people can download etc...?

Lee

Steve Elliott

Quote
Are we allowed to post the files here so people can download etc...?

Yes, just attach the files to your post.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

wadmixfm

cool , i am just cleaning up little bugs i have found and some quicker bits of code then i will upload

1 for mac 64bit and windows 10 64bit :)

lee

Midimaster

#13
Quote from: wadmixfm on June 06, 2021, 22:52:04
... there is one thing i want to add to it but cant get my head around is reversing the samples , i want some code that can turn the ogg samples around make them play backwards at the flick of a switch and then i can save them
..

This can be done very easy. Create new TAudioSample with the same size and parameters of the original and then copy all samples datas in reverse order from original to new object.


Code (BlitzMax) Select
original:TAudioSample = LoadAudioSample("snare.ogg")

reverse:TAudioSample = CreateAudioSample(original.length, orignal.hertz, original.format)
ReadPointer:Short Ptr  = original.Samples
WritePointer:Short Ptr = reverse.Samples

For local i%=0 to original.length-1
   WritePointer[i] = ReadPointer[originl.length-1-i]
Next
 
(code not tested, only written on the fly in this post)

works if the audio file uses a 16bit format.
...back from Egypt

wadmixfm

oh thats interesting , will give that a shot

thanks

lee