> teletype : code exchange



Thanks guys. i think i start to get how loops work.
If i get it well, Tehn you could as well have written “L 2 17” or “L 0 15”, couldn’t you ? The only important thing is it loops 16 times, right ?


P.POP and P.PUSH dynamically change the length. you can directly set values with P 1 1 etc and the length won’t be affected. your suggestion was totally legit and will work correctly.

correct. the bounds of L don’t matter if you’re not using the I value inside the loop.


yeah, unless you use the I variable in your loop for something. basically, I will step through the values you specify in the loop which can be useful, say, if you do L 1 16 : P.PUSH I it will fill the pattern with values 1…16


@tehn - but if i never call POP or PUSH and just assign values directly wouldn’t the length stay at 0? i guess that’s fine if i read from the pattern directly as well but something like P.NEXT won’t work, it seems.


correct. P.NEXT relies on the length, start, and end.



This is a simple scene to collect an array of notes as one plays and then have some of those notes play along with you in a semi random fashion. The last 16 notes played are collected in P.N 0 with the latest note played always being the first in the pattern, like a shift register. The pattern is played by the metronome, accessing a random position from 9-15, so not one of the last 8 notes played, but one of the 8 before. That’s about it for now. I think it might be sightly more musical is some semi random octaves were added. I think that could be done with ADD X MUL 12 DRUNK. I’ll test that later.

Connections -
Keyboard v/oct CV > IN
Keyboard gate > TR In 1
TR A > TR In 2
CV 1 > v/oct of destination
TR A > Envelope

M sub 1000 RSH PARAM 4
P.I RRAND 9 15

P.N 0
P.L 16

DEL 75 : X DIV QT IN N 1 N 1
DEL 76 : P.INS 0 X
DEL 76 : P.L 16


NOTE - the delays in script 1 are there because it seems my keyboard tries to output the gates and change the v/oct out simultaneously, but actually the CV changes slightly later, so I was needing to hit a key twice to get CV 1 to change. This little delay gives the CV time to catch up.

(Teletype) IN cv read latency?

very very cool. i’m imagining what it sounds like, but really curious to try it out myself.


Definitely going to try this.
Reminds me of Laurie Anderson software ideas for her electric violin.

You are on fire @lloydcole! :smile:


Thank you.
I think what is most exciting for me about Teletype is that is does nothing unless you instruct it to. It is not some new oscillator or ratcheting sequencer which does something other modules can’t do that you simply must have. Instead it asks you - What would you like to do? What music would you like to make? How could we achieve that?


It could sound like anything. Whatever you put in comes out, but in time!


@lloydcole so great, can’t wait to try this

reminds me of andrew pask’s looper ideas, discussed in his interview with darwin grosse : http://artmusictech.libsyn.com/podcast-055-andrew-pask

(brian has mentioned this podcast episode a few times, well worth a listen)


great idea. Really inspiring.


Simple Decay envelope. Why is this missing so many triggers ?

1 :
CV.SET 1 0
CV.SET 1 V 5
DEL 2 : CV 1 0


Random question :
How to change the range of IN or PARAM ?
Let’s say i want to scale the PARAM to 0-1000.
I’d love an equivalent of [scale] in Max.


i got this to work pretty reliably:

CV.SET 1 V 5
DEL 1 : CV 1 0

but i don’t know why there needs to be a DEL in there, which must be a bug in the CV code. this might relate to why certain pulses are dropped at higher script rates.

to scale the input i used RSH (right shift) which divides by 2 per shift. so shift 4 divides by 16, getting 1024 max. you could also use DIV PARAM 16


Thanks you. Indeed, i won’t work without a DEL, happy to know it’s a bug, as i am also very concerned with missed pulses.
As for the scaling of values, it’s hard to have a precise output range, since decimal is not allowed and too high values are not allowed either.


You can do hundredths of volts with the VV command.

VV 100 = 1V
VV 101 = 1.01V

There’s certainly some tricks to working with integers only, and it requires a different mind-set to floating-point, but rest assured almost everything is possible as it is with FP.


my tt arrived yesterday


in love with it already

i was worried it would feel “computery” and i’d be put off, but far from it. it feels like it’s opening up a whole host of opportunities for exploration with the modular. a bit like a baby aleph, or the cv half of one.

great job team monome! three happy goats for you: :goat: :goat: :goat:


Sure, but honestly i don’t see any way to effectively scale the [0 16383] domain to [0 1000].

won’t work since 16.83 would be quantized.

DIV MUL PARAM 100 1683
won’t since MUL PARAM 100 will easily cross the 32765 boarder.


this is true.

i’d suggest doing this:

LIM 0 1000 RSH PARAM 4

you’ll get a tiny “deadzone” at the top of the knob. it’ll be around 2% of the turn so not noticeable.