this post was submitted on 04 Aug 2024
37 points (100.0% liked)

Technology

59689 readers
3181 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 3 months ago (2 children)

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 :/

[–] [email protected] 2 points 3 months ago* (last edited 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/

[–] [email protected] 1 points 3 months ago (1 children)

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

[–] [email protected] 1 points 3 months ago (1 children)

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

[–] [email protected] 1 points 3 months ago (1 children)

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.

[–] [email protected] 1 points 3 months ago

That's exactly what I thought would work, but it doesn't.