This forum is read-only. Please post new topics in our Q&A forum.

APC40 Programing, (a learning thread) PLEASE HELP.

General discussion about MIDI Translator

Moderators: florian, DvlsAdvct

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Mon May 28, 2012 2:48 am

Alright, try removing the connection between the Bome Virtual 1 and the APC40.

Also, make sure that whatever presets you have that handle the standard APC40 mode are off.

My concern is that there's a crossed wire, and Ableton is sending information to the APC40 directly. Are there MIDI outs in Ableton set to the APC40?

ps... yay 101 posts in this thread :)

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Mon May 28, 2012 7:05 am

First off, 101 posts! DANG!!!, yet I could shoot for 501 really.

I tried just removing some connections in Bomes, but lost functionality on other things.
I DO have the APC40 out in my Live preferences, checked for Track and Remote (to be clear I have 'APC40 Bomes Virtual Midi 1' checked for Track and Remote)

I was thinking the solution has to be somewhere with the Bomes Virtual 2 port. So basically I would be sending my custom modes on Virtual 2, and the default behavior on Virtual 1.
My head is now spinning.

This is where I am a bit confused with Bomes. What is the relationship between the MIDI IN and MIDI OUT Ports with the MIDI ROUTER, and what is the relationship to ALL of that with the Ableton Preferences?

I tend to think in terms of hardware i.e, effects pedals etc...
If I have MIDI IN from the APC40 and MIDI OUT to Bomes, what the hell is the MIDI ROUTER doing? Whats it's purpose?

Again, thanks for the help, it's been a real treat. I feel like I understand globals, rules, etc much more. What baffles me, is my instinct to set a conditional that reads "=="to but what I really need is a conditional that says "=!"

However I have made some breakthroughs with my Bomes Template, lots of cool shit using Bomes. THANK YOU.

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Tue May 29, 2012 2:55 pm

The MIDI router works as an editable pass through. So, say you have a single message you want edited on your controller, but everything else to send through just fine. You'd use the MIDI Router to have all messages send from the controller to the software, but you'd use the preset and translators to change the individual messages you want altered. Or, if you want to use the state of one controller to augment the state of another controller, but you don't want to translate anything, you could use it as a through to the software, but use MT to store states or values. Make sense?

I'm pretty sure you have Ableton set up properly, not communicating directly with the APC40, but instead with MT, which sends to the APC40. I think the problem is there is a connection between Ableton and the APC40 open in your MT preset. As an example, if you have, in the MIDI router, the input port that Ableton is sending to connected directly to the APC40 (so if the APC40 is sending to Bome Virtual MIDI 1, and you have a connection between that and the APC40 in the MIDI router), it may be sending messages directly through the router, past the translation process and hitting your APC40 with updates. I know you said you lose functionality, but if you disconnect ONLY the MIDI connection between Ableton and the APC40 in the Router does it still update the red box? If not, then what you may need to do is put an entry in your standard APC40 mode to tell it to just pass everything from the Virtual MIDI 1 to the APC40.

Make sense?

Also, you know there is a conditional for "!=" and not =!, right?

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Tue May 29, 2012 3:05 pm

DvlsAdvct wrote: I know you said you lose functionality, but if you disconnect ONLY the MIDI connection between Ableton and the APC40 in the Router does it still update the red box? If not, then what you may need to do is put an entry in your standard APC40 mode to tell it to just pass everything from the Virtual MIDI 1 to the APC40.

Make sense?
AH HA. Yeah if I unplug that connection in the Router the Red Box does NOT update. SO it's just about passing that in my default mode. hmmm
DvlsAdvct wrote:Also, you know there is a conditional for "!=" and not =!, right?
yes, just misspelled it. What I was saying is my instinct is to compare in an "equal too" fashion, but what is needed usually is "not equal too"

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Tue May 29, 2012 3:10 pm

