7up Live

7up Live development has ended as the application will be replaced by 7up 2.0 which will take advantage of Max4Live. You can find that here.

7up Live is a Java application that combines 8 different monome applications
into one interface. With it, your monome communicates with
Ableton Live 7 via MIDI and allows MLR-like functionality along with
other goodies like sliders, sequencing melodies, creating patterns of beats,
saving/loading/queueing your songs, and more.

Tutorials

Ableton Live Setup

There are a few configuration
changes necessary in Ableton Live in order for it to accept and send MIDI data
correctly.

Open Ableton Live and navigate to Options -> Preferences

Click on the MIDI Sync tab on the left

Enable Track and Remote for the virtual INPUTS of 2-5 (but not 1). Enable Track
and Remote MIDI signals for the OUTPUT of device 1

IMPORTANT: do not turn the input of device 1 on while the
output for device 1 is on or you may cause MIDI feedback

Your preference should now look similar to the image below (Macs will have
differently named devices but the numbers should match up):

Getting Started

This section will provide you with a "Hello World" for 7up Live. Once we
get 7up Live talking to Ableton Live we'll later go into the details of how to
navigate through the 7up Live interface.

With your Monome connected to your PC, open MonomeSerial. The values shown
below will work with the defaults in 7up Live:

Open SevenUpLive v1.4.JAR (Windows) or SevenUpLive.app (OSX)

You should see the screen below. Choose your monome model from the dropdown and check to make sure your MIDI settings are correct. Your MIDI
device names may differ depending on your virtual midi utility but the numbers
should match

Press the initialize button to start the connection to the monome. Its buttons
should clear except for 2 in the top right

Open Ableton Live 7

Open the 7up Live Template Set. It was distributed as an Ableton Live pack which means it needs to be installed first which is a simple process:

Navigate to File -> Install Live Pack... and open the "7up Live
Template Set.alp" pack included with this download package

When promted, choose a location to save the project.

After a successful installation, navigate to File -> Open... and open the newly saved 7up Live Template
Set.als

Before you press play, click on the "Midi Clock" track and change the external
instrument MIDI output to Device 1 and channel 8 as shown below:

Next, change the MIDI Input devices of the Stepper, Looper, and Melodizer tracks to the
following device numbers (2, 3, 4, 5). Set the Stepper and Looper to
listen only on channel 8:

Press the play button in Live and your monome should start flashing rows of
light in sync with Ableton Live

If for some reason your monome doesn't react to pressing play in Ableton Live
check that Live's MIDI sync
preferences are set correctly and that your Initialized 7up Live according
to the graphic above.

Some users have seen issues when they initialize 7up WHILE Ableton Live is playing... so as a precaution make sure Ableton is stopped before opening/closing 7up

Just for fun, press some of the monomes buttons in the LEFT 7 COLUMNS. You
should notice that they light up and play samples when their row is flashed.

Congratulations! You have 7up Live working correctly... read on to understand
more about the SevenUp interface and how you can chop up loops, sequence MIDI
notes, send MIDI Control values, and Sequence your patterns of samples.

The 7up Live Interface

The 7up Live interface is built so that you can compose and perform entire
songs without ever having to touch your computer. This creates a small
learning curve in figuring out how to interpret the 8x8 grid of flashing lights
in front of you. In 7up Live there are 8 different modes that act as
8 different monome apps packaged into one super-app. However, SevenUp's
most useful feature is also its easiest to understand: the right-most
column will ALWAYS be your menu for choosing which mode to use. This
leaves you with the 7 left-most columns in order to chop loops, create patterns,
sequence melodies, etc.

Changing Modes

The diagram below shows the breakdown of the nav menu that lets you switch
between modes:

In order to navigate from one mode to another, simply press on the solid button
in the nav menu (which indicates your current mode) and then press the nav
menu button corresponding to the mode you would like to enter. Depending
on the mode, there may also be flashing lights in the nav menu column. The
flashing lights indicate functions specific to that mode and are covered in the
instructions for that particular mode.

