Fit a 21 KB Song into 8 QR Codes

A maker used EnCodec to encode a 2.9 MB song into about 21 KB of tokens and printed them as eight QR codes. However, this is not lossless compression, and the project’s published duration, bitrate, and file size figures are clearly inconsistent.
A Song Can Now Be Printed on a Single Sheet of Paper
On August 16, a creator named Makestreme demonstrated a decidedly retro “paper cassette”: an MP3 song originally about 2.9MB in size was processed using Meta’s open-source EnCodec neural audio codec, reducing it to roughly 21KB. The data was then split across eight QR codes printed on both sides of a single sheet of paper.
Scan the QR codes, concatenate the data in the correct order, and decode it using the corresponding EnCodec model, and you can reconstruct playable audio.

The project may look like it “compressed a song by 99.9%,” but a more accurate interpretation is that it did not continue squeezing incremental gains from traditional compression algorithms. Instead, it converted the audio into a sequence of discrete tokens that a neural network can understand.
This distinction is crucial.
ZIP and FLAC aim to recover the original data. MP3 and AAC use psychoacoustic models to discard information that the human ear is less sensitive to. EnCodec goes a step further: it trains a neural network to learn what kind of short code is sufficient for another neural network to reconstruct a waveform that “sounds like the original audio.”
Therefore, what is stored on the paper is not the MP3 file itself, much less the master recording, but a set of neural-network “performance instructions” needed to reconstruct the song.
EnCodec Stores Tokens, Not Waveforms
EnCodec’s basic process can be broken down into three steps:
- The encoder converts the continuous audio waveform into low-frame-rate latent features;
- A residual vector quantizer maps those features to discrete indices in several codebooks—namely, tokens;
- The decoder reads the tokens and regenerates the audio waveform.
One way to think about it is to imagine a stenographer who has listened to a vast amount of music taking notes on a song. Traditional PCM records the waveform point by point. MP3 simplifies the parts to which human hearing is less sensitive. A neural codec, by contrast, records only a highly abstract set of cues: what the timbre is like, how the energy changes, and the approximate shape of the rhythm and spectrum.
The neural network on the playback side then fills in the details based on those cues.
This is also the fundamental reason neural audio codecs can reduce bitrates to just a few kbps: a great deal of prior knowledge about the structure of natural sounds has already been embedded in the model weights. The 21KB of tokens does not contain all the information; the EnCodec decoder and its model parameters are also part of the storage system.
In other words, the sheet of paper can produce sound only if you have the correct “dictionary.”
This is similar to representing a piece of text as dictionary indices. The index file may indeed be small, but that does not mean the size of the dictionary itself can be ignored. For devices on which the decoding model has already been deployed, the marginal transmission cost is only 21KB. But for fully offline, self-contained preservation spanning decades, the model, runtime environment, and format specification must all be archived as well.
From 2.9MB to 21KB: The Numbers Are Not as Simple as the Headline Suggests
According to the project’s disclosures, Makestreme used EnCodec’s 3 kbps mode, and the reconstructed result remained reasonably listenable. When the bitrate was reduced further to 1.5 kbps, however, the audio quality deteriorated noticeably.
But the three figures cited in reports—about two minutes, 3 kbps, and 21KB—cannot all be correct at the same time.
Using the most straightforward bitrate calculation:
3 kbps × 120 seconds ÷ 8
= 45,000 bytes
≈ 45KB
If the token data truly occupies only 21KB, then at a sustained bitrate of 3 kbps, the corresponding duration would be approximately:
21,000 bytes × 8 ÷ 3,000 bps
≈ 56 seconds
In other words, unless “about two minutes” is only a very loose description, the actual average bitrate was below 3 kbps, or the 21KB figure includes only part of the payload, at least one of these measurements needs further clarification.
The claim that the file was “reduced by 99.9%” is similarly exaggerated. Using decimal units for a rough calculation:
Compressed proportion = 21KB ÷ 2,900KB ≈ 0.724%
Size reduction ≈ 99.276%
Compression ratio ≈ 138:1
A compression ratio of 138:1 is certainly remarkable, but it is not a 99.9% reduction. To achieve the latter, a 2.9MB file would need to be reduced to approximately 2.9KB.
These numerical issues do not diminish the project’s appeal, but they do affect whether developers can judge the solution to be suitable for real-world applications. In low-bitrate communications, a twofold difference in data volume can require recalculating battery life, transmission latency, and packet-loss probability.
Being Listenable at 3 kbps Does Not Mean It Can Replace MP3
The advantage of neural codecs at extremely low bitrates is generally not that they keep the audio “unchanged,” but that they make the distortion more acceptable to human listeners.
Common problems with traditional low-bitrate encoding include metallic artifacts, unstable high frequencies, blurred transients, and an underwater quality. Neural decoders may reconstruct missing portions into more natural-sounding audio, but the reconstructed details do not necessarily come from the original recording.
For voice calls, remote intercoms, and podcast previews, this is usually a good thing. Users care about whether the content is clear, not whether every sample is identical.
For music archiving, forensic recordings, medical auscultation, or raw machine-learning datasets, however, the situation is different:
- The original MP3 cannot be recovered bit for bit, much less the pre-compression master;
- High-frequency textures, reverb tails, and complex instrumental layers may be reconstructed rather than preserved;
- The model may generate details that sound natural but were not present in the original signal;
- The results produced by downstream audio-analysis models may be affected by codec artifacts.
EnCodec is therefore better viewed as a perceptual transmission format than as a general-purpose archival format. It addresses the problem of using as little data as possible while keeping the audio intelligible or tolerable to listeners. It does not address the problem of precisely recovering the original file decades later.
The noticeable loss of quality at 1.5 kbps is also consistent with how such systems work. Reducing the bitrate usually means reducing the number of codebooks used to encode each frame. The fewer cues the model receives, the more it must fill in on its own. Beyond a certain threshold, timbre, transients, and background details all begin to collapse.
Eight QR Codes Can Hold the Data, but Error Tolerance Is Squeezed Out
Project tests showed that a single QR code could hold approximately 3.3KB of binary data in practice. The 21KB token stream was therefore divided into eight chunks, each with a one-byte sequence number added. Four QR codes were placed on each side of the paper, creating a layout reminiscent of the A and B sides of a cassette tape.
Although this numbering scheme is simple, it is essential. The order in which QR codes are scanned is not reliable, and without chunk sequence numbers, the eight binary segments could easily be concatenated incorrectly.
To increase the data density of each QR code, the generator selected the lowest level of error correction. This allows more payload data to fit into each code, but the trade-off is that recovery rates can decline rapidly if the paper is creased, damaged, stained, faded, or poorly printed.
Moreover, the eight QR codes form a dependency chain: if even one becomes unreadable, the entire token stream may contain a gap. A neural decoder may be able to conceal a very short loss, but it cannot reliably reconstruct an arbitrary missing chunk from nothing.
If this experimental project were turned into a more robust engineering solution, it should at minimum add:
- A CRC or cryptographic hash for each chunk to detect scanning errors;
- A file-level hash to verify the integrity of the final concatenated result;
- Cross-chunk erasure coding such as Reed–Solomon, allowing one or two QR codes to be lost;
- Explicit records of the model version, sample rate, channel count, bitrate, and token format;
- A file ID for each chunk to prevent QR codes from multiple sheets from being mixed together;
- Higher-level QR-code error correction instead of pursuing theoretical capacity alone.
The goal of a real archival system is not merely to remain scannable when freshly printed, but to preserve some chance of recovery after the paper has endured folding, dust, humidity, and years of fading.
From this perspective, the current design is more of an elegant proof of concept than reliable paper-based cold storage.
Why Does Sending One Song over LoRa Take an Hour and a Half?
Makestreme also tested wireless transmission using two ESP32 development boards and REYAX RYLR998 LoRa modules. Approximately 21KB of data was divided into 160-byte packets and transmitted at 866 MHz, with acknowledgments and retransmissions used to ensure integrity.
At 21KB, this requires approximately 134 data packets. After receiving each ACK, the sending program waits a fixed 40 seconds before transmitting the next packet. The waiting time alone amounts to:
134 × 40 seconds = 5,360 seconds ≈ 89.3 minutes
Thus, the fact that transmitting one song takes about an hour and a half is not because EnCodec decoding is slow, nor can it simply be attributed to the LoRa physical-layer speed. The real bottleneck is the extremely conservative stop-and-wait strategy and the fixed 40-second interval.
This approach trades throughput for reliability. It is simple to implement and prevents continuous transmission from placing pressure on the link or violating regulatory duty-cycle limits, but its link utilization is extremely low. Where the application permits, developers could consider sliding windows, batched ACKs, adaptive retransmission intervals, forward error correction, and adjustments to the spreading factor and bandwidth in accordance with local spectrum regulations.
However, this test neatly illustrates where neural codecs are genuinely valuable: when the communications link is so constrained that even 21KB feels expensive, trading model complexity for bandwidth becomes practically meaningful.
Examples may include low-speed broadcasting in disaster areas, voice return links for field sensors, underground or deep-sea equipment, and low-power intercom systems. Such applications may be willing to accept reduced audio quality in exchange for lower transmission power and a higher probability of successful delivery. By contrast, in 5G or Wi-Fi environments, deploying a neural decoder merely to save a few hundred kilobytes often introduces more complexity than the savings justify.
For Developers, the Design Concept Is What Is Really Worth Copying
The most noteworthy aspect of this “paper cassette” is not that QR codes can play a song, but that it demonstrates an increasingly common computing paradigm: transform the data-compression problem into one of transmitting discrete tokens, then let a model on the receiving end reconstruct the data.
Similar ideas have already appeared in voice communications, audio generation, and multimodal models. Once audio has been discretized, it can be predicted, transmitted, cached, and error-corrected like text, while generative models can directly learn the sequential relationships among these tokens.
But the project also exposes three costs that are most easily overlooked when deploying neural codecs:
First, model dependency. No matter how small the file is, a compatible decoder and the correct weights are still required.
Second, version dependency. If the encoder and decoder, codebooks, or preprocessing parameters do not match, the tokens may become meaningless.
Third, the cost of authenticity. The output may sound excellent, but that does not mean it faithfully represents the input. This is particularly dangerous in machine-processing pipelines.
A 21KB song therefore does not mean MP3 has finally been “killed,” nor does it mean paper has suddenly become a high-density storage medium. It is better understood as an intuitive demonstration: when the receiving end has a sufficiently powerful generative model, the sender no longer needs to transmit the entire signal—only a set of cues that allows the model to reproduce it.
This approach is genuinely useful and may even reshape low-bandwidth audio communications. But the compression ratio in the headline, the listenability of the demonstration, and its engineering practicality should be evaluated separately.
For now, this sheet of paper belongs on a maker-fair display, not in an archive.
References
- ITHome: Maker Compresses a 2.9MB Song to 21KB and Preserves It on Paper Using Eight QR Codes — Information on the project structure, QR-code capacity, EnCodec bitrate, and LoRa transmission tests.



