Looper (version 1.5) ______________________________________________________________________ Looper is free. You can give it away. Please keep this documentation intact. Looper lives at http://www.subminimal.com/ear/software.html Other software I have written can be found there as well. You can contact me (ear@subminimal.com) if you have questions, suggestions, or insights regarding Looper. All sorts of things about my music and delicate ear can be discovered at http://www.subminimal.com/ear. loops <-> spool jhno ______________________________________________________________________ Introduction ______________________________________________________________________ Looper is a real-time loop sampler that runs on Power Macintosh computers. It is also an algorithmic sound collage machine that can automatically create new musical textures out of existing CD's, or other audio input. Looper is programmed in MAX and MSP. MAX is an object-oriented programming environment available from Opcode Systems (www.opcode.com). MSP is a set of objects that plug into MAX, enabling it to work with digital audio and signal processing. It is available from Cycling74 (www.cycling74.com). If you are not familiar with this environment, I can wholeheartedly recommend it as an excellent platform for experimenting with sound on computers. Keep your eye on both Cycling74 and delicate ear for interesting new software tools. ______________________________________________________________________ Which Version? ______________________________________________________________________ Looper is available as a MAX patcher, or a standalone application. Use the standalone application if you do not have MAX or MAXPlay, version 3.5.9. The "loopersets" folder must be in the same folder as the Looper application in order to save and load settings. If you own MAX, the "patcher" version lets you open up the Looper, see how it works, and make changes. If you make some interesting changes, why not drop me a line and let me know what you did? I am always curious. If you are using the patcher, the "loopersets" folder must be in the same folder as your MAX application in order to save and load settings. Also, the subptacher "lc" must be in MAX's search path. Finally, Looper uses updated MSP objects, and a few third-party MAX objects. If the patcher isn't working, or you are getting "no such object" messages, there is a "looper objects" archive on my web site. It contains the precise version of several objects I used. Try installing those objects. If you still have trouble, let me know. ______________________________________________________________________ Getting Started ______________________________________________________________________ Open Looper. You should see the main Looper screen. There are three "loop channels", each with its own controls. In order for it to function, you must turn on Looper via the master on/off switch - the big checkbox on the left, labeled "on/off". This enables audio and starts the metronome. Looper can accept sound input from any Sound Manager source. To change the audio input source, click on the button labeled "audio config". There is a pop-up menu to select an input source. You can select "CD" if you have a CD-ROM drive with an audio CD. You need to use the AppleCD player, the Control Strip, or something else to start the CD playing. You can see the level of the audio input by Looper's "input level" meter. You can monitor the audio input by clicking on the "audio thru" switch. Once you have verified that input is present, try hitting the record switch on one of the loop channels (the switch is labeled "rec"). Turn it on just for a second, then off again. This will record a fragment of audio into that loop. It will immediately start to repeat, according to the master tempo and the channel's loop length. Experiment with the loop's parameters, especially length, speed, rev, and the sliders (V stands for volume, F for cutoff frequency, and Q for resonance). You have to turn on the filter to hear it. The Reference section below tells you what each control does. Meanwhile if you want to hear a few example settings, click on the "read" button that is in the bottom, left corner of the window. This will present a dialog box to read in a Looper setting. Type in the word "demo" and hit ok. In a few seconds, Looper will update itself to a complex setting that creates interesting sound collages out of the input source (try some tasteful CD's). Looper includes five demos. They are very simple, I just threw them together to demonstrate a couple of possibilities. There are many more. To hear a demo, click on the "read" button as above and type the name, e.g. "demo2". Here is a brief description of each one: demo - the classic looper demo: confusing and pleasurable demo2 - a much simpler setting for random sampling demo3 - an example of fast changes demo4 - two low goopy loops with another floating around demo5 - makes any source mellow Note that the sound you get from Looper completely depends on what you put into it. Have fun experimenting...! ______________________________________________________________________ Reference ______________________________________________________________________ The rest of the documentation describes how each control in the Looper window works. There are three sections, the Master Controls, the Loop Channels, and the Automation. Each parameter description is preceded by "()()()" so you can scan through them. ______________________________________________________________________ Master Controls ______________________________________________________________________ ()()() metronome tempo (BPM) This sets the master tempo for the Looper. It determines the length of the loops (see "length" in the Loop Channels section). ()()() on/off This switch enables audio, and turns on the metronome. ()()() loop size Click here to change the size of the loop buffers. It presents a dialog box in which to enter the new maximum loop length in milliseconds. Note that this is limited by the amount of memory that has been assigned to Looper. To increase Looper's memory, select the Looper application (or MAX, if you are using the patcher version) in the Finder and choose "Get Info" from the File menu. Here you can set the "Minimum Size" and "Preferred Size" of Looper's memory. As a rule of thumb, Looper needs about a megabyte of memory for every two seconds of loop time. Also, it needs about 3.3 MB just to run, plus about a megabyte of Mystery Memory. So, if you want 10 seconds of loop time, you will need to assign Looper at least (3.3 MB + 1 MB (1 MB x 5)) = 9.3 MB. If you want to see how much memory Looper has free, type command-M, or select "Max" from the Windows menu. This gives you a status window which shows free memory in the upper right-hand corner. If you try to make the loop size larger than memory will allow, you will get error messages in this window. Just ignore those "divide by zero errors", though. Dividing by zero is good. Hint: Try not to resize the loops too often, if you are tight on memory. Each time you enter a new loop size, it seems to slightly decrease the memory available, even though this is not indicated in the status window. So, the best thing to do is resize the loops only once, right after starting the program. If you have plenty of memory, don't worry about this. ()()() audio config This button opens the "DSP Status" window, which lets you assign the audio input source. You can also see the "CPU Utilization" - which tells you how hard your computer is working. If this number gets close to 100%, you might start to experience clicks and dropouts. If this happens, you can try changing the "Sampling Rate" parameter. Lower sampling rates take proportionally less CPU time to compute. As well, you could experiment with the "I/O Vector Size" and "Signal Vector Size" parameters, which affect performance to a lesser degree. Checking "Scheduler in Audio Interrupt" can improve the timing of the loops. The difference is not usually noticeable, but it can definitely help with very small, fast loops. ()()() record to disk Clicking here presents a standard dialog box to create a new digital audio file on your hard disk. Just enter a name and save it somewhere you have enough disk space. Looper will immediately start to record its digital audio output into this file. Click on this box again to stop recording and close the file. You will then have a stereo AIFF digital recording of Looper on your hard disk. ()()() input level This is a stereo meter that shows the level of the audio input. ()()() output level This is a stereo meter that shows the level of the audio output. There is a fader attached to it that lets you adjust the overall output volume. ()()() read/write preset Here you can save and load settings for the entire Looper. The "write" button will store all parameters of each loop channel, plus the master tempo, on/off switch, audio thru, and output volume. It will ask you for a name to store the preset. *** Do not enter any spaces or colons in this name. *** For example, "spool_2" is fine, but "spool 2" is not. When you hit the "read" button, you will get a similar dialog box. Just type in the name of a preset you have saved (or a pre-existing demo) and wait a few seconds for the Looper to update. Note that Looper stores all its preset files in the "loopersets" folder. This folder must be located in the same place as the Looper application, or the MAX application if you are using the patcher version. Inside you can see all the files it creates. Someday this might be more elegant. ______________________________________________________________________ Loop Channels ______________________________________________________________________ ()()() rec This button starts and stops recording into the loop channel. If you leave it on, it will continue recording as it loops. Usually you will hear the sound as you are recording it. It seems to be a bit inconsistent, though, and will sometimes record sound into a different part of the loop. This is part of the "randomness" of the Looper, its character and charm. To complain about such behavior is to rail against the very seed of creativity that created the entire universe. In serendipity lies music... ()()() length This specifies the length of the loop, in 16th notes according to the master tempo. So, if the length is set to 16 the loop will be one bar long. At 120 BPM this is two seconds. Hint: set each loop channel to different loop lengths to get a layered, non-repeating texture. ()()() offset This changes the position of the loop with regards to the master tempo. It is an offset from "the beginning of the bar" - specified, again, in 16th notes. You can use this parameter to offset loops from each other, and get them into (or out of) sync. ()()() delay (ms) This is a delay, in milliseconds, that again offsets the loop. You can use this to fine-tune the synchronization between loop channels. ()()() rev Checking this box will make the loop play backward. ()()() speed This specifies the speed of the loop playback, as a percentage of original speed. So, a value of 100 plays the sound back at the pitch it was recorded, while 50 gives you half speed and 200 gives you double speed. ()()() start point This is an offset, in milliseconds, into the loops memory buffer. It changes the start position of the tape, as it were. It is most useful if you have recorded a long loop, say at a loop length of 16, and then you scale the loop length back or slow down the tempo. You can then use this parameter to slide through the loop and access different sections of it. ()()() V (volume) This sets the volume of the loop channel. ()()() F (filter) This sets the cutoff frequency of the channel's low-pass filter. Note that it will have no effect unless the filter is turned on. ()()() Q (resonance) This sets the resonance of the channel's low-pass filter. Note that it will have no effect unless the filter is turned on. ()()() pan This is the horizontal slider directly under the V, F, and Q sliders. It pans the loop channel to the left or right. ()()() level meter This is the horizontal meter underneath the pan slider. It indicates the audio output level of the loop channel. ()()() filter on/off This turns on and off the channel's filter. Note that with the filter on, the audio will be somewhat affected even if the filter's cutoff frequency is all the way up. So, if you want to preserve the original fidelity of the audio and you don't need filtering, leave the filter off. ()()() save audio Click this button to save the contents of the loop channel onto your hard disk as an AIFF file. ()()() read audio Click this button to read in a mono AIFF file. You can use a file that you previously saved with the "save audio" function, or any other one-channel AIFF file. *** If you try to read in a stereo or multi-channel AIFF file Looper will probably crash. *** ()()() clear audio This erases the loop. ()()() read/write preset This lets you save and load settings for a single loop channel. This is useful if you want to copy the settings from one channel to the others, or just to save a setting you like. Clicking the "write" button gives you a standard dialog box, to write your preset as a file. Clicking the "read" button lets you load in any file that you have previously saved. After you read in a file, you have to click the little button under the word "preset" in order for the channel to update all its settings. It is through work that an idle character is bettered, and sloth overcome. ______________________________________________________________________ Looper Automation ______________________________________________________________________ The grid of boxes at the bottom of each loop channel can be used to randomly automate the settings of the Looper. Each row in this grid can automate a single parameter of the loop channel. Thus, up to 10 parameters can be affected simultaneously. There are six settings in each row, labeled at the bottom of the grid. Here is how they work: ()()() on This checkbox enables the automation specified in its row. You can use this to turn the automation of a particular parameter on and off. ()()() param This is a popup menu where you can select a loop channel parameter to automate. ()()() prob This probability determines how often the parameter will be randomly modified. It is expressed in 16th notes. In other words, if the value is 8, the parameter will be updated randomly on an average of once every eight 16th notes according to the master tempo. If the value is 1, it will update every single 16th note. If the value is 187, it will update very infrequently. ()()() min, max When a parameter is updated by the automation, it will be set to a random value between the min and max settings. Note that the "record" and "reverse" parameters only have two values, on or off. A value of 0 will turn these parameters off, and any other value will turn it on. ()()() smooth Here you can specify the amount of time, in milliseconds, that it takes for the parameter to reach its new value. If this is set to 1000, then whenever the automation updates this parameter it will smoothly fade to its new value over the course of a second. With a value of 0, the parameter will immediately jump to its new value. ()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()() here there be dragons