Quick quantiser. Currently triggered by metronome for testing purposes. Remove that bit and send triggers to script 1. I’ll submit it to the repo once I’ve added some docs.

QUICK QUANT

#1
A / IN 1638
B % IN 1638
P.I 0
W > B P.HERE: P.NEXT
D + * A 1638 P.HERE
SCRIPT 2

#2
CV 1 D
TR.PULSE 1

#M
SCRIPT 1

#I
P.N 0
P.L 5
M 10

#P
5 0 0 0
1 1 1 1
0 0 0 0
63 63 63 63

2 0 0 0
410 0 0 0
683 0 0 0
956 0 0 0
1365 0 0 0
1683 0 0 0

1 Like

i want to create a script to trigger random gates on the telex output
i want to control the prob and the length of the gate

PROB 3: TO.TR.P 1
TO.TR.TIME 1 500

pretty easy, but how can I write this for the 4 outputs in just 6 lines?

thanks!

Put those two lines in one script, replacing the output number with I, and in a different script, loop over the range of outputs calling the first script. I can post some code in a bit once I get home if that helps.

2 Likes

If the PROB will always be 50, you could use TOSS instead

L 1 4: TO.TR.P I TOSS; TO.TR.TIME I 500

Afk, so not sure that will fit on one line… If you can spare the Script, @GoneCaving has the preferred method

1 Like

got it!!
thanks so much!

this is the final script:
5
PROB 4: TO.TR.P I
L 1 4: TO.TR.TIME I 300

8
L 1 4: SCRIPT 5

i’m using it to trigger some fx on the fxbox

1 Like

You don’t need to have the loop in Script 5.

#5
PROB 4: TO.TR.P I
TO.TR.TIME I 300

#8
L 1 4: $5

i know, it’s just the one i’m using for this :+1:

here is a silly one. i have been loving using kria with tt via: JF.VOX 1 KR.CV 1 and i would love to use this same approach to the oscillators in the TXo but i am stuck. up to now i have been sequencing them with the tracker and getting at “A” with N 57 in the tracker but it seems to me that when using a similar script to the aforementioned one TO.OSC.N 1 KR.CV 1 the pitches are far to low. I would have thought a CV.OFF in the init script would work but there does not seem to the equivalent for the TO ops. anyway, i’m thinking there is a super simple solution to this that is eluding me, @bpcmusic any suggestions? thanks!!!

2 Likes

There is actually an offset command:
https://monome.org/docs/modular/teletype/manual/#telexo-teletype-output-expander

1 Like

totally missed that. . . will try when i have a sec. ty.

no worries. I was like… the TX ops are so full fledged, no way they lack the offset command :smile:

1 Like

next, see if it works :slight_smile:

Here’s a little scene I cooked up this morning. Every four notes of the first pattern is a chord (they’re all maj7’s). The second pattern is the chord progression: the value for each step points to a chord in the first pattern.

Both voices are TXo oscillators. Script 1 triggers the top voice, Script 2 the low voice. Script 3 has the main steady clock into it. All three are triggered by different channels of Tempi. The second line of Script 3 sends a random voltage to Tempi, modulating its state, which is where all the rhythmic variation comes from.

The top voice drunkenly stumbles through the wavetable ( cheers @bpcmusic :wink: )

#1
P.N 0; A + P.RND 36
PROB 50: A + A 12
TO.OSC.N 1 A
TO.OSC.WAVE 1 * DRUNK 20
TO.CV.SLEW 1 TI.PRM 1
TO.CV.SET 1 V 10; TO.CV 1 0

#2
IF NZ B: $ 4
P.N 0; TO.OSC.N 2 + P.NEXT 24
TO.OSC.WIDTH 2 RRAND 10 90
TO.CV.SLEW 2 TI.PRM 2
TO.CV.SET 2 V 3; TO.CV 2 0

#3
EVERY 4: B 1
PROB 50: CV 1 VV RRAND 0 500

#4
P.N 1; A * P.NEXT 4; P.N 0
P.START A; P.END + A 3
P.I P.END
B 0