Once you've mastered even 1 or 2 of the modes, you'll have plenty to play with.
Each mode is covered below.

1. Stepper

The stepper is the first mode that you enter after initializing 7up Live.
It's purpose is to trigger samples from top to bottom in an 8-beat measure.
Once you've laid out a group of samples to trigger, that is called a "Pattern".
You have the ability to store up to 7 different patterns by clicking on any
sub-menu in the nav menu (sub-menu buttons are those that are NOT solid in the
nav menu). These different patterns can then be recalled in different
orders by using the "Sequencer" mode. The layout of the stepper interface
is shown below:

Additional stepper notes: You can copy 1 pattern to another by holding
down the first pattern and then pressing another pattern. You can clear a
pattern by holding down that pattern's button for 3 seconds. When you
press a sample trigger, it will first be flashing to indicate low velocity,
pressing it again will make it solid to indicate a high velocity.

2. Sequencer

The Sequencer allows you to sequence groups of patterns. This is helpful
in order to break up the repetetiveness of an 8-step pattern. In this mode,
each column on the left-side corresponds to one of the seven possible patterns.
Each row then corresponds to playing one measure of that pattern. The
diagram below shows a sequence that plays: Pattern 1, Pattern 2, Pattern 1,
Pattern 3, Pattern 1, Pattern 2, Pattern 1, Pattern 4.

Additional notes about the sequencer: You can
store up to 7 different "sequence banks" by using the sub-menu buttons on the right nav bar. These banks can be played from the sequencer view or from the Masterizer Mode.

3. Controller

The controller mode allows you to map 7 banks of 7 sliders to various knobs in
Ableton for a grand total of 49 unique sliders. While in the Masterizer mode, you can re-trigger the banks of controllers that you have positioned.

4. Looper

The looper mode allows you to play up to 7 different loops at any offset.
This allows you to chop up loops similar to MLR. Each
column on the left hand side corresponds to a loop. If you press any row
in a loop, the loop will play at that offset and continue to play. Each column also has a corresponding row in the right nav column which can also be used to start and stop the loop.

It's important to understand that loops loaded into the looper must already match your BPM (which may require consolidating a loop). Also, because 7up has no way of knowing how long your loop in Ableton is, you must use the 7up user interface to assign each loop's length.

Additionally, the interface gives you the option to add loops to different choke groups. This is similar to MLR's concept of choke groups in that only 1 loop in a particular choke group can be playing at once. For instance if loops 2 and 3 are both part of choke group 1, playing loop 2 will stop loop 3 and vice versa.

Loop Modes

Each loop may be played in one of five different loop modes: Loop, Shot,
Momentary, Hit, and Slice.

Loop - Triggers the loop once wherever the button is pressed. When a loop reaches the end, it will start back from the beginning
automatically.

Step - At every step, the loop will be re-triggered at the cooresponding offset.
When the loop reaches the end, it will start from the beginning.

Shot - When a loop reaches the end, it will stop

Momentary - The loop is only played while you continue to hold down the button

Hit - When used with the Sampler (as opposed to the Simpler) this can play
different samples for each button

Slice - Plays just the section of the loop that was pressed and then stops

How do I import new loops?

If you plan on using any loops besides the ones provided in the Template Set
you'll want to read these instructions. There are two things you want to
avoid when importing new loops into the looper:

Replacing an entire chain in the Looper track. This will delete the MIDI
mapping that exists between 7up Live and the "Start" knob of each chain

You're probably used to Live auto-warping samples that don't match your BPM so
you rarely have to deal with loops not matching. Unfortunately, if you
want the auto-warping to take hold in the Looper, you must first "Consolidate"
your sample before dragging it into the Looper. The following instructions
give an example of importing a beat into the Looper that doesn't match the
song's BPM:

Righ click on the sample and choose "Consolidate" (this will stop audio)

Staying in session mode, click on the looper track

Click on the chain you'll be replacing (Loops 1-7)

Drag your consolidated sample from the session view onto the WAVEFORM of the
existing sample as this picture demonstrates.

