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 :) {.is-warning}
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! {.is-warning}
patchwork - mg_128 - line 59 - 2021/07/31
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 withlocal grid = util.file_exists(_path.code.."midigrid") and include "midigrid/lib/mg_128" or grid
{.is-info}
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` {.is-info}
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. {.is-info}
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 {.is-success}
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 {.is-info}
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 {.is-warning}
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. {.is-info}
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)