LiLo : Documentation


version: 1.0.1

Introduction

MooDi is a cross-platform musical application that was originally developed for PLOrk.  It is intended to serve as an alternative to the conventional musical instrument for use in any electronic musical performance setting.  Unlike other computer music programs, MooDi is specifically designed for performance use.

MooDi consists of two components, MooDi PLayer and MooDi Instruments.  MooDi PLayer, which was written using Processing, is the main graphical user interface that controls MooDi.  Processing is an open source programming language and environment developed by artists and designers.  As you will soon see, the Processing engine allows for stunning graphics, resulting in beautiful MooDi drawings.  One of the most appealing aspects of Processing is the ease with which it communicates with other applications and environments by sending and receiving Open Sound Control (OSC) messages.   MooDi PLayer sends OSC messages to different MooDi Instruments in order to trigger sound.  If you do not use MooDi Instruments, MooDi will remain unsonified.  MooDi Instruments are written in ChucK and are what bring MooDi to life.  Chuck is a new, strongly-timed audio programming language for real-time synthesis and composition.  Using ChucK, users are able to switch easily between different MooDi Instruments on-the-fly. 

If you are serious about learning MooDi, I recommend you first check out both the Processing and ChucK websites to familiarize yourself with both languages.  Although not required, learning the languages will give you a deeper understanding of the inner workings of MooDi and a richer overall MooDi experience.  Highlights of some MooDi features include:

  • Support for standard on-the-fly programming commands (add, replace, remove, remove all, remove last) within ChucK.
  • Integrated console monitor displays statistics of current drawing palette
  • Ability to integrate seamlessly with ChucK
  • Uses OpenGL (Open Graphics Library) graphical user interface API for stunning images
  • Communicates via OSC messages allowing almost endless instrument possibilities
Planned features include:
  • Further independance and control over each Gesture
  • Improved "shape" recognition using kNN algorithm
  • GUI efficiency - allow less powerful machines to run MooDi more smoothly
  • Addition of more user-created MooDi Instruments
  • Expanded color options for Gestures and Musical Objects

Back to top

Minimum System Requirements*

PC
Microsoft Windows® XP (SP2)**
Processor: Pentium 4 2.0GHz
Memory: 512MB of RAM (1 GB recommended)

200MB of available hard-disk space

Screen resolution: 1024 x 768
16-bit windows compatible audio card, preferably with DirectX or ASIO drivers
Java™ Virtual Machine: Sun™ JRE 1.4.2 (or greater)

Recommended system requirements:
Microsoft Windows
® Vista (32-bit or 64-bit)
Processor: Pentium 4 2.6GHz (or greater)
Memory: 2 GB of RAM
Dedicated audio hard disk 7200RPM or faster with 2GB of available hard-disk space
Screen resolution: 1280 x 1024
Windows Experience Index: 4.0 or greater
16-bit windows compatible audio card, preferably with DirectX or ASIO drivers
Java™ Virtual Machine: Sun™ JRE 1.4.2 (or greater)


Mac
Mac OS X 10.4
Processor: PowerPC® G4 1.25GHz and up
Memory: 512 MB of RAM (1GB recommended)
200MB of available hard-disk space
Screen resolution: 1024 x 768
Java™Virtual Machine: Sun™JRE1.4.2 or JRE 1.5 from Apple

Recommended system requirements
Mac OS X v10.4.7–10.4.10 or 10.5
Processor: Intel Core Duo 1.83GHz (or greater), Mac Dual G5 2GHz (or greater)
Memory: 1GB of RAM (2GB of RAM optimal)
7200RPM Hard Drive with 2GB of free space
Screen resolution: 1280 x 1024
Java™Virtual Machine: Sun™JRE1.4.2 or JRE 1.5 from Apple


Linux***
32-bit Intel® Pentium® processor or equivalent
LSB (Linux Standard Base) 3.1 compliant systems including Red Hat Linux WS 5, SUSE Linux Enterprise Desktop (SLED) 10 and Ubuntu 6.10
GNOME or KDE Desktop Environment
512 MB of RAM (1 GB recommended)
200 MB of available hard disk space
GTK+ (GIMP Toolkit) user interface library, version 2.6 or higher


*Minimum system requirements reflect the ability to run MooDi using a basic feature set. Some advanced or intensive operations and features may be limited by these hardware configurations.
** Home and Professional Edition only. Windows Media Center Edition is not currently supported.
*** Running MooDi under Linux is rather unstable.  For lack of time, we won't be testing extensively under Linux, but would be really happy to hear about any bugs or issues you might run into.

