Home | ER-101 | ER-102 | ER-301 | Wiki | Contact

I2C communication with Monome Teletype


No. It doesn’t really work that way. The Teletype is the i2c master which means that it initiates all communication. Whenever the Teletype sends a message to the ER-301, a hardware interrupt is generated on the ER-301 which places the message on a queue of pending messages. In the audio loop (which runs at the frame rate of 375Hz for 48kHz and 750Hz for 96kHz), all pending i2c messages are processed and any changes applied.

Someone has been spending too much time on the Linux command-line :laughing:


Sorry, can’t resist:


Here’s a few things to help your research:

  • There’s more modules that can be controlled with the Teletype via i2c. This includes most monome-modules, most obviously ansible. The only other officially supported module so far is Just Friends, which has a special “Just Type” firmware that gives you access to additional features and modes (a polyphonic synth! and a rhythm-generator). There is also work on integration with the SSSR switch matrix. There was also talk about integration with the Tetrapad, but I don’t think that’s being actively worked on so far - it was just something that someone from Intellijel said they were interested in.
  • There are Teletype input and output expanders (open source), which add additional physical inputs and outputs as well as special operators/features. For example, you can set the outputs of the output expanders to pulse or oscillate at a set frequency until you tell them to do something else (thus enabling generation of audio rate signals without needing to send commands via i2c at audio rate). You can also scale and map the inputs of the input expander such that they only produce values from a specified subset, thus making your scripts simpler.
  • There is integration with the Monome Grid (in beta), which allows you to control your scripts via the grid, thus enabling much more intuitive control over parameters.

If you are a programmer (and thus already are acquainted with this sort of way of thinking), you’re really missing out if you ignore the teletype.


I know it feels like it’s going to happen, the reality is that I can’t possibly say with any degree of certainty if I like something or not without actually trying it…

The sheer curiosity factor is probably more than enough!

Did I just talk myself into this?


It’s really different from the sort of programming you most likely face at your day job (I’m a software developer, too). The scripting language itself is simple and the fact that each script is limited to the few lines that you can see on the screen (there’s no scrolling in scripts) forces you to express concisely what you want to happen when the script is triggered. It’s extremely powerful, but also limited in just the right ways to make you concentrate on what’s important without losing yourself in some complicated coding-problem. You can really tell that the people working on it know a lot about interface design and really care about that part of it.


How does the teletype handle multiple i2c connections? Ie: teletype + 2 output expanders + connection to the 301?


There’s a backpack that mounts to the Teletype enabling the connection of up to 12 i2c devices.


So if am imaging using this to sequence large portions of my rack, am I thinking correctly that this can do that? Melodies, rhythms, etc.?

I ask because when you say scripts can’t be long, I’m trying to wonder how I would do that?



The teletype has four patterns that can store 64 numbers each (accessed through a tracker-style view and programmatically). For each pattern, there’s a pointer that points to the current position in the pattern, but random access is also possible, so you can have multiple sequences running in different parts of the same pattern. There’s also a turtle-operator that can walk through these patterns in two dimensions, e.g. walk from position 13 on pattern 1 to position 13 on pattern 2 and then to position 12 on pattern 2. Lots of interrelated sequencing possibilities if you want to use it that way.

So you’d store the sequence data itself in a pattern and then use the scripts to define rules for how to progress through the data. The simplest use-case would be to enter a series of notes in one pattern (e.g. 0 7 9 12) and then just tell the script to increment the pointer for the pattern, read the current value and write it to a cv output. But you could also define more complex rules for how to move the read-pointer and for example write something to the current position in the pattern based on what you’re currently reading from the input to create evolving sequences.


Arghh!! Getting GAS!


Me too… but it’s been a while sine I wanted anything! There’s nothing else on my radar* apart form the new Bionic Lester whenever that decides to appear… maybe it’s okay?

*oh and anything Rabid Elephant releases - that dude is rockin :rofl:


Dunno about the BL but PH mk3 and HD mk3 are coming very soon.


So the little video that Monome has up does not do much to convince me. Dependent on triggers and totally dependent on random. (Maybe I just didn’t have the patience to watch it all the way through.) It seems like it is more of a module for accidentally finding something cool. I don’t like rolling like that. I searched on youtube, and every sequence I found is some short 8 note thing that loops, and is just modulated in some time scale.

I mean I’m talking about elaborate 4 to 5 thousand step patterns, and 4 to 12 of them running at once.

Is this possible?



Yeah, I didn’t want to take the critical route, so this is why I posted the blow me away with the TT/ER-301 music thread.

The last thing i want to do, is spend cash, introduce a keyboard into my setup and then be left feeling underwhelmed and thinking I could just do this anyway.

Really don’t mean to be critical or negative, because I can totally appreciate that this way of working suits a lot of folk and it is just about personal preference.


Each pattern is up to 64 values. They’re essentially arrays that can be manipulated. Teletype holds a lot of possibility, but takes time to learn. It’s event driven and usually the 1-8 triggers are that ‘event’.

I’m curious, why do you want or need 4-5000 steps in a sequence?


Thinking in terms of 4-5000 steps is definitely not getting the point of Teletype. It’s a tool for creating generative systems based on events.

It helps to think algorithmically. Live coding is probably the closest non-teletype analog.

If generative music sounds “random” to you (and this is something you don’t enjoy), or if you have no need to “do x when y happens”, then it’s probably not for you.


I never write sequences of that many steps, but I do very often set up multiple sequencers to influence each other, which can result in extraordinary long sequences from just a few steps. Can one script influence another like this?

@iPassenger worked out ages ago that the Stillson Hammer could theoretically produce a non-repeating pattern of … hang on… I just found it and thought it well worth copying here, for humour value if nothing else:

Just because I am very uncool and like excel…

If you make all patterns work in pendulum mode, with the following clock divisions:

15 (pendulum pattern is now 29), clock div 13
12 (pendulum pattern is now 23), clock div 11
10 (pendulum pattern is now 19), clock div 7
9 (pendulum pattern is now 17), clock div 1

The pattern now lasts slightly less than 3.5 years (Over 215 Million steps) at a 120 steps per minute!!

I’m not sure what the clock div goes up to but if there are higher primes, the maximum loop could be even longer.


Change clock divs to:

15 (pendulum pattern is now 29), clock div 16
12 (pendulum pattern is now 23), clock div 13
10 (pendulum pattern is now 19), clock div 15
9 (pendulum pattern is now 17), clock div 1

Its now over 10 years! Clock divs higher than 16 would mean that bars or partial 17 step bars would repeat, so I reckon that is the fair max.


This is a gentle reminder that this thread is for discussion on teletype integration with the ER-301. If you need pre-purchase advice on the Teletype, I believe there are more suitable places. :bowing_man:


Yes, of course. Scripts can call each other, write and read values to patterns, etc.

The 10 years long sequences you describe can easily be done algorithmically and there is no need to use teletype “patterns” for this.

Good point. llllllll.co is there for us.


Sorry… just felt like a chat!!

I’ll get my coat :roll_eyes:

p.s. for those who don’t know the reference, it’s from The Fast Show :smiley: