Hacker News new | past | comments | ask | show | jobs | submit login
Audio tape interface revives microcassettes as storage medium (hackaday.com)
82 points by rcarmo on Oct 22, 2021 | hide | past | favorite | 33 comments



Microcassette, despite being best known for use in answering machines and voice recorders, was briefly a pre-recorded music format. There was even a microcassette deck component you could put in your hifi.

A video about it: https://youtu.be/ZZYpPlpD3ow


I remember 6/7-year-old me begging my father for a tape deck to use with CoCo3. He refused, saying they were too expensive.

Were they really in the early 90s? I doubt it. I lost interest in writing basic on that thing since I couldn't save programs.

Anyway, I fully intend to try this out if only to close that loop.


I had a similar experience with disk drives. They were too expensive, so I had to stick to the built-in tape unit of my Amstrad CPC464. I could save programs, which made a huge difference, but tape was very limited in capability. For example, I couldn't write programs running other arbitrary programs, or programs working on databases. What I wrote was very limited in utility, usually games. Even running an assembler (which I got to hold on very late anyway) was a quite complicated process on tape. Now, after reading your story, I can't imagine being even without a tape. I at least managed to learn BASIC and Z80 Assembly with just a tape.


I was also very young and did not have a good enough grasp on money yet, but for us, in Germany, I remember the 1541 disk drive for the Commodore not being cheap, but still everyone I knew with a C64 got one, so the cost must not have been too prohibitive. The "Datasette" tape drive was much cheaper as I recall, but because of the disk drive's propensity I only knew one person who had it (and probably barely used it).

Depended a lot on the region I guess. I hear that in Britain for some reason the tape decks were much more common. But Britain kind of got an "alternative history" of home computing anyway, owed largely due to their computer literacy program and (partly) resulting British micro industry. Many of those products barely made it to the continent, some not at all, so it's hard to compare.


I had (probably still at my parent's house) a Commodore cassette deck, 2 1541s and a 1571. All modded of course.

I remember using the cassette deck but it was definitely a stop gap to a real disk drive.


Ah, I was too young for multiple drives. While my parents probably saw the futility of not having a disk drive at all, shelling out the hundreds of DM for a second one was likely too much.

And with no own money I put up with what I had. I nowadays suspect that the grease in my then rather old 1541 must have hardened, because it needed the occasional hard slap on its case to continue loading, it would "hang" in the middle of a disk access until you did that.


The "ready to use" one with the 5 pin DIN connector/adapter was probably expensive.[1] Otherwise, he would have had to find an adapter or fiddle making one himself. And even that would require a cassette player with all the right jacks (mono in, mono out, remote). They didn't all have those.

[1] This thing: https://colorcomputerarchive.com/repo/Documents/Manuals/Hard...

Edit: An old ad...$59.95 Or $142 if inflation adjusted to 2021 from 1987.

http://www.trs-80.com/images/desc/desc-cat-rs-26-1208.jpg


No one here can tell you whether your father was right or wrong. A tape deck and connection cable would have cost $35-$60 in the early 90s, which your father might have seen as closer to:

A) A week's groceries for the whole family, or

B) A single evening's entertainment for one person.


Out of curiosity I tried to do this using Quiet Modem, and the clocking was so much worse than I could have anticipated. I got a used deck from ebay that was in reasonably good condition. Listening to a tape on it, it didn't sound too bad, but when I did some analysis on a waveform on a tape, the playback speed was very uneven. Clock recovery is an absolute must with these, and in general I think it's worse than you'd imagine. Maybe if you had completely bulletproof internals could you actually make full use of the bandwidth.


Tangentially related: Minimodem http://www.whence.com/minimodem/

There is an option to translate files to audio and emit them.


