29

In my recent expeditions to the darkest corners of my garage, I've found a load (there's a pun in there somewhere) of old audio tapes containing Sinclair Spectrum code. These aren't commercial titles, they're record-your-own-code blank tapes from the early 80's: I'm certain they contain magazine type-ins and terrible games and graphics, authored by my 11-year-old self.

C15 Compact Cassette The tapes are mostly physically intact, having been kept in their own container (see the photo). However, listening to the audio (with the practised ear of someone who grew up listening to Spectrum games load), it's noticeably muffled, and there's a bit of "wow and flutter" - wobbly pilot tones and the audio coming and going. I wasn't expecting miracles after 30-odd years, but I'm still hopeful that there's going to be some way to at least partially recover some of this data.

I've hooked up a tape deck to a Windows laptop and captured the audio into Audacity. I've wound the tapes end-to-end a couple of times (both to free up any stickiness and to hopefully counteract any print through). Regardless, MakeTZX and audio2tape fail to pick up anything useful in the files. I know there's a few Spectrum emulators that can play back WAVs; Spectaculator shows signs of picking up the pilot tone in some of the files, but the audio seems to be just too degraded to load anything.

Is there any post-processing I can do on the audio to clean it up enough to hopefully allow an emulator, or MakeTZX/audio2tape to extract the data? Does anyone have any other advice for enhancing the audio to least be able to identify what each block of code is? Are there any conversion utilities or emulators (for any platform) that are more forgiving of audio quality, or designed to help rescue degraded data?

  • 2
    First I'd look at the sound in Audacity to get an idea of how exactly the signal is degraded. The Spectrum standard tape format is simple (FM with two frequencies), so the frequency "wobble" should be able to be corrected by a PLL or autocorrelation, the amplitude "coming and going" doesn't hurt as long as there isn't any lower frequencies mixed it (which need filtering out if present). I don't know of anything ready-made, maybe one can cobble something together with GNU Radio. This is more a question of DSP pre-processing than of emulation. – dirkt Sep 4 '16 at 18:50
  • 1
    I spent some time working on this problem for Apple II cassettes. CiderPress has multiple algorithms it can apply. The basic algorithm looks for zero crossings, like the original algorithm, while another looks for significant relative changes in amplitude instead, to deal with DC offsets. Sometimes one will work where others don't. I tried applying some FIR filters to remove high- and low-frequency noise, without success. On some tapes the signal was visibly corrupted and not recoverable. As @dirkt said, start by looking at the waveform and see what's there. – fadden Sep 7 '16 at 2:22
  • 2
    What you're doing to recover those tapes isn't that much harder than it was to get them to work in the first place. +1 for retro enthusiasm. – Wayne Conrad Sep 15 '16 at 16:20
  • I remember having treble at max, and stereo all the way over to one channel (I think, the right) to get the best response out of copied tapes... I'm not saying yours are copied, it's just that I would treat them the same way to try to rescue them. – SeanC Sep 27 '17 at 18:42
  • Also, use the spectrum analyzer (unrelated to the ZX spectrum)/FFT feature of an audio editing program - it can give you clues to what is wrong, and probably help you to improve the data with EQs/filters. In case you own a hardware oscilloscope, also connect it. – rackandboneman Dec 17 '17 at 19:20
21

There's so much to go wrong in a cassette mechanism that it's amazing they worked at all.

  • can you adjust tape head azimuth? Misalignment is responsible for a lot of sound problems.
  • how clean are your tape player heads? Are the capstan and various drive rollers clean too?
  • are the pressure pads behind the tape intact? Sometimes the little felt pads come unglued, and so the tape isn't held against the playback head securely.
  • if you're noticing a lot of oxide shedding, last resort is tape baking. The oxide is bound to the tape with a glue that over the years picks up humidity and allows the oxide to wear off. Very careful heating in a low oven can re-fix the oxide long enough to be playable again. I'm deliberately not quoting temperatures, times or links as I don't know how well these cassettes would stand up to this process.

I remember having stacks of these Computapes from John Menzies. They weren't the best back then, with occasional out-of-round tape spools and mechanisms that clicked on every rotation. Tape repair is a fairly low-tech process but is fiddly, and these tapes might not be worth the effort. But who am I to dissuade you from discovering that Your Spectrum game you spent weeks getting ⅔ typed-in or your 11 year old self's SCREEN$ of a Lotus Esprit Turbo that looks more like a doorstop perched on duck eggs …

  • 3
    I would also check the rubber belts inside the tape recorder that pass the rotation from the electrical motor's spindle. These tend to loose their tension and this results in the "wobbling" sound. Also, check and clean the spindle and the rubber wheel (sorry don't know exact English terms for these) that are responsible for transporting the tape to the player head. If they are dirty or if the rubber wheel is worn out / not balanced properly, that would also result in "wobbling" – DmytroL Sep 5 '16 at 10:09
  • 6
    Thanks. I cleaned the tape heads - they may have looked clean, but they were astonishingly filthy - a with a bit of trial and error, I've managed to recover: a type-in BASIC game where I'd cunningly changed the copyright notice to claim authorship, two-and-a-half SCREEN$ of me practicing with that graphics editor written by the guy who did "Roller Coaster", and "Pool" by Mike Lamb, the sound effects of which nearly had me in tears. For what it's worth, MakeTZX seems far more tolerant of tape wobbles and dropout that just loading the game directly into Spectaculator. – KenD Sep 15 '16 at 15:13
3

In case it helps someone else who, like me, comes across this page in the future, I'd also recommend tzxwav. It's written in Python, so there were a couple of extra hoops I had to jump through to get it working on my Win 10 machine. But, the Python install didn't take long, and is fairly small at 35mb. Tzxwav can then be run from the windows command line just like the other apps mentioned in the question. It managed to recover files from an old TDK C60 of mine that MakeTZX, Audio2tape, and loading the source directly into Spectaculator all struggled with.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.