I call this script “oooooo” because it is composed of six loops. They are like digital tape loops - you can level, pan, speed, slow, shorten, lengthen, dub, overdub any loop at any time.
I was inspired to make this after seeing tape loops circulating (pun sorta intended) all over the place. I like the idea of having multiple independent different loops, with different sizes, played on a different tape players with different eccentricities. I don’t have any cassette tapes but I have norns so I wrote this script to try to make digital tape loops.
future directions:
- arc support (need help)
- crow support (need help)
- fix all the 🐛🐛🐛
Requirements
- audio input
- norns
- grid (optional)
Documentation
- E1 selects loops
- E2 changes mode/parameter
in tape mode:
- K2 stops
- K2 again resets
- K3 plays
- K1+K2 clears
- K1+K2 again resets
- K1+K3 primes recording
- K1+K3 again records
in other modes:
- K2 or K3 activates or lfos
- E3 adjusts parameter
all parameters are available via the global menu.
playback/recording:
- in tape mode, press K2 to stop/goto 0, and press K3 to start playing (once recorded).
- in tape mode, press K1+K3 to prime recording. When primed, recording will automatically begin when incoming audio rises above a threshold. The recording threshold can be set by global parameter “
recording -> rec thresh
”. - in tape mode, you can force recording by hitting K1+K3 a second time.
- recording stops after traversing the whole loop. You can stop it earlier with K2 or K3 (in tape mode) and that will shrink the loop to that point. You can set recording to continue to the next loop by setting the global parameter “
recording -> rec thru loops
” toyes
. - by default, volume in “pinched” when starting/stopping recording to avoid pops from discontinuous signals. You can lower/raise the pinching by adjusting the global parameter “
vol pinch
”. - to record a loop over and over, infinitely, change
recording -> stop rec after
to its max value.
quick menu:
- E2 changes mode/parameter on the quick menu
- each parameter can be activated by K2 or K3 (activated lfo), and it can modified by E3
- you can adjust the rate in continuous or discrete (±25%, ±50%, etc.) by changing the global parameter “
continuous rate
” - the “
warble
” mode allows you to temporarily pitch up/down the current loop using E3
A loop:
- “A” loop can control all loops. the tape mode works as before, but affects all loops.
- the quick menu differs from loops but is also activated by K2 or K3, and modulated with E3
settings:
- in
startup
menu you can load loops on startup, play loops on startup, start loops with random lfos and change the length of the starting loops (in beats). note: these settings persist next time you openoooooo
! - in
recording
menu you can change pre/rec levels, recording threshold for primed recordings, the volume pinchoff, whether to record through loops, and how many times to loop over before stopping recording. note:_ these settings persist next time you openoooooo
! - in
all loops
you can pause all lfos, set loop destruction (which slowly degrades loops), ramp volume up/down, randomize loops on reset, change the reset per loop - in
loop X
menu you can modify all lfos, and several other parameters of each loop.
oooooo ideas:
- audibly ambient: record to each loop and then move them around the screen. video example
- lucid looper: instead of overdubbing one loop, record six separate loops of the same size that have their own stereo field. change
startup -> start length
to16
beats andstartup -> start lfos random
toyes
. then changerecording -> rec thru loops
toyes
and make surerecording -> stop rec after
is1
. then reload oooooo, and record. video example - dangerous delay: tape delay with six tapes, that shapeshift. in
recording
menu setpre level
andrec level
to 0.5. setstop rec after
to max. go toA
loop. turn E2 torand lfo
and activate with K2. turn E2 to tape and press K1+K3 to record on all loops forever, making a stereo-field delay. (make it crazier by changingall loops -> randomize on reset
toyes
andall loops -> reset all every
toX beats
). video example
grid docs:
(thank you @tyleretters for this absolutely amazingly useful grid doc tool!)
Install
;install https://github.com/schollz/oooooo
tinker / #music #portfolio #norns
← Quantize time-bending effects on norns Raspberry Pi as MIDI to CV device.→