openAVproductions / openAV-Luppp

Luppp is a live performance tool, created by OpenAV productions.
http://openavproductions.com/luppp
GNU General Public License v3.0
256 stars 43 forks source link

beat display to midi controller #124

Open georgkrause opened 7 years ago

georgkrause commented 7 years ago

What i want to do is this: i want that my midi controller (apc mini) displays the beat graph from the right bottom corner of luppp. i want to specify 4 buttons which shortly light up on the corresponding beat. So button 1 on beat 1, button 2 on beat to and so on. With #119 this would enable me to dont look at the screen anymore while making music, which would be great!

georgkrause commented 7 years ago

it would also be okay if just one button lights up on every beat...

harryhaaren commented 5 years ago

Mappa will handle user-defined feedback, allowing any "source" to be mapped to various lights. Aka, this should be possible then.

wvengen commented 4 years ago

I've implemented it in this branch, which builds on PR #311. The controller JSON output binding would be like this (and one for each beat):

{
  "action": "metronome:beat",
  "beat": 0,
  "dataList": [176, 99, 21]
}

Each beat (in the bar) would get its own controller output binding. Use of dataList would enable one to either use a single light with different colors (like above), or multiple lights (then the dataList would contain a message to clear all lights except the light of the active beat).

harryhaaren commented 3 years ago

Hi @wvengen : cool - nice one. I presume you want to turn off the LED too? A note-off will work for some devices, but not all... :/

[update: left a comment in the code - there's a potential race-condition & crash in the implementation - please check/fix it]

wvengen commented 1 month ago

I presume you want to turn off the LED too? A note-off will work for some devices, but not all... :/

Good point. The dataList can be of arbitrary size, so there can be as many MIDI events as you want, incl. note-off for the other beats. A later improvement could be to have on- and off-datalists (a bit messy in the data structures), or beat-on and beat-off events (I think that could actually make sense, and totally optional), if this turns out to be a much-used feature.