Skip to content

Instantly share code, notes, and snippets.

@misuba
Last active January 26, 2018 00:32
Show Gist options
  • Save misuba/f8eba4d7016c64c2b4ced10ecd6c5952 to your computer and use it in GitHub Desktop.
Save misuba/f8eba4d7016c64c2b4ced10ecd6c5952 to your computer and use it in GitHub Desktop.
a lo-fi CV-looper scene for Teletype
# 60 ms = like 3.8 sec of reasonably fine-grained recording
# X is quasi-bitwise storing are-we-recording for lanes 1-2
# (0 = neither, 1 = lane 1, 2 = lane 2, 3 = both)
# Y is same for lanes 3-4
# Z is flagging the lane for script 5 to pass the recording action off to script 6
# this version is for TXi's 4 CV inputs.
# I expect we can make a port for plain TT, as long as you're OK with no more than
# 2 lanes recording at a time, and with one of them to always record the param knob.
I
M 60
LOOP 1 4: CV.SLEW L 60
LOOP 1 4: PN.WRAP L 1
# offset for allflesh, not for final!
TO.CV 2 N 24
M
IF OR X Y: SCRIPT 5
# play everyone else
IF ! MOD X 2: CV 1 PN.NEXT 0
IF LT X 2: CV 2 PN.NEXT 1
IF ! MOD Y 2: CV 3 PN.NEXT 2
IF LT Y 2: CV 4 PN.NEXT 3
# convenience for me, not for final!
TO.CV 1 PARAM
1
# toggle recording on/off for lane 1
P.N 0; P.I 0
IF MOD X 2: X SUB X 1; P.WRAP 1
ELSE: X ADD X 1; P.WRAP 0
2
# toggle recording on/off for lane 2
P.N 1; P.I 0
IF GT X 1: X SUB X 2; P.WRAP 1
ELSE: X ADD X 2; P.WRAP 0
3
# toggle recording on/off for lane 3
P.N 2; P.I 0
IF MOD Y 2: Y SUB Y 1; P.WRAP 1
ELSE: Y ADD Y 1; P.WRAP 0
4
# toggle recording on/off for lane 4
P.N 3; P.I 0
IF GT Y 1: Y SUB Y 2; P.WRAP 1
ELSE: Y ADD Y 2; P.WRAP 0
5
IF MOD X 2: Z 1; SCRIPT 6
IF GT X 1: Z 2; SCRIPT 6
IF MOD Y 2: Z 3; SCRIPT 6
IF GT Y 1: Z 4; SCRIPT 6
6
P.N SUB Z 1
P.NEXT TI.IN Z
CV Z TI.IN Z
IF GTE P.I 63: SCRIPT Z
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment