TouchOSC templates for Grid and Arc

TouchOSC templates for Grid and Arc

iPad-sized TouchOSC implementations of grid and arc

Tested only with some very experimental code on norns, but should be usable in pd/Max or other OSC tools.

Note - these are NOT officially supported on norns yet.


TouchOSC, iPad


OSC addresses for buttons/leds/encoders are set in monome serial format

Buttons: /grid/key x y - using x and y coordinates on the grid. Value is 0-1
LEDs: /grid/led x y - using x and y coordinates on the grid. . Value is 0-15 (vari-brightness)

Encoders: /arc/enc n where n is encoder number
LED rings: /ring/led n x where n is encoder number and x is led number.


See github for most recent code


most recent template:
grid128_arc4.touchosc (6.7 KB)

Older templates
grid128.touchosc (3.5 KB)
arc4.touchosc (3.3 KB)


I think part of the mystery of how to make this work might be here (monomebridge):

and then you’d have to use one of these old (pre-serialosc) apps:

otherwise, the newer variety all expect serialosc to be involved, and I’m not really clear on how to connect with that object since OSC is higher level than raw serial communication.

But I haven’t been able to make anything work yet, so I may be barking up the wrong tree.

I figured it might need a replacement input object (or whatever it’s called) in pd/max, rather than using serialosc/monomebridge

1 Like

That sounds right. …

Any tips on getting this up and running with Norns? Or is it still a bit early for that?

It’s really hacky :slight_smile:

Lemme check with Gerald who has done some further hacking on it

1 Like

This is cool! – does it send out the OSC info to Norns over wifi?

That is correct… :slight_smile:

1 Like

a few people have asked about this so I wanted to update a bit…

Got a Github setup and there is a “loader” branch at

This includes some mods by @Gerald_Stevens and a unified single Grid/Arc TouchOSC template (grid on one page, arc on the other).

With this you would first use load_grid.lua to establish the virtual grid and then you should be able to use ay other grid enabled script after that. The virtual grid will stick around until you restart. This may have unintended side effects.

This is generally untested (by me), but I hope to play with it more while I’m traveling the next couple weeks.


Is there something similar for using the arc on the norns? I was hoping to use this in conjunction with Mangl

I know you say that these are not officially supported on norns at the top, so, that SHOULD answer my question, but I was curious if this had worked with Mangl. Haha

Tried the test. I am an idiot. Thanks!

1 Like

I got both running, the template in the branch has a page each for Grid and Arc. IP address of your iPad needs to be added to both files in the /lib/ directory.

Correct me if I’m wrong, but the system moving forward is basically to alter a script that requires the Arc to changes listed in the test script, correct?

I don’t remember! :laughing:

I’ll try to play with this soon.

1 Like

HAHAH! That’s fine. I’ll sniff around and see what the differences in the code might be. All I know is, Mangl more or less worked out the box (as the test.lua script). So, no issues there? Haha

I guess this could be implemented on the lemur as it speaks OSC too?

Got the input working very easily on grids but no luck on getting feedback from grids to light up the pads using correct ip in the lib added and tried a couple diffrent ports will have to reinvestigate once this develops more.

So, getting feedback requires correctly putting in the IP address of your touchosc device in the lib file, which is all good, but I’ve had an issue where the information is sent at a really strange rate and causes the norns to basically grind to a halt. It almost works better WITHOUT the LED feedback.

Something I observed while using this stuff before - any script that refreshes grid leds at a high rate (like more than 10-15 fps) will cause norns to bog down as you saw.

Some scripts are not going to work well because they refresh too often.

1 Like

Yeah, as a result, Mangl begins to freak out. It’s a nice potential way to run it without the LED feedback, but defeats some of the beauty of the program! Very cool script though! I wonder what could be done in the future to get it running faster. Cool concept though!!

It works really well if you have strong wifi connections. Weak connections cause horrible data pileups. I tried to help with this by only sending LED state changes. Not sure I got it working… Arc implementation needs a lot of help too.

1 Like