Back to top

Installation

1.  Although the MooDi PLayer can run as a stand-alone application, you must first download and install ChucK in order to use MooDi Instruments and sonify MooDi.  Visit the ChucK website for details and instructions on how to download ChucK.  Once you’ve downloaded and installed ChucK, you can test to see if installation was successful by running the following code either in the miniAudicle or in the terminal:

  SinOsc s => dac;
.2 => s.gain;
<<< "Hello, worlD!" >>>;
3::second => now;

If you hear a 3-second beep, ChucK installation has succeeded.  

2.  After installing ChucK, download the MooDi Performance Bundle.  This bundle includes everything you need to get started.

3.  To run MooDi, simply double click the MooDi PLayer application in Finder, and run any MooDi Instrument you want from either the terminal or the miniAudicle.  If everything goes well, you should see a screen that looks like this:  

4.  The recommended way to run MooDi is to download the MooDi Performance Bundle and run the stand-alone MooDi application.  However, you may also download and install Processing, from which you can run the MooDi PLayer project directly.  Running MooDi from Processing is useful if you wish to personalize your MooDi PLayer by modifying the source code.  Make sure you’re familiar with the language before making any changes.

Back to top

Getting Started

If you are new to the MooDi environment, the Tutorial contained in this User’s Guide should set you well on your way to producing righteous MooDi sketches.  But before you go on to the Tutorial, make sure you’ve thoroughly read this section, which provides an overview of the different MooDi functions and introduces common MooDi terminology.  If you are already familiar with MooDi, you can skip ahead to the Advanced Techniques section in the Performing with MooDi chapter, or just open up MooDi and start drawing away.   Now it’s time to fire up MooDi!

When MooDi is first started, you will see a large black screen with four small boxes in each corner. This screen is the MooDi PLayer. Getting to know the MooDi PLayer is very important, as it is the main graphical interface that controls MooDi.  Just as a violinist knows where every note in every position is on his/her fingerboard, so too must you know MooDi like the back of your hand.  In the sections below, you will see a quick set of words and functions that you should learn before beginning anything MooDi related.  Take a minute to familiarize yourself with these different functions and components of the MooDi PLayer.  We'll go into further detail on each function later in the Tutorial, so don't worry if you don't fully understand everything just yet.

Gestures

A Gesture is any shape created by holding down the mouse and releasing it.   You must move your mouse a distance of more than two pixels in order for a motion to be recognized as a Gesture.  Gestures can include lines, shapes, letters, dots, and almost anything else imaginable.  What makes the Gestures really unique is their ability to re-animate themselves continuously once drawn, based entirely on how they were initially drawn.  You can control how your Gestures move by drawing them with different speeds.  For example, if you draw a line extremely fast and let go, the Gesture will move across your screen with great alacrity.  If you take your time and draw a circle very slowly in the middle of the screen, the circle will animate itself and move across the screen at the same languid pace.  Gestures are often what control the main sound of your MooDi Instrument, and they continue to animate themselves until manually cleared.

Musical Objects

It’s important to be aware of the four orange boxes located in the corners of the screen.  These are the all-powerful Musical Objects.  Each Musical Object controls a different sonic aspect of the MooDi Instrument.  As you will learn later, manipulating these objects is the key to mastering MooDi.  When a Gesture passes through a Musical Object, the boxes reappear in a new location with a new size, as dictated by your Size and Random Slider values (which you will learn about below).  You are also able to move each Musical Object manually by clicking on the box to select it, and dragging it to wherever you wish on your screen.  When you select a box, it will be highlighted white while you are dragging it around the screen.  During this time, the Musical Object cannot affect any sonic qualities of your instrument.  Letting go of it will return it to its original color.  If two musical objects happen to lie directly on top of each other, they become a pair and must both be moved at the same time.  If a Gesture hits these boxes, their pairing is broken and you may begin to move each box individually again.


 Idle Musical Object and manually selected Musical Object

All actions in MooDi involve some form of manipulating the Gestures, the Musical Objects, and sometimes both at the same time.  For this reason, it is crucial that you feel comfortable with both Gestures and Musical Objects before moving on to the next section.  

Gesture Control Group

