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.
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.