Teletype Studies for Max (including "homework")

Thanks! Here’s my first draft of the control schema:

2 JumpyEdgesWithControl.maxpat (66.5 KB)

Nothing too complicated here. When the Grid is connected, it routes the /sys/prefix message to a message to light up the first 8 buttons in the top row. These buttons trigger the “scripts”. The toggle states are indicated on the bottom row. The toggles can be interacted with directly.

Let me know if you have questions regarding how I’m using Max to parse messages, why I’m using zl.rev, etc. If this is your first Grid patch, note that the drop-down menu used to connect to the Grid is part of BEAP. It can be found at BEAP->serialosc->bp.serialosc.maxpat.

1 Like

So, I’m having an issue and it’s probably easy to resolve, but I can’t quite wrap by head around how to.

I’m trying to get this ‘sequencer’ of sorts to output a trigger for my modular (via a bang) rather than a toggle, but it responds to both the initial bang and the delayed bang. Is there any way to sort that out? I get that it’s going to respond to both the 1 and the 0 message. How could I filter the 1 message out so it only is outputting the delayed bang without rewiring the little subpatch? I’m trying not to mess with that in case it’s core to the concept, but toggles aren’t as useful for my idea of interfacing with my modular via ES8.

Anyway, I’ve got some ideas flowing, just not sure how much I can mess with the initial patch before it becomes different from what makes it a Teletype patch (which I know very little about).

TT_Studies_1_doublebang.maxpat (33.3 KB)

[select 0]?

20 chara

1 Like

Ha, this is why I need help from others and appreciate it so much. Even when it’s obvious stuff, my brain just misses stuff as I build my familiarity. Thank you.

TF, I’d still be curious what you consider ‘essential’ to maintain the Teletype functionality. Does it have to include the toggles? Is that how you imagine a ‘gate’ being sent from the Teletype? Can it send trigs (bangs)?

There’s no “essential” TT functionality that needs to be maintained in your sketches. I’m just using each TTStudy as a jumping-off point for exploring composition ideas. In this case, the focus is on small, predictable toggle behavior having complicated, unpredictable interaction.