I did something similar in the early nineties by using the venerable AM7910, an old modem chip often used in vintage computer and Ham Radio gear, to make an interface to store and retrieve data on tape from my Amiga 500. I used a normal cassette deck for storing, but the chip was really slow at 1200 bps, even for an old system like AmigaOS, and per data sheet it didn't offer higher speeds, however I tried anyway to change its clock frequency by testing a few Xtals in place of its 2.4576 MHz standard one, and eventually settled to an old PAL color TV Xtal (4.433619 MHz) that would nearly double the speed without introducing errors. Good old times...


>common disturbances like speed variations (which cause wow and flutter)

Had to look that up. What they call "slow wow" that is common in turntable records makes sense though as onomatopoeia.

https://www.britannica.com/technology/flutter


Super common terms for analog media, tape in various forms (like reel to reel) is very old after all, and it's easy to imagine that the motors driving them exhibit significant speed variations during playback. There were also dedicated wow and flutter meters that measured both: You'd play a fixed frequency tone and it would display the frequency variation of what actually came out. Technically that's a form of frequency modulation, with wow and flutter being modulated with low and high frequencies respectively[1].

Later "quartz locked" high precision drives for example got rid of most of it, but as I recall that got widespread briefly before or even at the same time as CDs, and was far from ubiquitous.

[1] The "high" frequency here still being much lower than what you usually think about when you read "high frequency" even in an audio context.


I wonder what the maximum bitrate of an audio cassette is, using modern encoding techniques like OFDM with error correction? I searched once, and saw estimates in the 25 kbps range, but no usable implementation.


S/N for a cassette is variously given as 50dB, 58dB or 67dB [1,2]. Bandwidth is given as 12kHz (standard), 16kH (medium Fi), 19kHz (HiFi) for different quality cassette systems [3]. Let's simplify by assuming the frequency cutoff is a brick wall and the S/N is constant across the band.

The maximum channel capacity for a cassette can be calculated using Shannon's Theorem [4]: C = B*log2(S/N+1)

Cheap and cheerful (S/N=50dB, B=12kHz): C= 199kbit/s

Mid range (S/N=58dB, B=16kHz): C= 297kbit/s

Hi Fi (S/N=67dB, B=19kHz): C= 422kbit/s

Modern coding (LPDC) can achieve within a fraction of a dB of the Shannon Bound, so those numbers will be close to what a state-of-the-art encoding could do with a cassette. (A new hobby for someone?)

[1] http://www.tapeheads.net/showthread.php?t=35390

[2] http://www.muzines.co.uk/articles/choosing-a-cassette-tape/1...

[3] https://arstechnica.com/civis/viewtopic.php?t=848978

[3] https://en.wikipedia.org/wiki/Shannon%E2%80%93Hartley_theore...

Edit: Here's a dose of reality from another forum:

https://dsp.stackexchange.com/questions/70700/why-can-so-lit...

My guess is the the Shannon based predictions are realistic, as they are lower than the same rates as achieved by specialised data recording systems. They are also a bit better than what a narrow band radio system can achieve, and a cassette will be a better channel than a typical radio channel.


There's also stereo to consider, right? So you could get up to 2X bandwidth. (Channel separation issues might mean less than 2X in practice, though.)

If you want to stretch the definition of "cassette", tapes are two-sided, and there were 4-track recorders that used all 4 tracks in one direction. They weren't anything too exotic. Musicians used them for cheap recordings for demos and such.


You don't want stereo. Only as an error correction maybe.


I'm not a tape expert, but in the spirit of learning more, I did some quick research, and it seems that multi-track tape is very common for data.

IBM started doing it in the 1950s and 1960s with 7-track[1] and then 9-track[2] tape. It's still being done today with LTO[3].

---

[1] https://en.wikipedia.org/wiki/IBM_7_track

[2] https://en.wikipedia.org/wiki/9_track_tape

[3] https://en.wikipedia.org/wiki/Linear_Tape-Open


Another way to look at it, SQNR = 20 * log10(2**Q).