I emphasize that you must drag it onto the waveform because if you drag the
sample onto the actual chain, you'll lose the MIDI mapping.

The last step is to use 7up interface to select the loop's length (in measures).

Additional notes: One pain about importing new loops is that if they are
of a different BPM, you have to stop the audio and consolidate. However,
if your loop is of the same BPM (which could include resampling in real time
your own track), you can simply drag it right onto the chain's waveform and not
skip a beat. Also, the "Mute Looper" checkbox in the interface allows you
to temporarily mute the MIDI notes being sent by the loop in case you just want
to modify the MIDI mapping of the Start Offset control values.

5. Loop Recorder

The Loop Recorder mode allows you to record yourself playing the Looper. Pressing a sub-nav button on the
right once arms that particular sequence for recording. Once you've played
some loops, press the same sub-nav button to stop recording and instantly play
back what you recorded. These recorded sequences can be stopped and
started from the Masterizer mode.

Recording loops and melodies in 7up Live is done consistently throughout.
Press the sub-nav button corresponding to the track you want to record to once
and it will start blinking slowly to let you know it is armed. As soon as
you start playing, the recording process begins and continues
until you press the same sub-nav button. That sub-nav button should then
flash to let you know it's playing your recording back.

6. Melodizer 1

The Melodizer allows you to play and record sequences of melodies in any key of
any scale. It does this by providing a MIDI keyboard that is presented to
you in a scale that is chosen through the 7up Live interface. First
select a scale (other than CLIP LAUNCH which is explained further down) from the dropdown of the interface:

With that scale selected, each button on the left-side of the monome will play a
note within that scale started at a Key you select from the left-bottom
interface. This may be best explained with a graphic:

As you can see, the interface is split into 3 areas. The Key area supplies
the starting note of the Note area in the top left. In this way, you can
play a C major scale or a D major scale. If you change your scale to minor
in the 7up Live interface, you can then play a C minor scale or D minor
scale.

Additional notes: Recording here is similar as the loop recorder, simply press
the current track you're on and start playing. Once you're finished, press
the track again and the sequence will immediately start playing.
Also, each track corresponds to a different MIDI channel (channels 1-7) sent to Ableton Live.
If you like, you could set up 7 different instruments in Live listening to 7
different channels rather than how my template is setup which uses 1 instrument
listening to all 7 channels.

Melodizer Recording Modes

The interface allows for 2 recording modes for the melodizers. "On Button
Press" means that once a sequence is cued, it will start recording as soon as
the first note is pressed and stop recording immediately when the sequence is stopped.
"Quantized" means that once the sequence is cued,
recording will begin at the next 1/2 measure mark. Similarly, when the
sequence is cued to stop recording, it will stop at the next 1/2 measure mark.
These principles apply to the Masterizer screen as well. That means that
when "Quantized" mode is enabled, melodizer patterns triggered in the Masterizer
screen will wait until the next 1/2 measure before triggering.

Clip Launch Mode

When Melodizer 1's scale is changed to "Clip Launch", the bottom "keys"
section of the melodizer is removed and the melodizer becomes an interface to
launch and view clip information from Ableton Live. To take advantage of this mode we need to assign some melodizer MIDI notes to
individual clips in Live's Session View. Also make sure that your MIDI preferences have the "Track" column selected.

FIRST make sure that no
tracks are intercepting your MIDI notes. Meaning, if you want to assign
clips to Melodizer 1 which is set to output on MIDI device 4, make sure that you
don't have a MIDI track with its "MIDI From" set to Device 4 as well.
ALSO, make sure that your MIDI preferences in Ableton Live have the "Track" AND
"Remote" option turned on for your MIDI output device (typically Device 1).

Set melodizer 1's scale to "CLIP LAUNCH"

Change to melodizer 1 mode in SevenUp

Add an audio track in Live with 4 audio clips loaded

Open up Live's MIDI Map Mode by pressing the "MIDI" button in the top right

For each of your 4 clips, select it and assign it to a note in the Melodizer by
pressing anywhere on the left 7 columns

Exit MIDI map mode by pressing the "MIDI" in the top right button once again

