Teletype: best practices for addressing different patterns simultaneously

So the p.next variety of commands will only address any one of the patterns (the working pattern) at a time.

I can’t wrap my head around how to work with the different patterns simultaneously. Any tricks for doing this?

I understand the ability to address a specific index in a specific pattern…say PN a b, but getting the different patterns to advance, etc, seems tricky.

2 Likes

Just to clarify, you are looking for a way to advance all (or some) of the patterns in one command? As opposed to using a line of the script to select each pattern bank then performing actions to it. This video by laborcamp does some of the latter, they go through the scripts early on.

But I’m guessing you are after the former…

@tambouri actually, what Laborcamp is doing there would satisfy what I’m looking for. I now remember recreating some form of this patch a few weeks ago, but when I’ve been experimenting lately I’ve been running into trouble.

I think the missing link is: if you are going to use/advance multiple patterns, you need to add a P.N x command before each P.NEXT command. If you don’t, a ‘dangling’ P.NEXT will just switch to whatever pattern does get a P.N command.

Thanks for reminding me of that video!

i had been trying to create a rhythm sequencer based on one trigger and ran into the same issue

as far as i can tell you cant put p.n and p.next in the same line so you have to “waste” a line to specify which bank youre addressing and, therefore, cant fit commands for all 4 patterns in 6 lines

for one i made this morning i chose spread the commands across scripts and use internal patching to trigger them

  1. TR 1 P.NEXT DEL 1200 : TR.TOG 3

  2. P.N 1 TR 2 P.PREV

  3. P.N 0 TR 1 P.NEXT P.N 1 TR 4 P.NEXT DEL 1200 : TR.TOG 3

it would be nice if something like

TR 1 V P.PREV 1
TR 2 V P.NEXT 2
TR 3 V P.NEXT 3
TR 4 V P.NEXT 4

would assign each trigger (or CV) output to read values from a different bank

This may be common knowledge or obvious to all concerned, but just in case it isn’t - scripts don’t need to be limited to 6 lines… you can cheat by adding a trig in line 6 and continuing on a different trig script. If you don’t have a spare trig script, and you’re not using METRO you can use it too with M.ACT 1 at the end of your script and just add M.ACT 0 to the end of the script on METRO page.

i dont think i follow you

btw I like the 6 line constraint…i just need to learn how to use the syntax to get the most out of each precious line

its a good mental challenge

I like the 6 line constraint, too, mostly…
But occasionally I want to do something specific and I can’t do it in 6 lines, so I split the script into sections -
5 lines then
TR.PULSE B
Connect trig B into an unused trig IN
Then continue the script there

When v.2 comes along we will be able to do this without using a cable…

1 Like

Ah yes I see what you mean…yeah I’ve done that too

i think i’m going to call it v1.1-- v2 should be reserved for some monumental change.

but-- USB save/load is done and is totally cool. i’ll be hacking on the huge github issues list next. SCRIPT op will be in there early-- i like that idea.

1 Like

speaking of scripts and i/o

have you patched multiple TT modules yet? I ask under the (false?) assumption that your crew are the only ones with several in your racks

it’s not really necessary but i’m curious

Nice ! When for 1.1 ?

Question: so how does the TR 1 V x y command work? I thought that the Trigger outputs were either 0 or 1? I see that you are assigning them either a 0 or 1 from the Tracker…which I didn’t know you could do. I assume it has to either be a 0 or 1?

there is probably a more efficient way to do this but the

TR 1 V P.NEXT

command will move the “head” of the working pattern bank forward one space, read the value, and set the trigger voltage to either 0 or 1 accordingly

edit: just tested

TR 1 P.NEXT

it works so i’m gonna go clean up my code a bit

i haven’t tried multiple TT at once. one TT can already control more stuff than i normally use!

1 Like

Definitely not best practice (and not simultaneous), but this is a single trigger script that I’ve used to advance all patterns. With a bit of experimenting I’ve managed to get some pretty interesting trigger rhythms.

S : TR Y P.NEXT
S : P.N X
X WRAP ADD X 1 0 3
L 1 2 : S.POP
Y ADD X 1
1 Like

Curious to see this one in action. Not 100% sure what is happening here… This module still boggles my mind.

I really should have cleaned this up before posting. This was originally two separate scripts; one to add several P.N X and P.NEXT commands to the stack and another to call S.ALL in order to try and advance all the patterns together.

The above is really equivalent to

X WRAP ADD X 1 0 3
P.N X
P.NEXT

Which still works pretty nicely with a fast incoming pulse

1 Like