this would be grid handling not midi handling (assuming its been done the same as my push 2 code)

but yeah, that would be an issue… unlike the midi.lua code, the grid lua code does not create a unique name, it uses the serial number which it assumes is unique.

I didn’t have access to the serial number of the push, so I just used ‘push2’ :slight_smile:
so if that name is being used as some kind of unique index that would cause an issue.
(not sure why the name would be used when there is a unique device id, but hey ho)

its an easy ‘fix’ (again assuming your launchpad code is based on the push2 stuff)

in weaver.c

void w_handle_push2_add(void *p) {
  struct dev_push2  *dev = (struct dev_push2 *)p;
  struct dev_common *base = (struct dev_common *)p;
  int id = base->id;

  // its a push2
  _push_norns_func("push2", "add");
  lua_pushinteger(lvm, id + 1); // convert to 1-base
  lua_pushstring(lvm, base->name);
  lua_pushlightuserdata(lvm, dev);
  l_report(lvm, l_docall(lvm, 3, 0));

  // its also a midi controller 
  _push_norns_func("midi", "add");
  lua_pushinteger(lvm, id + 1 + PUSH2_DEV_OFFSET); // convert to 1-base
  lua_pushstring(lvm, base->name);
  lua_pushlightuserdata(lvm, dev);
  l_report(lvm, l_docall(lvm, 3, 0));

  // and it might be a grid
  const char *serial = "Push2";
  const char *name =  "Push2";
  _push_norns_func("monome", "add");
  lua_pushinteger(lvm, id + 1 + PUSH2_DEV_OFFSET); // convert to 1-base
  lua_pushstring(lvm, serial);
  lua_pushstring(lvm, name);
  lua_pushlightuserdata(lvm, dev);
  l_report(lvm, l_docall(lvm, 4, 0));
}

just change the serial number to be based off something unique, like the id or the device path.

  const char *serial = base->path;

a better hacky fix (and one i’ll do for push2) is to set the serial to the path in the push class,
so that later it could be replaced by a proper USB call to go get the serial number.

  const char *serial = base->serial;

and then device_push2.c:

int dev_push2_init(void *self) {
    // blah, blah blah
   base->serial = strdup(base->path);
}
2 Likes

There should be a boot menu available on the launchpad, where you can assign one of 16 IDs. This renames the device, and eliminates such conflicts.

(check the manual for specifics – different models behave differently)

1 Like

yes this is true and works but still nothing on rows 2,3 and 4 if i have 2 midi devices attatched, and i can see both devices recognised by norns in devices/midi but only the first device works as expected the rest are unresponsive. :thinking:

Do you have midi devices working which are connected to port 2.3 or 4 of devices/midi. My devices whether it be HID midi or grid only seem to interact with norms if they are in slot 1 . :grinning:

Need more details. What script(s) are you using to test? Are you running stock norns software or some variant (the push2 code for example)?

Keep in mind the midi.connect() function takes a parameter to define which port to use. So “slot 3” is midi.connect(3) are you doing this? (If not it defaults to port 1)

ahh i see now that makes comlete sense, thank you. so is it possible to connect to more than 1 “slot” at a time .
e.g midi.connect(1,2).

Yes i am running RpiNorns with Push 2 code altered slightly to work with my launchpad. :thinking:

Yes - you can have multiple devices going at the same time, but each device would need to be handled separately… so

m1 = midi.connect(1)
m2 = midi.connect(2)

Dunno if this is useful to anyone but me, but… screen rotation!

10 Likes

This is amazing! What are the chances you’ll release this as a no-soldering kit for those of us without the skills / space for soldering?

1 Like

Dunno about a no-soldering kit just yet. My initial goal was to make a “you solder the thru-hole” kit.

That being said, this is still a work in progress. The screen flip thing above will allow me to re-route the board with the header on the bottom of the pcb and hopefully eliminate analog/digital crosstalk/noise I’ve been getting.

8 Likes

Been reading through this whole thread and THIS is some amazing work you’ve done. I’d love to follow along and hopefully there’s some way for me to help out.

As a note, a thru-hole setup would be best because it gives the opportunity for different encoders and such.

FYI:

7 Likes

Looking great isn’t it, looks like it’s going to be a big step up - I’m having difficulty ordering a 4gb model at the moment - but looking forward to trying it out.

2 Likes

I’ve found some 4GB in stock in Belgium and Germany (Elektor) (see the list of authorized resellers on the Farnell website). I’m not ordering right now, sadly it’s not compatible with my hat, just because the

Gigabit Ethernet magjack has moved to the top right of the board

Gonna try to install Norns on this Raspbian Buster though

I managed to snag one in the UK (one per customer) with Pimoroni.
I need a few more though…

1 Like

The Pi 4 is supposed to be 2-3x as powerful as the Pi 3B+, which corresponds to about 2.4-3.6x the speed of the CM3 used in the original Norns. What are the chances one could run 2-3 instances of Norns and have them talk to each other for multitrack music on a single box, or chained to add effects to a sequenced synth engine, not unlike @TheTechnobear’s ORAC?

2 Likes

Looks like a Pi Compute Module 4 won’t work with the current IO board hardware / the norns setup. At least not 100% of the features. Using the CM3+ myself i can imagine there might be a mode to still use the new module inside/with the norns hardware when it will be released. Leaving features like USB 3.0 out. So i really hope they don’t break the upgrade idea. Having more RAM and faster CPU/GPU is still interesting.

I don’t yet have a Norns (rPI or otherwise) myself, but to me, part of the appeal of something like Norns over a laptop is that the hardware is a fixed platform. If the hardware is upgraded every year or so, you may run into the same issues as a traditional DAW platform where you want to upgrade your hardware to support some new software, but then that hardware upgrade breaks old software, etc.

I have a pi 3b + on the mail, looking forward to setting this up!

1 Like

I have two Norns, and I have upgraded them both to CM3+, because 32Gb of storage means I can press record whenever I want without having to worry about space. To each his own, I’d say. :slight_smile: