icon by mikifluffs!
she/they, 1993, WA. Ask me about card games!

warning: I reblog 18+ content here. filter it if you want.


CAUTION: HARSH NOISE. DO NOT USE WITH HEADPHONES ON.

working title is 'tumult' for now, as in 'tumultuous'. this will generate 2400 Hz square waves with data encoded in the gaps, at a rate of 300 symbols per second, using 11 symbols per byte, for a data rate of 218 bits per second, or about 10.7 hours per mebibyte.

round trip to the cheapest cassette recorder I own: like 2 burst errors in 1 kB of data, each burst knocking out 12ish bytes in a row. So that's like 97% accuracy, that'll work for now.

planned enhancements:

  • increase the symbol rate from 300 symbols per second to 1200.
    • theoretically I can push this as high as 9600 symbols per second but there will be a lot of errors if I do that right now
  • group the data into packets of 128 bytes each
  • add some sort of forwards error correction to the packets
    • start with simple xor (50% redundancy)
    • move to reed-solomon coding later
  • add 'metadata' packets so that the tape itself can tell the decoder what rate it was encoded at (fancy!)
    • add some sort of interrupt to the decoder so it can honor these requests
  • I guess it would be nice if the website let you save/load from a .wav file instead of a real cassette, just for convenience
  • add one of those "choose your microphone" drop-downs because Android is dumb and keeps picking the wrong one

You must log in to comment.