[Coco] Cassette data format

Bill Pierce ooogalapasooo at aol.com
Sun Aug 25 09:01:57 EDT 2013


Mark,
Two more factors are the volume of the Coco and the "Auto Level" on the recorder.
I usually record to my PC direct from the Coco's cassette cable but I have set my record volume (not playback) on th PC to somewhere between 25 & 50% or it's too loud and distorted. In reading old tapes from the recorder that the Coco no longer reads because they are badly distorted or barely audible, I'll use a drastic compression level to max peaks and minimize valleys in SoundForge, then set it to a decent level and I've been able to read some very bad tapes. As long as the frequency was somewhere in the right neighborhood, Coco cared more about the 1s & 0s.
When playing back from the tape deck, most RS recorders (as well as most others) had an "auto level" feature and would always playback at the same volume you set no matter what volume the recorded source was. Much like modern day audio compressor/limiters.
I know this doesn't have much effect on the frequency differences, as I think Ciaran explained that best. His work on the XRoar Dragon/Coco 2 emulator is impeccable.

Bill Pierce
My Music from the Tandy/Radio Shack Color Computer 2 & 3
https://sites.google.com/site/dabarnstudio/
Co-Webmaster of The TRS-80 Color Computer Archive
http://www.colorcomputerarchive.com/
Co-Contributor, Co-Editor for CocoPedia
http://www.cocopedia.com/wiki/index.php/Main_Page
E-Mail: ooogalapasooo at aol.com




-----Original Message-----
From: Mark J. Blair <nf6x at nf6x.net>
To: CoCoList <coco at maltedmedia.com>
Sent: Sun, Aug 25, 2013 3:34 am
Subject: [Coco] Cassette data format


The documentation I've found indicates that the cassette save routines encode 
each zero bit as a single cycle of 1200 Hz, and each one bit as a single cycle 
of 2400 Hz. I've written a python script which converts .cas files to .wav files 
using those parameters, and my CoCos can load files from the resulting audio 
waveforms. I generated square waves instead of sine waves, and the CoCos didn't 
seem to care since they just look for the zero crossings when loading.

I noticed that my converted files sounded higher in pitch than recordings 
created by my CoCos, so I investigated a bit further. I wrote a quick little 
program that does a couple of CSAVEM commands, one saving 256 bytes of ones and 
the other saving 256 bytes of zeros. After I isolated the data from header bytes 
and analyzed it in both Audacity and Baudline, I found that zeros produced a 
1093 Hz tone and ones produced a 2032 Hz tone. Not only are these tones 9%-15% 
lower in pitch than the documented tones, but they aren't in a 1:2 frequency 
ratio as I expected them to be. There's probably some small error in those 
measurements due to wow and flutter from my CCR-81; I didn't get clean signals 
when I tried to digitize directly from the cassette cable, so I recorded the 
test files on my CCR-81 and then played them back into my computer's line input.

Can any of y'all shed any light on this discrepancy?




-- 
Mark J. Blair, NF6X <nf6x at nf6x.net>
http://www.nf6x.net/


--
Coco mailing list
Coco at maltedmedia.com
http://five.pairlist.net/mailman/listinfo/coco

 



More information about the Coco mailing list