Turn mathematical chaos into music. This program transforms the Collatz conjecture (3x+1 problem) into procedurally generated IDM/Ambient audio
- You give it a number
- It computes the full 3x+1 sequence e.g.
27 - 82 - 41 - 124 - 62 - ... - Each value in the sequence drives:
- Notes mapped to a 4-octave Phrygian Dominant scale
- Rhythm chaotic subdivisions 32nd to quarter notes selected by XOR hashing
- Instruments 9 synthesized voices triggered by sequence entropy
- Effects 18 glitch effects activated probabilistically
| Voice | Synthesis | Role |
|---|---|---|
| Bass | sawtooth + LPF | low-end foundation |
| Lead | FM synthesis | melody, one octave up |
| Pad (x3) | 3 sine voices | symphonic chord bed |
| Arpeggiator | square wave | fast high-freq arpeggios |
| Drone | sine | sub-bass atmosphere |
| Piano | sine + 2nd harmonic, fast decay | bell-like melodic plucks |
| Soft Synth | Filtered square wave | gentle tonal melody |
| Kick | sine + pitch envelope | punchy low-end |
| Snare | sine + noise (40/60) | crisp rhythm |
| Hi-hat | HPF noise | short, crispy |
| Metal Perc | FM synthesis | metallic clicks/scrapes |
- Chorus: Short modulated delay creating stereo width and harmonic shimmer.
- Filter: Slow LFO-driven master low pass filter that opens and closes.
- Portamento: Smooth frequency transitions between notes for a fluid melodic feel.
- Swing: Subtle timing jitter ±5ms to give the rhythm an organic, non-robotic feel.
- Tempo Rush: Mathematical acceleration triggered by ascending phases in the Collatz sequence, creating a natural flow.
Bitcrush · Stutter · Granular freeze · Ring mod · Pitch scramble · Gate · Tape wobble · Wavefold · Overdrive · Comb filter · XOR scramble · Spectral freeze · Time stretch · Sample & Hold · Vinyl crackle · Decimator · Buffer override · Hardclip distortion
Requires libsndfile.
gcc -O2 -o collatz_music collatz_music.c -lsndfile -lm./collatz_music <number> [output.wav]./collatz_music 6171
./collatz_music 27 my_track.wavexample:
ffmpeg -i collatz_out.wav -b:a 320k collatz_out.mp3You can listen to an example of the generator's output here. SoundCloud
Do you have any ideas or would you like to help the project develop? Check out our contributing guide