My script is 2,5 years old and at that time I didn’t really understood all the module features. I think that there must be a better way to mimic the basics (thanks to all the wonderful updates), but marbles willl still remain the best marble if you intend to do marble stuff :slightly_smiling_face:

2 Likes

Great reminder! I wish there was a bot that automatically posted this sort of thing on any thread linking to a post about TT.

“This post is X years old, relevant as of firmware Y, please see manual. May still serve as a good starting point for executing whatever concept it was cited in relation to. YMMV.”

2 Likes

I think the developers have been pretty careful about breaking changes. There may have been a couple over the years. Other than assuming A,B,C,D are 1,2,3,4 (which was more of a convention than an actual change) I couldn’t even say what they are. I think breaking changes to ops are very few.

yeah, there weren’t too many breaking changes. you can always check the changelog to find them or to check when certain features were introduced: https://monome.org/docs/teletype/manual/#changelog

starting with 2.0:

  • BREAKING: remove II op. Ops that required it will now work with out it. (e.g. II MP.PRESET 1 will become just MP.PRESET 1)
  • BREAKING: merge the MUTE and UNMUTE ops. Now MUTE x will return the mute status for trigger x (0 is unmuted, 1 is muted), and MUTE x y will set the mute for trigger x (y = 0 to unmute, y = 1 to mute)
  • BREAKING: remove unused Meadowphysics ops: MP.SYNC, MP.MUTE, MP.UNMUTE, MP.FREEZE, MP.UNFREEZE
  • BREAKING: rename Ansible Meadowphysics ops to start with ME

starting with 2.1:

  • BREAKING: the I variable is now scoped to the L loop, and does not exist outside of an execution context. Scripts using I as a general-purpose variable will be broken.

this doesn’t include any breaking changes done to ops while they were still being developed but people are usually good at mentioning using anything that is still beta.

2 Likes

Got a question about the state of Q when a script is triggered - given a script such as

Q.N 4
Q IN
L 1 4: CV I N Q; TR.P I

On line 3 should I expect Q to output a new element from the queue for each iteration of the loop? Finding that I’m only getting one value for the 4 items in the loop. I’ve confirmed that with the following script:

Q.N 4
Q IN
L 0 3: P I Q

Feel like I’m missing something here, what could be a way to access multiple items programmatically from a Q within a script?

Hey people,
i would like to make a question about Teletype which is very naive and very precise at the same time and please consider that i don’t have a TT already and i don’t have any kind of real knowledge about it… so the question is:

“Would be easy/possible to write a script which let me create, let’s say, a 16 steps random trigger/cv sequence pattern, that wont never plays on certain steps, not in terms of values, but in terms of figure/position compared to the pattern structure”? (for instance, a random playing structure that’ll never plays/sounds on step 5 and 13 of the pattern)

I have always wanted to create this kind of scenario on a classic trigger/cv sequencer in random mode, but it was always impossible to do, although in some cases i made a pseudo trigger sequence using gate probability duties and deactivating the steps i don’t to play of course, but this is a case where are present only trigger/gate messages and not cv’s and it’s not the same thing.

I would like to know even if it’s “correct” to think about TT possibilities in this terms?
Thanks!

yes, it would be trivial to do with teletype. you could use a pattern bank to indicate which steps should be muted and then use a simple condition check before you generate a random gate/trigger.

2 Likes

The basic idea is to have a random pattern/structure where I can decide “when” not to play… something random that became linear when I want … :thinking::sweat_smile:

I don’t think there is a sequencer where you can decide basically the play mode x step?
Maybe the Vector Five12 has something like that idk… so I was asking myself if with TT this would be possible…

You’ve set the queue length to 4, but you are only pushing one value into the queue. Have you tried doing this in a loop?

L 1 4: Q IN

I can’t remember how often IN is sampled. It’s possible that loop could run faster than it is sampled. If so you might have to add some delay to get 4 unique values.

