tems
New Member
Posts: 16
|
Post by tems on Nov 22, 2007 10:23:24 GMT -5
Hi, I have been trying to hack my PK for a while now, and have managed to make basic changes to the sysex in native mode, but have been unable to work out how to toggle the pad light on when i press it once and then off when i press it again. Could you possibly shed any light (bad pun i know!) on how to do this as it's driving me crazy! Ideally i'm trying to be able to do this and also still be able to scroll through the scenes still like in this video. www.youtube.com/watch?v=H6j-RIpdyMw Any help, no matter how small would be massively appreciated Thanks for your time, Tom
|
|
|
Post by Stray on Nov 22, 2007 19:31:44 GMT -5
Can’t answer the question on scrolling through scenes…I’m not really sure what you mean by that and didn’t see anything relating to scenes in the vid. For toggling the pad lights, I’ll explain the basic set up using MIDI Translator. You’d need the Pro or Author versions for this to work. Please note that the set up I’ll be explaining assumes that the pads are set up as momentary. This can be changed so the pads are toggles, but I haven’t been able to figure out how to do it (Table 1 in the implementation guide is what you would use for changing this). So we’ll be turning a momentary pad into a toggle using Translator. For MIDI In, select Port A. For MIDI Out, select the CTRL port. I’ll be using pad 1 for this example. You’ll need to create 3 translators. Translator 1Incoming MIDI messageF0 42 40 6E 08 45 40 pp F7. This is the message that pressing pad 1 sends out in Native Mode (there is another message sent when you release the pad, but that's not usable for this application). "pp" is a local variable for velocity…we use that because we want the pad light to change regardless of how hard the pad is hit. Outgoing MessageNoneRulesga=1-ga. "ga" is a global variable, which can have 2 values; 0 or 1, the default is 0. Pressing the pad once will set the global to 1 because 1=1-0. Pressing it again will set the global to 0…0=1-1. For this translator, you also need to uncheck Stop Processing, which you’ll find on the Options tab. You’ll leave this checked for the next 2 translators. Translator 2Incoming MIDI messageF0 42 40 6E 08 45 40 pp F7Outgoing MessageF0 42 40 6E 08 01 00 20 F7. This will turn on the light for pad 1. Rulesif ga!=1 then exit rules, skip Outgoing Action. If ga doesn’t=1, then the Outgoing Message will not be sent. Translator 3Incoming MIDI messageF0 42 40 6E 08 45 40 pp F7Outgoing MessageF0 42 40 6E 08 01 00 00 F7. This will turn off the light for pad 1. Rulesif ga!=0 then exit rules, skip Outgoing Action. If ga doesn’t=0, then the Outgoing Message will not be sent. Hope that helps a bit. And if you're interested, you can check out a brief preview of the hack I'm working on here: www.youtube.com/watch?v=a9jgQEh4c0A
|
|
tems
New Member
Posts: 16
|
Post by tems on Nov 24, 2007 10:51:25 GMT -5
Thanks for your speedy response on this one Stray. Will let you know how i get on with it when i get a moment, but i'm unfortunately stuck working all this weekend -boooo!
I already use bome's MT, so hopefully should be getting this up and running ok. Once again you've been really helpful with this so thanks alot for sharing your knowledge.
A few questions though. You say to select port A, so does this mean you're not doing this in native mode as i thought native mode worked on the other ports?
And just to clarify what i meant by my scenes enquiry, in native mode it's not possible to move through the different scenes, so you're limited to only the number of pads in one scene. Is there any way that you could get round this and there open up more pads? In the video i put in my first post he seems to turn the knob and to me it looks as if that changes the scene somehow.
Cheers
Tom
|
|
|
Post by Stray on Nov 24, 2007 14:09:44 GMT -5
In Native Mode, all the controls on the pK send SysEx out on Port A. They receive SysEx on the Ctrl Port. Depending on how you have it set up, the pads, knobs and X/Y can also send note/CC data out on Port B.
As far as scenes go, you can easily switch in and out of Native Mode, it takes no longer than it would to switch between 2 scenes. What I did was set it up so that switching to Scene 16 puts you in Native Mode. Setting+Scene will get you out.
Native Mode takes up no scenes on the pK, so you have 16 scenes to use in the conventional way. Or you could set up Translator so that when you pressed a certain button/pad (or combination of buttons/pads), all the controls would have completely different assignments. I think that’s what we were seeing in the vid you posted. He was turning the encoder to switch between his different assignments…he had one for each pattern in the step sequencer.
Translator would even allow you to set up pseudo-scene changes that worked exactly like scene changes work in Play (normal) mode. For example, pressing Scene + Pad 1 would set a global variable (g1 for example) to 1. You’d set up all your controls to do a certain task when g1=1. Scene + Pad 2 would set g1 back to 0 and set g2 to 1. You’d set up all your controls to do a different task when g2 = 1. Scene + Pad 3 would set g1 and g2 to 0 and set g3 to 1….I think you get the picture.
That would let you get 16 pseudo-scenes or even more if you combined Scene with buttons on the left of the pK.
|
|
tems
New Member
Posts: 16
|
Post by tems on Nov 27, 2007 12:46:47 GMT -5
Thanks for getting back to me. It's starting to make sense to me a little bit more now.
I had a day off today to got back to looking at this. I feel like i'm getting somewhere which is good. I've taken control of all the buttons and can toggle the light on and off using the tranlators you gave before. Slight strange behaviour is that sometimes you have to double tap the buttons to make them act though. I'm not quite sure why that is? any ideas on this one as i can't work it out. There does seem to be a pattern to the way in which you have to press them though although its quite hard to explain!
I've also managed to set it up so that entering scene 16 take you into native mode. Scene and setting gets you out.
I've then set up 8 Presets in bomes MT and can scroll through these presets using the main dial and the LED displays the number for that preset. This is unstable though for some reason and will lock until you exit native mode and re-enter it again. There doesn't seem to be any pattern in the instability though which seems strange.
I've tried following your theory for creating pseudo-scenes, but have to admit im still confused. I kind of understand, but can't quite seem to work out how to actually put that into practice.
Would it be possible to set each preset to a different midi channel in native mode?
As always any help you can give would be massively appreciated
Cheers
Tems
|
|
|
Post by Stray on Nov 27, 2007 15:25:44 GMT -5
For toggling the lights, there’s something I didn’t mention and that’s that each pad/button needs to use a different global variable. So, for example, if pad 1 is using “ga”, pad 2 would need to use “gb”. That’s really the only thing I could think that would cause the problem. In regards to your other questions, I’d suggest that you go to Bome’s forum and read every post. Since Translator has no manual, it’s really the only way I found to learn aside from trial and error. Once you have a good understanding on it, the advice I gave on pseudo-scenes should make more sense to you. www.bome.com/forums/viewforum.php?f=3&sid=30718f5a07fff1afc9e192569ad3f672Good luck.
|
|
tems
New Member
Posts: 16
|
Post by tems on Nov 27, 2007 18:31:44 GMT -5
Excellent, that helps a lot. I guess you have to use ga, all the way through to xx to be able to use a seperate global variable for each button so i've done this.
Now the pads go on and off on a touch on touch off basis which is great. The other buttons turn on on the first touch, but then don't touch off, but i'm sure i'll figure out why. Maybe it's to do with the values in the rules being different as the buttons aren't velocity sensitive like the pads are?
I'll head over to the bome forums and see what i can find out. I've found it pretty helpful before, and have managed to set up machine gun over dubbing, so hopefully i can fully learn what i'm doing with this.
Thanks again for all your help. It's already making so much more sense to me and i really feel im moving forward after months of scratching my head in confusion!
|
|
|
Post by Stray on Nov 27, 2007 22:29:44 GMT -5
Xx (or pp, qq, oo, etc) is a local variable, you can use those over and over again. I tend to always use "pp" for velocity as it makes it easier to see what's what.
Global variables are ga-gz, g0-g9, ha-hz and h0-h9…they can each only be used once within a project. But I’m using BMT Author, which might be different than what you have…so you might not have the h* globals. To determine that, go to Options, find Log Window and choose the option to Dump Global Variables. That will show you all the global variables that are available to you.
You’re thinking is right, the buttons aren’t velocity sensitive, but that shouldn’t make any difference in terms of the set up. I’m thinking that they don’t work because you’re using local variables with them instead of global variables.
Let me know how you make out.
|
|
tems
New Member
Posts: 16
|
Post by tems on Nov 29, 2007 12:22:15 GMT -5
Ok, so i've had another look at this and got a little further.
I checked my version of MT and i only had global variables ga-gz, but luckily i realised that i hadn't upgraded yet, so did that and now i have the full spectrum Global Variables, ga-gz, g0-g9, ha-hz and h0-h9. This has meant i have been able ot set up each pad or button with a separate GV which is good.
i have the pads working as touch on touch off as before, but the other buttons still don't quite work as they should for some reason which is confusing me as i can't see why! The rules i've used are the same for all pads so i don't understand why they would create different behaviours.
I now have it set up to that from normal mode pressing scene plus pad 1 activates native mode and take you to preset one in bomes MT, scene plus pad 2 = native mode and preset 2. I can also scroll through the presets with the rotary encoder and the LED will display the number of the preset im on. One thing i'd like to be able to do still in native mode is that I'd like to be able to press scene + pad 2 and have this also go to native mode preset 2, but can't seem to figure out the sysex string for this button combination. I only ever seem to make it change when i press a single button in native mode and never a combination of buttons.
I think i understand what you mean about setting up pseudo scenes too now, although haven't been able to put theory in to practise yet! As i have things set up on different presets, i guess i'd just keep a set of rules to each preset. So in preset 1 i would use the rule g1=1 and sets all tasks to work when g1=1, which i would set up in the rules for each. It's just how to actually implement the rules that i'm unsure of now. For example how i set the rule g1=1 so the whole preset (would i simply put that as a rule for each action?) and how what effect the exit rules on translator 1 and 2 would have on this rule.
Still, im getting there and will continue to plug away.
As always any pointers in the right direction would be greatfully received
Cheers
Tom
|
|
tems
New Member
Posts: 16
|
Post by tems on Nov 29, 2007 15:29:42 GMT -5
Just to update, i have looked through it all and can't see any mistakes in the translators. the pads all work touch on, touch off, but now all the other buttons, they just light up when pressed, but then go out as you take pressure of it (like the pads do in normal mode). At least the the errors seem to follow a pattern which should hopefully mean i can work out whats wrong.
|
|
|
Post by Stray on Nov 30, 2007 7:53:18 GMT -5
Sorry for the delay…was caught up yesterday with compatibility testing with Live 7. It looks like Florian gave you some info that might help with presets. But if you’re still having problems with the buttons not toggling, send me part of your BMT project and I’ll look at it for you. You don’t have to send the whole thing, just an example of a button that isn’t working for you.
|
|
tems
New Member
Posts: 16
|
Post by tems on Dec 4, 2007 18:14:29 GMT -5
No worries, thanks for getting back to me again. I was away at the weekend, but am back looking at this again now. I tried out what Florian suggested, but to no avail, so i guess i'll just have to keep plugging away at it.
Is there an easy way to set a global value across all translators in a preset? (i noticed that when you do a global dump that it shows the values e.g. ga = 0, gb = 0, but can't work out how to change these)
Here is an example of a button that doesn't work properly. Maybe you can see something wrong with it somewhere, but i can't work it out
Translator 1: Pad Velocity Options: stop=false Incoming: MIDI F0 42 40 6E 08 48 07 pp F7 Rules: hf=1-hf Outgoing: (none)
Translator 2: Pad Velocity toggle Options: stop=true Incoming: MIDI F0 42 40 6E 08 48 07 pp F7 Rules: if hf!=1 then exit rules, skip Outgoing Action Outgoing: MIDI F0 42 40 6E 08 01 17 20 F7
Translator 3: Pad Velocity toggle Options: stop=true Incoming: MIDI F0 42 40 6E 08 48 07 pp F7 Rules: if hf!=0 then exit rules, skip Outgoing Action Outgoing: MIDI F0 42 40 6E 08 01 17 00 F7
It looks the same as this which is a pad that works
Translator 1: Pad 1 Options: stop=false Incoming: MIDI F0 42 40 6E 08 45 40 pp F7 Rules: ga=1-ga Outgoing: (none)
Translator 2: Pad 1 toggle Options: stop=true Incoming: MIDI F0 42 40 6E 08 45 40 pp F7 Rules: if ga!=1 then exit rules, skip Outgoing Action Outgoing: MIDI F0 42 40 6E 08 01 00 20 F7
Translator 3: Pad 1 toggle Options: stop=true Incoming: MIDI F0 42 40 6E 08 45 40 pp F7 Rules: if ga!=0 then exit rules, skip Outgoing Action Outgoing: MIDI F0 42 40 6E 08 01 00 00 F7
So im not quite sure whats going on??
|
|
|
Post by Stray on Dec 4, 2007 20:15:51 GMT -5
That was bad info, sorry about that.
The buttons are different from the pads. The pads send one message when pressed and a different message when released. The buttons send the same message when you press and release, the only difference being the velocity. “7f” when you press and “00” when you release.
You only want the light state to change when you press it, not when you release it. So you don’t want to use “pp” for the velocity in the button translators, you want to use “7F”. Again, sorry for the bad info.
I’m not really sure what you mean by this. First of all, when you do the dump, it’s showing you the current value of the globals. If you hit Pad 1 (from your example above) once and then did the dump, you’d see ga=1. You can also just leave the log window open, hit Pad1 a couple times and it will show you the value of the global changing.
For the lights, you use a global just for one pad/button but, in most cases, you’d use a global to affect translators in the whole project. For example, I have a Shift pad that sets a global to 1 when pressed and sets it back to 0 when released. That makes each pad/button have dual functionality. For example, pad 2 will mute track 2 when the Shift global=0. Pad 2 will solo track 2 when the Shift global=1.
I hope that helps some.
|
|
tems
New Member
Posts: 16
|
Post by tems on Dec 7, 2007 15:16:59 GMT -5
Yeah, that helps a lot. Now all the buttons work touch on touch off which is excellent. Using the log window is helping me to gain undertand a little more about things too. Now i just need to try and get Florians Bome presets setup going and hopefully then everything will work as i want it to. I'm getting there though.
|
|
tems
New Member
Posts: 16
|
Post by tems on Dec 19, 2007 18:07:39 GMT -5
I seem to have hit another dead end with this again and am not getting very far with it at all now which is really frustrating.
I can't seem to work out what the sysex that is given out when you press scene + pad 1, scene + pad 2 etc when i native mode. It's really confusing me as when i'm looking at the output in midi ox it only seems to give the sysex of the single buttons, not the combination of the 2 together.
I've tried use your idea for the rules too, but not getting far with that either. When i turn the rotary encoder it changes the global variable, but i can't seem to workout the rules for each action and how to apply them.
Do you know if it's possible to change the midi channel in the sysex as i'm toying with the idea of tyring to use a different channel for each scene, which would make it easier to have greater control in live for my set up.
Cheers
Tom
|
|