You may have noticed that the left side of your screen has two groups of windows that contain buttons, sliders, and knobs.   You need to familiarize yourself with these.  The group at the top is the Gesture Control Group.  As its name suggests, this group contains buttons and knobs used to control many aspects of the Gestures, including their speed, color, and motion mode.  Both the Time and Mode Buttons in this group have sub-menus that only appear when the mouse hovers over them.  Sub-menus disappear once the mouse is moved elsewhere.  Make sure you understand how to make the sub-menus appear and disappear.


Gesture: Knob controls which Gesture is selected.  You can select 1 Gesture at a time between Gesture #1 and gesture #36

Delete: Deletes Gesture selected by the Gesture Knob

Mode: Toggles between Move Mode and Stop Mode
  --Move Mode:
All Gestures move across screen (default mode)
  --Stop Mode:  Gestures freeze and move in place

Time: Toggles between Half Time, Normal Time, Double Time, and Quadruple Time
  --Half Time: All Gestures move at half speed and change color to blue
  --Normal Time: All Gestures move at normal speed (default speed)
  --Double Time: All Gestures move at double the speed and change color to red
  --Quadruple Time: All Gestures move at quadruple the speed and start flashing


White/Orange/Green/Purple:
Change Gestures to desired color.  Make sure they don't clash with your Musical Object colors!

Box Control Group

Beneath the Gesture Control Group is the Box Control Group, which is used to control the Musical Objects further.  In the same way that the Gesture Control Group provides different buttons and knobs allowing almost full control over the Gestures, the Box Control Group provides a rich set of features to control the Musical Objects.   Once again, both buttons have sub-menus that can be accessed only when the mouse hovers over them.



Size: Slider controls the new size of the Musical Objects after they are hit by a Gesture.  Values range from 1 - 100

Random: Slider controls the position of the Musical Objects after they are hit by a Gesture.  Values range from 1 -100

Add New: Adds a new Musical Object in the middle of the screen

Clear Boxes: Clears Musical Objects from screen
   
-- Clear All:  Clears all Musical Objects from screen
    --Clear One: Clears the last new Musical Objects added from screen

Orange/Red/Green/Blue:  Changes Musical Object to desired color (orange is default).  Remember to choose your colors wisely!

Without drawing any Gestures just yet, play around with the buttons, sliders, and knobs in both groups.  Get used to how the sliders move around.  Choose a specific value and see how fast you can reach it.

As you’ll see later in this chapter, MooDi is all about drawing and finding the right collection of Gestures and Musical Objects on your palette.  These two groups will play an integral part in your quest to paint the perfect MooDi palette, so make sure you know them forwards and backwards before moving on.

Console Monitor

In the top left corner of the MooDi PLayer screen is the Console Monitor.  The console monitor provides important statistics on the current palette at any given time.  When you initially open up MooDi PLayer, the Console Monitor should show something like this:



Instrument: Displays what MooDi Instrument you are currently running.  This example shows that the happi instrument is running

Mode:
Displays whether you are in Stop Mode or in Move Mode.  In this example you are in Move Mode

Number of Boxes:
Displays how many Musical Objects currently exist on screen.  A minimum of 4 and a maximum of 36 Musical Objects may exist on screen at any time

Number of Gestures:
Displays the number of Gestures that currenty exist on screen.  A maximum of 36 Gestures, each with a maximum of 600 edges, may exist on screen at any time

KeyBoard Grid

The square grid in the middle of the screen is the Keyboard Grid.  By default, the Keyboard Grid is empty, and initially does not control any sonic qualities of the instrument.


Empty KeyBoard Grid

The Keyboard Grid only controls aspects of the instrument when filled with values.  You can fill it in by typing any of the 52 letters between ' A ' and ' z '.  The darkness of each square, and consequently the intensity of the control over the instrument, is dictated by the letter you type, ' A ' being the darkest shade and ' z ' being the lightest.  For example, ' Z ' is lighter than ' A '  but darker than ' a ', and hence has greater sonic control than ' A ' but less than ' a '. 


Filled Keyboard Grid

Beat Lines

The moving lines at the bottom of the screen are the Beat Lines.  Beat lines appear every time you click and release the mouse.  Once a new Beat Line is created, it travels across the screen at 30fps.  However, unlike Gestures, once a Beat Line reaches the edge of the screen, it no longer regenerates itself.

