Some projects seem too good to be true until you dig into it and find the secret magic that makes it all work. Take Paper Tunes by [Makestreame], a project which purports to store a song on a single sheet of paper via QR code and transmit the data over LoRA. If it was a MIDI sequence, maybe. But the promise of Paper Tunes is to take any MP3 and give it this treatment, and that just seems like an impossible level of compression at first glance.
The music is heavily compressed, make no doubt about that. There’s samples in the Instructables link above and in the video below, but it sounds far better than it has any right to. The secret is Meta’s EnCodec neural codec, which like you’d guess uses neural nets to squeeze the absolute minimum information needed to reconstruct a sample. With it [Makestreame] is able to get a 2.9 MB MP3 file down to just 21.44 kB.
Of course, that’s still not going to fit in a 3.3 kB QR code. But by simply making eight of them, [Makestreame] is able to fit the song onto the front and back of a piece of paper. Yes, each song has an “A” and a “B” side — and you thought flipping a record halfway through got old fast. Having to scan eight codes to get one song may strike some as a bit silly, but we do enjoy some silly things here.
The same EnCodec compression that gets the song so tiny as to fit in a brace of QR codes is obviously also what enables its transmission over LoRA. While it’s got far lower bandwidth than something like WiFi, 21 kB is well within its limits. It’s often said that LoRA isn’t suitable for audio, but this project is another example that one person’s “unsuitable” is another person’s “challenge accepted”.
We’ve seen other LoRA audio projects before. Speaking of things not suitable for audio, we once featured an entire album crammed onto a floppy disk.

