Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

feel the ChucK demo phunk

  • Loading branch information...
commit c44a5329739c1900ea3ff3463d0374cfbd57ee4e 1 parent 8227ecf
@gilesbowkett authored
View
29 README
@@ -1,13 +1,26 @@
Alpha! Not release-ready! Here be dragonnes! etc.
-Archaeopteryx is a MIDI system for Ruby based on code from Topher Cyll's book "Practical Ruby
-Projects."
+Archaeopteryx is a MIDI system for Ruby. Archaeopteryx uses MIDIator for MIDI Out and recommends rbcoremidi for MIDI In.
-Archaeopteryx successfully generates original drum and bass rhythms, tours the circle of fifths
-and the circle of fourths, does extremely simplistic randomized pseudo-arpeggios, handles chord
-progressions of the I-IV-V and V-I varieties, synchs original rhythms to MP3 playback, and crossfades
-between existing MP3 tracks.
+Archaeopteryx is a collection of hacks, some living on their own branches, many of them ugly. The best-known is a probabilistic step sequencer. Other Archaeopteryx hacks tour the circle of fifths and the circle of fourths, do extremely simplistic randomized pseudo-arpeggios, handle chord progressions of the I-IV-V and V-I varieties, synch the probabilistic step sequencer to MP3 playback, automate Ableton Live to create random, brainless "DJ mixes," and crossfade between existing MP3 tracks.
-Archaeopteryx is a Ruby front-end to prosumer music software such as Propellerhead Reason and
-Ableton Live. You need a MIDI consumer to get anything useful out of it.
+Archaeopteryx differs from projects like ChucK, Supercollider, PD, Max/MSP and OSC in a fundamental way. Archaeopteryx favors simplicity over power, and ubiquitous protocols over any other kind. Archaeopteryx does not want programmatic control over sound or audio. Archaeopteryx exists because music software should have a scriptable command-line interface. Archaeopteryx aspires to be an MPC-2000 with a shell prompt. You use Archaeopteryx as a Ruby front-end to music software such as Propellerhead Reason and Ableton Live.
+
+Consequently you need a MIDI consumer to get anything useful out of Archaeopteryx. The wiki links to two videos which show you how to drive GarageBand with Arx. Arx also includes a simple MIDI consumer written in ChucK which allows programmers to operate Arx's probabilistic step sequencer without being required to buy anything or learn any unfamiliar software. That is, unless you count the ChucK interpreter. Install it here:
+
+ http://chuck.cs.princeton.edu/release/
+
+To use it, first get the consumer running:
+
+ ~/programming/chuck/bin/chuck demo.ck &
+
+Next drive it with the probabilistic step sequencer:
+
+ ruby eval_style.rb
+
+Voila.
+
+The drum samples for demo.ck came from SampleSwap:
+
+ http://www.sampleswap.org/index.php
View
32 demo.ck
@@ -0,0 +1,32 @@
+MidiIn min;
+MidiMsg msg;
+
+if ( !min.open(0) ) me.exit();
+
+SndBuf s[50];
+"drums/BOOM.aif" => s[36].read;
+"drums/crikix.aif" => s[37].read;
+"drums/bendy.aif" => s[39].read;
+"drums/djembe-side.aif" => s[40].read;
+"drums/electrotabla.aif" => s[41].read;
+"drums/basic-ridebell.aif" => s[42].read;
+"drums/african-pe-hi.wav" => s[43].read;
+"drums/909-banging-lofi-hat.aif" => s[44].read;
+"drums/707-ohh.aif" => s[45].read;
+
+for( 0 => int i; i < s.cap(); i++)
+ s[i] => dac;
+
+while( true ) {
+ min => now;
+
+ while( min.recv( msg ) )
+ {
+ <<< msg.data1, msg.data2, msg.data3 >>>;
+ if(msg.data1 >= 0x90 && msg.data1 < 0xa0) {
+ 0 => s[msg.data2].pos;
+ (msg.data3 / 127.0) * 0.9 => s[msg.data2].gain;
+ (msg.data3 / 127.0) * 0.2 + 0.9 => s[msg.data2].rate;
+ }
+ }
+}
View
BIN  drums/707-ohh.aif
Binary file not shown
View
BIN  drums/909-banging-lofi-hat.aif
Binary file not shown
View
BIN  drums/909-bright-ride.aif
Binary file not shown
View
BIN  drums/909-collapsed-hat.aif
Binary file not shown
View
BIN  drums/BOOM.aif
Binary file not shown
View
BIN  drums/african-pe-hi.wav
Binary file not shown
View
BIN  drums/basic-ridebell.aif
Binary file not shown
View
BIN  drums/beauty_ride1_(long).aif
Binary file not shown
View
BIN  drums/bendy.aif
Binary file not shown
View
BIN  drums/crikix.aif
Binary file not shown
View
BIN  drums/djembe-side.aif
Binary file not shown
View
BIN  drums/electrotabla.aif
Binary file not shown
Please sign in to comment.
Something went wrong with that request. Please try again.