Now with your mouse, press play on one of your clips.

You should notice that when the clip is played, the corresponding key in
the melodizer lights up as well. Live is sending information to
7up Live telling it when clips are started, stopped, and cued. The
reverse is also true, when pressing a melodizer 1 note, the corresponding clip
will play. On the monome, cued
clips will blink, started clips will glow solid, and stopped clips will turn
their LED off. Each melodizer column should map to only a single Ableton
Live track at a time because SevenUp assumes that only 1 clip in a column can be
playing at once.

This functionality only works for Melodizer 1 because Ableton Live doesn't keep
track of which device is sending the mapped MIDI notes. Therefore, it
makes no sense to set up two different devices to launch clips on the same
channels. Also, for the same reason, Melodizer 2 notes being sent MAY
interfere with your clip launching if you're sending them both on the same
channels.

7. Melodizer 2

Melodizer 2 is exactly the same as Melodizer 1 but without clip launch mode and
with the option to accept incoming MIDI events from external MIDI isntruments.

External MIDI Instruments

Meldozier 2 will route any incoming MIDI data on SevenUp's input device
(typically device 1) and channels 9-15 to the Melodizer 2 output device on
channels 1-7. In addition to routing the MIDI, it will also light up the
corresponding buttons on the Melodizer screen and record any notes into any
currently recording patterns. This is useful for capturing complex melodic
patterns with a keyboard, yet still retaining the ability to play back the
pattern using SevenUp.

8. Masterizer

The purpose of the masterizer is to provide an interface where you can control
what is going on in each of the other modes. It's for this reason that the
Masterizer interface is the least intuitive. The left side of the
Masterizer mode uses each column to control another mode as such:

Column 1:

This column shows the current sequence that is playing. You can change
sequences by pressing a button in this column. Notice that the sequence
waits for the current pattern to finish before changing

Column 2:

This column allows you to trigger control banks 1-7. Any control bank that has
values set will show as flashing.

Column 3:

This column allows you to start or stop loops.

Column 4:

This column allows you to start or stop looprecorder sequences

Column 5:

This column allows you to enable or disable melodizer 1 sequences. If
there is a recorded sequence, it will show up as a flashing light.

Column 6:

Same as column 5 but for melodizer 2.

Column 7:

This column displays the current location of the Ableton Live track. This
is useful when using effects that rely on the position of the Live song.

Column 8:

The sub-nav buttons of the Masterizer send MIDI notes C4-G4 on Channel 8 in
order to allow transport control. For instance, the top most button could
be mapped to "Play", the second button to "Stop", and the 3rd button to "Locator
1". Each of these buttons must be pressed TWICE to activate. This is
to prevent accidentally pressing transport buttons which could potentially make
a big mess out of a performance.

What about Ableton Live?

I said at the beginning of this that you can compose and perform songs entirely
with the monome and 7up Live without touching the computer. While this
is true, you'll find it more rewarding to compose in Ableton Live in parallel.
Because we're using Live as the DAW, we have access to all of its effects,
instruments, and other capabilities. For this reason, I'll touch on how
7up Live is interfacing with Live so that you can tweak with it yourself.

The 7up Live package contains a template Live set that is configured to
correctly interpret the MIDI signals being sent back and forth. For
instance, the template set has a track called "Stepper" that contains a Drum
Rack that has been pre-configured to accept the MIDI notes being sent from
7up Live when in Stepper mode.

The template set looks like this:

As you can see, there is a track for the "Stepper mode", the "Looper mode" and
both of the Melodizers. By adding effects to these tracks, you will alter
the sounds produced by 7up Live. You may have also noticed that each
track uses a different virtual midi device in order to accept its MIDI input.
Be careful only to change these settings if you know what you're doing.

The looper track is very similar to the stepper track except that each sample
has its "Start Offset" knob mapped to a controller being used by 7up Live.
Manipulating these start offset knobs in time with your button-mashing is how
7up Live is able to chop up loops and start them at any offset. Be
caseful not to delete these samples in the drum rack or you will lose the
mapping to the controller. You can, however, drag a new sample on top of
the old sample to change the samples that are looped. Please note that
dragging any sample into the looper doesnt mean it will fit your tempo.
You should first drag your sample into the "Resample" track, consolidate it, and
then drag it into the looper.

Something that I've found fun is to use the "Resample" track to record 2
measures of what you've done, then drag that newly recorded sample onto one of
the Looper drum rack samples and start chopping up what you just did in real
time. Using this technique, you could record vocals in real time and
immediately start chopping them up as loops.

How does 7up Live know where it is in the song?

The timing of 7up Live is controled by a MIDI clock track located in the Ableton Live template called "MIDI
Clock". This track sends MIDI note values to
7up Live (to the MIDI device selected in the initialization screen) which
7up Live interprets in order to time the triggering of samples and sequences.
The "Midi Clock" track controls the Stepper. Looper, and Melodizers and is affected by
any global shuffle you apply to your song in Live.

Pressing Ableton's stop button will cause 7up to reset all sequences, loops, and melodies to their starting point.
Additionally, sending the MIDI note "F#4" from MIDI Clock 1 or 2 will tell 7up
to stop all loops and melodies and reset the stepper to the first beat.
This can be used in conjunction with Patch queueing to make sure your newly
loaded patches sync to Ableton's beat.

If for whatever reason you need to change the MIDI device or channel that Ableton Live uses
to send timing data to 7up Live, you can do so by clicking on the "MIDI
Clock" track, selecting the "External Instrument"
effect, and changing the "MIDI To" value.

Using Multiple Monomes

As of v1.0, 7up supports connecting a 128, a 256, or any number of 64's (or 40h's) to the same 7up instance. For each 8x8 grid of buttons connected, a new window into the 7up instance is opened. For instance, a 256 allows 4 windows, each of which can view different 7up modes. Alternately, 8 x 64's could be connected, each viewing 1 mode of the same 7up instance.

This is done by first plugging all of the monomes into the same machine, using monomeserial's dropdown box to select each monome, then setting a unique start column and start row for each in increments of 8.

Example with 1 x 128 and 2 x 64's: here we have 3 monomes but all 7up sees is 4 8x8 grids which it will assume is a 256 using the following settings in monomeserial:

Monome

Start Col

Start Row

128

0

0

64 (1)

0

8

64 (2)

8

8

Example with 3 x 64's: here we would arrange the 3 64's vertically and set the corresponding rows (cols stay at 0)

Monome

Start Col

Start Row

64 (1)

0

0

64 (2)

0

8

64 (3)

0

16

SevenUp Patches (Loading, Saving, and Queueing)

SevenUp has built in functionality for saving, loading, opening recent files, and queueing up a
collection of Patterns/Loops/Melodies that you have arranged. Each
song you make with SevenUp is called a Patch. Saving and loading are fairly
straightforward as they are done through the "File" menu in the interface.
Each patch is saved as an XML file in a location of your choosing.

By default, the "Prev Patch" and "Next Patch" buttons will be disabled until you
load a SevenUp Patch Pack. A Patch Pack is a collection of patches that
can be queued on the fly using the interface or using MIDI signals sent from
Live. This essentially gives you access to an unlimited combination of
patterns/loops/melodies. Currently, there is no utility for merging
patches into Patch Packs so it must be done manually in a text editor.

Creating Patch Packs

Creating Patch Packs in a text editor is fairly straightforward. In this
example we will take two pre-existing patches and merge them into a single Patch
Pack that can load those patches on the fly.

Open your first Patch in a text editor. You'll see the contents will look
something like this:

Right now, the XML defines only 1 patch. If we want to queue up another
patch, all we have to do is copy the <SevenUpPatch> XML from our second patch
and append it to our XML file. REMEMBER: don't copy the first line that
says "<?xml version="1.0" encoding="UTF-8"?>" there should only be 1 of those per XML file

You could go on adding more patches if you like at this point. The last step is important, we must enclose all of our patches in a
<SevenUpPatchPack> </SevenUpPackPack> tag. Our completed file now looks
like this:

Now we're ready to load our file into SevenUp. Once loaded, the "Prev
Patch" and "Next Patch" buttons will be available to load up our queued Patches.
The title of the current patch will show itself in the title bar of the
interface. Patches can also be loaded using MIDI signals. The MIDI
note E4 will send the "Prev Patch" command and F4 will send the "Next Patch"
command.

0.4 - 8/10/2008 - Implemented "Mandolane" version of proMidi which should allow
for full Mac support. This seems to have resolved the previous problem
where SevenUpLive ignored Live's MIDI signals if Live was already playing during
initialization.

0.5 - 9/30/2008 - Added a "Gate choked loopers?" dropdown which determines
whether or not loops in choke groups will stop as soon as a new loop is pressed
or not until the next "step" event

0.7 - 11/25/2008 - Added "Clip Launch" functionality which allows any melodizer
to receive clip information from Live and update the buttons appropriately.
Also, now each Melodizer saves all key and scale information separately.
SevenUpLive now expects to receive MIDI Clock data on channel 8 (was 1
previously). Any Live sets must update their External Instrument effects
on the MIDI clock tracks accordingly.

0.7.1 - 11/26/2008 - Fixed some small bugs. Stepper and Looper must now
listen only to channel 8. Now only Melodizer 1 can be set to clip launch
mode (makes no sense to map clips to different devices on the same channels).
Added "Mute Looper" checkbox that allows you to temporarily mute the looper
notes being played in case you want to re-assign the Start Offset control
values. Modified clip launch so that each column maps to a single Live
track, this means that only 1 clip in a track can play (be solid) at once.

0.7.2 - 12/2/2008 - Small bug fix related to patch packs

0.8 - 12/9/2008 - Added "Quantized" recording mode for melodizer which allows a
user to cue recording for 1/2 measure before recording begins or ends.
This is as opposed to "On Button Pressed" recording which begins immediately
when the first button is pressed. Also fixed a couple bugs in the
melodizers.

0.8.1 - 12/9/2008 - Squashed bug in masterizer mode which cutoff all patterns when stopping a single melodizer pattern

0.9 - 12/12/2008 - Enabled quantized playing/stopping for masterizer when it's
also enabled for the melodizer. Added ability to listen to MIDI from
external MIDI devices and route it through melodizer 2.

0.9.1 - 1/13/2009 - barnone (Chris Lloyd) added the ability to store connection
preferences. Added the ability to sequence mutiple patterns at a time.
This *removes* this ability to trigger patterns while in sequencer mode.

1.0 - 2/20/2009 - barnone (Chris Lloyd) added the ability to support multiple monome connections at once. Loop length was moved to the UI. Removed ability to sequence multiple patterns at once because it kinda sucked.

1.1 - 4/25/2009 - New looper modes assigned to each of the 7 loops through the GUI. Loop recorder has been revamped to behave more like the melodizers in that the recorded sequences can include button presses for any loop. Added support for multiple 256's.

1.4beta2 - 10/01/2009 - New transpose modes added to melodizers (Contributed by bar|none). Hitting solid nav light twice when in a Melodizer will toggle between modes (Keyboard/Position, Keyboard/None) etc, if you have these selected on the main screen.
Position bar is a bar that transposes the grid in scale degrees rather than half-steps as in changing a key. You can transpose while holding keys down. This is still beta so we encourage your feedback to make it better.

1.4beta4 - 10/18/2009 - Melodizers now allow independent interaction with different patterns from different view pages. If you have multiple monomes or a 128/256 you'll appreciate this a lot. Switch 7up UI to a tabbed based
ui that allows for better grouping of settings. Added transpose groups for each pattern slot which ties patterns together so they will transpose together as a group. Added GATE/SUSTAIN option which determines whether currently playing notes will sustain
at the original pitch till the end or whether notes are immediately gated on transpose.

1.4 - 11/10/2009 - Final version before switching to M4L. Added transposition groups, more scales, and a few more options to melodizer. Controllers now act independently of one another when using multiple monomes. Bug fixes.