data cassette reader
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.
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.
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?
----------begin_max5_patcher---------- 1383.3oc2ZssjahCD8Y7WAE09n2sPBgwruseGoRMkLnwiR31BxSljT4ee0MX DXPF6ASbsOXLz51QG0cqVM7yMNdGJeiz3492tex0w4mabbjhDBbzO63kieKI C2HqlWwo7CjZusph3OQKxHLYY.svmKKXE3bhr9+SMEmYT8xSr15C0RUhXeuh n.hGsf4s006.t3nm6mM50F5Oj0A.+Kes3JLK4EZwwmpIILU6CP7RcCA9x+jW g7qc8DMUhrxCe4OgQdc8SMGxLR8SjB7gL4v3KJ5Wa1Htrcl7Cq73QdqswO8Y AfMVnCyiLMAv.wTCDImtwcWGadFuzSyBx238aauxHuIAkWkaNooAejrHJHSR M2hVAfqCDt0MPQT6hspVf7L6Ht9thIzTAeXoYjWI0MzxBCf53gqpLD6XzDA+ 8kRYGsaamHZgRjemnZxqz11GoDxWU1zVX2rAI0qQQRcfc5m1ar7yWAOlUl7U Rp4.3UVQJnEU0jFRACyziTWwojmwmxXOMNu1u7mwIjIa7nquNdGqookEBPzq kBwsCGexEJUrCMmLxZTfqFowM74wolC3ZAyo0ogsExJKy5WT2hEWCGWPywLB ip.KzuqSo4U0RKPiARYx7RSRcYVVutRUxqiTRJe8Lg7MZJ6EYeYRk7pSqZWB 753nT5QRCquLF9XSeI87bapnYZ51StMS39lwL2CtMlkLlYrcS4o82OtIszY+ VCSaKl2S53emPuYuzjHHXnA9Pi7PuVwReeZKsajLkryjLl+jbBvFmzmKFYBC kSX0Fcvv1qSMgQl3KoLOmTn0xVPhPMIlktSelveNSUDZly0f0Xt1eut9lPt6 Qt..vM.5FGyWhPtwQbA97aC3+TEnk.A7+2IqDvOrqV7ZnJR7KR9Xa2rusKjs CnuMVWWQ2DYVZ6X99nnpVaqjCppHonIpIT+HPeuBEncpNvOzjHxnEjjxSJVO XJ0A3M5J4JLatNWHZKJUTi67kNQPVzyfioO89tVBVXBmzxAWT93JZMkmpSZm QpQZqaeXv2.gQK51C+ScZ9Cp2Kzzz9aYp1koQrmUZWDfWzn3ZQLZlHN7gAwB j.lAhgmUuemH1elHdI3X2OuwLjTuF7qjzm3i.2B5ILiUSObhoT4MiW9iF13k CK8JhkZTPXYvmZP4gWe.moOgPWaGIjsMuShKywrDwmQuumAuMdrdmB8ZOCt9 vVAPwIul5vVHUfXKGyzrNLyMcHTe49Kv3IhQ0jW.wKHu7iL2b9IPFiXfKEwb qjhRWAgjGIGYkSB8WVNolb7wjShiElLHHTxIVygUHXA4DYHaSjeuvqjTPWH+ ds+9XtXBkVTQ6sRQvEjhxIr5Rtkr+hn4.r5l4loEnNMWgVoEzBRKXV43aIEr TLRFs4Cnn.ARUDzNq9b2eKLxfbd1QI+6IR82uuZISvGA1yDpJww9QpTHJeHd BB41TQd7eIAsj.J7xuk.zh+VBlRiQD4u6e.9snyLG5ZG7caHg8znIOG9+aUF 8qWx96UxeszXROkW83otDYvTHfMsEPzR5wslfSe7XCcjJ53UrxFK4Ygp4fm3 1zkM1Gxv9ac.GY0bZIOgn3lkvMSfMBYQN9b6Nz1CYwjajUneVGUT0v7JoIry ymjuYhhlJYRQ8pzYYR57rHc1R2bwCOfrKiG9IkWK7DOC3DhVO5I1LSjSsbsx 34h7iHYjvUAOCl5SfGPOR7dhGT3LVuj1fqHdlE+rN5OCFJK7yJgG3Lvy.R7t hGzbsuVG7LG5YfK76p6mYXcAPqJbt3doqJZfWRUdE2YeNpxqmmGP3iEbhdnf CbVgEth9cf2Q5QED8fOkOARF7I7M3y2a3mtGu290l+CP.aiIK -----------end_max5_patcher-----------
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).
I’m planning to use regular audio cassettes…