music written in the C programming language
C Perl Shell
Permalink
Failed to load latest commit information.
essay + reference to viznut's arxiv paper Dec 10, 2011
2-6-2-7-2-8 * slow melodies Oct 7, 2011
3-6-3-7-3-8 * slow melodies Oct 7, 2011
4-512-s-11-63 + some quite hectic tracks Oct 5, 2011
512-3s-18-4s-27 + some quite hectic tracks Oct 5, 2011
512-3s-4s-512 + some quite hectic tracks Oct 5, 2011
512-3s-4t-9 + some quite hectic tracks Oct 5, 2011
512-3s-512-4s + some quite hectic tracks Oct 5, 2011
6-3-4-7-2 + a bunch of mostly slow songs Oct 6, 2011
6-7-2-4-8-2-4-7-8-9 + a bunch of mostly slow songs Oct 6, 2011
6-7-8-4-5-2-8-4 + a bunch of mostly slow songs Oct 6, 2011
6-7-8-4-5-4-7-3 + a bunch of mostly slow songs Oct 6, 2011
6-7-8-4-5-4-8-4 + a bunch of mostly slow songs Oct 6, 2011
6-8-4-4-7-3-2-6-2 * slow melodies Oct 7, 2011
7-4-8-3 + a bunch of mostly slow songs Oct 6, 2011
8-4-6-2 + a bunch of mostly slow songs Oct 6, 2011
8-5-2-6-4-3-4-3-4 + braces Oct 13, 2011
PC-10 * sound reminiscent of PC-10 startup sound Oct 19, 2011
README README contained wrong sox invocation Apr 18, 2013
alarm + simple beeping noise Oct 19, 2011
almost-pacman + almost-pacman by bdwheele Dec 4, 2011
beat-%60-r40 + boing beep Oct 19, 2011
beat-r6*6 + beats using different operators Oct 19, 2011
beat-r7%160 + beats using different operators Oct 19, 2011
beat-r8&23 + beats using different operators Oct 19, 2011
beat-r9^13 + beats using different operators Oct 19, 2011
crowd + <xentrac> so I showed off ((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7… Dec 1, 2011
du-dup + hectic background melody Nov 11, 2011
emergency + sadly, not quite the emergency theme from “The IT Crowd” Oct 19, 2011
fefe-6-6-6 * no longer divides by zero Oct 6, 2011
fefe-9-11 + songs inspired by libowfat and tinyldap Oct 5, 2011
flatline-8-11-11-11-16 * fix for type issue (division yields double where integer is needed) Oct 7, 2011
flatline-8-11-16 + basic flatline effect and enhanced version of the same Oct 5, 2011
hotline-3-6-8-11-3-11 + hotline soft pop Oct 6, 2011
hotline-3-8-8-8-11-7-11 + hotline soft pop Oct 6, 2011
it-crowd * even smaller it crowd intro Oct 14, 2011
kübelwagen + kübelwagen by tv, see <https://github.com/krebscode/painload/tree/m… Dec 5, 2011
l2 + generators shifting bits to the left Oct 11, 2011
l3 + generators shifting bits to the left Oct 11, 2011
l4 + generators shifting bits to the left Oct 11, 2011
l5 + generators shifting bits to the left Oct 11, 2011
l6 + generators shifting bits to the left Oct 11, 2011
makefile * higher bitrate for vorbis Oct 14, 2011
mortal-kombat + music reminiscent of the mortal combat theme Oct 19, 2011
noise-airplane + noise effects Oct 19, 2011
noise-creepy + noise effects Oct 19, 2011
noise-s-8 + noise effects Oct 19, 2011
play + math Oct 11, 2011
plot - removes height option from plot tool Oct 10, 2011
quatsi-11-8-7 + another song reminiscent of the quatsi trilogy Oct 6, 2011
quatsi-8-7 + music reminiscent of the quatsi trilogy Oct 6, 2011
quatsi-9-7 + music reminiscent of the quatsi trilogy Oct 6, 2011
r10 + generators shifting bits to the right Oct 11, 2011
r11 + generators shifting bits to the right Oct 11, 2011
r12 + generators shifting bits to the right Oct 11, 2011
r7 + generators shifting bits to the right Oct 11, 2011
r8 + generators shifting bits to the right Oct 11, 2011
r9 + generators shifting bits to the right Oct 11, 2011
rolling * transliteration of madgarden's “rolling” Nov 12, 2011
sawtooth + sawtooth wave Oct 8, 2011
sig.c + viznut's old sig from the 90s Oct 14, 2011
sine + sawtooth, sine, square, triangle waveforms Oct 9, 2011
sine-nomath + sine wave without math headers, an idea from xentrac Nov 18, 2011
square * better square waveform Oct 14, 2011
symmetries + symmetries by h0uz3 Dec 5, 2011
triangle + sawtooth, sine, square, triangle waveforms Oct 9, 2011
visualizer.c + viznut's visualizer Oct 19, 2011
wraparound-disco * constant beat in wraparound-disco Nov 4, 2011

README

This is a collection of minimal programs for sound synthesis, written in C. They are using techniques explained in <http://countercomplex.blogspot.com/2011/10/algorithmic-symphonies-from-one-line-of.html> and the followup discussions at <http://news.ycombinator.com/item?id=3063359> and <http://www.reddit.com/r/programming/comments/kyj77/algorithmic_symphonies_from_one_line_of_code_how/
>.

To compile the demo program and listen to its output, do:
    g++ ./munching-squares.c -o munching-squares
    ./munching-squares | sox -c 1 -e unsigned-integer -r 8000 -t u8 - -d --buffer 32

To generate a C program for any formula and play it immediately:
    ./play $FILENAME