#5

#6

#7

#8

#M

#I

#P
24	26	0	0
1	1	1	1
12	0	0	0
15	25	63	63

17	0	0	0
21	0	0	0
24	1	0	0
28	1	0	0
10	0	0	0
14	0	0	0
17	1	0	0
21	1	0	0
15	2	0	0
19	0	0	0
22	3	0	0
26	0	0	0
12	0	0	0
16	3	0	0
19	3	0	0
23	0	0	0
8	2	0	0
12	0	0	0
15	4	0	0
19	5	0	0
13	5	0	0
17	4	0	0
20	4	0	0
24	5	0	0
0	2	0	0
0	1	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

#G
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000

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
23 Likes

@freqout - that scene gave me no ends of joy to read and listen to. It feels so good to see folks exploring the edges of the functionality that I was able to squeeze into the TELEX. That you did it in such a lovely and musical way made it even more so for me.

Thank you so much for sharing.

3 Likes

20 characters of hell yeah :ok_hand::ok_hand:

2 Likes

thanks! those wavetables were a nice surprise. i love it when it veers off into that very metallic sound and then back :slight_smile:

1 Like

Here’s a little idea for Just Type I thought I’d share, maybe you’ve thought of it yourselves: I think of it as “figured bass”. Put Just Friends into synthesis mode, patch a pitch source into IN and let’s go!

Use pattern(s) to store chords: right now I have just the following: -12, -5, 0, 3, 7, 12, which, if 0 represents the root note, gives you a pretty close-set minor chord, with the root tripled and the fifth doubled. Then, adding

JF.NOTE ADD IN N P.NEXT V 10

to a script will read the CV from IN (adding a short DEL might help give better results), choose the next note in our “chord”, and play it out, creating an argeggiated 6 note chord.

Plenty of ways to expand this: using different patterns (or regions of patterns) for different chord qualities or voicings, using a loop to play the full chord at once, putting the CV read into a different script to give Teletype control over when the chord changes, etc.

Actually, come to think of it, if you’re happy just arpeggiating, you could even refactor this to play any oscillator…

17 Likes

thanks for this script!

for those of us without TXi, this script can be modified to use arc encoders via ansible + levels. basically, use LV.CV instead of TI.PRM. tricky bit: there’s no MAP for LV, so use LIM:

Z RAND LV.CV 4
[...]
LIM LV.CV 4 0 800

…etc.

at least, the modified script seems to work with all these changes. i generated quite a bit of blippy computer madness with mangrove’s square and 3sisters’ sine output running into isms’ lpgs. some interesting regular rhythmic syncopation can be achieved with a slower clock (param knob on teletype) and a low jitter value (arc encoder 1; LV.CV 1).

2 Likes

Is there a concise way to shuffle the contents of a pattern?
(not to be confused with shuffled timing, in this case I mean to rearrange all of the values within a pattern)

Once again, something for which a new operator would be perfect as this is just a few lines of C++…
This would actually be a quite useful feature.

With the current TT operators you could implement something like the Fisher-Yates_shuffle but you’d need another script dedicated to that as it won’t fit in one loop line (I could only get it down to 40 characters) :

This is totally untested as I’m nowhere near my Teletype, so probably not working :slight_smile:. And it uses a ton of variables, so not super nice for complex scripts.

[where you want to shuffle the array]

P.N 1; A 4; B 12
L A - B 2: C I; SCRIPT 1

[in script 1]

D RRND C - B 1; 
X P C; P C P D; P D X

The first line initializes things :

  • we work on pattern 1
  • A defines the first index that we want to shuffle and B the last one (in that case from the 4th index to the 12th)

Then we loop over the desired indexes, store the I value in another variable as they are script-dependent and call the desired script (loops working on several lines would make that much less cumbersome). We use script 1 here but it can obviously be any other one.

In the other script, we get a random index in the desired range and then the second line swaps both array elements using a buffer variable (in that case X).

As I said, that’s probably not functional as it’s untested but something like this should basically work.
And an operator for that would be great :slight_smile:.

2 Likes