> teletype : code exchange

Movie Snacks

A simple sequencer scene inspired by Bastl’s Popcorn

A simple sequencer script designed with @bpcmusic’s Telex expanders in mind that takes two gate inputs. For each gate input you can determine how many steps forward or backwards the sequencer should progress.

Requirements

Telex input expander (TXI), but you can easily rewrite this to work without.

How it works

You write notes and mod data in the tracker, then you send a pair of gates to inputs 1 and 2. A trigger into input 3 will reset the sequence.
The knobs on the TXI control how the sequence is being read.

The tracker pattern is organized like this:

  1. on the first column there’s note values
  2. on the second column you set slew to on or off for the step. a value of 1 means the step will triggler a slew
  3. This is an additional modulation data lane. values are in VV

The knobs on the TXI work like this:
knob 1 and 2: turn clockwise from 12 o’clock to play every N steps, with N going from 1 to 4, turn counterclockwise from 12 o’clock to do the same but backwards (sequencer will jump back N steps).
knob 3 controls the slew speed
knob 4 transposes the whole sequence.

Overwiew: Inputs, outputs and controls

INPUTS

TR 1= CLOCK 1 / TR 2= CLOCK 2
TR 3= RESET

TXI KNOBS

1=JUMP 1 / 2=JUMP 2 / 3=SLEW SPEED
4=TRANSPOSE

OUTPUTS

NOTES: CV1 / TR1
MOD: CV2

Scene

v1.0.0 tt14s.txt (1.5 KB)

you can download the txt here (change name and remove “s” before writing to the TT), or copy/paste the code below

1

Y PN.L 0
A MOD ADD A TI.PARAM 1 Y
PN.I 0 A; PN.I 1 A
B PN.HERE 1
SCRIPT 4; SCRIPT 5
IF > A 256: A 0

2

A ADD A TI.PARAM 2

3

PN.I 0 0
PN.I 1 0
PN.I 2 0
A 0

4

C TI.PARAM 3
IF > B 1: CV.SLEW 1 C
ELSE: CV.SLEW 1 0
X TI.PARAM 4
CV 1 N + X PN.HERE 0
IF NZ B: TR.P 1

5

PN.I 2 A
CV 2 VV PN.HERE 2

I

L 1 2: TI.PARAM.MAP I -4 4 
TI.PARAM.MAP 3 10 1000 
TI.PARAM.MAP 4 0 12 
L 1 2: TI.IN.MAP I -4 4 
CV.SLEW 2 0
10 Likes

I’ve completed my first 1.1 scene, so named the Turglebug because it has two Turing Machines and two wogglebug-like stepped (one stepped, one smoothed) voltage outputs. It’s not magic, but it’s my first one and I’m quite pleased with the effect.

TURGLEBUG MACHINE

PARAM KNOB SETS PROB FOR
PATTERN CHANGE
1 IS TURING, 2 OCTAVE SCALE
16 STEP PATTERN LENGTH
3 IS TURING, 4 OCTAVE SCALE
32 STEP PATTERN LENGTH
OUTPUT 3 IS STEPPED VOLTAGES
FROM 0 TO 10V
OUTPUT 4 IS SLEWED VOLTAGES
FROM 0 TO 10V
OUTPUTS 3 AND 4 ARE STEPPED
FASTER THE FARTHER THE KNOB
IS TO THE RIGHT
5 HAS A PROBABILITY TO TRIG 3
BASED ON KNOB POSITION
5 WILL ALSO DELAY TWO TRIGS
ON 3 BY DRUNK TIMES 100 AND
200



#1
P.N 0
X N RRAND 0 23
PROB A : P P.I X
CV 1 P.HERE
TR.PULSE 1
P.NEXT

#2

#3
P.N 1
Y N RRAND 0 47
PROB A : P P.I Y
CV 2 P.HERE
TR.PULSE 2
P.NEXT

#4

