rickbaudio
2019-08-25 15:30:29
Hello,
I'm trying to figure out if it would be possible to use a rule to reduce the travel of an Expression pedal. I'm using the pedal to reduce volume or feedback level and basically moving the pedal from toe to heel, all of the control is in the middle of the expression pedals travel. If I move slowly from toe to heel, I don't see an reduction in my volume level until I get to the middle of the travel of the pedal. Then it goes all the way out before I even get to the heel.
Hope this makes sense!
Steve-Bome Forum Moderator
2019-08-25 16:46:16
Is it a MIDI expression pedal or analog (1/4 inch TRS jack). If MIDI can you post what it sends from heel to toe in a log file here so I can have a look? If analog, it is likely that the tip and ring of your pedal connections are reversed on your pedal. Manufacturers are not consistent in this regard.
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
Steve-Bome Forum Moderator
2019-08-25 16:48:28
comment
rickbaudio
2019-08-27 17:42:41
Hi Steve,
Thanks for getting back to me. I figured out a solution. The knob on my Push controller and the Expression pedal into my foot controller are mapped with bome translators to the same midi output CC. If I tried to map Ableton to the knob the expression pedal did not work correctly, but if I map the expression pedal first the knob follows no problem. Not sure why it would matter because they are both outputting the same CC through Bome but it worked….
Steve-Bome Forum Moderator
2019-08-27 19:48:04
comment
Interesting. Maybe some other MIDI message was “sneaking through” on your control pedal. Do you have a default MIDI through route? Did you have swallow set on both translators?
rickbaudio
2019-08-28 14:32:51
comment
Hi Steve,
So actually I didn’t figure it out completely. Currently both pedals are working correctly, but when I try to translate some knobs from the user mode of my push controller to the same output CC as the pedals they don’t respond correctly. I watched your tutorial for translating CC controllers and believe I have it set up correctly. I do have a default midi through and the translator is set to use the project/preset default ports. I opened up the log window and It seems that when I move the knob on the push, the translator is only outputting values of 1 or 127 but nothing in the middle, and it is actually reversed. So turning CCW only outputs 127 and turning CW only outputs 1. Any thoughts on what could cause that?
Thanks,
Rick
Steve-Bome Forum Moderator
2019-08-28 16:44:07
Hi Rick,
It sounds like your Push controller knob is a relative encoder and puts out -127 (7FH) when moving to the left and 1 when turning to the right.
You can convert it to an absolute value if you wish. Just review this tutorial.
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
Steve-Bome Forum Moderator
2019-08-28 16:46:49
comment
Oh, and in general, make sure swallow is set, otherwise any MIDI thru paths you defined in the project will also pass through the original MIDI message (which could mess things up).
rickbaudio
2019-08-28 17:10:46
comment
Thanks so much for the tutorial. I’ll try that out when I get back home this evening. And yes, I have almost everything set to swallow.
rickbaudio
2019-08-28 17:18:11
comment
So I watched the video. Just trying to understand:) I followed everything until the output in your example. In my case would I set my output to a CC. Or do I need to create the raw midi message and then translate that to a CC with another translator?
Steve-Bome Forum Moderator
2019-08-28 17:21:06
comment
You can use the same CC number and just output the new absolute value that you created in the conversion. If you post your project file, I can take a look to see what you are missing.
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
rickbaudio
2019-08-28 17:25:06
comment
Sorry, I guess this is really over my head but I’m not sure how I would do what you are suggesting:( I’ll definitely send along the project file when I get home later this evening. Thanks again!
Steve-Bome Forum Moderator
2019-08-28 23:11:21
comment
OK, I’ll take a look after you post it.
Steve
rickbaudio
2019-08-29 01:48:57
Hi Steve
Here is my project file. I just realized that I m still using version 1.8.1. and not the more current 1.8.3. I Just realized that if I try to launch my project in 1.8.3 a bunch of things stop working. Not sure why that would be but the project doesn’t seem to open the same in both versions. In any case if I open this project in 1.8.1 everything is working except lines 25 and 26 in preset 2. those are the two lines I have been trying to add for the push knobs. Any help would be greatly appreciated!
Thanks again
Rick
Attachments:
Steve-Bome Forum Moderator
2019-08-29 03:15:21
comment
Is Bome MIDI Translator Virtual Port 1 used going to and From Ableton Live? If so, we should probably assign these as aliases to make it more clear.
I’m going to remove the route from Bome MIDI Translator Virtual 1 In to Bome MIDI Translator Virtual 1 Out as this does not make sense.
Since you are not overriding the default ports in any presets or translators, the MIDI messages coming in from ANY of the default ports is going to try and trigger the same action (all going out to Ableton Live on BMT 1). I recommend you organize your presets by incoming port and under each preset, assign only the port your are interested in translating. I’m assuming that all outputs need to go to Ableton Live on BMT 1.
I suggest you review the following tutorial on how port routing works and make adjustment accordingly before we move on to getting your specific controller to work.
https://youtu.be/KunN2A1rKMY
Also confusing me is that 3.25 and 3.26 are different output CC’s and I though you said that you will use the same CC for both.
Does this make sense?
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
Steve-Bome Forum Moderator
2019-08-29 04:01:06
After fixing your other issues, translators 3.25 and 3.26 should work now.
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
Attachments:
rickbaudio
2019-08-29 04:35:52
comment
Wow!!! Thank you so much! I have no idea why it works but it totally works now. I did have to tweak the feedback controller cause somehow that was wrong but I must have sent it to you wrong. I am going to study those rules and read you descriptions. I’ll also watch that tutorial you suggested. Thanks again! I guess I really have no idea how to use this software and I must have just gotten lucky getting things to work so far!
Steve-Bome Forum Moderator
2019-08-29 04:43:28
comment
Glad to help, Rick! Feel free to ask questions. That is why I’m here. My guess is that the video assumed values of 3FH for left and 41H for right as some controllers act that way. In your case 7F was left and 01 was right. Some people use different values for their relative controllers. Also, each knob if controlling a different outgoing CC needs to have its own variable. In this case, ga for one knob and gb for the other. This keeps the last known value for the calculation as you increment and decrement each controller.
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
rickbaudio
2019-08-30 21:11:43
comment
Hi Steve,
Wanted to say thanks again! I watched the tutorial you recommended and they were helpful. I need to check out more of the tutorials. I’m not great with code but with your notes I think I understand most of what is happening with the Rules you added to my project. The two lines I don’t understand are:
if pp>64 then rr=rr*-1
is this essentially rr multipled by -1?
ga=ga+rr
This one is really weird to me. How can a variable equal that variable plus another variable?
Anyway, I really appreciate all the help. You are an incredible resource for this software!
Rick Brenner
Steve-Bome Forum Moderator
2019-08-30 21:27:59
comment
Yes, by multiplying a positive number by -1 will just make it negative. Earlier we subtracted pp from 128 to get the value of rr, so if for example pp was 127 then rr would be 1. After this rule, rr will now be -1.
ga=ga+rr means take the value of ga and add the value of rr to make a new value for ga. Since in the above example ga was the last calculated absolute value of the encoder, and in my example rr was negative 1, it would be a subtraction operation. If the value of rr was positive it would be an addition operation. This is to calculate the new value of ga for the next iteration of the exercise.
What we are essentially doing is just adding or subtracting to calculate the absolute value of an encoder based on the relative movement of the incoming message.
For an incoming value of 65 to 127, we will subtract from the value -64 to -1 from the last known position (because we subtract the incoming value from 128 and then multiply times -1 to make it negative).
I hope this helps!
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
rickbaudio
2019-08-30 21:39:13
comment
Thank you! A lot of that does help but, I guess I’m getting lost at: “Since in the above example ga was the last calculated absolute value of the encoder, and in my example rr was negative 1, it would be a subtraction operation.” Maybe this is super basic, but what example? where is ga defined as the last calculated absolute value of the encoder?
rickbaudio
2019-08-30 21:46:01
comment
Oh, I was reading back through your other comments and I think I get it now. Its because we are converting a relative encoder to an absolute encoder. So the last known value is just where ever the knob was last?
Steve-Bome Forum Moderator
2019-08-30 21:48:18
comment
ga is the global variable that holds the last calculated value of the output.
Every time you move the knob then incoming value if positive will be 1-64 and if negative will be 127-65 which is really -1 to -64.
What we do is look at the new value coming in and then with the rules, calculate the new value of ga.
If the incoming value is 1-64 then we add that value to ga to get the new value of ga.
if the incoming value is 127 to 65 then we will subtract 1 to 64 from the value of ga to get the new value of ga. We do the intermediate calculations for negative values to adjust what we need to subtract. So for instance, if the incoming value is 127, first we subtract that from 127 to get a value of 1, but since it is negative, we multiply by -1 which makes the new value -1. Then we add that to the last known value of ga to make the new ga one less than the last value of ga.
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
rickbaudio
2019-09-07 17:19:35
comment
Hi Steve!
These explanations are really fantastic! I really appreciate all the help.
I have another parameter that I was trying to map from the same controller to the same software. This controller is also on my Push 1 and it is a Knob controller, except this one is notched, so every time you turn it, it clicks into multiple grooves as you turn the knob.
I tried to map this controller to my subcycle parameter and noticed that it was going from 0 to 128 with every click similar to what was happening with the other controllers. I imagined that this is a relative encoder as well and so I tried to use bome to convert the controller with the rules you gave me for other controllers.
I copied all the rules and changed the output variable to gc. It almost worked, except now it will only set my subcycles to odd numbers as I move the knob. it goes from 1 to 3 to 5, ext… but I don’t get any of the even numbers unless I go all the way up to 128 and then come back down. Then it will still go every two but even numbers on the way down if I go I the way up to 128.
Thanks again for any help you may be able to provide.
Best
Rick Brenner
Steve-Bome Forum Moderator
2019-09-07 19:23:14
comment
Hi Rick,
Can you post your project file and maybe shot me the log when you move the knob?
Steve
rickbaudio
2019-09-08 00:58:15
Hi Steve,
My current project file is attached and I attached a screen shot of the log after moving the knob a few clicks
Thanks again
Rick
Attachments:
Steve-Bome Forum Moderator
2019-09-08 01:40:59
comment
Please check MIDI IN Also and repost the screen shot. It appears that one of your MIDI paths is passing through note messages as well. We need to figure where they are coming from and perhaps stop them. I sense the note messages may be interfering with the controller messages.
At first glance it doesn’t look like your encoder is sending out relative numbers so once we fix the extraneous notes message, we might not need a relative to absolute translator for this one.
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
rickbaudio
2019-09-08 03:45:28
I selected midi in and attached a new screen shot. The controller does send midi notes with the touch and release of each knob.
Thanks,
Rick
rickbaudio
2019-09-08 03:55:15
It doesn’t look like the new screen shot was there so I’m sending it again. Sorry if you are getting it twice. the Ableton Push 1, is the controller I am using and it does send a note on/off message when you touch or release any of the knobs on the controller, so just touching the knob to turn it does generate a note on message as well as the CC messages.
Adding the rules definitely helped cause with out that each click/turn CW of the knob would go full to 128 or one click/turn CCW of the knob would go all the way to 0. Adding the rules made it much better and now as I turn it CW every click/turn only moves my subcycle parameter by 2 instead of all the way from one end to the other.
Attachments:
Steve-Bome Forum Moderator
2019-09-08 05:08:37
OK, try this.
I added a translator to suppress the touch Note from your controller. Otherwise the MIDI through path will let the message through and I suspect this is what is messing things up.
I disabled the translator for the CC since you already have a MIDI through path set from Actition 2 MIDI 5 out to Bome MIDI Translator Virtual 1
Attachments:
rickbaudio
2019-09-08 15:13:37
comment
Thanks for looking into this. I really appreciate it, but the new translator didn’t seem to change anything. Disabling the translator for the CC makes it so I can only set the parameter to 0 or 128. At least with the translator it just jumps by two. I also tried to supress touch from “Push to Midi 3” from the same note cause that is actually the controller I am touching. Not sure why Bome is recieving Midi in from “Actition to Midi 5” because I’m not even touching that device.
I think a bunch of my issues may stem from the fact that I am using an app called Midi Pipe that is routing my Push from Midi channel 1 to Chan 3 and my Actition foot controller from Midi Channel 1 to Ch 5. I had issues because both controllers are set to channel 1 and can’t be altered. I had started using Midi pipe before I purchased Bome. When I started setting up Bome I just started using it on top of Midi Pipe because a bunch of other stuff in my system was already set up. Now that I think I understand more about Bome, I should probably re-do my Bome Project without midi Pipe. I’m going to try and do that soon and see if I can figure out the best way to set things up. Before I start, can you recommend the best way to translate every message from a controller from one midi channel to another? Or do you have to do it per message with bome?
Thanks again!!!
Steve-Bome Forum Moderator
2019-09-08 15:50:29
comment
Hi, yes, I generally organize my project inputs and outputs by preset. For instance at the project level, I can define all inputs and outputs. Then if you organize by preset, you go just define the inputs and outputs for that preset that you want and MT Pro will ignore anything else (unless you have a MIDI thru path set).
We have a tutorial on this:
https://youtu.be/KunN2A1rKMY
If all you want to do is translate all MIDI messages coming in from one channel to another, then we have a tutorial on that too:
https://youtu.be/kf6F-1AtrrI
For me, I like to not define MIDI thru paths and do everything in translators instead (unless I’m in a hurry). This is a personal preference for me as often when I define a thru path eventually an unintended MIDI message gets through that I didn’t want and mucks up the works. I then have to go through like I did on your project and put a translator in (setting swallow) to suppress the unwanted message from getting through. So in summary I define all possible inputs and outputs at the project level. Then For each preset I override with the inputs and outputs I want for that preset to override the project defaults. Then on an exception basis, I can override both project and preset inputs and outputs at the translator level (usually when there is only one translator that doesn’t warrant creating a whole new preset just for one translator).
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz
Steve-Bome Forum Moderator
2019-09-08 16:05:59
comment
Oh and from your incoming log, it doesn’t look like it is jumping from 0 to 128. In fact MIDI can only go to 127 unless you are using a 14 bit NRPN or pitch bend in which cases, the value is split across 2 7 bit bytes. Maybe if you post a log of just incoming message and sweep the knob from far left to far right slowly, I can tell you more about its behavior.
As far as I could tell it was going up and/or down but some controllers if you move the knobs quickly will skip sending some MIDI messages to reduce traffic.
For instance on one of my controllers (Nektar LX25+) if I move left to right fast, it may skip up to 10 outputs but moving slowly it will send every messages. When you stop moving though, it always sends the latest value. Again I think some manufactures do this to simply reduce the MIDI traffic their controllers send.