Uploaded August 2026 | Updated September 2026, 2 weeks ago
here is my circuitpython 2026 project
it's a deterministic map from a 64-bit factory uid to a piece of music, rendered in the browser via web audio and exportable as a standard midi file.
these crab aliens have been telling me i had to find people so they can start to deal with telling earth about them, and i was like, ok fine, but i have some specific requests. actually, more like wishes. they said fine. so then i needed some chip thing and some electronics, and in exchange i got to make those wishes, like a genie, but more like solaris (the george clooney one with the sony clie).
so bunnie's chip has a bit of numbers that use firefox web serial to make midi. it's the chip id, from the program that's going out with the open source software and hardware. and i am still on unlimited free power with coned. and firefox serial was a bug, download firefox now.
every baochip-1x has a 64-bit factory uid. the browser reads those 16 hex characters and turns them into a 32-bit seed using fnv-1a, then feeds that into xorshift32. from there it deterministically chooses the musical parameters. same chip, same uid, same song, every time. someone with only the uid can independently regenerate it. there is no account, cloud service, database, hidden state, or ai deciding what sounds good.
64-bit uid → fnv-1a → 32-bit seed → xorshift32 → song parameters → web audio + midi + four-digit song id.
arbitrary numbers make terrible composers, so the numbers don't directly become notes. instead, they select from a musical vocabulary: 12 roots, five minor-ish modes, 48-72 bpm, eight chord progressions, a 5-7 note motif, bell direction, oscillator detuning, and filter cutoff. every possible uid needs to make something that sounds intentional.
the browser synthesizer does everything live with web audio. each bar has a three-note pad, bass, occasional fifth, four-note motif, and an fm bell every fourth bar. the main voice is three detuned sawtooth oscillators through a swept resonant low-pass filter, then a high-pass, compressor, and feedback-delay/reverb. audio is scheduled ahead using the web audio clock so javascript timer jitter doesn't become musical jitter.
it also makes a real standard midi file: format 0, 480 ppq, 16 bars, with tempo, track name, note events, and proper delta timing. download it, open it in a daw, or send it through usb midi to a hardware synth.
we tested whether nearly identical chips actually produce different music. two real boards have uids `0000c09b9ec2f24c` and `0000c09b9ec49174`. one becomes song `9eac`, d aeolian at 64 bpm. the other becomes `c228`, c melodic minor at 69 bpm. they differ in every measured musical field.
then we tested 256 sibling uids differing only in their final byte. all 12 roots, five modes, 25 tempos, and eight progressions appeared, with 256 unique song ids in that test. tiny changes at the boring end of a factory serial number avalanche into different music.
we measured the actual audio too, which found a real bug. originally 55% of the energy was below 60 hz, mostly useless on laptop speakers while still eating headroom. moving the bass up an octave and adding a 55 hz high-pass moved much more energy into the bass you can hear. the midi generator was changed to match.
the four-digit song id is calculated from the resulting musical parameters, not directly from the uid, so it's shorthand for "this music." the real identifier remains the full 64-bit uid.
there is also an important difference between a chip and somebody claiming a chip number. if the uid comes over serial from physical hardware, the page says `measured from hardware`. if somebody puts a uid into a shared url, it says `from link - a claimed uid, not measured here`. anyone can type a number.
the whole thing is standalone static html. no server application, runtime build, database, analytics, cdn, or network dependency. host it and a `?uid=` link lets anybody regenerate a chip's song on another machine without having the board.
so...
physical chip → factory uid → firefox web serial → deterministic javascript → music → web audio → standard midi → whatever synthesizer you want.
same silicon number, same composition. no lookup table. no trained model. no randomness hiding between runs.
the chip already had its song. circuitpython help make the machine that lets us all hear it.
happy circuitpython day 2026.
-pt
here is my circuitpython 2026 project
it's a deterministic map from a 64-bit factory uid to a piece of music, rendered in the browser via web audio and exportable as a standard midi file.
these crab aliens have been telling me i had to find people so they can start to deal with telling earth about them, and i was like, ok fine, but i have some specific requests. actually, more like wishes. they said fine. so then i needed some chip thing and some electronics, and in exchange i got to make those wishes, like a genie, but more like solaris (the george clooney one with the sony clie).
so bunnie's chip has a bit of numbers that use firefox web serial to make midi. it's the chip id, from the program that's going out with the open source software and hardware. and i am still on unlimited free power with coned. and firefox serial was a bug, download firefox now.
every baochip-1x has a 64-bit factory uid. the browser reads those 16 hex characters and turns them into a 32-bit seed using fnv-1a, then feeds that into xorshift32. from there it deterministically chooses the musical parameters. same chip, same uid, same song, every time. someone with only the uid can independently regenerate it. there is no account, cloud service, database, hidden state, or ai deciding what sounds good.
64-bit uid → fnv-1a → 32-bit seed → xorshift32 → song parameters → web audio + midi + four-digit song id.
arbitrary numbers make terrible composers, so the numbers don't directly become notes. instead, they select from a musical vocabulary: 12 roots, five minor-ish modes, 48-72 bpm, eight chord progressions, a 5-7 note motif, bell direction, oscillator detuning, and filter cutoff. every possible uid needs to make something that sounds intentional.
the browser synthesizer does everything live with web audio. each bar has a three-note pad, bass, occasional fifth, four-note motif, and an fm bell every fourth bar. the main voice is three detuned sawtooth oscillators through a swept resonant low-pass filter, then a high-pass, compressor, and feedback-delay/reverb. audio is scheduled ahead using the web audio clock so javascript timer jitter doesn't become musical jitter.
it also makes a real standard midi file: format 0, 480 ppq, 16 bars, with tempo, track name, note events, and proper delta timing. download it, open it in a daw, or send it through usb midi to a hardware synth.
we tested whether nearly identical chips actually produce different music. two real boards have uids `0000c09b9ec2f24c` and `0000c09b9ec49174`. one becomes song `9eac`, d aeolian at 64 bpm. the other becomes `c228`, c melodic minor at 69 bpm. they differ in every measured musical field.
then we tested 256 sibling uids differing only in their final byte. all 12 roots, five modes, 25 tempos, and eight progressions appeared, with 256 unique song ids in that test. tiny changes at the boring end of a factory serial number avalanche into different music.
we measured the actual audio too, which found a real bug. originally 55% of the energy was below 60 hz, mostly useless on laptop speakers while still eating headroom. moving the bass up an octave and adding a 55 hz high-pass moved much more energy into the bass you can hear. the midi generator was changed to match.
the four-digit song id is calculated from the resulting musical parameters, not directly from the uid, so it's shorthand for "this music." the real identifier remains the full 64-bit uid.
there is also an important difference between a chip and somebody claiming a chip number. if the uid comes over serial from physical hardware, the page says `measured from hardware`. if somebody puts a uid into a shared url, it says `from link - a claimed uid, not measured here`. anyone can type a number.
the whole thing is standalone static html. no server application, runtime build, database, analytics, cdn, or network dependency. host it and a `?uid=` link lets anybody regenerate a chip's song on another machine without having the board.
so...
physical chip → factory uid → firefox web serial → deterministic javascript → music → web audio → standard midi → whatever synthesizer you want.
same silicon number, same composition. no lookup table. no trained model. no randomness hiding between runs.
the chip already had its song. circuitpython help make the machine that lets us all hear it.
happy circuitpython day 2026.
-pt










