Alternatives to max and puredata for grid patching/scripting on PC

I want to make some grid patches (both controllers and sound-generating instruments) that can run across multiple platforms (win, mac, linux) which max cannot do, but I have found that my puredata grid bindings that I created are somewhat brittle, and pd lacks a lot of useful functions. Supercollider and other similar “full blown” environments are overwhelming to me. Is there some alternative system I don’t know of for making instruments or controller maps for the grid on PC? something similar to norn’s lua would be fine, although a visual patching environment would be even better.


You could also use node.js Grid Studies: node.js | monome/docs

1 Like

what exactly are you trying to accomplish? if you’re mainly concerned with generating osc and midi then any programming language with a midi/osc library should work though i’ve found that setting things up from scratch is a bit overwhelming. to that end, i made a super super rough around the edges terminal based norns controller: GitHub - zzsnzmn/osctl: OpenSoundControl utility but since that’s going through norns all of the other eventy type stuff i end up only using norns scripts.

sadly i don’t know if there are any other cross-platform visual patching environments that fit the bill, i’m partial to pd but the current state of documentation for osc does leave much to be desired.


OH! I forgot, on the node.js front you could do what karol said as well. I’m not sure if the midi library still works, but you could crib some of the stuff from: GitHub - zzsnzmn/batman64: monome 64 step sequencer based which I used to make a push style step sequencer for my grid64. i haven’t used it in quite a while and i’m not particularly good with JS but it did the trick back in the day. seems like it uses all the stuff from that grid studies :slight_smile: so deff a good place to start.


I think Python might be your closest adjacent to lua in terms of syntax and general m.o., though you’ll have to parse the osc from serialosc yourself (unless there’s a library out there for this I don’t know about), which is not that big of a problem.

I also found serialosc fragile in pd (with arc). More an issue with pd’s particular strengths and weaknesses than with serialosc, I think.

There is a grid-studies for python: Grid Studies: Python | monome/docs :slight_smile: I’d consult the python docs listed there for information on setting up a python environment 12. Virtual Environments and Packages — Python 3.10.5 documentation as packaging can be complicated depending on what OS you’re using. I’d feel pretty okay recommending either python or nodejs for OS X and Linux, but Windows is a bit of a pain. Maybe we could merge some of the things folks come up with with the “general purpose computing” thread since I think it’d be great to have a common set of tools.

1 Like

There’s definitely crossover, but I myself would like to see these stay separate so that the GP computing thread can retain its orientation towards ad hoc code connections in diverse environments & applications

1 Like

Hej, i used to patch everything with vvvv and still using my app, so maybe this can be an entry if you are up for learning vvvv - which is a super powerfull visual programming world for the interactive arts

Here is my repo

The app comes with a touch screen emulator for grids, step sequencer, faders, polygome style sewuencer, scaled keyboard and some experimental stuff.

The nice thing is that it works by treating the grid like a render output, so you can work with vvvvs extensive rendering pipeline for the ui and do all kind of fancy stuff with it…

I used it with a grayscale 2010 so it still comes with the old monomebridge maxpatch


my own (convoluted) way has been to:

  • make a pd patch that receives and sends OSC,
  • use the pdlua object for all grid logic since i have a hard time with visual programming,
  • use csound via the csound6~ object for all sound generation.

This should be cross-platform but far from the niceness of installing a single app and loading a project file.