Yes this is totally possible with the teletype.

What’s more important (to me) would be the extreme flexibility you’ll have over when and which steps play and which doesn’t. Any combination of probability, input (physical or cv), interaction with what else is going on in the other scripts on the teletype, and any combination of the above you can dream up.

1 Like

Happy to hear this from you, I know what kind of rhythmical structures you accomplish with TT and your modular in general.
I’m satisfied with my sequencers right know, but I want something different in terms of interaction, language and possibilities.
I’m not already in possession of a TT, so I’m asking myself if it would be a nice choice for these type of things. Due to the nature of the module It seems so, but I wanted to be more precise with this question.
Thanks

1 Like

Is there a way to poll for a value while M.Act 0?

The use case I’m to solve is how to poll the values of 16n while being able use the metro for other things, like responding to manually triggered buttons on a grid.

The scripts will run with a corresponding trigger, unless you explicitly muted them…

Right but then the numbers I’m polling for are only updated when I manually trigger the metro. I’m sure I’m missing something, just not sure what…thanks!

@Voiron27 Could you be a little more specific about what you’re trying to do? I have language I might use to respond to your question, but it may be imprecise or idiosyncratic, and I’d rather use your own words. Show us the script?

1 Like

I’m trying to setup a scenario where changes to the slider values on the 16n are sent to the ER 301 while having 8 buttons sending triggers, also to the ER 301. The code is super basic and mostly drawn from Scanner Darkly’s Grid Studies, see below. I had M 25 in the Init script setting the metro rate but M.ACT 0 over rides that so I can’t figure out how to have a continuous metro and button triggered metro. Thanks for your help @yams and @a773.

Code
M
L 1 16: SC.CV I FB I
SCRIPT G.BTNI

I
G.BTX 1 0 0 4 4 0 0 9 4 2
M.ACT 0

1 
G.BTN.L 1 15
DEL 50: G.BTN.L 1 0
SC.TR.TOG 1

2 
G.BTN.L 2 15
DEL 50: G.BTN.L 2 0
SC.TR.TOG 2

With each successive buttons/scripts being a variation of the above.

Cool. Unfortunately that code means nothing to me cuz I don’t fuck with grid ops OR the 301, BUT I’d say 1) try to avoid relying on the faderbank as a source of continuous values. It’s less processor-intensive to poll it infrequently and set up a slew than it is to have it check it every 25 ms (this will begin to blossom issues when you are running more ambitious scenes with more going on, so try not to patch in a way that relies on these hyper-speed metro times). The I2C ecosystem really isn’t optimized for this kind of continuous control, and it’s probably better to just use the actual CV outs of the faderbank for that sort of scenario.

With that in mind, I’d recommend setting FB values as they become relevant, so the script that calls an action from the ER-301 also includes an update for the FB value. If the ER-301 event is currently triggered by a trigger into the ER-301, then just put it into a teletype scene and run something like:

tr.p 4
[send 301 that fb data]

and plug that trigger into the 301 (which just sidesteps needing a mult).

If you’re looking for true continuous control of the 301 I think you want something like:

8
DEL 25: $ 8
[send fb data to 301]

but this second thing will almost certainly create a buggy mess for you eventually if it becomes a habit.

Again: No 301 or GRIDOPS experience, but LOTS of time asking my faderbank nicely to send continuous values over I2C (and lots of completely system-breaking bug experiences!).

1 Like

Is it possible to control 2 Just Friends modules with a single Teletype using Just Type?

1 Like

Not yet. The infrastructure supports it but the ops are being hammered out. Crow can do it (although I have not tested).

My day job is utterly consuming my life (launching a medical device into production since June…) but JF4.0 OPs are at the top of my list once I break free :bowing_man: I would not be offended at all if someone else wanted to grab those reins! I can always help test; that’s a nice, mindless evening task after a long day of making burnt offerings to the FDA…