ZX Spectrum


Is this possible? I have created a piano recording and have it in Audacity. I want to make it sound like an old 2-channel ZX Spectrum, example here:


Are there any effects routines I can do to get this retro sound from my recording?


I guess you could try hi and lo pass.

Assuming the show is already in stereo, drop-down on the left of the track > Split Stereo Track.

Click just above MUTE on the top track and Effect > High-Pass Filter, 1000Hz

Click just above MUTE on the bottom one one and Effect > Low-Pass Filter, 1000Hz

Drop-down on the left > Make Stereo Track.

That should give you roughly one hand on the left and the other on the right.


Maybe you could upload/attach a sample piano sound.

The easiest way would be to use a player with zx sound emulation (google it).
The original sound chip has 3 voices (so tie 7 fingers back onto your palm…)
The waveform generated is a square pulse.
You could duplicate your melody, shift pitch them such that they have the right partial spectrum (and amplitude).
Additionally, you have to limit the dynamic range to 4 bits. Easily done in the Nyquist prompt.

(quantize s 16)

Each voice can have a pseudo noise mixed to it.
That’s also a square pulse with variable pulse width.

(mult 0.1 (quantize (fmosc (hz-to-step 440) (mult 439 (quantize (noise) 16) ) (maketable *step-shape*)) 16))

It is clear that a piano produces a totally different harmonic content than a square wave.
It means that we should firstly extract the fundamental frequencies of your melody and then replace the whole tune with notes that are built up from square waves. Quite hard to do in order to sound authentic.

Thanks for the replies guys.

kozikowski: I can see the high and low pass filters, but am unsure what you mean by ‘drop-down on the left of the track > Split Stereo Track’.

Robert J. H: I can attach a sample (its quite large).

The first bit of Nyquist code gives it a scratchy radio feel. The second longer bit of code gives a single note.

I have attached in a 7zip file. If you want something else (zip etc) let me know, as I will need to cut the track a bit more to get under the required 1MB size.
TurkishMarchZip.7z (937 KB)

What you really need to do is use a MIDI sequencer (or “Tracker”) and set the playback sound to a simple pulse wave.

Thanks for your reply steve. Do you know of any free Midi Sequencers that do this?

Perhaps Musescore http://musescore.org/en/

If you are into retro synth music you should also look at “Tracker” programs (such as: http://www.madtracker.org/main.php and http://fasttracker.en.softonic.com/ )

As I mentioned before, a Emulation will give the most realistic results.
The following Sound chip Emulator can handle different media types. Some tracker it works with are listed on the site.
It will Need some reading and experimenting to achieve the desired result.

decimator ? … ( here Steve Harris’s “Smooth decimator”)

Also see “musagi” chiptune composer … http://www.youtube.com/watch?v=-3p5ITkCpXw

Here’s an interesting function to Play with (similar principle as decimator)
The first number after ‘reduce’ is the amount of samples that are averaged and the second one tells how many samples you want to advance (and skip if it is greater than samples).

high values (20 and 40 for example) give produce interesting bass lines, which really Sound “Retro”. Pac-man greets…

(defun reduce (sig samples step) 
  (force-srate 44100 (snd-avg sig samples  step op-average)))
(multichan-expand 'reduce s 10 20)

Wow, thanks for all these comments. I’ll work through them and get back to you.

Thanks again.