Hi everyone
Before asking my question, i have to introduce myself and the reason i use Lemur. First sorry for my english, i hope everyboby could understand what i say.
I'm a sound engineer, so i want to use the Lemur to control some Fx in Live like Granular delay, LX480, flanger and disto/filter like Wow 2, as this i coukd use really dynamic fx during the show.
As i'm a newbie, i don't understand a word about OSC, so if someone could give me some stuff to read about, it will be great. So right now my controler are in midi and i use the learn stuff in Live to control what i need, yes i know it is very simple, but it is working quite well. I tested my modules yesterday, it was not perfect but really encouraging. What i need know is to have some informations about the monitor tool. I need to display on Lemur the reverb time, predelay… Is there some guide about this tool ???
Another question is, should i use the HUI protocol and how can we know which midi parameter controls which live parameter ??
Thx for your help and sorry if this Topic has been already made.
d2r2
How to use monitor ??
Re: How to use monitor ??
Hello there d2r2.
about OSC - OSC is a (fairly) new protocol of communication between music software that supports it - it is supposed to be faster, optimized for wireless communication and a bit more human readable than midi because its "structure" is quite similar to URL adresses.
About the monitor object - first of all, when working with midi we should always remember that midi "expresses" any value in a range of 0 - 127, this lncludes notes (the lowest possible note message is note on 0, the highest possible is note on 127), Control Change parameters (CC) and everyhing else. Well ok, we also have "relative" midi messages but lets not get into that for now. On the other hand, Lemur internally handles all parameters values as floating numbers between 0 and 1 (0.1232 , 0.9898 etc etc).
So when we midi map an object of Lemur to an external controlled software or device, what really happens is that Lemur "converts" this 0 - 1 value to a value with a range of 0 - 127 - so for example a fader right at its middle position will have a "x" value of 0.5 AND Lemur will send a midi value of 64.
Ok?
Ok!
So...now lets assume the following case.....We have made a knob and we are planning to map it to an Ableton Live's track pan.
As you understand, when the knob.x is 0, the midi value is 0 and the pan in Live is 100% LEFT, when the knob.x is 1 (knob turned all the way right), the midi value is 127 and the Live pan is 100% RIGHT.
Right? Right!
So now lets assume, we would like a monitor object to display the pan value (that we have mapped to the knob) so that we dont have to check the screen all the time. All we have to do is find a "mathematical formula" that will convert the 0 to 1 range of knob.x to something that COULD resemble the pan parameter.
The easy part here, is the fact that ANY range can be given by the range 0 to 1 if we just simply multiply the 0 - 1 range with our desired range. So for example if we were talking about "feedback" which is usually 0 - 100 % then all we had to do is multiply x with 100 - check it yourself, for x = 0, feedback = 0 , for x = 0.5, feedback = 50, for x = 1, feedback = 100
So back to our "pan" example, another trick is needed - the "pan" range is actually a 200 units range - think about it, 100 to the left, 0, 100 to the right. So all we have to do is multiply x with 200 and then subtract 100. this way a monitor value of -100 will mean 100 left, a monitor value of 100 will mean 100 right.
So....
Inside the monitor object propery "value" you just type the desired object x with the correct mathematical formula
as an example for pan controlled by a knob you type
knob.x*200 - 100
for feedback controlled by fader you type
fader.x*100
for velocity controlled by a multislider (remember velocity is MIDI, so it has a range of 0 - 127)
multislider.x*127
for reverb time, check out the "time" parameter range in your software and then apply the multiplication (hoping its a linear control or else it gets way harder)
JUST dont ask me about volume fader though lol
about OSC - OSC is a (fairly) new protocol of communication between music software that supports it - it is supposed to be faster, optimized for wireless communication and a bit more human readable than midi because its "structure" is quite similar to URL adresses.
About the monitor object - first of all, when working with midi we should always remember that midi "expresses" any value in a range of 0 - 127, this lncludes notes (the lowest possible note message is note on 0, the highest possible is note on 127), Control Change parameters (CC) and everyhing else. Well ok, we also have "relative" midi messages but lets not get into that for now. On the other hand, Lemur internally handles all parameters values as floating numbers between 0 and 1 (0.1232 , 0.9898 etc etc).
So when we midi map an object of Lemur to an external controlled software or device, what really happens is that Lemur "converts" this 0 - 1 value to a value with a range of 0 - 127 - so for example a fader right at its middle position will have a "x" value of 0.5 AND Lemur will send a midi value of 64.
Ok?
Ok!
So...now lets assume the following case.....We have made a knob and we are planning to map it to an Ableton Live's track pan.
As you understand, when the knob.x is 0, the midi value is 0 and the pan in Live is 100% LEFT, when the knob.x is 1 (knob turned all the way right), the midi value is 127 and the Live pan is 100% RIGHT.
Right? Right!
So now lets assume, we would like a monitor object to display the pan value (that we have mapped to the knob) so that we dont have to check the screen all the time. All we have to do is find a "mathematical formula" that will convert the 0 to 1 range of knob.x to something that COULD resemble the pan parameter.
The easy part here, is the fact that ANY range can be given by the range 0 to 1 if we just simply multiply the 0 - 1 range with our desired range. So for example if we were talking about "feedback" which is usually 0 - 100 % then all we had to do is multiply x with 100 - check it yourself, for x = 0, feedback = 0 , for x = 0.5, feedback = 50, for x = 1, feedback = 100
So back to our "pan" example, another trick is needed - the "pan" range is actually a 200 units range - think about it, 100 to the left, 0, 100 to the right. So all we have to do is multiply x with 200 and then subtract 100. this way a monitor value of -100 will mean 100 left, a monitor value of 100 will mean 100 right.
So....
Inside the monitor object propery "value" you just type the desired object x with the correct mathematical formula
as an example for pan controlled by a knob you type
knob.x*200 - 100
for feedback controlled by fader you type
fader.x*100
for velocity controlled by a multislider (remember velocity is MIDI, so it has a range of 0 - 127)
multislider.x*127
for reverb time, check out the "time" parameter range in your software and then apply the multiplication (hoping its a linear control or else it gets way harder)
JUST dont ask me about volume fader though lol
Last edited by Softcore on 24 Jan 2014 15:51, edited 1 time in total.
Re: How to use monitor ??
Oh as for HUI, I think you are better off with Mackie protocol and in fact there are some mackie emulations for Live in the user library - of course they all have the "shortcomings" of the protocol itself (not complete display of the controlled track names and parameters, etc etc)
Re: How to use monitor ??
And here's some monitor examples to get you going
- Attachments
-
- monitor-examples.jzml
- (4.97 KiB) Downloaded 190 times
Re: How to use monitor ??
Thx for your answers,
Softcore, what you said, i already know, but thanks anyhow as i didn't explain clearly where i am now. But ihave read the whole user guide twice, so i know how to multiply the x value by 100 and so on, what is more tricky, is for example one of my plug ins (LX480 Relab), it is not linear it is logarythme (but i don't know what kinfd of logarythme) and more than that when you change the value of the size of the room the reverb time range is changing as well. I want like in livecontrol2 to have the meter display in the fader using the led…
Anyway one of my best friend is a c++ genius, so i put him in the loop, but he is quite busy. My idea is to use the livecontrol2 and modify it, but it is not so simple. Right now my controller works fine, but still in midi and i still use the midi learn command in live. So if i manage to go further i will let you know and share my stuff, if this kinfd of controller insterested someone.
Anyway here is my controller and you will see what i need, especially for the LX480, for the delay, filter and flange i do not need to have the parameters values.
Thx again and warm regards to those who are trying to help.
Martial
Softcore, what you said, i already know, but thanks anyhow as i didn't explain clearly where i am now. But ihave read the whole user guide twice, so i know how to multiply the x value by 100 and so on, what is more tricky, is for example one of my plug ins (LX480 Relab), it is not linear it is logarythme (but i don't know what kinfd of logarythme) and more than that when you change the value of the size of the room the reverb time range is changing as well. I want like in livecontrol2 to have the meter display in the fader using the led…
Anyway one of my best friend is a c++ genius, so i put him in the loop, but he is quite busy. My idea is to use the livecontrol2 and modify it, but it is not so simple. Right now my controller works fine, but still in midi and i still use the midi learn command in live. So if i manage to go further i will let you know and share my stuff, if this kinfd of controller insterested someone.
Anyway here is my controller and you will see what i need, especially for the LX480, for the delay, filter and flange i do not need to have the parameters values.
Thx again and warm regards to those who are trying to help.
Martial
- Attachments
-
- Granular ddl1 control.jzlib
- (68.04 KiB) Downloaded 90 times
-
- Wow1 control.jzlib
- (46.99 KiB) Downloaded 85 times
-
- LX481 controlv2.jzlib
- (68.65 KiB) Downloaded 85 times
Re: How to use monitor ??
Hi
Regarding logarithmic response remember that midi values are basically linear. It is sending 0-127 even if somewhere else shows other values.
Sometimes those other values are easily worked out our fit some formula easily, other times they don't and a lookup table is used quite often even for large tables. Just put all 127 values in if you want it to match up perfectly. You may need to switch between a few arrays to match the different roomsizes. This may be how the plugin does it anyway. It may seem like a lot but it isn't really and that is how it does get done....
Hope that helps
Regarding logarithmic response remember that midi values are basically linear. It is sending 0-127 even if somewhere else shows other values.
Sometimes those other values are easily worked out our fit some formula easily, other times they don't and a lookup table is used quite often even for large tables. Just put all 127 values in if you want it to match up perfectly. You may need to switch between a few arrays to match the different roomsizes. This may be how the plugin does it anyway. It may seem like a lot but it isn't really and that is how it does get done....
Hope that helps
iMac 2.8G i7 12G 10.6.8/10.7.2, Legacy Dexter/Lemur, Liine Lemur/iPad2, KMI SoftStep, 12Step & QuNeo , B-Controls, Mackie C4 etc
MaxMSP, Live Suite, Native Instrument stuff, etc Modified Virtual Guitar System etc All Projects/Modules © CC-BY-NC-SA[*][/b]
MaxMSP, Live Suite, Native Instrument stuff, etc Modified Virtual Guitar System etc All Projects/Modules © CC-BY-NC-SA[*][/b]
Re: How to use monitor ??
That was the reason i said dont ask about a volume fader lol. If you want to display a logarithmic value, I agree with Macciza, sample 127 distinct values and make a vector out of it.
Re: How to use monitor ??
Thx Macciza and Softcore and yes that helps. I will let you know when I will be able to really improve my controllers.
All the best
All the best