Michael Hammond's JP

From CSWiki
Revision as of 18:48, 6 May 2008 by Hammond (talk | contribs)

Jump to: navigation, search


(as opposed to LiSa...)


LiLo is a live looping playground created as a performance and compositional aid for musicians. In many ways, LiLo resembles a traditional looping device. With the touch of a button, loops can be created, removed, re-recorded, and overdubbed. A handy metronome automatically enters once a loop is created, or it can be toggled off so as not to interfere with the music-making. At this minimal level, LiLo acts as an open-source replacement for your Boss RC-20. However, LiLo expands on these basic features in a number of important ways. Perhaps most significantly, LiLo divides each loop into a number of rhythmic chunks (predetermined by the user) that can be added, subtracted, or scrambled while remaining fully synchronized with other loops. This allows for a wide array of phasing effects and sample splicing. Additionally, multiple iterations (called voices) of a loop can be added and manipulated. Every change made to a loop or voice is mirrored in the visual interface, which presents the loops and voices as small circular buttons in rows (loops) and columns (voices).

Running LiLo

To run LiLo, first be sure you've downloaded the latest version of ChucK. LiLo was developed in ChucK v. (dracula) and unfortunately this version is not available to the public yet. Next, download the files and put them in a common directory. In the terminal window run the following command (Alternatively, you could run the LiLo sript included):

   > chuck LOOP.ck LOOPER.ck client.ck

Once you're up and running, you should see a blank applet window appear. This is the loopface (or looping interface) for LiLo. You won't see anything until you actually record a loop. Before you can do that, it might be helpful to learn some of the basic keystroke commands currently implemented in LiLo's example client program:

   ( a ) --- record and stop recording
   ( m ) --- toggle metronome on and off
   ( n ) --- add a new voice
   ( x ) --- remove current voice
   ( - ) --- remove a chunk from the end of the current voice
   ( = ) --- add a chunk to the end of the current voice
   ( s ) --- scramble the chunks of the current voice
   ( , ) --- decrease the rate of the current voice by a factor of 2
   ( . ) --- increase the rate of the current voice by a factor of 2
   ( r ) --- reverse the rate of the current voice
   ( left-arrow ) --- cycle down through voices
   ( right-arrow ) --- cycle up through voices
   ( up-arrow ) --- cycle down through loops
   ( down-arrow ) --- cycle up through loops
   ( i ) --- print voice info to the terminal window

Instead of using the arrow keys, you can also choose a particular loop/voice by clicking on a circle once it appears in the applet window. In addition to these basic commands, there are also several alternative record modes that are included in the client file to demonstrate how LiLo can be personalized. Each of these keystrokes stops and starts recording (much like "a") but adds a variety of voices.

   ( 1 ) --- standard start/stop recording
   ( 2 ) --- basic phasing (creates two voices out of phase by an eighth note)
   ( 3 ) --- serious phasing (creates three voices out of phase by an eighth note)
   ( 4 ) --- fun with rates (creates three voices with rates 0.5, 1, and 2)
   ( 5 ) --- basic scrambling (creates two voices, one normal and one scrambled)
   ( 6 ) --- serious scrambling (uhhh... you've been warned)


Dan Trueman served as my JP advisor during the spring of 2008. Many thanks to him for all of his help on this project and for occasionally letting me borrow his gear! Also thanks to everyone involved in PLOrk this semester.


Developed primarily in ChucK (with the visual component coded in Processing), LiLo makes extensive use of the LiSa (live sampling) library created by Dan Trueman. LiSa also served as an inspiration for the name of this project. Hopefully LiSa and LiLo will have a long, fruitful relationship.