JuanSOLO wrote: AH HA. Yeah if I unplug that connection in the Router the Red Box does NOT update. SO it's just about passing that in my default mode. hmmm
Exactly. The easiest way I could think of to handle this would be to have a qq pp rr translator in your default mode that only handles the grid (so probably only note messages and not CC for the knobs, right?) or something along those lines.
JuanSOLO wrote:yes, just misspelled it. What I was saying is my instinct is to compare in an "equal too" fashion, but what is needed usually is "not equal too"
Right, that's my point. You can use != instead of == for "does not equal". That's even more secure, generally, than the == rules.

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Tue May 29, 2012 3:16 pm

OK, thats making since fer sure. I will try this as soon as I get home.

THANKS! Things are shaping up nicely.

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Tue May 29, 2012 3:22 pm

As always, let us know how it goes :)

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Thu May 31, 2012 5:08 am

AWESOME.

So I blocked the Default matrix from updating LED's while in other modes and scrolling the 'redbox' around.

Basically I added a Preset that is only activated when in my custom modes.
This preset has 2 translators for each Matrix button
for example
Translator 1 "Clip 1"
IN - 90 35 xx (swallow)
OUT - nothing
Translator 2 "Clip 1"
IN - 80 35 xx (swallow)
OUT - nothing

This preset is set to receive Specific Ports input from Bomes Virtual In 1
AND Specific out ports to the APC40.

What was strange to discover was this seemed to automatically disable the Scene Launch buttons even with the redbox still moving around AND absolutely NO Scene Launch tranlators anywhere in my template.
SO, I made another preset just to pass the Scene Launch buttons and that worked!

SUPER STOKED, this part has been a big hurdle in actually performing with this rig.
Big thanks to DvlsAdvct!!! I need to buy you a drink or something.

NOW, on to my next question.
I have been using my bank buttons for "Resetting" some of my Effects racks to default states. I like this because the APC40's bank buttons point UP to the Track control knobs and DOWN to the device control knobs. So what ever those knobs are currently controlling can be reset swiftly.
What I want to do is scroll the redbox up and down using the CUE knob.
I found a thread where Florian give and example of how to translate an encoder to key up and key down.
http://www.bome.com/forums/viewtopic.ph ... oder#p9352
I tried that with no success.

Currently I got:
Translator 1 - "CUE DOWN"
IN - B0 2F pp
rules
if pp<65 then exit rules, skip Outgoing Action
pp=pp-64
OUT - Timer "Bank DOWN"
'once' 2 ms delay

Translator 2 - "CUE UP"
IN - B0 2F pp
rules
if pp>15 then exit rules, skip Outgoing Action
OUT - Timer "Bank UP"
'once' 2 ms delay

Translator 3 - "Cue Bank UP"
Stop Translating after executing this translator
IN - Timer "Bank UP"
OUT - 90 5E 7F

Translator 4 - "Cue Bank DOWN"
Stop Translating after executing this translator
IN - Timer "Bank DOWN"
OUT - 90 5F 7F

What am I doing wrong here?

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Thu May 31, 2012 2:02 pm

Well, the encoder messages are very different from what yours should be. The first thing you need to do is open the log window and turn the knob. You need to see what signals it's sending. Does it send a 0-127 signal, a 63/65 message, a 1/127 message, etc. That's the only way for us to figure out how to code the rules.

Make sense?

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Thu May 31, 2012 3:29 pm

Turned one way it goes from 127 down to maybe 123, and when turned the other way goes from 0 - 4, i think.
And the value coming out is dependent on how fast it's turned maybe?

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Thu May 31, 2012 6:04 pm

ALright, so if you replace your rules to reflect that it should work fine. So, it should be the same incoming message, but the < value should be 64 and the > value should be 64. That way when you turn it in either direction the translator will only trigger if the signal is above or below the middle value. Generally that's the easiest way to handle it. Make sense?

Zac Kyoti
User
Posts: 11
Joined: Thu Aug 26, 2010 7:16 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by Zac Kyoti » Sat Jun 09, 2012 9:04 am

