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.
mouse
and thebangs
, and install both scriptsNow, 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.
Visit the 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 (LFOs
menu).
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 midi
or 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 SYNTH
, DELAY
, and 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 4
enable and disable voices. V
and v
toggle between melody
and pairs
mode.x y
transpose the cursor downwards by the transposition interval
(set on the MOUSE
parameters page). X Y
transpose upwards. This is useful for peprforming chord changes with patterns.c c c c
switches between clock division rates, and /
toggles random rate modulation.o
engages 1hand
mode, meant to replicate the original dual keyboard/mouse interaction of Music Mouse. Holding o
will cause encoder 1 to control the Y axis (instead of X), and encoder 2 to become disabled. Switch between holding and letting go of o
to 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 p
select patterns, and P
toggles 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 halfsecond
.
Thanks to jgs
for the mouse ASCII art.