#5
T LIM MUL 10 A 0 100
PROB T : TR.PULSE 3
T ABS MUL DRUNK 100
DEL T : TR.PULSE 3
T ABS MUL DRUNK 200
DEL T : TR.PULSE 3

#6

#7
CV 3 RRAND 0 V 10

#8
CV 4 RRAND 0 V 10

#M
A SCALE 0 16383 0 100 PARAM
Z SCALE 0 100 150 10 A
L 7 8 : SCRIPT I
M Z
Z SCALE 500 0 300 20 Z
CV.SLEW 4 Z

#I
M 10
M.ACT 1
SCRIPT 2
SCRIPT 4
CV.SLEW 4 100

#P
16	32	0	0
1	1	1	1
0	0	0	0
63	63	63	63

0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
19 Likes

Nice. Thanks for sharing. I’ll have a go at this tonight.

1 Like

Amazing :smiley::ok_hand:
Thanks a lot

1 Like

Oh heck yes! Thanks for sharing this! I’d love for folks to start sharing their TT scripts again; especially when they can help bring very specific value to the family such as your Turing machine.

Thanks so much! Looking forward to using this!

2 Likes

For anyone looking to expand this to include the red mode (drum patterns) as I was a few months ago, I found the root drum patterns in the code (although could not decipher enough to know how the outputs are then derived from these).

If anyone has the chops for that bit of decoding it’s somewhere in here:

3 Likes

minor update on this:

friend of mine took 30 minutes to look over the code with me. There’s an ‘if even, no change’ and ‘if odd, change’ and the first pattern on the list is indexed as 0 (and is 12 o’clock on the knob which, if memory serves, gives a steadily alternating kick and snare with no fill). So the way to emulate it with tt would be to populate the tracker with these patterns, with some variable x that determines the current pattern, to increment all of the patterns on a unified trigger, and to call pn.here x to determine which trigger to come out of. x could be drunk or just some kind of weighted random (think mod rrnd 0 2 2, which gives 0 2/3rds of the time and 1 only 1/3rd of the time).

It may be a few months before I get around to it, but if/when I do I’ll post another update. Ultimately what this mode is doing is extremely simple, and there’s no reason we can’t write a Crow script even to emulate it – also recall that Disting EX integration is now a thing, so at some point in the future a 12 HP probabalistic drum machine will be a thing one could hack together, perhaps with clock and bias as the two inputs for Crow, taking up less space than the OG marbles. Seems a lot of people use marbles primarily for drums and treat the right side as just another stepped random, so this feels like a solution that could really enhance a lot of people’s flow.

Just posted this over in the Morphagene thread but thought it might be useful to have here too. I basically figured out TT CV values to hit the more “tonal” spots on Morph’s varispeed knob and wrote a script to make a quantized varispeed knob with the TT Param knob based on those values.

This quantizes it to octaves, 4ths and 5ths both in regular and reverse playback. Set your varispeed knob fully CCW and your varispeed attenuverter fully CW.

Tracker values (let’s say in pattern bank 0):

0 (reverse +octave)
41 (reverse +5th)
54 (reverse +4th)
85 (reverse)
118 (reverse -5th)
133 (reverse -4th)
164 (reverse -octave)
330 (stop)
486 (-octave)
518 (-4th)
532 (-5th)
564 (normal)
598 (+4th)
612 (+5th)
800 (+octave)

SCRIPT 1:

J PARAM
CV 1 VV PN 0 J

And PARAM.SCALE 0 14.

16 Likes

Hi! Finally im having some time to learn the Teletype :slight_smile
Thanks to all involved on making such a special device!
So i guess with the learning come the questions…
Apart from the usual i need more code lines, variables, scenes, etc that most newbies come to realise…i have one question:
I have a script that has a line that randomizes the pattern from where values are read. I have run out of scripts so i was wondering if there is any way to make a function comment out a line inside a script?
Say i found a random pattern that i like on pattern 0, but i dont want to randomize it again on the next trigger of the script. How can i disable the randomizing bit?
Sorry im away from my computer so i cannot copy / at the moment.
Any ideas?
Thanks!