Since drum sounds are played every time a Gesture crosses a Beat Line, the latter are frequently used during rhythmic passages.  For example, clicking your mouse in a fast, rhythmical, 16th notes fashion could imitate the effects of a hi-hat.  Experiment with the frequency of your clicking to get different drum grooves.  As you’ll later see, depending on whether there is a conductor running a server patch, these lines may or may not be quantized.


Beat Lines moving across screen

Back to top

Tutorial

Now that you've gained a basic understanding of the controls, you are ready to start drawing.  For starters, open up the nutti instrument and try drawing the following Gesture in the middle of the screen.  To do so, click on the mouse, hold it down, drag it across the screen, and let go.  It may take a couple of tries until you get used to the movements, but be persistent.

Single Gesture moving across MooDi PLayer

You should now see a single, straight, white line moving across the screen.  The Number of Gestures line in your console monitor should now show ' 1 ', and you should hear a long modulating sound.  If all these things have occurred, then you have successfully taken the first step to becoming a MooDi master!

Adding a new Gesture

The first thing you may have done when you opened MooDi was to draw multitudinous Gestures.  You may not have noticed, but you can only add up to 36 Gestures in a particular window.  If you add more than 36 Gestures, MooDi will automatically delete the Gestures that were drawn first (FIFO structure).  Each time you create a new Gesture, the Number of Gestures counter in the console monitor will increase to remind you of how many Gestures you currently have on your screen.

Changing Gesture Modes

Now, in the palette you've created, try drawing a circle in addition to the line already swimming on the screen.  Go to the Mode Button under the Gesture Control Group and click Stop.  You might notice that the Gestures are no longer moving across the palette and the notes are no longer changing.  Stop Mode is a convenient way to freeze and capture a certain shape or sound in its place.


Gestures in Stop Mode no longer move across your palette

Listen carefully to how the resulting sound compares to the sound of the single moving line.  Click on Move under the Mode button and the Gestures should go back to Move Mode and start moving again.  Hear the difference now?  Think of Stop Mode as being the rhythm section of a Jazz Ensemble — the pianist who comps steady chords, or, as you will see later when using Beat Lines, the swinging drummer who keeps the overall groove.  Move Mode, on the other hand, is the soloist of the ensemble, the Miles Davis of the group that plays virtuoso lines and scales over the underlying groove.  Switch back and forth between Stop Mode and Move Mode until you can tell the sonic differences between the two Modes.  Find a particular note or chord that you like and try freezing and capturing it, then try "soloing" over that chord with a particular shape.  This may take some time to get used to, so don’t give up.

Controlling SMS

If you feel like you've mastered controlling the different Gesture Modes, it's time to start shaking things up a little — literally!  Take your hand off the mouse, grab the laptop by its sides, and start tilting it forward.  You should notice that your Gestures start to get thicker and your instrument starts to get louder.


Gestures get thicker when tilting laptop forward

How is this all happening?  MooDi uses the Sudden Motion Sensor (SMS) technology that is built into each Apple laptop to detect any tilt.  The SMS is Apple's motion-based hardware and data-protection system used in all post-PowerBook laptops.  The SMS is composed of a 3-axis accelerometer which detects acceleration in the x (side-to-side), y (forward and backward) and z (up and down) directions.  The tilt function in MooDi PLayer always controls the thickness of the Gestures — tilt forward and the lines get thicker, tilt backwards and the lines get thinner.  However, depending on what MooDi Instrument you open, the tilt-sensors can control different sonic aspects.  For example, in nutti, tilt in the y-direction is mapped to the overall gain of the instrument — tilting forward increases the volume, and tilting backwards decreases volume.  In melancholi, 2 axes of the tilt sensor are used — tilting forward and backwards controls the overall modulation rate, and tilting sideways controls overall panning.  Make sure you understand the tilt functions across the different MooDi Instruments.

Now in your palette, try tilting the laptop backward towards yourself.  You should see that the gestures get thinner and your instrument decreases in volume.  If tilting forward or backward changes nothing, try restarting both the MooDi PLayer and nutti and try again.  If you still get nothing, try restarting your computer, and remember that the tilt function only works on computers that have a built-in SMS (Apple PowerBook, MacBook, MacBook Pro).


Gestures get thinner when tilting laptop backward

Clearing Gestures

The tilt function of MooDi has the ability to control more than just the thickness of the lines.  While tilting the laptop either backwards-forwards or side-to-side changes the thickness of the Gestures and some sonic aspect of the sound, shaking the laptop either backwards-forwards or side-to-side clears all Gestures and Musical Objects on the palette, much like the classic Etch-a-sketch toy.  Try shaking your laptop side-to-side (not too hard), and you should now have a blank palette.  If your computer doesn't have a built-in SMS, you can also click 'c' on the keyboard to clear all gestures. 

While shaking your laptop deletes all Gestures at once, it is also possible to delete individual Gestures.  This is accomplished by using the Gesture Knob at the bottom of the Gesture Control Group.  Suppose you want to keep your straight line but to delete your circle.  Simply set the Gesture Knob to your desired Gesture number (in this case ' 2 ' since the circle was the second Gesture you created), hit Delete, and voila!  The Gesture should disappear right in front of your eyes
.

Using the KeyBoard Grid

Once you finish shaking your laptop, how about taking a look at the grid in the middle of your palette?  This grid is the KeyBoard Grid, which is empty by default but easy to fill in.  Simply hit any letter on the keyboard between ' A ' and ' z ', and you should see the KeyBoard Grid come to life!  The different gray-scale squares on the grid are mapped to the ASCII values of the keys.  ASCII values increase as you progress through the alphabet, with capital letters having lower ASCII values than lower case letters.  Thus, typing ' Z ' produces a much darker shade than typing ' z ' in your Keyboard Grid.


Single Gesture crossing filled KeyBoard Grid

Every time your Gesture crosses one of the shaded boxes, the instrument plays pitched white noise, as dictated by the lightness or darkness of the box.  Lighter boxes play higher pitches while darker boxes play lower pitches.  Try filling the boxes in ascending order by typing out upper- and lower- case alphabets starting with ' A ' and ending with ' z '.  This should give you a nice chromatic white-noise scale.  Eventually as you get used to the KeyBoard Grid, you'll start remembering different patterns of shades that give you different scales and melodies

Revisiting the Box and Gesture Control Groups

Now that you know how your KeyBoard Grid works, take a closer look at your Box Control Group and your Gesture Control Group.  As their names suggest, these groups give you complete control over your Musical Objects and your Gestures, changing anything from the color of a Musical Object to the speed of a Gesture.  Both groups can be collapsed at anytime by hitting the ' - ' button next to the group names, and expanded by clicking the ' + ' sign.   

                               
        Box and Gesture Control Groups expanded                              Box and Gesture Control Groups collapsed

Adding and deleting Musical Objects

Let's review how to create a new Musical Object.  Place your cursor over the Add New Button under the Box Control Group.  A sub-menu with the Add New option will appear.  Click on that button and you should see a new Musical Object in the middle of your screen.  You've just created your first new Musical Object!  You can create up to 36 Musical Objects on your palette, but remember, Musical Objects control different sonic qualities of your instrument, so use them wisely.  If you add more than 36 Musical Objects, MooDi will automatically delete the Gestures that were most recently drawn (LIFO structure).  However, you can also manually delete boxes.  Place your cursor over the Clear Boxes button.  A sub-menu with the Clear All and Clear One options will appear.  Click on Clear One, and the Musical Object most recently created will be deleted.  Clicking Clear All deletes all Musical Objects, except for the initial four, which are always present on the palette

Changing Musical Object Colors

Ok, now it's time to have some fun with your Musical Objects.  Create another new Musical Object by selecting Add New > Add New.  Suppose you don't like the color of this Musical Object — orange is just a bit too harsh for your senses.  You can easily switch the color by clicking on one of the 4 color boxes provided under the Box Control Group.  Try red, is that any better?  Now suppose you want to move the Musical Object you just created to a specific location on the screen, say, towards the top.  Simply click and hold the Musical Object, and drag it to the top of the screen.  A Musical Object can be moved manually to any position at any time by clicking on it and dragging it to wherever you want.  The Musical Object should be highlighted white when selected, and letting go of it will return it to its original color


Musical Objects are highlighted when manually moved

Size and Random Sliders

Now try drawing another straight-line Gesture directly in the path of your Musical Object.  When the Gesture hits your Musical Object, you'll notice that the Musical Object moves to a different position and changes size.  The degree to which it shifts in position and size is controlled by the Size and Random Sliders.  If the Size Slider is set to 0, there is a 0% chance that the size of the Musical Objects will change when hit by a Gesture.  If set to 100, there is a 100% chance that the size of the Musical Objects will change when hit by a Gesture.  The Random Slider works in the same way.  However, when in Stop Mode, regardless of the value of the sliders, Musical Objects will not change in size or position when hit by a Gesture.  This way, Stop Mode truly becomes a way to capture and keep exactly what you have on your palette at a specific moment

Notice a change in anything else?  Hopefully you were able to hear the difference in the sound of your instrument after passing through the Musical Object.   Musical Objects control different sonic aspects across different instruments, and hitting them with Gestures causes these specific aspects to change.  For example, in nutti, hitting Musical Objects changes the modulation rate of the resonant filters.  If you weren't able to hear the difference in sound, try moving the Musical Object directly in the path of the Gesture once again, and listen closely for any changes.  

Changing Time Modes

Tired of looking at the same plain white Gesture?  You can use your Gesture Control Group to make it more exciting.  You've hopefully mastered the Mode function by now, so try experimenting with the Time function.  The Time Function controls the speed of your Gestures.  Place your mouse over the Time Button and a sub-menu with Half, Normal, Double, and Quadruple buttons should appear.  If you click on Half, you should notice that your Gesture moves at half its original speed and that its color changes to blue.  Now click on Double and you'll see that it moves at twice the original speed.  The Gesture should also turn red, indicating that that you are in Double Time.  Finally, click on Quadruple and you'll notice that your Gesture is now flashing and moving at the speed of light — four times its original speed!  To return to your original speed, just click on Normal and your Gesture should return to its original white color


Gestures turn red when moving in Double Time

Changing Gesture colors

Now, suppose you don't like how your plain white Gesture moves around your bright red Musical Objects.  You can easily switch the color of your Gestures by going to the Gesture Color buttons and choosing your desired color.  For now, try choosing purple.  Remember that when you are in a Time Mode other than Normal, the color of the Gestures cannot be changed.  This is so that you don't forget which mode you are in.  As a final exercise, try drawing 5 Gestures of all different shapes and sizes on your palette.  Be creative, experiment with different shapes and thicknesses of the stroke.  You should now hear 5 distinct sounds, hopefully all harmonically pleasing.  If you select Stop Mode, each individual sound should become clearer.


5 different Gestures and Musical Objects interact on palette

Congratulations on finishing the Tutorial!  You should now be well on your way to drawing masterful MooDi paintings.  Please continue reading for further information on how to use MooDi in a performance setting, and for more advanced techniques for the performer who wishes to take MooDi to the next level.  For more information about the ChucK programming language and on-the-fly programming, please visit the ChucK website, particularly the documentation and example code sections.  For more information about the Processing programming language, please visit the Processing website, particularly the learning and reference sections.

Back to top

Performing with MooDi

Northwestern Spring Festival

As you've hopefully seen by now, the possibilities of performing with MooDi are endless.  In this next section, you'll see an example of how MooDi was used in a live performance, and you'll be provided with a step-by-step guide on how to replicate this performance.  The performance was set for 15 players of PLOrk, as well as 1 guitarist, and 1 DJ/conductor. You should not feel obliged to follow this specific setting.

MooDi1

The first instrument used in the performance was the nutti instrument, which you can open by typing the following in your terminal:

    %> MooDi1

This is a script written for the performance that will load MooDi PLayer, the nutti instrument in 6 channels with a bufsize of 1024, and the client.ck receiver patch.  After you hit enter, you should hear a long A440 sound, indicating that the nutti instrument has successfully opened.  If you don't hear any sound, make sure your Output Device in Sound under System Preferences is set correctly.  A few seconds after this sound, the MooDi PLayer interface will open.  If it takes more than 30 seconds to open the interface, or if your computer is giving you a spinning wheel, make sure that all other programs are closed and that your computer meets the minimum system requirements.  You're now ready to start performing!

Although each player had some degree of artistic freedom during this MooDi performance, the conductor was largely responsible for controlling many of the players' actions.  The conductor's cues would change from instrument to instrument, and a hand-out with all cues was given to players in advance so they wouldn't forget the non-traditional cues during the performance.  The following, for example, were the cues the conductor used during nutti:

    

                 Add Musical Objects                                                       Add Gestures

     — Left hand indicates maximum number                      — Left hand indicates maximum number 
 

         
                           Hit Spacebar                                                          Enter Stop Mode

                —This action was TIMED                                            —This action was TIMED
 
              

   Half Speed    Normal   Double    Quadruple                           Go to second instrument

              —These actions were TIMED                              —Go to instrument specified by both hands

Exploring nutti

During nutti, much of the sound-field generated was explorational, introducing the audience to the different nuances and subtleties of nutti and of MooDi itself.  For further exploration, the conductor had the option either to cue the entire ensemble, or to specify a smaller section of the ensemble to cue

If you're performing alone, to replicate this section, you'll have to play the role of both performer and conductor.  If this is the case, after opening MooDi1 from the terminal, open a second terminal and type:

    %> chuck server.ck

This is your conductor's patch that allows you to send time-synched messages over the network.  If you're performing in a group, make sure to designate one player as the conductor and run the server from his/her machine

Start by drawing a single Gesture on the palette.  Experiment with different shapes, lines, and positions on your palette.  Put the Gesture into Move Mode, try different Time Modes, and when you feel the time is appropriate, begin adding more Gestures and Musical Objects.  Try not to move too fast through the different moods and characters, as you should allow time for the piece to build.  Tilt your laptop backwards and forwards and hear how this affects the overall gain of the instrument.  Shake your laptop from side to side to clear your palette, and hear the sweeping effect this creates in nutti.  Again, remember that this section should be very explorational and you should try to cover the vast spectrum of sound made possible by nutti at your own pace

Finally, when the section reaches its climax, the conductor should trigger a wav sample from his/her computer.  Specifically, hitting ' e ' on the conductor’s machine triggers a beautiful, arpeggiated, prepared glockenspiel sample that allows for a seamless transition to the second instrument.  If playing alone, wait for the glockenspiel sample to fade out before moving to the second instrument.  If playing in a group, have half of the group move on to the second instrument as the sample is playing, and the other half move on once the sample is over.

MooDi2

The second instrument used in the performance was the melancholi instrument.  On the conductor's cue, open the melancholi instrument by typing in the terminal:

    %> MooDi2

This is another script written for the performance that should open MooDi PLayer, the melancholi instrument in 6 channels with a bufsize of 1024, and the client.ck receiver patch.  Soon you should hear a completely new sound rattling your speakers.  If playing in a group, listen carefully to how the two instruments contrast and interact

MooDi2 cues

Whereas nutti is more improvisational and explorational in feel, melancholi feels more through-composed, emphasizing a sense of direction.  For the most part, the same cues that were used in nutti were used in melancholi, including the Add New Gestures cue, Add New Musical Objects cue, etc.  In addition, the following cue was specific to melancholi:

               
Add up to 25 Gestures
Conductor can signal up to 35 gestures

Exploring MooDi2

Once all players have loaded melancholi, start the section by tilting your laptops forward.  This should cause the modulation rate to decrease dramatically, creating a significant change in your overall sound-field.  Now tilt your laptops backwards, thereby increasing the modulation rate.  You should once again hear a big difference in your sound.  Tilting side-to-side affects the panning of the oscillators, so you should feel free to play around with this as well.  A short while after you finish controlling the panning of the instrument, the conductor should begin the Add Gesture cue: The conductor signals an upper limit for Gestures to add, and you should approach the upper limit at your own pace.  The number the conductor chooses as the upper limit is very important as it triggers specific events.  Once you reach 20 or more Gestures, a timer automatically starts beeping.  At 25 or more Gestures, an alarm goes off, and at 30 Gestures, a system warning sounds repeatedly.  On the conductor's cue, hit the space bar and you'll hear a giant explosion which kills both the instrument and the alarm sounds.  At this point, the conductor should trigger another sample, this time by hitting ' q ' on the conductor's machine.  As the saxophone sample sounds across all speakers, the players should prepare to switch to instruments 3 and 4 on the conductor's next cue.

MooDi3 + MooDi4

The final instrument of the piece depends on what type of laptop you are using.  If you are running MooDi on an Apple MacBook, MacBook Pro, or any machine that meets the recommended system requirements, type the following:

    %> MooDi3

This script will open MooDi PLayer, the jolli and happi instruments in 2 channels with a bufsize of 1024, and the client.ck receiver patch.  If you are running MooDi on an Apple PowerBook, iBook, or any machine that is below the recommended system requirements, go to the terminal and type:

    %> MooDi4