Hey Juan, this is way late on this I know, (haven't visited Bomes forum in a while) but I have something that may be of use to you. I had issues with the red box and use of the virtual midi router as well. In my project I needed to eliminate that thru connection entirely, and do everything direct via translators. I found that for my purposes the only real reason I needed the thru connection was to establish the red box (or so I thought). Really all that was happening was the APC40 handshake key call/response, which doesn't actually have anything to do with the red box. But if I didn't use that thru connection nothing would work. Turns out that without the thru, the handshake would obviously fail, which would cripple the APC. My solution was to edit the Python script to simply remove every element of the handshake/key routine. Now the APC works perfectly with the red box, two-way comm, and NO virtual midi connection. Much cleaner. I can provide you with the script if you want to give it a shot!

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Sat Jun 09, 2012 12:21 pm

I would LOVE to try that!

Zac Kyoti
User
Posts: 11
Joined: Thu Aug 26, 2010 7:16 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by Zac Kyoti » Sun Jun 10, 2012 6:51 am

Ok. I'm at a friend's wedding this weekend, so it'll be sometime next week when I can get to it. If I zone out just drop me a pm to remind me! I think you'll like it, nothing has been changed at all in the script aside from removal of that key dialog. Definitely makes working with Bomes / APC easier though!

Zac Kyoti
User
Posts: 11
Joined: Thu Aug 26, 2010 7:16 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by Zac Kyoti » Tue Jun 19, 2012 7:38 am

Hey Juan, sorry to get back to you late, been busy. Here is a dropbox link for the remote script. Copy to your remote scripts folder as usual. Red box with no midi thru in Bomes!

https://dl.dropbox.com/u/24506425/APC40_Kyoti_Hack.zip

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Mon Sep 17, 2012 5:26 am

How do you create a toggle button on the Matrix with LED Feedback?
For example I have a mode I get into and I want the Matrix buttons to act as toggles, with LED feed back for on and off.

THANKS!

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Sun Sep 30, 2012 9:02 pm

anyone know the answer to the above question?

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Sun Sep 30, 2012 9:34 pm

Are we still just talking about in MT, or is this a problem with Ableton?

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Sun Sep 30, 2012 9:40 pm

I'm not sure.

I want a matrix button to work as an on off toggle.
For some reason that seems really confusing.
If I have the incoming button press
90 35 7f and translate that to say 9c 00 7f
and 80 35 7f to 8c 00 7f
and map that to something in Ableton it behaves as a toggle.
NOW to get the LED to reflect that I have no idea?
The 90 35 7f should be sent back to the APC40 as 90 35 7f as well as the 80 35 7f, but then I still get a toggle but the LED feedback works in momentary fashion.

using CC commands instead of note on off behaves differently, still confusing?

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Sun Sep 30, 2012 10:09 pm

this is really confusing.
There are other buttons like the MUTE's in which I have them translated
in ports APC40
90 32 7F > 90 32 7F
80 32 7F > 80 32 7F
out ports BMT
and that works with the LED info

if I do that SAME thing for the Matrix button
in ports APC40
90 35 7F > 90 35 7F
80 35 7F > 80 35 7F
out ports BMT
I get toggling but no LED info?

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Sun Sep 30, 2012 11:21 pm

another question.

How do I translate the F8 Timing Clock to something useable?

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Sun Sep 30, 2012 11:35 pm

For the F8 thing, you can. If you're reading from Traktor, as an example, it's 24 F8's to a beat. So you can set a global variable to that and have timers for it to do cool stuff, if ya want.

As far as the Matrix, cause you're not using the red box, you can't REALLY toggle things on and off, only whether or not the track is playing, or the CURRENT clip is playing. It's a pain in the ass. You're talking about the Session View grid, right?

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Mon Oct 01, 2012 12:04 am

Well for the Toggles I am using a custom Mode for the Matrix, so in that Mode nothing passes to the RedBox.

I am basically trying to make a running light on a 16step sequencer (2 rows of matrix buttons)
and these 2 rows of matrix buttons act as on/off switches for that step.
I am using a dummy clip in Ableton that sends to the APC40 through Bomes, this dummy clip creates the running light.
So it would be nice to figure out how to us the f8 timing clock to make the running light instead of a dummy clip.

I have this running light going to all of the APC40's knobs too.

In the end I want this 16step sequencer mode to work like this
2 rows of Matrix buttons with a running yellow light, if a step is ON the light would be green, if OFF the light would be off, UNLESS the running light is on that step, then its yellow
The Knobs have 3 modes within this, 1 for Pitch, Velocity, and Gate. I have the knobs working where the running light makes a full ring, and when the running light moves on to the next step it leaves the Knobs light at it's value.

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Mon Oct 01, 2012 12:10 am

Oh, then you aren't looking for LED feedback from Ableton, right? You just want to handle the LEDs directly in MT?

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Mon Oct 01, 2012 12:33 am

YEAH, i think thats right

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Mon Oct 01, 2012 1:28 am

Okay. What you can do is set a MIDI track to output a downbeat (assuming you want your step sequencer to be 1 beat for each square) and have this signal set off a timer. When that timer goes off it counts up a global variable. Based on that global variable the correct square would go off. Actually... you'd have a translator receiving the MIDI signal to base the global variable off that sets off a timer. This has no rules.

Within the preset you're activating, you'd have this timer begin counting off a global variable (1-16) and triggering ANOTHER timer to get your LED feedback. That would be he cleanest way for it to be on the clock.

Make sense?
J

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Mon Oct 01, 2012 3:37 pm

Took me all night to digest that.
I dont mind running clip information like this, but I would really like it to be receiving the midi clock from Ableton and run a sequencer within Bomes translating that information.
So why would the way your suggesting be the cleanest way?

I found this thread, dont quite understand it though. I dont understand some of the rules.
http://www.bome.com/forums/viewtopic.ph ... +Sequencer

I'm certain it can be done, I just know know enough.

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Mon Oct 01, 2012 4:01 pm

Hi Juan

Realistically, using a Clip to send MIDI information is the same as sending clock information. That clip is always sync'd to the clock and it's easier to digest the information in MT.

If you want to interpret the F8 information instead, you'd need to have a global variable count to 24 (I believe that's how many are set to the beat), and every time it hits 25 it needs to reset to 1 (if >24 then =1) a timer goes off triggering the downbeat of the clock. That make sense?

