Grid ops / integration



He’s coded all the Grid TT operators. Then, what you see there is made with TT only, i believe. Hopefully this will be soon part of the original TT !


yep, what @chapelierfou said is correct, i’ve added grid support to teletype firmware, and then the scene was all done with teletype scripts using some of the new grid ops. i’ll post it later today with some explanations!


Amazing work, I’m keen on trying this out.

Reading through the code, I began to wonder if it’d be possible to make the operators that take a large amount of number parameters slightly easier to read. The only way I can think to do that at the moment is to perhaps introduce a syntax for pairs: G.BTX 1 1,1 2,2 1 5 1 4,1 (for reference G.BTX id x y w h latch level script columns rows).


yeah, those ops are heavy… this is actually a simpler version, i went though several revisions trying to balance flexibility with compactness (as an example, i’d love to be able to specify the brightness level for pressed buttons, but that didn’t make the cut, right now it’ll use the max brightness).

what you suggest would improve readability but would have major implications for the language, so likely not possible unfortunately.

other option i considered was to have an op to set some defaults, and then have a shorter version for button creation. i tried that and discovered it was really nice to be able to create a group of buttons with just one line instead of two, that’s why i went with this op at the end.

a really cool (and i think elegant) solution would be to have a hint displayed on a separate line that would show the name of the parameter you currently on - this is a major redesign though…


The Teletype language is growing to a point where this type of code hinting would be so incredibly helpful, especially if you’re like me, and don’t eat/sleep/breathe Teletype every day (and kinda start to forget stuff when I step away for a while).

Totally understand this would be a major undertaking, and maybe shouldn’t be highest priority, but any usability help such as this will be immensely appreciated.


good news - the usb cable worked, and i think i fixed it. the issue was due to refactoring some of the G.LED code which i did not test after - pretty embarrassing! there might still be gremlins, so please keep an eye on anything that looks suspicious, but i did test it with the pong scene (the latest video posted above).

the new beta (also posted in the op): teletype.hex sep 20 [828ef11]

the pong scene: tt00.txt

i made some additional changes, so it’s 25 lines, not 22 -
CV 3&4 will be also set based on direction, and the knob controls speed.

i’ll post a line by line explanation of the scene tomorrow!

> teletype: grid code exchange

Only just started playing with the latest grid/tt beta, but I have noticed a strange behavior.

If I try to put


in a script, pressing enter to place the line in the script causes the contents of the line itself to change to


At first I thought I was just crazy, but it happens across all script numbers.


A typo by the looks of it.

@scanner_darkly if you get the tests running, there are some that check for misnamed OPs.

(They also check that you’ve set the number of params correctly, but you’ll need to make sure that STACK_SIZE is at least 2 bigger than the largest number of params.)


When working with a 2x2 latching button:

G.BTN 3 1 6 2 2 1 4 2

I have noticed that pressing any two of the cells simultaneously triggers the script, but fails to change the state of the leds. To clarify, if the leds are lit they remain lit, similarly if they are dimmed they remain dim.

By the way, this update is incredible! Thanks @scanner_darkly for putting in the work! :heart_eyes:

Edit: After checking a few more button sizes I realized that this happens with any latching button larger than 1 cell.


both should be easy fixes, i’ll make a new beta tonight. thanks for testing it, so awesome to see it in the wild!

@sam - thanks for checking! yeah i need to get tests going soon. re: STACK_SIZE - already changed it to 10 in my branch.


You need to make sure it’s 2 bigger than the biggest OP you have to run the tests (so at least 12, just go for 16). Otherwise you’ll get a stack overflow when you run the test suite.


ah, got it in less than 20 characters!


ok, both issues should be fixed now! the new beta linked in the op.

edit: this got me thinking, perhaps this could be a feature where on bigger buttons you could also have a separate property indicating the overall number of buttons pressed (this probably makes more sense for momentary buttons though).


Well now I need a grid. :sob:


you gotta get that 2.1 out so i can rebase and we can try this with the turtle! :sunglasses:


tryin to re-read info above…w/o switch or ext5v this is a no go?

monumental achievement either way!


yeah, basically you can’t plug a grid directly into teletype, it won’t work (and possibly not a good thing to do to teletype). what you need is some option to power grid externally, ext5v / monome switch / offworld board / Y usb cable adapter.


3D printer came in. Ended up throwing a bunch of time at modeling to fix all the broken stuff in the house. Made an extended tank for my vape, fixed the vegetable steamer, built reinforcement brackets for weak IKEA furniture…


does it have i2c? :slight_smile:


Why, yes it does!

And the firmware is on github. Time to make it an oscillator, I guess. Not even joking, I will actually be making it an oscillator to sweep for physical resonance so that I can identify noises and solve them either by tightening things, adding foam tape, or possibly printing inertial dampers.

To keep it on-topic, I will push out 2.1.0-beta6 after the weekend. I want to expand the testing suite to include more of the new behaviours of L/I, SCRIPT, and possibly DEL and other timed code, but I’d have to expand the simulator to do that. I’ve got a couple of 8 hour builds queued up, so I should have the time to tackle all of this by Monday.

Edit: my bad, no i2c on-board. I’ll still set up a foley mic and use it as a sample source, however!