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