This is music generated inside your browser, not a playlist placed over a Bitcoin animation. The block creates a repeatable musical world. Live mempool activity then performs variations inside that world while musical rules keep each style coherent.
01 · The permanent seed
A block builds the musical world
A Bitcoin block hash contains 64 hexadecimal characters, or 32 bytes. The generator normalizes the hash, reads each pair of characters as a byte from 0 to 255, and folds those bytes into a seeded pseudo-random number generator. Its output is deterministic: the same hash and 21FM engine version produce the same decision bytes every time.
The hash independently selects one of 12 production scenes and one of 25 groove sessions, plus a root note, musical mode, four-chord progression, chord shape, arrangement, drum kit, room texture and effects. A consecutive live block is prevented from reusing the immediately previous production scene.
10 modesMajor, minor, blues, dorian, phrygian, lydian, mixolydian and more.
25 groovesAmbient, hip-hop, jazz, house, techno, jungle, funk, dub, Latin and more.
10 progressionsEach becomes four chords in the chosen key.
5 voicingsTriads, sevenths, ninths, shells or wide fifths.
In replay engine v4, four visible eight-character sections of the hash are mapped directly into decision groups: characters 25-32 shape harmony, 33-40 shape groove, 41-48 select the ensemble, and 49-56 shape texture and effects. Those are the colored characters drawn around the record. Other decisions still come from the seeded byte stream, so the complete hash remains part of the identity.
The displayed name comes only from the block height and uses a length-prefixed base-2,048 code. Block 1 maps to BIP39 index 0 and block 2,048 maps to index 2,047, so every one-word name is used first. Block 2,049 starts at indexes 0, 0; after all 2,048² two-word combinations are exhausted, three-word names begin, followed by four and eventually five words. Decoding first adds the capacity reserved by all shorter names, then reads the words as base-2,048 digits. This keeps names unique, searchable and reversible without leading-word collisions.
A halving era is calculated directly from floor(block height ÷ 210,000); no extra request is needed. The era rotates the orange anchor through the words and is shown in the track metadata. It deliberately does not scramble or add words, because the exact BIP39 sequence must remain sufficient to recover the block height.
These words are a public block label, not a wallet mnemonic, seed phrase or source of private keys.
02 · Notes and time
The seed writes a four-bar composition
The selected scale is expanded into a 21-note palette. The generator builds four chords, four bass roots and a lead composition as long as the complete four-bar cycle. Twelve melodic forms provide different contours such as question-and-answer, ascent, descent, arch, valley, pedal tones, broken thirds and wide leaps. Twelve independent lead rhythms place those notes as spacious statements, syncopated replies, held phrases, quick exchanges and other patterns. Each bar then receives its own response shift, cadence, register turn, durations and dynamics.
Every musical cycle contains four bars, but the bars are not forced into one rhythm. A block can choose 3/4, 4/4, 5/4, 6/8 or 7/8, producing cycles from 48 to 80 scheduler steps. The groove supplies the kick, snare, hi-hat, chord and bass positions while the separate lead writer supplies its melodic timing. Tempo ranges from 48 to 176 BPM and swing ranges from 50% to 68%.
Five arrangement shapes can drop and return, build gradually, alternate call and response, put rhythm first or open with the full ensemble. Melody is allowed into selected bars rather than running continuously. Chord inversions, bass pickups, arpeggios, mallet answers and small percussion patterns create movement around the main loop.
03 · The virtual studio
Sampled instruments meet Web Audio synthesis
The project bundles 449 MP3 notes from 20 instruments. The block chooses instruments from sensible roles instead of treating every sound as interchangeable:
- Harmony: piano, acoustic/electric/nylon guitar, harmonium, organ, harp or xylophone.
- Bass: electric bass, contrabass, cello, bassoon, tuba or trombone.
- Lead: woodwinds, brass, strings, electric guitar, harp or xylophone.
- Pluck and mallet: guitars, harp, piano, harmonium and xylophone.
Tone.js plays the nearest recorded note and pitch-shifts only when an exact sample is unavailable. Organic sessions use 28 compact CC0 recordings of acoustic bass drum, snare, sidestick, hi-hat, cajon, conga, bongos, shaker, claves, tambourine and woodblock. Paired recordings alternate on repeated hits. Electronic sessions retain synthesized drums, while pads, room texture and the subtle transaction whistle are generated locally.
The audio graph is: voice or sampler → role gain → music bus → low-pass filter → distortion → tremolo → phaser → reverb → stereo width → compressor → limiter → volume control. The block sets filter, delay, chorus, reverb, modulation, distortion and width values. The limiter catches peaks after the louder mix bus. Drums, bass and rhythm sit forward; the lead bus is deliberately lower, with pad, arpeggio and mallet used as supporting color.
04 · The live conductor
The mempool changes the performance
mempool.space supplies the latest block, its hash, the half-hour fee estimate, unconfirmed transaction count, total mempool virtual size and projected mempool blocks. A WebSocket then streams newly seen transaction IDs and block updates. The block defines the song; these changing values define how the current performance breathes.
The initial snapshot calls /api/blocks, /api/v1/fees/recommended, /api/mempool and /api/v1/fees/mempool-blocks. The WebSocket at /api/v1/ws subscribes to blocks, projected mempool blocks, statistics and mempool TXIDs. A separate 30-second tip check prevents a missed socket frame from leaving the current block stale.
- Fee pressure
- log2(half-hour sat/vB) / 9, clamped from 0 to 1. It adds 0-4 BPM and up to 1,200 Hz of filter opening.
- Mempool size
- Total virtual bytes / 250,000,000, clamped from 0 to 1. It moves the quiet tape/vinyl bed by up to 8 dB.
- Transaction count
- Count / 500,000, clamped from 0 to 1. It contributes up to 500 Hz of brightness and raises percussion probability.
- Projected blocks
- Projected blocks / 12, clamped from 0 to 1. It increases delay wetness from 8% toward 20%.
Each WebSocket batch is reduced to at most 96 TXIDs on low-power devices or 192 on larger devices. Every selected 32-byte TXID is XORed and mixed into different positions of a rolling 32-byte flow seed. That seed creates a variation spanning the track's complete 48-to-80-step cycle, influencing note choices, velocities, chord inversions, lead/bass/harmony variations, hi-hat offset, fills and melodic register. Written notes remain recurring anchors, so transactions vary the block's composition instead of replacing it with the same generic loop. The result is queued and activated at the next bar boundary, so network timing cannot tear a phrase apart.
Economy audio uses the same block-written melody but selects only one or two of its notes per bar. This keeps CPU use predictable without collapsing every block into the former single repeated accent.
05 · Transaction detail
A representative transaction adds musical character
There are too many transactions to download every full record safely. The bounded TXID sample shapes the rolling seed, while the browser fetches one representative transaction no more often than every 4 seconds on regular devices or 12 seconds in economy mode. Requests time out after 5 seconds and responses are limited to 300 KB or 100 KB respectively.
- Fee rate
- log2(sat/vB) / 8 becomes fee energy: filter brightness, kick velocity and rhythmic detail.
- Virtual size
- log2(vbytes / 80) / 6 selects sixteenth, eighth or quarter-note length and controls bubble area.
- Inputs and outputs
- The normalized count becomes complexity: rests, chord voice variation, fills and bass pickups.
- Average output value
- A logarithmic 1-10⁹ satoshi range moves the melody down, keeps it centered or moves it up an octave.
- Script family
- Taproot, SegWit, legacy, data, batch and consolidation classifications offset lead, chord or bass voice selection.
- RBF and data outputs
- Their share adds rhythmic detail; the visualizer adds an outer ring for RBF and a square for data outputs.
If transaction-detail sampling fails, the TXIDs still vary the music. No transaction content is invented to fill a missing response.
06 · What the visualizer means
The record is a second view of the same data
Transaction bubbles are released in batches no more often than every 4 seconds. Their color represents a transaction family; their area grows with virtual size; a pale outer ring means replace-by-fee; and a square means a data output was detected. Higher-fee bubbles travel faster.
Bubbles enter from different directions and are curved back toward the record by its visual “gravity.” Roughly one third receive a path across the center. Crossing close enough can produce a quiet whistle whose speed and pitch follow fee motion and whose strength follows proximity. The whistle is intentionally a background detail.
The center shows block height and the complete block hash runs clockwise around the record. During replay, colored hash characters show the sections used for harmony, groove, ensemble and texture. Turning animation off stops canvas work and bubbles, but it does not stop the music or live data.
07 · Blocks and replay
A new block closes one session and opens another
When a new block arrives, it is queued until the musical boundary. The completed block fades to silence, its voices and loaded samplers are released, the next block constructs its studio, and the new mix fades in. Old and new block sessions do not play over each other.
Replay accepts a height or full hash. A height is resolved through /api/block-height/:height. The browser then calls /api/block/:hash, /api/block/:hash/txids and the first transaction page at /api/block/:hash/txs/0. The hash rebuilds the musical world; block weight, count, sampled fees, transaction structures and the folded complete TXID list rebuild its internal flow. Replay data is cached only for the browser session.
08 · Performance and privacy
Everything is generated on the device
Faster devices receive denser visuals and the full effects path. Lower-power devices use fewer particles, a lower canvas frame rate, smaller synth polyphony and a leaner effects mix. Both use the same block identity and musical rules.
The browser contacts mempool.space for public Bitcoin data and downloads only the instrument banks selected by the current block. It does not upload microphone audio, wallet data or personal Bitcoin information. Used samples can be cached by the PWA for later playback.
This is a musical interpretation, not a scientific sonification where one satoshi equals one note. Bitcoin data makes real, bounded decisions; the composition system translates those decisions into something intended to remain listenable.