data cassette reader

Christopher's icon

Hello max community,

I am working on a project involving data cassettes. These are audio cassettes which store data that can be retrieved via analog to digital conversion. I'm wondering if anybody here knows about this type of stuff. See this example: http://www.youtube.com/watch?feature=player_embedded&v=zu_qgwik4Dk

Ideally I would like to make a max patch that both can record a .txt file onto an audio cassette AND read the incoming data from an audio casette back into the computer and then create a .txt file with the results.

I found this program here (https://github.com/windytan/ctape/) which apparently does this... but I would love to make a MAX standalone that can do it.

seejayjames's icon

You could use pitch~ (by Tristan Jehan) to encode and decode text characters: 8 different pitches that can be recognized, you play two back-to-back, giving you 64 possible text characters. 16 x 16 if you need the full 256 set, but you probably won't, because so many of these are non-printing. Then have a distinct pitch for the separator between letters. Use cycle~, it would be very easily recognized by pitch~, and if you chose a cool scale, you would get some interesting music out of it!

You could use sets of 4 as well...4 x 4 x 4 x 4 is your whole 256 set, or 4 x 4 x 4 = 64. Maybe it depends on the music you want out of it...with 4 x 4 x 4 plus a separator, you'd have a nice 4-beat meter, but the pitch selection is limited. You could make the scales dynamic easily enough...just set which pitches you're looking for or using to encode.

So assuming 8 pitches, if your separator pitch is "9", the string "abcdefghi" would be
9 1 1 9 1 2 9 1 3 9 1 4 9 1 5 9 1 6 9 1 7 9 1 8 9 2 1
(counting from 1, not 0)

Probably could use morse-code-like methods too, without needing pitch detection---it would be all about the timing (sampling rate of the data). I think pitch~ would be a lot easier, especially because each pitch can have a variety of values, instead of long strings of long/shorts, or blips with varying spaces, etc.

Christopher's icon

Thanks for that response Seejay.

I'm thinking about using this polybius square method to encode the letters into a scale (as you said): http://en.wikipedia.org/wiki/Polybius_square

Which is basically what you are saying, right?

Here is the patch I have for turning a text file into a stream of ASCii digits...

Does anybody have any elegant solution for mapping those numbers into a 2d matrix like this polybius square kind of thing?

Max Patch
Copy patch and select New From Clipboard in Max.

xo

benoit-1842's icon

So does that mean that I will be able to use old data cassettes ? (I.E the one I use with an old TRS-80 computer).

Thanx....

Ben

Christopher's icon

I'm planning to use regular audio cassettes...