The main reason to use toggles at this point is as a cheap version of gate width. In the original video (, take a look at the row of yellow lights visible on the Teletype. These are the outputs from this sketch, and you can see that they’re gates of variable width. If you don’t have use for variable width gates, then by all means change the sketch to suit you!

If you do go the route of triggers, there are a few things to keep in mind:

  • The seventh and eighth “scripts” (input bangs) deal with changing the width of a pulsed toggle (pulsed by script 6). You could safely remove/change these scripts in your own sketch if you are only dealing with triggers. Maybe turn them into burst generators?
  • Analog and digital modules behave differently with input triggers. Analog modules respond to just about anything, but digital modules need a trigger wide enough to be caught within their input’s sampling rate. If you’re running into trouble triggering modules off of bang, post here.

@trickyflemming awesome idea for studies!

A tiny detail I’ve been a little hung up on in a few other patches I’m working on. Regarding the “—” in the send / receive objects, I had assumed this limited the scope of the send/receive to a window and its subpatches, but I can’t really seem to get that functionality to work. I’m getting the same behavior in your patch where if I make another window w/ a corresponding send/receive messages are sent there as well

that’s not to say it impacts the functionality of the patch in any way,
just curious what i’m missing here

they are mentioned at the bottom of this page, but it kind of sounds like they may only work in M4L? am i misreading or is it perhaps just best practice?


Good question! Yes, I believe it’s M4L only. I’m in the practice of always using the “—” just so I can port something over to M4L quickly if I want. It’s definitely not required for a patch to work.

1 Like

Sweet! That makes a lot of sense re: porting to M4L quickly

OK, here is my first step, which I’ll share in case it sparks ideas for others. The main thing I wanted to fiddle with was integrating a multislider as a sequencer since I have so little experience with that object. So I put in 4 different 4 step sequencers to sequence the delay of each output.

I haven’t developed any sort of external control component yet, but I may do that later this afternoon if something interesting and meaningful appeals to me. My main idea was to learn more about the multislder by perhaps having 4 signals from my modular write the sequencer delay levels, but I’m just trying to make sure it’s actually more than an arbitrary signal.

Right now I just have been playing with the 4 trig outputs pinging 4 voices of Just Friends in the LPG mode :slight_smile:

TT_Studies_1_ES8_v1.maxpat (51.8 KB)


Nice! This already looks like a great start. I’m not near my synth at the moment, but visually the trigger outputs already look pretty fun. Do you have any audio from it?

I’ve only tinkered a bit, but am already working on a variation emphasizing math where the 1st seq is the master and the 2, 3, and 4 are just based on that one through basic division/multiplication.

Here’s a little sketch. This seemed like a good excuse to tinker with the Lowkey.NW granular stuff (in the package manager).

A bunch of metronomes trigger the bangs in the foundation patch. The toggles become on/off switches for four grainstreams.

Grain start position and grain rate are chosen randomly by some weighted probability switches. The grain position is further modified by an audio rate LFO.

It should start when you load it up. Loading in your own sound should work too.

Let me know if anything seems broken… (20.8 KB)


The above patch of mine has an error as I should have a sel 0 object for each output rather than just one. But I figured I’d upload a variation with my ‘math’ oriented approach here - I’ve just been really fixated on systems that are more interrelated.
TT_Studies_1_ES8_v1MATH.maxpat (54.2 KB)

OK, final version for the day, I put in 4 inputs for the 4 ins of the ES-8 to control the 4 steps of the master seq. All ears for critiques, but it’s certainly been fun to think about :slight_smile:
TT_Studies_1_ES8_v1MATH ADCinput.maxpat (65.0 KB)

1 Like

I’m pretty clueless on the granular side of things in MAX - so I look forward to taking a look!

All, thank you for starting this category. It and the Lines site in general are intriguing.

I’m new to Max, modular, and very rusty at music. I have Max and am enjoying it as well as currently saving up for an ES-8.


Welcome. Hopefully more will chime in and throw out ideas, but I’m already having a blast with the Max discussions here.

I was talking to Karl (analogue01) about how much I really kind of need people to keep me firing on the software stuff. If I don’t have people to spitball with and push me in different directions I think I feel more overwhelmed. I hope there are more Teletype studies to come or more discussions about this 1st one. The ES-8 is a revelation and I’m gradually honing in on how to use it. Mark has made me totally rethink how I approach my core ideas, which has given me a lot to chew on, but I’m also thankful I can just lift his beautiful design because it so skillfully does what i was trying to do. :slight_smile:


@sellanraa and @_mark, love the patches so far! I’m going to be more active on this thread over the weekend.

I had a fun idea for a “universal” controller for these Teletype inspired scripts. The top left 8 buttons trigger the scripts as they currently do. The bottom left 4 buttons show the state of four toggle outputs and can also be used to manually toggle those outputs. I think the next 4 buttons should show the state of four CV outputs and should be used to mute those outputs.

My main design thought right now is how to do clocks. My thought is that the row below the script triggers should reset eight individual clocks. The five empty rows below the clocks should change the speed of each clock using a slider interface. My fear is that this is not enough resolution.

This leaves an 8x8 area on the right half of a 128. I’m thinking of calling this the Metro Matrix, or Metrix for short. Here, you can decide which clocks are attached to which script. For instance, if I activate the top left toggle, it will route clock 1 to script 1. If I activate the toggle below that, it will also route clock 2 to script 1. That way, it could be triggered using the OR of those two clocks. That being said, perhaps it needs a “rule” page (OR, AND, XOR) for the clocks.

Blah, blah, blah. I think I may be getting ahead of myself by overdesigning the control interface before the instrument itself :wink:

1 Like

Here’s Teletype Studies #2: Copycat Flips

1 Copycat Flips.maxpat (24.7 KB)

If the interval calculations are incorrect, let me know! I converted from 0-10V to 0-1.0. I haven’t had a chance to test this with the ES-8, but this should work fine.

My Jumpy Edges patch ended up falling apart as I tried to make it too complicated. I’m going to focus on creating more of these jumping-off points for everyone to use.

My back has me sort of ‘out of action’, but maybe in the next few days it will finally be better. I really had fun tinkering with #1 :slight_smile:

Look forward to checking the new homework out.

Two more:
2 Copycat Flips Fixed.maxpat (24.8 KB)
3 Viking.maxpat (33.9 KB)

A) I changed my numbering scheme for the files.
B) I changed the way the notes for Copycat Flips are calculated based on reading more into V/Oct calculation schemes. Again, it may be incorrect.

Viking is Teletype Studies #3. Lots of variations on randomness!

EDIT: And here’s Slow Reader (TT #4):
4 Slow Reader.maxpat (26.8 KB)

EDIT #2: And here’s Dolphin and Seagull (TT #5):
5 Dolphin & Seagull.maxpat (31.5 KB)

1 Like