Ps: Am i right in thinking that i probably cannot assign each fader of the 16n (therefore 16 fader functions ) and that i should just try to use the txi? I had lots of ideas for ñpattern manipulation but, there is no way with my knowledge im going to be able to fit that on 8 scripts, plus I and M.

Less is more?

Thanks a bunch!

I’m not sure I’m understanding correctly, but the first thing to say is that you can comment lines by hand using ALT-/

If you’re wanting to prevent a line from running programmatically, then you can use an IF. For example you could have a variable A, which if it was non-zero would trigger the thing to run and otherwise skip it by using IF A: and then the rest of the line would be your code.

I suspect this isn’t what you’re after, but just in case!

Thanks for your answer @SimonKirby!

I knew about the commenting out bit, but i had no thought about making a conditional state…but what related too? What condition should or should not be met to stop the randomizing action?

Scratching my head!

Thanks!

Well, I guess if you want something that says “stop randomising” because you like what you hear you will need an input from you to do that. One way is to simply type A 0 at the live prompt in teletype to set the variable. Another way would be to use the PARAM knob. You could check for it being zero instead of A and then just turn it to the left when you like the pattern. (You might need to set the range of the param knob in order to make sure it actually reliably goes to zero when turned all the way left).

1 Like

Thanks for the quick reply and input @SimonKirby i think i might use one of the faders of the 16n to move between 0 1 making the line of code that randomizes the pattern active or not. So if the variable is equal to the value it will randomize the pattern, and if not then it would “jump” the line of the script, maybe with an else if?
Will give it s go and report back! Many thanks!

2 Likes

Hi Thopa, there are also a few scences of Turing machines around if you like to get inspired and not already found it - just try the search.

2 Likes

This is veeery useful :slight_smile: thank you!

So I started my journey into Teletype 12 days ago when I decided a good way to dive in was porting Norns’ amazing Awake to a Teletype scene. It turned out harder than I expected, misunderstanding id’s within a group (thanks @scanner_darkly for clarifying) and being limited (but in a fun/challenging way) by the amount of scripts/rows/chars/vars. Yesterday I finally got my first oscillator in the mail (also just dove into modular) so I was able to test and fix a last bug in the scene.

I present to you: HALF-AWAKE:

View this post on Instagram

HALF-AWAKE //// ported #monome norns’ awake to #teletype #eurorack

A post shared by Nino (@ninoshiro) on Sep 30, 2020 at 4:42am PDT

  • Script 1: advance and play sequence 1 (default 8 steps)
  • Script 2: advance transposition sequence 2 (PARAM decides steps)
  • Script 3: change note or transposition and “on/off” state for steps
  • Script 4: morph note sequence or transposition sequence for steps that are on
  • Script 5: morph sequence 1 with script 4
  • Script 6: morph sequence 2 with script 4
  • Script 7: reset sequence 1 playhead
  • Script 8: reset sequence 2 playhead

tt02s.txt (1.7 KB)

P.S. If you want to trigger scripts 1 and/or 2 externally remove them from the Metro script!

14 Likes

This is great! I’d love to take a look at how you wrote the scene.

1 Like

Added it to the first post! please change the script number to the desired spot to overwrite when writing to teletype :slight_smile:

excellent, added it to the grid teletype code exchange page!

2 Likes

Hi!
Im trying to input param readings in realtime in a pattern.
So the pattern is playing with P.NEXT and i want to input the readings from the PARAM pot on each index of a pattern in real time.
I have tried:

P.N 0 ; P.INS 0 PARAM

and

P.N 0; P.PUSH PARAM

With no luck.

I have also tried scaling PARAM on the I script and assigning its value to A but its not working either.

Can this be achieved? would be great to have a pseudo Malekko voltage block function where fader movement is recorded in real timein a pattern…

Cheers