This script will open MooDi PLayer, the happi instrument in 2 channels with a bufsize of 1024, and the client.ck receiver patch.  Both the jolli and happi instruments play notes from an array of A major frequencies.  Notes change every time a Gesture hits a Musical Object.  With this in mind, start this section with one Gesture and no additional Musical Objects.  Listen carefully and you will hear the notes changing very slowly.  Further, this is the first section in which the Beat Lines are used.  You should hear a drum sound every time your Gesture crosses a Beat Line.  The conductor should now gradually cue the addition of more Gestures and Musical Objects, and as s/he does so, the sound-field should become more and more rhythmic as more Gestures begin to cross the Beat Lines

MooDi3 + MooDi4 cues

Once again, the conductor's cues are mostly the same as in the previous sections.  The only new cue is the Hit Enter cue pictured below.  At the height of the section, the conductor should signal this Hit Enter cue, as well as the Stop Mode cue.  Hitting enter changes the drum sounds from junk yard to tabla, resulting in a deeper, more resonant percussive sound.  Stop Mode guarantees a constant rhythmic pulse for what should be the peak of the section, if not the entire composition.


         Hit Enter      

        This action was TIMED      

Ending the performance

During the Northwestern Spring Festival performance, a DJ (who was also the conductor) and a guitarist were present as well.  At this point in the section, the guitarist, who was using Drop-D tuning, began to play sparse lines in A major, which the DJ then recorded and manipulated on his turntables.  After the ensemble faded out, the DJ then cued an old "Etch-a-Sketch" commercial sample, layered over a heavy drum beat, and started scratching over it.  The piece ended with the entire ensemble carrying out the heavy beat to the end.  However, if the setting is only for laptops, the conductor should feel free simply to fade out when appropriate by signaling the Space Bar cue.

Back to top

Advanced Techniques

If you feel like you've mastered all the basics of MooDi, this next section is for you.  Here are a few techniques you can try out to push your MooDi skills to the max!
  • Experiment with drawing complex geometric shapes such as a concave octagon or a pentakaidecagon.  Which shapes work well with others?  Which shapes should be avoided?  Try to remember the sonic qualities of each shape, and determine which shapes give you more consonant sonorities, and which give you dissonant sonorities.

  • Alter the MooDi PLayer source code and begin adding your own personalized functions into MooDi.  What functions could you add?  What functions could you delete?  Think also about what type of OSC messages you could send to ChucK for use with the MooDi Instruments.  For more information on how to use Processing to add your own features to MooDi, please visit the Processing website.
  • Start creating your own MooDi Instruments.  What type of sonic qualities do you want the instrument to have?  Should it function as a more chordal, rhythmic type of instrument? Or should it be used more as a solo instrument?  Think about the different ways in which you could control the sonic qualities of the instrument.  For more information on how to use ChucK to start creating your own instruments, please visit the ChucK website.
  • Explore the Small Musically Expressive Laptop Toolkit (SMELT) and think about other ways in which the research could be incorporated into MooDi.  In what other ways could you use your laptop to control MooDi?  Could the keyboard be used in more ways?  Is the SMS used correctly with your Gestures?

  • Try attaching peripheral input devices to your laptop and use these to control MooDi.  For example, a Wacom Tablet seems like a great way to draw images more easily and conveniently.  On the other hand, the infamous foot mouse might not work too well with MooDi.
  • Use MooDi PLayer in conjunction with something other than ChucK to make sound.  Using OSC messages, you'll soon discover the ease with which many popular music programs, including Ableton Live and Max MSP, can speak with MooDi PLayer.  The sky is the limit with MooDi!
Back to top

Support, Contact, Mailing Lists

Have any questions about the MooDi PLayer or MooDi Instruments that were not answered here? First, see if you can figure it out on the Processing or ChucK website.  Second, consider visiting the MooDi Project where you can find answers to many frequently asked questions, and get help from other users.  Feel free to post any questions, bug reports, or feature requests there.  If you still have any unsolved questions regarding MooDi, shoot me an email and I'll see if I can help you out.

Back to top

Credits

Author: John Fontein, May 2008
Thesis Advisor: Dan Trueman

MooDi is a Senior Thesis submitted to the Music Department, Princeton University in partial fulfillment of the requirements for the degree of Bachelor of Arts in Music.

MooDi incorporates portions of YellowTail (Copyright (c) Golan Levin), Keyboard Functions, Mouse Functions, and Mouse Signals.  MooDi also uses the controlP5 and oscP5 libraries (Copyright (c) Andreas Schlegal).

Back to top


home | wiki | etchaplork