The Cyclotron !!!!!!!!!!!!!!!!!!!!!!


The Cyclotron is a companion program to Paul Lansky's RT mixing facility. It allows you to easily experiment with rhythmic cycles of varying lengths and subdivisions. It uses straightforward, RT-like, scripting to manipulate and layer multiple cycles. There are three main windows in the Cyclotron: Cycle windows, the Playcycle window, and the Playnote window. Cycle windows look like bicycle spokes. You can drag the spokes around to set different timings and probabilities (the radius determines the probability that the spoke will make a sound). Time and probability are always between 0 and 1. You can set the cycle tag (needed for identifying particular cycles in playcycle commands) by simply typing in the cycle tag box; just make sure you press return! All of the other values can be changed by hand as well. The Playcycle window is where you set these cycles rolling. Playcycle commands are very similar to RT playnote commands. The currently available arguments are:

Warping is pretty cool. First, specify an initial cyclelen or beatlen. Then, warp the cycle as it repeats by specifying goal cycle length and beat length values. For warpcycle and warpbeat, the parameters are as follows:

For example, the following playcycle command will set a cycle rolling with a cyclelength of 2 seconds, gradually slow it down until it has a lenght of 4.1 seconds on the 4th beat of the 3rd cycle, maintain that speed until the 7th beat of the 6th cycle, and then speed it up to a length of 1 second on the 8th beat of the 10th cycle :

playcycle(tag=1, snd =1, howmany=10, cyclewarp(3,4,4.1,2 6,7,4.1,2.6 10,8,1,1.8))

The warp exponent sets the shape of the warping. A value of 2 will generally give the smoothest results, lower values will cause the warping to be apparent sooner, while higher values will save to warping until the end. Play with it and you will see. Warpctwo and warpbtwo are just like warpcycle and warpbeat except the warp exponent is set to 2 by default. Just to make things clearer if you don't care to mess with the exponents.

The Command Type Cmix will output Cmix commands for the Mix instrument (no transposition, yet...). You need to setup up arrays (using load_array) for the sounds so the sound numbers in the Cyclotron get mapped correctly. This output is particularly useful for pseudo-granular sysnthesis stuff and for very fast cycles where RT runs out of tracks.

The Outfile Path Name will open a file to write the playnotes to directly. This is useful for huge sessions where copying and pasting can be slow.

That's it for now. The seed value is used for the random number generator that tests probabilities, and other things when I get them in there. The tracks value determines the number of tracks you want to use. The Go! button sets the cycles going. The Playnote window gets all the playnote commands when you press Go! Just copy (command-a, command-c) and paste (command-v) them into the RT playnote window, and off you go. Be careful with syntax errors and cycle tag numbers; the program won't always tell you if you've done something wrong, and it might generate playnote commands anyhow. Oh well...

I should say right here that Peter Velikonja was tremendously helpful getting me started on this thing. What a dude. When you find bugs or if you have any nifty ideas for improvements, please let me know:


download


Dan Trueman
Music Department
Princeton University
dan@music.princeton.edu.