:bulb:
There’s no OP for checking whether there are delayed events waiting, but it should be easy to make one! Then you could just hold fire on new events depending on how full your delay queue is.

If you need advanced flow control, you could use a combination of the stack and delay OPs…

1 Like

Let’s be fair, I’m so far away from needing advanced ops. I have not yet really been able to find a way to truly tame the TT but I’m trying. Some things I’ve done fall under the general idea of meta sequencing my effects and certain parameters of my rack, so I can automate and explore exact movements of my tools. But I’ve wanted to look more at this semi randomized automaton that I’ve seen people create, based upon my procurement of a ER-301. The ability to mangle, re-synthesize and remix incoming audio with the TT feels like I could create semi automated and yet fully controlled Octatrack style manipulations of audio buffers.

But the first step is just seeing if I can generate a melody and rhythm in ways that satisfy me. Baby steps.

1 Like

if i understand correctly, you could just change the metro rate on each step:

#M
M PN 1 X
M.RESET
TR.P 1

assuming X is the current step. you have to use M.RESET in order for this to work properly.
of course, it’s also fun to play with the various DEL ops!

1 Like

This would then have a global effect, yeah? I was hoping for this to be generally set to just one portion of my full patch, but this would be such a cool idea for tempo shifts on a global scale!

yeah, if you want different scripts to run on different tempos then you should use a faster metro rate and divide or use DEL ops.

1 Like

is there a comprehensive guide to the tracker? like how i work out what notes i want to put it in a particular key? how i load a new track?

1 Like

Keys are gonna be based on semitones, which you preface with ‘N’ in your script so:

CV 4 N 7

would give you the fifth from your root (G if your sound source is tuned to C) on CV 4.

I’ve found the easiest way to work with multiple patterns simultaneously is to use the PN ops every time you want to call a pattern, so:

CV 4 N PN.NEXT X

where x is some number 0 - 3 OR actually just the variable X which stores a number 0 - 3. This will give you the value stored on the next step of the pattern, converted to semitones.

here’s a little table describing semitones that you should be able to use as a key for inputting any scale in the tracker:

Root - 0
Minor Second - 1
Major Second - 2
Minor Third - 3
Major Third - 4
Fourth - 5
Tritone - 6
Fifth - 7
Minor Sixth - 8
Major Sixth - 9
Minor Seventh - 10
Major Seventh - 11
Octave - 12

Add or subtract from these values if your root is something other than C, and just add 12 whenever you want a different octave.

So if you’re wanting G Minor (and your source is tuned to C):

7
9
10
12
14
15
17

This is all in the studies (linked above), which will really save you a ton of time.

Remember that, unless you’re doing some kind of complex weighted probability thing, there’s not much of a point in deliberately tuning TT to modes, since modes are just rotations of the natural scales (in fact, unless you’re doing something really eccentric like augmented or non-repeating scales, you almost certainly want to stick to major scales and just push things around by an octave up or down to get the quality you’re looking for, which is a better exercise for your ear anyway).

One fun trick is to scale your param knob 0 - 3 and set X equal to param, then put four different sequences in the tracker and use the knob to switch between them. Better yet scale your INPUT from 0 - 3 and set X equal to your input, then plug in an LFO and let that switch for you!

Another is to put 0 in the tracker when you want rests (just make sure the actual semitones are in a different range) and use

IF PN.NEXT X: TR.PULSE 4
CV 4 N PN.HERE X

this will give you a note only on the non-0 parts of a pattern, and is a good way to get both rhythm and melody from just one pattern (although, there are a million ways).

7 Likes

also check this study: https://monome.org/docs/teletype/studies-5/
and @EqualTemperament’s excellent videos: Teletype Talk

1 Like

how about loading new tracks? do i just copy the current scene, then edit the tracker? is there not a way of separating scene and track so i don’t run out of mem?

Do you mean that 256 steps isn’t enough for your application, and that you want to create additional trackers within a scene?

If so: I’d recommend looking into extended sequencing techniques that will help you do more with less space. The tracker isn’t really optimized for the kind of linear composing that require storing quite so much data. If you’re dead set on it, though, the way would be to devote a script to changing scenes, yes.

