mouse is a script for Norns heavily inspired by Laurie Spiegel’s Music Mouse.
It is both a sound maker and a sequencer of other instruments (and sometimes both).
It is controlled both by Norns/Grid gestures (human), and looping patterns (computer).
It quantizes both pitch and time.
thebangs, and install both scripts
Now, you can run mouse!
Here are the basic controls. See below for a tutorial and more detailed explanations!
ENC1 x ENC2 y ENC3 clock division KEY2 hold to mute, tap to retrigger KEY3 toggle clock mod KEY1 alt ALT + ENC1 scale ALT + ENC2 voice mode ALT + ENC3 pattern index ALT + KEY2 voice enable toggle ALT + KEY3 pattern toggle
At the core of mouse is the X/Y grid and cursor. You can think of each axis and the units of the grid as a musical keyboard. The cursor’s location on the grid is controlled by you. Norns encoders 1 and 2 control the X and Y coordinate of the cursor, respectively. The higher the cursor is on the given axis, the higher the note(s) are that will trigger, and vice-versa.
By default, the X axis controls chords and the Y axis controls a melody. Whenever there is a new clock pulse (time quantization), mouse will take a look at the position of the cursor. If the X axis has changed since the last clock pulse, a chord will ring out. If the Y axis has changed, a melodic note will ring out. Any notes played are quantized to the selected scale (pitch quantization).
If you would like to navigate the grid-space without triggering notes, hold key 2 while moving. Letting go of key 2 will trigger the selected notes. You can tap key 2 at any time to manually trigger the selected location, even if there has been no movement since the last note trigger event.
Norns encoder 3 controls the clock division at which mouse operates (1x, 2x, 4x, 8x). To toggle random modulation of clock division, tap key 3.
SYNTH parameters menu for control over the sounds generated by mouse. You can select from a number of synth engines, add a delay effect (
DELAY menu), and modulate parameters (including delay settings) with four LFOs (
mouse has a second page of controls, accessed by holding the alt button (key 1). See below for more details…
The pitches mouse plays are quantized to a scale. To select a scale, hold alt and scroll encoder 1.
For additional control, visit the
MOUSE parameters page. This allows you to specify a root note to build the scale from. The default is C. Performative transposition within the scale is supported as well, but this requires a Grid. See the “Grid” section below for details.
mouse includes two algorithms that convert the cursor’s X and Y coordinate into pitches to trigger. The default is
melody, as described above. Also provided is
pairs, where both the X and Y coordinates each control two pitches separated by a standard interval. Personally I find
pairs nice for playing pads. To switch between these, hold alt and scroll encoder 2.
Each voice in mouse can be toggled on or off. Triggering fewer voices reduces the textural density of the sound. To individually control voice state, visit the
MOUSE parameters menu. To quickly toggle between low (one voice per axis) and high density (two or three voices per axis, depending on mode), hold alt and tap key 2.
On top of manual X/Y coordinate control, you can play patterns that dance around the cursor in time and grid-space.
To select a pattern, hold alt and scroll encoder 3. To toggle pattern playback, hold alt and tap key 3.
Each pattern is internally composed of a separate X and Y loop. These loops can have different lengths (for phasing) and specify the number of steps to add or subtract (quantized) from the base cursor position on each clock division. When playing a pattern, use knobs 1 and 2 to transpose it through the grid. When switching patterns, both the X and Y loop counters will reset to the first note.
The contents of a pattern are not currently user-editable or visible.
Instead of, or in addition to, making sound itself, mouse can control external hardware via MIDI. Navigate to the
MOUSE parameters page, and set
output mode to either
thebangs + midi.
Both the X and Y axis may be assigned to a specific MIDI virtual port and channel, and can have independent note lengths (envelope sustain phase) and trigger probabilities.
Idea: use Thebangs to play musical notes, and simultaneously trigger percussion sounds with MIDI at a lower probability.
As mentioned above, mouse uses Thebangs to make sound. In addition to this, a Softcut-based delay and Lua-based LFOs are provided. See the
LFOs parameter pages for more details.
While it is entirely possible to play mouse only using your Norns, adding a Grid allows for a gestural approach (kind of) similar to the original Music Mouse experience.
Currently, the Grid implementation is optimized for the 64 layout. The controls are as follows:
1 2 3 4 . . V v x y . . . . Y X . . . . . . . . . . . . . . . . c c c c . . . / . . . . . . . . o m . . . . . . p p p p p . . P
1 2 3 4enable and disable voices.
x ytranspose the cursor downwards by the
transposition interval(set on the
X Ytranspose upwards. This is useful for peprforming chord changes with patterns.
c c c cswitches between clock division rates, and
/toggles random rate modulation.
1handmode, meant to replicate the original dual keyboard/mouse interaction of Music Mouse. Holding
owill cause encoder 1 to control the Y axis (instead of X), and encoder 2 to become disabled. Switch between holding and letting go of
oto control Y and X, respectively. This frees up your right hand (previously using encoder 2 to navigate the Y axis) to manipulate other settings on the Grid.
p p p p pselect patterns, and
Ptoggles pattern playback.
Note that currently it is only possible to control transposition via Grid.
Follow development or help contribute on Github!
https://soundcloud.com/cdrake90/mouse-norns-demo (by @cfd90)
https://soundcloud.com/cdrake90/mouse-2-norns-demo (by @cfd90)
Thanks to Laurie Spiegel, whose original Music Mouse design keeps surprising me the more I learn about it!
Thanks to everyone who checked out and provided feedback about this script before release: @oootini, @renegog, @imwaiting, @sademik, @infinitedigits.
Thanks to @zebra for Thebangs, @Justmat for
hnds, and @tehn for
jgs for the mouse ASCII art.