So this is what I've come up with. I wrote a couple of BASIC programs and some bash scripts and it seems to work pretty well now. I can reliably store about 2MB of data on a 90 minute cassette.
I've only got it working on Linux, but it should be able to work on any system that can run the Brandy Basic V interpreter.
This is what the signal from the tape looks like:
Here's a youtube video of the system in action:
Here's a short clip of what the sound it makes is like: (be warned that the sound is loud and not fun to listen to, and it could hurt your ears. If you decide to listen, turn your volume down a bit.)
(copy paste the URL)
Here's the program data if you use Linux and are interested in trying it out: http://dusthillguy.d...release1.tar.xz
(If you do download this and look at the code, be aware that I only really started getting into in programming at around the beginning of this year. I don't claim to be good at it. I admit the code is probably not very well written, don't be cruel about it.)