friedhof:algorithmicsoundscapes
Inhaltsverzeichnis
Project: Algorithmic Soundscapes
Wat?
Have a c-oneliner generate something you can directly pipe into /dev/dsp or aplay. For an example (this actually started it) check out this YouTube video.
The code usually follows the basic pattern of
main(t){for(t=0;;++t)putchar( X );}
Where X is a formula based on t. You can compile it as follows:
# code in code.c gcc -xc -lm code.c ./code | aplay
If you don't want to compile it yourself, you can use an online service like http://wurstcaptures.untergrund.net/music/ to render the first few seconds of your track.
You can also compile it inline and have it play directly:
echo "main(t){for(t=0;;++t)putchar( X );}"|gcc -xc -lm -&&./a.out|aplay
Note the -lm in both cases which links against the math library so you can use sin, cos, tan, et al.
Collection
Formula | Who | Comment |
---|---|---|
(t|t>>8)>>(t>>7)|(t<<6|t<<8)>>(t>>11)|(t<<7|t<<11)>>(t>>11) | hadez | |
(t|t>>17)>>(t>>7)|(t<<2|t<<8)>>(t>>11)|(t<<2|t<<11)>>(t>>17) | h0uz3 | cool morse blips after a while |
(int)sin(t>>16)|(t|t>>8) | hadez | slow chippy bassline |
(t>>9&t>>8)*(t>>3) | h0uz3 | Ready for a horror trip? Just add some LSD… |
(t>>8|t-2)&(2-t|8<<t) | h0uz3 | Symmetries are for pussies |
((t>>8|t-2)&(2-t|8<<t))<<((t>>8|t-2)&(2-t|8<<t))>>((t>>8|t-2)&(2-t|8<<t)) | h0uz3 | Downward spiral |
((t>>3|t<<7)|t>>11)|t>>16 | h0uz3 | Time to wake up, huh? |
((((t>>3|t<<7)|t>>11)|t>>16)&23) | h0uz3 | 23 makes everything a little more sane |
((sin((t%17)*3.1415*0.5)*100)<<t/90)|(sin(t*t*3.1415*0.5)*50) ]] | samuirai | dramatic space aliens |
((t>>4)|(t<<4)&0x11111+t/1000) | tv | Baby-Kübelwagen-Alarm-Therapist #x1 [pre] |
t<700000?((t/2000%2?t<<3:t<<2)>>(t/10000%3)<<t/100000) :t<800000?-t*t*t>>(t/1000)|t/(800000-t) :t<805000?t<<(t/500) :/*"fin"*/1/(t-t) | tv | Alarm-Symphony #x2 (w/happy end) |
((t>>7)* 0xff) * (t & 0xff)/32 & ~(t / 127) | bdwheele | Almost pac-man |
Stereo Version: http://preview.tinyurl.com/65pjn98 | sso | 8-Bit Psytrance? Try at 22050Hz Sampling Rate! |
((t>>10)<<((t>>4)%([8,9,10,11][(t>>11)%4]-(t>>15)%4))) | tito | Boss level |
Tips & Tricks
- add multiple voices using eg. bitwise or „|“
- use operators and bitmasks! +,-,*,/ and &,^,|,«,»
- exploit math functions (sin, cos, tan, …)
- shift left for higher notes „«“
- shift right for lower notes „»“
- add rhythm by shifting everything right by a right-shift of t „(formula)»(t»N)“, the bigger N, the higher the rhythm frequency
- as with everything algorithmically generated: prime numbers are your friend! they make it sound so much more interesting by yielding less repetitive output
- build chords!
- note 1:
(t<<6|t<<8)>>(t>>11)
- note 2:
(t<<7|t<<11)>>(t>>11)
- combine:
(t<<6|t<<8)>>(t>>11)|(t<<7|t<<11)>>(t>>11)
friedhof/algorithmicsoundscapes.txt · Zuletzt geändert: 2020-07-20 12:03 von neos