I’m currently trying to set up a homebrew cassette tape storage format, but trying to use existing tech where possible. I was excited to see that minimodem already exists for converting an audio stream to a byte stream, and is even available in termux for android, so I could decode cassettes with my phone! However, I’d like some sort of higher-level tool to encode and decode “packets” or “slices” so that I can add error correction. I’m sure this sort of thing must exist for amature radio purposes.

I could write a script that cuts a file into slices, with checksums and redundancy for each slice, and then pads them with null bytes so I can isolate each frame when decoding. What I want is to find out if that’s already been done. I’ve heard of AX.25 packets but I can’t find a tool that does that with stdio.

  • nycki@lemmy.worldOP
    link
    fedilink
    English
    arrow-up
    0
    ·
    3 months ago

    I did use par2 and tar to generate redundancy, but I still need a way to locate it in the bytestream. Tar doesn’t seem to reliably mark the start or end of files :/

    • catloaf@lemm.ee
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      What are you using to control/access the tape? tar should handle that just fine, considering that’s what it was originally made for.

      • nycki@lemmy.worldOP
        link
        fedilink
        English
        arrow-up
        0
        ·
        3 months ago

        I’m using a regular off-the-shelf tape recorder, it doesnt have an electronic interface, I just press play and record manually.

        • catloaf@lemm.ee
          link
          fedilink
          English
          arrow-up
          0
          ·
          3 months ago

          So how are you retrieving files? Writing down timestamps? Tar should be able to find the start of an archive if you give it a little lead-in.

    • tal@lemmy.today
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      3 months ago

      Tar doesn’t natively have an index to immediately seek to files in the tar archive, though I know that it’s possible to extend it with an index somehow, because pixz will do a parallel LZMA compression that involves generating and using an index for tar archives.

      EDIT: Oh, I think I see what you mean. You’re saying that you want to use tar to store the redundancy files, not generate redundancy data for the file as a whole? Like, a tar of PAR2 files? I don’t think that that’ll work, because you’ll want redundancy for tar’s metadata too.

      EDIT2: So what you want is a single bytestream with forward error correction, not a set of files that provide it.

      kagis

      It looks like this guy has an implementation, and says that he’s using Reed-Solomon, but that it’s also just his weekend project, so…shrugs

      https://hack.systems/2018/05/16/redupe/