mmckegg/loop-drop-app

Midi keyboard that is both a global-controllers and a loop-grid

Closed this issue ยท 3 comments

I am trying to get my midi keyboard hooked up. It has sliders, knobs, buttons and piano keys.

I started by first building a global-controllers node so that I can control bpm, swing, and params using the sliders and knobs. I got that working ๐Ÿ‘Œ

Next I started making a loop-grid node, and got it added to the ui and I can use my piano keys as trigger the chunks ๐Ÿ‘Œ

My problem is as soon as I use the loop-grid node, my global-controller stops working. ๐Ÿ”ฅ
It seems like the midi events stop going to the global controller. It seems the MidiPort takes over the mid events.

Any hints if I can use the same keyboard for both? Thanks ๐Ÿ‘ and awesome project! ๐Ÿ’ฏ

Ryan

@ryanramage You have identified the main reason that I haven't yet tried to add generic midi keyboard support to loop drop. Managing this sort of thing is quite tricky right now.

For the Launch Control XL, I have a special button that switches between global and the current setup. See https://github.com/mmckegg/loop-drop-app/blob/master/nodes/mixer-launch-control-xl/object.js#L249 and https://github.com/mmckegg/loop-drop-app/blob/master/nodes/global-launch-control-xl/object.js#L212. This works when you have a controller that you only want to use for one thing at a time.

But in your case, you want to overlay global controls over a loop grid. One way would be to not use a global controller at all, and just do it directly in the Loop Grid. There is no reason why a loop grid can't control tempo, etc. I think a lot of the code that is in global controller will also "just work" directly in a setup. It should also be able to add params.

The other option would be to bypass the lib/midi-port code and use var MidiStream = require('web-midi') directly. This will ensure that a controller always has the midi connection, but it would make it less modular.

Thanks. I will take your advice and try this today.

I just picked up an lunchpad today - so much better. Loving it.