Yay. I can now replace my CD collection with floppies!
Not so fast…droplets of sweat falls on it such that the ink begins to run?
It goes from Black Flag to Brian Eno.
QR codes have error correction built in.
Ok, so it goes from Black Flag to Taylor Swift.
Check PaperBack by Oleh Yuschuk https://ollydbg.de/Paperbak/
You could store about 0,5 MB of data on a single page of A4 paper.
That means an entire “Leje się sperma” song by Dr. ALBONista would fit on about 4 sheets of A4 paper.
Is anyone supposed to know who you’re talking about?
I’d say yes. That’s why they put the artist and song name right in the comment so you would know.
Yes. People who watched Łukasz “Testoviron” Stanisławowski vlogging about scam that is university education will know.
I don’t know about either, but it’s easy enough to look up published works of most kinds without any conspiracy involved.
Love it. Have to check out the compressor.
I think you can out more QR codes on a page.
Page is 7.5 inches, laser printer runs at 600dpi, that’s 4500 dots across. QR code is 177 wide.
The current 2×2 uses about 12 ink dots per QR code dot. Perhaps that can be doubled, 6 ink dots per QR dot. Use the 30% error correction QR code. So, maybe 3×5, 15 QR codes on a an A4 page?
It’s not hard to source black and white printers that will do 1200 DPI and even higher. Using coated paper you can ensure clarity for consumer photo printers to make 2400 dpi prints, though at this point optics might be an issue if the camera isn’t high enough resolution.
If encodec can get a ~3 minute song down to ~21 KB, I wonder how small it would make a voice recording.
My thought would be that if Meshtastic could bundle that in, it could add a walkie-talkie function that works over the mesh. It currently has (or had?) an experimental voice message mode, but it could only work over LoRA at 2.4 GHz which isn’t a common use. I don’t even see that module in the latest version of the app, so they may have removed it.
Replying to myself after some thought:
If I recall, the (former?) “Audio” module in Meshtastic used Codec2 which can compress speech down to 450-700 bps. I’ve played around with that, and 700 was often pretty rough but you could make still make it out.
If 700bps was too much for the LoRa mesh to handle, then 1.5 kbps would be way too much. I didn’t catch (or the video didn’t show) the spreading factor used, but I have a few of those UART->LoRa modules, and they are pretty much only good for point-to-point. Even at a higher SF, you could probably transmit that P2P where it would likely clog up a mesh that’s having to rebroadcast it.
Still, I may try it experimentally and see how it goes. Maybe setting a low hop count on those so they’re only reaching direct peers or, at most, 1 hop away may mitigate that.
Was thinking similar but in HF being a Licensed Ham.
Probably too much bandwidth there with that model ideal for music, wasteful for the needs of speech, so went down the conformer/vocoder thought route instead…
Take voice into latent space ( https://en.wikipedia.org/wiki/Latent_space ), transmit the compressed vector, and the vocoder other side to bring the compressed vector back to speech and fell over RADE already existing, and in FreeDV now.
Not yet looked for any GnuRadio flows though to enhance it more.
And thought not fully formed, but bedtime… I shall reply to myself to leave the V1 models and python testing parts, so pretty much leveraging the checkpoints only as in the TX and RC.py files there… maybe… in theory and instead of the OFDM stuff feeding the latent space vector over meshtastic. Maybe. No calculations on bitrate needed and so on.
https://github.com/drowe67/radae
RADE is a huge improvement over Codec2. Unfortunately, it takes a lot more processing power than Codec2 and will not run on a microcontroller.
A lot of people just use their Mesh(tastic|core) companion devices as modems for their smartphones. For those folks, voice could be an add-on. Is Rade expensive to decode, or just encode?
Does the model run locally or do you need to be on the web to decode it?
Locally.
https://github.com/facebookresearch/encodec
Imagine. http://share.google/46lYSTYZ6WefedVTV (qrtape) using encodec …
Entire music library could be printed on thermal register tape (until the image faded!)
Or course, implementing random-play on paper tape would be the next crazy phase.
Obviously the link does not function:
QRTape on YouTube:
https://youtu.be/gbtqU8awzWg?is=K-dXh07q-fcgjnLk
http://youtu.be/gbtqU8awzWg?is=K-dXh07q-fcgjnLk
Laser cut into metal
“We’re here to burn all books.”
Rolls out Harlequin romance novels from yard sales.
“Gee, I have never seen screen door patterns like that…with glass over them.”
They’re just blinds, dear boy… gasoline?
IMHO, next logical step, 3D printing a platter, then adding a tonarm made from a scanner wand to read it as it spins round, round, round. LPs reinvented :] Maybe two sides, two tonarms, too. Who knows, maybe it even works out, and zero wearout.
As nice side-effect, clock signal can be embedded in the shortest track, so the platter could be rotated with the cheapest/wobbliest motor, no difference :] As long as buffering is large enough, that is, and as long as error checking is not bad.
Maybe it could use a focused IR laser to make it work with smaller dots. The dots could then be stamped on a thin aluminum surface over a rigid plastic disc. Some error correcting would be needed, maybe use 8 to 14 modulation. The disc could be called Coded Disc, or CD, since it has audio coded on it. Maybe it could also be used for data storage.
Scanner wand swipes entire half-platter in one go, meaning, no need to focus anything, so gone the pains of track-following, etc.
But yeah, wheels are regularly reinvented anew :]
Some of ’em are even spun at 45 RPM ;)
This is cool! I did a lot of work with paper user interface at Xerox Parc and Fuji Xerox in the early 1990s. I have is an expired patent (US5459307A) for Paper Floppies, which you would scan on a copier or scanner and the file would appear on your desktop. We eventually released a product called Paperworks and a research paper called Protofoil, and a Disney Tomorrowland exhibit with action stickers based on DataGlyphs, and a few enterprise hardware/software paper document management systems with Paper User Interface (DocuStation IM 200, FlowPort). The research effort can not be seen as a pre-web paper browser.
Storage capacity might be about enough for MIDI music, chiptunes or 4 channel Amiga MOD files with poor samples..
Alright, now let’s see this tech do a full length version of Dream Theater’s Six Degrees of Inner Turbulence (over 42 minutes in length). 😏
I listened to their EnCodec neural codec samples. It’s changing the music significantly. The encoded music is similar to the original but clearly different in a worse way. I get the novelty, but if this were widely adopted for streaming to save on bitrate, humanity would be losing out, just like if all food was transformed into McDonalds. Everyone would forget what music was supposed to sound like and wonder when music lost its soul.
Yeah, “sounds better than it has any right to” doesn’t mean “sounds good”– but that’s what lossy compression does. I doubt it’ll catch on, except when extreme compression is needed. On the other hand, is it worse than a 78 compared to a live performance? Nobody worried about music losing its soul in those days.
they said the same thing about JPEG…
:D
Just remember, the lossiest solution is one that doesn’t fit within your resources. If you can’t store it, it’s 100% lost.
Ok. Compression rates are impressive.
But how many CPU-cycles are needed and how much energy is required to compress a certain number of samples? This is very likely not something you’re going to run on a single board computer.
Now I want an opticle turn table that reads off a spiral track on cardstock
I’m the maker of this project. Thanks for featuring it here and love to see all the curious comments.
Just to add, this project was never meant to be something useful. It was a fun idea I had and thought of seeing if it works.
But it did come to me couple of years ago when I used to sell artworks on etsy and wanted to somehow store personalized voice recordings in the physical print of the artwork. Back then I had no idea how to pull it off and simply stored barcodes shaped like sound waves with links to the audio.