Please help a noob get midi working w/ Arturia MiniLab3

Hello Sleepyheads,

I just got a Pi4 Hypno (2.3). I also just got an Arturia MiniLab3 midi keyboard to use with it. I set it to transmit on channel 16, and mapped all of the faders and knobs to some actions on the Hypno. I’ve booted up the Hypno and plugged in the device (also tried booting the Hypno with it already plugged in) but the Hypno won’t recognize it. No response to any CC messages. No ability to save and recall presets. I thought these two devices would play nicely with each other. Any help would be greatly appreciated y’all. Thank you.

EDIT: I’ve been over on the Sleepy Circuts Chat and have tried a few things to no avail. I have the minilab controls mapped. I have the minilab set to my user preset. It shows the colors I programmed, and acts like I told it to. Everything is set to ch. 16. I have tried using the hypno controls before sending any kind of midi message, but still no response to cc commands or note keys. The MiniLab3 does transmit signal to my computer, and I am able to play midi notes on the AnalogLab software. I tried to attach a few more pictures of my setup and power supply, but new users can only embed one picture. I have all of that posted in the sleepy-support help chat channel. I really appreciate any help. Thanks.

Is the Hypno being plugged in to your computer via a MIDI host, or are you attempting to connect both of these directly to each other?

If you are attempting to connect them directly to each other, I am not sure if the MiniLab can act as a MIDI “host” on its’ own and may need a computer to do so. I have an Akai MPK mini and it has the same issue.

If you are trying USB-C to USB-A, have you tried to go from the MIDI 5-pin out to a MIDI-USB converter? That is how I was able to finalize my setup.

If connecting them directly together, the Hypno would be the MIDI host. The Minilab 3 would not need to act as a MIDI host so that shouldn’t come into it. Phil would definitely not need a computer between Minilab 3 and Hypno to act as a host. This intermediate MIDI host would then not be able to connect directly to the Hypno as that would be trying to connect a MIDI host to another MIDI host.

Essentially, MIDI devices (like standard USB MIDI controllers) can be connected to a MIDI host. Device<->device and host<->host connections are not possible (without something in between). It is also not possible to use more than one host in a USB MIDI network (without specifically designed hardware in between) as it is the host which initiates communication with devices, reacts to polled messages from them, etc. This definition is part of the USB specifications.

Tl;dr: as standard, USB MIDI communication needs a USB MIDI host, but no more than one USB MIDI host.

5-pin DIN MIDI out, to a MIDI-USB converter which is plugged into a USB port on the Hypno. This is a viable workaround, agreed. The Minilab 3 would still need powering though.

Tbh I’m scratching my head on this one. Assuming no user error, I’m still confused as to why it wouldn’t be working with the Hypno.

Edit: My current guess is that if it is class-compliant (drivers not required) for Windows and MacOS, this doesn’t extend to linux despite my Minilab 2 working fine wih Hypno.

1 Like

I was asked for some logs from Protokol of the controller’s output. This may be useful to debug further to see if I’m getting expected output. I can’t upload a .txt document so here is a snippit:

RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(24) DATA2(74)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(24) DATA2(55)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(24) DATA2(39)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(24) DATA2(18)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(24) DATA2(5)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(24) DATA2(0)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(108)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(107)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(105)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(102)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(95)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(90)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(81)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(67)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(50)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(33)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(16)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(2)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(0)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(14) DATA2(117)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(14) DATA2(115)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(14) DATA2(112)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(14) DATA2(105)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(14) DATA2(87)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(14) DATA2(69)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(14) DATA2(49)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(14) DATA2(33)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(14) DATA2(16)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(14) DATA2(6)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(14) DATA2(0)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(22) DATA2(104)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(22) DATA2(99)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(22) DATA2(89)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(22) DATA2(73)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(22) DATA2(51)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(22) DATA2(22)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(22) DATA2(2)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(22) DATA2(0)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(2)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(4)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(6)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(8)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(10)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(13)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(16)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(19)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(22)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(26)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(33)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(36)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(39)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(40)
RECEIVE | ENDPOINT(Minilab3 MIDI) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(16) DATA2(42)

Tbh not sure on this I’m getting Protokol logs that look like this with Mezzz that seem to work fine w/ Hypno,

ENDPOINT(Mezzz) TYPE(CONTROLCHANGE) CHANNEL(16) DATA1(6) DATA2(4)

As far as I can tell from here and chat is that its correctly hooked up with Hypno as the midi host.

Could be a Hypno bug but if other Arturia gear is working I am not sure… Are you seeing any additional endpoints in protokol that are not named “Minilab3 MIDI” ? My thinking is it could also be the last firmware’s limitation of only a single endpoint at a time if the controller creates multiple endpoints.

I am not seeing any additional endpoints in protokol. Everything is named “Minilab3 MIDI”.
At this point, I believe it is some problem with the ML3 unfortunately. I will return it and purchase something else. (a Minilab MK2 maybe?) I understand it may not play well with the new firmware and midi echo commands, but I can’t really find anything else at that price point with the keyboard, 16 pads, 9 knobs and 4 faders. I would love to hear suggestions from anyone! I would like the midi echo to work with my gear in the future releases. I am definitely going to look around a bit. Thanks to everyone who took time out of their day to help. : ) Again, If you know of something that will work and is similar to the minilabs, I would love your feedback!!!

Midi echo is a new feature in Hypno and kind of new to me in general tbh so please let me know if its not working to your liking with 3rd party controllers once you get the basic output working. Mezzz should work just fine though since I’m testing with it throughout dev.

I would consider waiting for the Hypno firmware thats in beta testing right now before making too many moves since its got a lot of MIDI improvements (I took down the current 2.4 since it had some serious bugs and just submitted a version 2.4.1 with a bunch of fixes to our beta channel)