When Q=8, equivalent to 8bit PCM encoding, the maximum SNR would be 48db. So the cheap cassettes are like 8bit PCM at 12kHz.

Remaining values would be:

Q=9, SQNR=54db.

Q=10, SQNR=60db.

Q=11, SQNR=66db.


The sound quality of an audio cassette is at least as good, and almost certainly better, than the quality of an analogue telephone line. So I bet you could set a lower bound of at least 33.6kbit/s, since that was as fast as telephone modems went.

56k modems relied on your phone line being digital after the switchboard, but I would imagine that 56k should be doable as well.


Not sure it's directly comparable. When modem flips one bit, the CRC checksum in IP packet becomes incorrect, someone drops the IP packet, the condition is detected and the packet is re-transmitted. This slows down things substantially but user still gets their data. I think tapes need more reliability because there's only 1 try.


I remember back in the 80s when my BBC Micro would miss a bit it would just beep and tell you to "Rewind tape", which meant, go back about 10 seconds. And then it would figure it out from there.


The Commodore 64 (and possibly earlier Commodore systems such as the PET and VIC20) actually recorded each "block" twice on the tape, and could correct up to 31 errors per block as long as an error didn't affect the same exact byte in each block (it didn't do anything like ECC).

This also made loading/saving from tape really slow - 50bps.


SiriusXM uses a similar method, plus buffering, to ensure your satellite radio keeps playing, even if you dare to drive under such rare things as traffic lights and tree branches.


You could choose to do something similar with cassette.

It's common for tape drives to verify the data that was written. Rewinding is one way, but it's slow. A faster way is with two separate heads: as the tape moves, it passes over a write head first and then a read head.

You could maintain a buffer in RAM of data that has been written but not yet verified (as readable without errors). If you can verify it, you discard it from the buffer. If you can't, then you queue it up to be rewritten.

This wouldn't even require a special cassette deck. There were plenty of three-head audio cassette decks that allowed you to listen to the read head while making a recording. That made it much easier to set the right recording level.

(Basically, there were two common types of cassette deck: two-head and three-head. A two-head cassette deck has an erase head and a dual-purpose read/write head. A three-head deck has erase, read, and write heads. At least, that's the basic idea. Things get more complicated with auto-reverse cassette decks.)


I wouldn't automatically assume that tape is better than a phone line. For instance, a phone line will always clock at 1 second per second, because everything runs in real time with no storage.


Analog phone lines were limited to 4 KHz frequency range in the US. Compare that to tapes close to 20 KHz.


I can’t imagine that clock recovery would make a huge amount of difference.


I was able to fit about 60 MB per channel on a 90 min audio cassette [1]. The bias frequency of that particular deck was about 60 kHz. This means bypassing the recording circuitry could lead to much higher data rates.

1.: https://news.ycombinator.com/item?id=28193079


They were getting 33.6kbps out of a fully analog phone line with 300Hz-4Khz usable frequency range. Depends on the equipment and tape, but I imagine even cheapish equipment would have at least twice that amount of bandwidth to work with, maybe even up to 10-12kHz instead of a 4kHz top end.

High end equipment and high end tape shows up to ~20kHz or so: https://audiochrome.blogspot.com/2019/12/cassette-tape-compa...


I had a normal size cassette player built into my Commodore PET 2001 back in 1977/78. Tape speeds are slow, but then again most of my programs were under 100 lines with some outliers at 250 to 350. Not a lot even for a cassette drive. Nostalgia of having to hit 'Play' button to load the program!


I remember data storage on regular cassette tapes was painfully slow.


I used audio cassette for a few years (1978-1979) on my home-built Z-80 system.

Upgraded to a wacky cassette transport called a Phi-Deck. It was faster and had automated head control and seek; you could do a real file system on it. 9600 baud equivalent, for the setup I used; could get 100K or so on a cassette if you were patient.

https://bytecollector.com/dg_phideck.htm




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: