oomph is sequencer with multiple built-in synth and sample voices.

this script combines some previously contributed projects with additions. it currently encompasses:

following guidance from @sixolet I worked out a way to make almost every parameter modulateable through internal ramps/lfos.



most of the usage can be found in the parameters - you can directly edit parameters or use a midi controller to map devices for easy manipulation. there are also LFOs for nearly every parameter accessible through the “MOD” menus.

monophonic synth

the main screen allows you to sequence the monophonic synth. the sequencer ui is based off the TB-303 pattern chart (pdf).

the parameters are set out in columns, where each column is one of the sixteen steps of the sequence.

the first row is the note in the C major scale (this scale is transposed in parameters but still displays as the C major scale.

the second row allows you to modify the accidentals of each note (b = flat, and # = sharp).

the third row allows you to change the octave of each note - M for minus octave (-1) and P for plus octave (+1).

the fourth row allows you to add an accent or slide. “O” does an accent (i.e. provides Omph) and “F” provides a slide (i.e. the note Floats…).

the fifth row can change the articulation of the sequence. the “@” denotes a gate, the “o” is a rest” and a “-“ after a gate provides a legato. the actual strength of a legato is controlled in teh parameters by the “sustain” parameter.

audio input

audio input is re-routed through norns into the tape emulator. because of this, instead of using the “MONITOR” control in the audio mixer, you should instead use the “INPUT LEVEL” control in the parameters menu.

sample looper

the sample looper attempts to sync to the tempo by changing playback speed and resetting to the beginning at the beginning of the 16 step sequencer (can be controlled by a probability in the parametrs). the script tries to determine bpm from the filename if there is a “bpmX” in the name (i.e. mysample-bpm120-1.wav => 120 bpm). if there is no bpm available then the script figures out the bpm by a “best guess” approach by assuming that the loop is quantized to the nearest beat and checking to see which bpm allocates the most even number of beats.

there are some hard coded triggerable effects in the parameters menu and its possible to add your own since every parameter in the sample looper can be modulated using a variety of functions (sine, ramps, etc) - all you do is make a function that you want toggled (like this) and then add the name of that function to this array.

if you need a script to create quantized loops - checkout amen.


grid is simply an alternative interface for the main norns screen - it is totally optional.

the first five rows edit the parameters of the monophonic synth. the sixth row can be used to change patterns. the sixth row also allows chaining patterns by holding down one pattern key and pressing another while playing. the sixth row also allows copying patterns by holding down one pattern key and pressing another while not playing.


known bugs


oomph will need 100mb of disk space (95 mb for wav files and 5 mb for SuperCollider files).

there are three steps to install.

first open maiden and run the following:

;install https://github.com/schollz/oomph

secondly, keep maiden open and run the following line to make sure everything is copasetic:


thirdly, you need to restart your norns. now you can run oomph without issues.


to update the script just run the following in maiden: