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

you can use teletype ops to select and control the cycles app even if you don’t have arc

:exploding_head:. thanks for the heads up on this

3 Likes

Ah ok I don’t have either of these, but I think I’ll make slowly changing cv values changing at three different speeds for controlling drones

You could record the values of the knob and then play it back at 4 different rates with CV slew set to match the period of each channel.

1 Like

Hi!
Recently I’ve bought a Teletype module. It hasn’t arrived yet but I’m thinking in selling my Marbles module because I think it can do what Marbles does. Am I right? Or do you think that both modules could complement each other well and they aren’t redundant in a single and tiny system? Examples?
Cheers!

I think Marbles and Teletype complement each other nicely. I often have Marbles’ clock driving Teletype scripts, or Teletype driving Marbles with rhythmic patterns. I also sometimes will sample Marbles with Teletype for shift-register stuff, or sample Teletype CVs with Marbles :slight_smile:

3 Likes

Nice! I’m going to wait until I have both modules before taking a decision. Any other examples? Songs/patches with both modules?