1 Like

ok ok i get that it’s wonderfully dynamic, i need to learn those keyboard shortcuts better. just sometimes nice to ‘load a song’ innit.

Yeah man maybe it’s just really not the best tool for that application

1 Like

Hey all, Teletype newbie here. I’m trying to get two different groups of 8 faders next to each but I’m getting unexpected behaviour. My Init script is as follows:

G.FDX 1 0 0 1 8 3 0 0 8 1
G.FDX 2 8 0 1 8 1 -1 0 8 1

I’m expecting the first 8 columns as dot faders and the last 8 as line faders. When I comment out one of the two lines the placement is correct. But when both are active of the first eight only the most left column turns up as a dot slider. Also the last eight are never dimmed. What am I missing?

the first parameter for G.FDX is the id of the first fader in the block of faders you’re creating, so your first line creates 8 faders with ids 1…8. but then when you define a second group using the starting id of 2, faders 2-8 are overwritten with the new definition. change your second line to this:

G.FDX 9 8 0 1 8 1 -1 0 8 1

this way the 2nd block of faders will have ids 9-16.

1 Like

Maybe someone has an idea, how to shorten my script. In my scenario I need two scripts, and I would be very happy, to find a way to do this within one script. The idea behind the code is pretty simple: the CV of a track from Kria gets split up to 4 Sound Computer CV-ins. Ansible is triggering the script at each note, and with each trigger the CV moves to one of the four SC-CV-ins and sends a trigger. This way, I can play four-voices of a sampled Mellotron-Bank on the Sound-Computer.
My code is:
One Script: D ADD D 1; D WRAP D 1 4
IF EQ D 1: SC.CV 10 KR.CV 2
IF EQ D 1: SC.TR.P 10
IF EQ D 2: SC.CV 11 KR.CV 2
IF EQ D 2: SC.TR.P 11

Next Script: IF EQ D 3: SC.CV 12 KR.CV 2
IF EQ D 3: SC.TR.P 12
IF EQ D 4: SC.CV 13 KR.CV 2
IF EQ D 4: SC.TR.P 13

Thats it. So much text for this action. I wrapped my head around for a way to do it more elegant, maybe with a loop, but I can´t get it. Any ideas? Thanks

something like:

D + D 1; D WRAP D 1 4
SC.CV + 9 D KR.CV 2
SC.TR.P + 9 D

Is that what you’re looking for?
You could also assign + 9 D to a local variable J or K first to use in the SC lines

Thinking of it (don’t have a TT in front of my right now, this might work as well:

D WRP + D 1 1 4; J + 9 D
SC.CV J KR.CV 2; SC.TR.P J

And if you don’t need D globally to be 1-4 you can just wrap D directly D WRP + D 1 10 13

4 Likes

Oh, thanks a lot. Great! What a beauty of code. …does exactly what I wanted, and takes so much lesser text. Chapeau!!!

1 Like

hi, i’m still very basic with teletype so if the answer is obvious, go easy on me!

I am trying to build up something like a nonlinear circuits triple sloth. I’d like at least 3 LFOs and to be honest, I’ve never actually been able to try one out in person but I have a sense in my head of what I’m trying to build: 3 LFOs that are slow LFOs of varying loop lengths (they change, slowing down or speeding up as they go, with the 1st faster than the second which is faster than the 3rd). Turning the param knob
should add even more variability, maybe speeding up somewhat or slowing down somewhat depending on direction. can anyone help me get started with this?

I haven’t used them myself yet but the CHAOS operators might be a better start than LFOs to do sloths-like stuff…

teletype is not really suitable to produce LFOs although you can approximate them with either using slew (this will only give you triangle wave) or by calculating values (or indeed using something like the CHAOS ops) and using a super fast metro script to update CV values (teletype might become less responsive if you’re running metro at rates faster than 25ms however).

an easier option to produce LFOs with teletype is to use either ansible (you can use teletype ops to select and control the cycles app even if you don’t have arc) or to use telexo which is extremely flexible and fun to use (CV offset / variable waveform / reset / bipolar or unipolar etc).

4 Likes