It would look like

Code: Select all

Translator 1: Incoming Clock
Incoming Message: MIDI F8
Rules:
g0=g0+1
if g0>24 then g0=1
Outgoing Message: Clock Timer 0ms delay

Translator 2: Clock Timer
Incoming Message: Clock Timer
rules: if g0!=1 then exit rules, skip outgoing action
Outgoing Action: Downbeat Timer 0ms delay
So every time the downbeat timer goes off your step sequencer would kick forward a beat. Something like

Code: Select all

Translator 3: Step Sequencer
Incoming Message: Downbeat Timer
Rules: g1=g1+1
if g1>16 then g1=1
Outgoing Action: Step Sequencer Timer 0ms
And then the step sequencer timer will count up the values of the step sequencer lights. They will only light up every beat. You could also divide it up and have different conditionals so you count the downbeat, up beat and quarter beats, even down to 32nd notes. Just gotta set the variables.

That make sense? The same logic applies for the MIDI clip as well.

JuanSOLO
Power User
Posts: 81
Joined: Tue Sep 15, 2009 8:27 am

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by JuanSOLO » Mon Oct 01, 2012 4:17 pm

OK, gonna try this later.

I guess my thinking about using a Clip it adds another layer to pay attention too in Ableton. So it sounds good to build it into the template to me.
Thanks for the help man, I'm sure I will be full of questions once I give this a shot.

DvlsAdvct
Bome Software: Partner
Posts: 1351
Joined: Fri May 09, 2008 5:07 pm

Re: APC40 Programing, (a learning thread) PLEASE HELP.

Post by DvlsAdvct » Mon Oct 01, 2012 4:31 pm

That's true. BUT what it also does is allows you to tie the activation of that clip to a preset. So when you activate the preset it triggers the clip, quantized to the beat or the measure (or however you want), so it always follows, and is not always sending data like the clock will. You can also set different clips with different note lengths communication.

Don't hesitate to bring questions, dude. You see how long this thread's going, we never send people away :p

J

Post Reply