Migigrid is a grid emulator/shim for using midi grid controllers with Norns
Special thanks to @beepboop @tim52 @ground_state @thopa and any other early contributors I may have missed for getting this all started.
from maiden type
;install https://github.com/jaggednz/midigrid
Device support added on request, PR’s welcome! We mostly just need people to report Midi Device names and test.
** older device, may not be well supported
script authors please add your scripts
user contributions wanted: Please add scripts you know work
please use the Format: script name/link - best midigrid mode - lines to edit - date added/updated
Alphabetically ordered please!
animator - mg_128 - lib>Grid.lua line 10 & animator.lua line 28 - 2021/07/31
arcologies - mg_128 - lib > _grid.lua line 2 - 2021/06/15
ash/earthsea - mg_128 - line 17 - 2021/07/31
awake - mg_128 - line 44 - 2021/04/10
beets - midigrid (64) - line 32 - 2021/07/31
bistro - midigrid (64) / mg_128 / mg_256 - line 21 - 2021/07/31
boinng - mg_128 - line 34 - 2022/01/11
bouys - mg_128 - line 782 - 2021/06/18
corners - midigrid (64) / mg_128 / mg_256 - line 28 - 2021/07/31
cyrene - Mg_128 - lib > ui > grid.lua line 2 - 2021/06/18
ekombi _ mg_128 - lib > track.lua - line 4 & ekombi.lua line 25 - 2021/06/17
endless-stairs - mg_128 - line 39 - 2021/06/18
firstlight - mg_128 - line 20 - 2021/06/18
FM7 - mg_128 - LINE 32 - 2021/06/15
foulplay - mg_128 - line 105 - 2022/01/12
glut - mg_128 - line 14 - 2021/06/17
goldeneye - mg_128 - lib > _grid.lua line 2 - 2021/07/06
granchild - mg_128 - lib > grandchild.lua line 18 - 2021/06/15
grid test - mg_128 - line 42 - 2021/06/16
gridstep - mg_128 - line 83 - 2021/07/31
groovecats - mg_128 - line 40 - 2021/07/31
impact - midigrid (64) - line 14 - 2021/07/31
initenere - mg_128 - line 65 - 2022/01/12
islands - mg_128 - line 20 - 2021/06/18
isoseq - mg_128 - line 25 - 2021/07/31
loom - mg_128 - line 53 2021/06/16
Meadowphysics - mg_128 - line 17 - 2021/06/16
mlr - mg_128 - line 24 - 2021/06/16
molly the poly - mg_128 - line 22 - 2021/06/16
moln - midigrid (64) / mg_128 / mg_256 - line 8 - 2021/07/31
moonraker - mg_128 - lib>ggrid.lua line 11 - 2022/01/12
mouse - midigrid (64) - line 246 - 2021/06/15
msh - mg_128 - line 107 - 2021/06/18
oooooo - mg_128 - lib > grido.lua line 24 - 2021/09/06
passerby - mg_128 - line 23 - 2021/06/17
patchwork - mg_128 - line 59 - 2021/07/31
plonky - mg_128 - lib > plonky.lua line 42 - 2021/06/15
rudiments - mg_128 - line 86 - 2021/06/17
seaflex - mg_128 - line 97 - 2021/06/17
shfts - mg_128 - line 739 2021/06/21
silos - mg_128 - line 15 - 2021/06/17
splnkr - mg_128 - lib > globals.lua > line 205 - 23/12/21
SuperBrain - mg_128 - line 27 - 2021/07/31
takt - mg_128 - line 34 -2021/07/13
thebangs - mg_128 - line 45 - 2021/06/17
timeparty - mg_128 - lib > sequencers.lua line 3 - 2021/06/22
torii - mg_128 - line 63 - 2021/06/22
zellen - mg_128 - line 37 - 2021/06/17
Look in the script for a line that mentions 'grid.connect' this can be in the main script or in a other places like the lib folder.
the line will look like:
g = grid.connect
or
local grid
if the script uses
g = grid.connect
then add a line above that with
local grid = util.file_exists(_path.code.."midigrid") and include "midigrid/lib/mg_128" or grid
If the script uses one of these lines:
local g
local grid
local grid_device
then add this to that line
= util.file_exists(_path.code.."midigrid") and include "midigrid/lib/mg_128" or grid
These edits will check whether midigrid is installed and if so, assign it to the grid variable.
If midigrid is not installed, it will assign the original grid resources instead.
Getting a Novation Launchpad Mini Mk3 working with a Monome Norns Shield - by @helen
older Launchpads like the launchpad mini mk1 & mk2 do not have a programmers mode, this step(s) can be safely ignored.
To avoid that scripts auto-connect to your midigrid controller and use it as a normal MIDI device, make sure your controller is not in norns' midi devices list or that dummy devices are in slots 1 and 2 (e.g. the virtual midi device). This way your controller stays free and can be used as a midigrid.
port order matters: above to below
to get device #1 & #2 in the right order from boot:
This is the best option for most scripts, for users with a single 64 button device they may be able to swtich between two pages using auxillery buttons on their device, please consider if your script splits well into two halves
local grid = util.file_exists(_path.code.."midigrid") and include "midigrid/lib/mg_128" or grid
this is the best option for scripts that require simulanous button presses across the surface and that can resize to the device. e.g. loom
local grid = util.file_exists(_path.code.."midigrid") and include "midigrid/lib/midigrid" or grid
using This method is safe to distribute your script to other users who may not have midigrid installed or who maybe using a monome grid device
buying multiples of the top tier launchpad devices quickly matches the price of a monome grid. Please consider supporting the monome ecosystem by buying a monome device if your budget and requirements permit
It is hard to make recommendations as to what is best to buy as everyones budget, requirements and local markets vary. my interest in midigrid started because i already owned a launchpad mini mk1 purchased at full retail some years ago. I quickly purchased a second launchpad second hand for around $40NZD once i realised that two devices working as one grid was possible.
Buying one or two second hand launchpad mk1 mini or mk2 mini is the cheapest option if you are on a budget. the second device can easily be purchased later if want the full 128 buttons.
buying a single more expensive (RGB) device might make more sense if you are a big user of ableton live or other software with lauchpad support and want a basic taste of the grid experiance on norns.
early launchpad rgb devices like the launchpad mk2 (full size) are starting to show up at reasonable prices (<$60USD) on the s/h market.
After some setup I am now able to control both Ableton and Norns simultaneously via my Launchpad Pro MK3, using an iConnectMIDI4+ as the middle man (but any USB MIDI host should be able to do the same thing)