Jump to content
  • entries
  • comments
  • views

Restoring program cassettes: CS1er vs. Classic99



drawer_ti99.png.cf44a1658c0d2912812cd32d59b32e0c.pngI got hold of a neat little GGI Gear CT2DG tape-to-MP3 recorder, purchased from a fellow AtariAger, to see how it might replace my setup of a real tape deck and USB audio capture device.  The name is a misnomer as it shows up to Windows as a generic USB audio device, which means you can use your favorite audio capture software and are not relegated to a compressed capture.


I used my master tape of Laser Strike for TI BASIC as the test subject*, Audacity v2.3.2 to capture the input, and CS1er v0.96b to convert and @Tursi's Classic99 v399.050 to import the captured audio.


The volume control on the CT2DG controls the on-board monitor (headphone jack,) as well as the volume of the captured audio.  I turned this up to maximum without any perceptible distortion, though you can see the clipping of the start of the sync header.  Audacity's recording level was set to 3 -- this is important as a higher setting would have caused much greater clipping at the sync.  Audacity faithfully captured the audio, including leader noise and the initial volume spike of the sync stream.



Leader noise, sync with volume spike, and start of data as captured.



Tail of sync and start of data at 14.19 to 14.23 seconds. A nice clean and consistent capture.


Once captured, I used the leader noise in the first ten seconds or so of the recording to train the noise reduction filter, then ran that against the entire capture.  Then the limiter was applied to the volume spike at the beginning of the sync.  I then amplified the capture by -2dB, raising the peak to around .85 on the scale.  The capture was exported to a 16-bit WAV.


CS1er requires a mono 8-bit WAV for input, so I converted with this command:

ffmpeg -i laserstrike.wav -c:a pcm_u8 -ac 1 -y laserstrike_mono8bit.wav

Running the resulting file in CS1er resulted in a long string of errors and rejected records.  I went back and tried the raw capture as well as the capture with noise reduction but no volume manipulation, to no avail.  Classic99 refused to pull any data from the 16-bit stereo exports.


Although the Classic99 manual only states the requirement of a 16kHz or higher WAV file, with no apparent restrictions on sample width or channels, I finally focused on the 8-bit samples to see what Classic99 would make of them.  Contrary to before when Classic99 would not read the 16-bit stereo WAVs, it processed the 8-bit mono WAVs perfectly.  This included the initial raw capture with no manipulations.


For this exercise, Classic99 wins the day.  In the past I could have spent immeasurable time with CS1er, or even Tape994A, to try get a good read.  I am happy to have another tool in my belt, weapon in my arsenal, arrow in my quiver, to help with future conversions.  As well, the GGI Gear CT2DG has proven itself to be a compact contender to the space-consuming tape deck setup.  While this restoration was on a much cleaner source than many others I have taken on, the process bodes well as a first-approach option.


* Recorded on a genuine TI Program Recorder from an authentic TI-99/4A console onto a Maxell CP15 "Personal Computer Cassette."


The primary tested WAV files, manipulated and raw, are attached below.  The Audacity project is too large to include.

Laserstrike CS1 Restore Test.zip

1 Comment

Recommended Comments

Huh... surprised by this. CS1er is supposed to do signal analysis (or was that only Tape994A?)


Classic99 resamples whatever you feed it down to 16khz, 8-bit. It is supposed to be able to do that with 16khz - 48khz, mono or stereo, and data in any of 8 bit unsigned, 8 bit signed, 16 bit signed, 32 bit float signed, or 64 bit float signed (because I actually /found/ downloads of TI tapes in this format). It deletes the negative side of the waveform then applies a crude auto-gain to get the levels about where I expected them. The CRU code is only concerned with the zero crossings, so deleting the negative side probably helps there.


Stereo didn't get much testing since I didn't have any stereo samples... the path I chose to take is strange. It looks like I was assuming one channel would be dominant, and only take the left or right channel, depending on which is louder.


The resampling is also very crude - just nearest neighbor, so it's possible that introduced too much noise to the higher frequency waves.


Good data anyway! Something I'll think about next time I'm in there.



  • Thanks 1

Share this comment

Link to comment
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...