How to control gui parameters in a live performance


#1

Hi everybody,

I’ve recently start doing live performances where I combine midi notes coming from musicians to create real time 3D content. During the performance I also modify the rendering parameters to make things more interactive. Basically I control the ofxgui parameters through an external device, that is an old and heavy stage piano.

Right now, I’m searching for a control surface with several knobs, sliders and buttons to manage vertexes, colors, cameras, ecc… There a plenty of MIDI control surfaces that can fit my needs (AKAI, Arturia, Novation, Roland, Berhinger) but the limitation to 128 values for each control makes hard to control float values.

  1. Is there any hardware solution or do I have to simply write code to “smooth” midi signals that are binded to float values?

  2. Do you have some suggestion about which kind of model can fit my needs?

Thanks a lot


#2

Hi! I haven’t tried many hardware options, but I’ve used a Behringer BCR-2000 in live performances. I did interpolate the int values with floats.

This model can be configured in different ways. The knobs can be absolute, relative, in the range of 0…127 or 0…16383, and it can also send INC/DEC values (+1 and -1). Here’s the manual.

I think it’s hard to give suggestions without knowing the requirements or constraints (price, weight, number of knobs, sliders and buttons, compatibility, ports, etc). I like the BCR because it’s light, endless encoders and LED feedback. I don’t like that it needs a power cable and that it’s rather large. Also sliders (missing) can help make fast movements (harder with knobs).


#3

Thanks hamoid for your answer! You gave me really useful information.

I’ve read about BCR-2000 and BCF-2000. They have been replaced by “x-touch compact” that allows only 128 values. The big brother “x-touch” allows more then 128 values (NRPN), but it’s expensive and is strongly oriented for DAW. I can’t find anything similar on the market, so maybe I can buy a secondhand BCF-2000.

I’m using a GEM Promega 3, playing with 15 sliders and 35 keys (I can replace sliders with knobs, but I agree with you about sliders are faster then knobs). I need something light as the BCR which I could combine with a cheap 25 key usb keyboard to replace the keys you see in the pictures. I’m pianist and I feel me comfortable with keyboards. In addition, I follow the rhythm of musician during the performance, so I really play an instrument that must be robust as a piano keyboard. I’m not mixing/controlling contents, I’m playing as a true musician…

Thanks!

paolo


#4

This looks awesome - do you have a video of this anywhere?


#5

+1 for the BCR2000 - you can still get them on eBay, and it’s really easy to hook them up to the GUI.


#6

thanks lethalrush, you can find on my fb page

cheers


#7

I have not touched this for a while and it is not programmed the most elegant way. this addon lets you midi map your ofParameters. hope it helps.


#8

For seb_ly,

I’ve just found that Arturia MiniLab Mk II allows nrpn on 16 endless knobs. Overall, there about 50 controls for less than 100€. BCR seems to be an old glorious lion, so I’ll go to the shop near home to have a talk.

For thomasgeissl

Thanks! I was mapping ofParameters one by one… I’ll take a look and if I’ll use on my project I’ll give you feedback.


#9

Yeah that was my exact thought - I was looking at rigging up something myself with rotary encoders, but even just the parts would have been more expensive!


#10

I’ve ordered this recently https://www.thomann.de/de/novation_launch_control_xl_mk2.htm, but it is still not arrived so I can not tell how does it performs. An addon is also available https://github.com/2bbb/ofxLaunchControlXL


#11

Hi edapx, I recently wrote to Novation and they confirm me that Launch Control can send only values in the range 0…127, but maybe you don’t need high precision. After spending two weeks on going around web sites and shops, I understood there isn’t a specific category of controllers made for artists/programmers. I still haven’t found any hardware controller designed for OSC protocol… IMHO, it’s easier to adapt the software to what is avalaible on the market, rather than built an hand made controller (arduino…), or spending the life on searching on the web!

cheers


#12

cool, let me know if there are problems using the addon.

For audio/midi i personally would never use behringer. But maybe their midi devices are not so bad.
maybe one of the following is what you are looking for.

  • akai mpc40
  • akai midi mix
  • novation launch control

#13

I have an Akai MIDI mix and it’s nice but there are no rotary encoders, only pots. This means that you can’t update the position of a knob in software. AFAIK it’s only 0-127 MIDI values. Hope this helps!

Seb


#14

Hi Thomas,

first I had to change _mapEvent.notify because it need two paramters

	void notify(bool & value){
		string name = _parameter->getName();
		_mapEvent.notify(_parameter, name);
	}

second, your code require ofJason, that means the nightly build (I usually prefer the stable release for my performances). I tried on the nightly build but I had lots of undefined symbol due to ofxColorPicker. That’s all for now, thanks.


#15

I’ve bought yesterday Arturia Minilab mk II and it really allows 14 bit midi messages by sending two midi messages at time. You can also choose other formats between 7 and 14 bits. There are 16 endless knobs with 14 bit messages, 8 pads with 7 bit velocity values (they work both as push or toggle), 25 keys, pitch bend/pitch wheel and some other buttons. All of this for 99€. It’s small, robust (more the novation) and doesn’t need power supply.

here there are some other surfaces I considered in these days

next days I’ll make a short demo to show how to control float number (14 bit) with midi controller.


#16

I used to use a Traktor F1 with Modul8 when I used to VJ and the Controller Editor that comes with it allows you to set the ranges for each slider and knob. If I remember correctly it could be set to any value but I’d need to double check that.