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

AKAI APC40

General discussion about MIDI Translator

Moderators: florian, DvlsAdvct

Post Reply [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable
datek
User
Posts: 5
Joined: Mon Jun 15, 2009 8:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

AKAI APC40

Post by datek » Mon Jun 15, 2009 8:37 pm

Hello!

I've just bought Bome's Midi Translator. I need to use it to customize my new AKAI APC40. Somebody did something with that controller?

I expecially need to set all buttons to momentary button...but there's no template editor for the APC40. So I would like to do it with Bome's.

The problem is that not all buttons sends the same kind of midi messages, for example, some buttons if you press one time send note ON and if you press a second time send note OFF. So i don't know how to set it.

any suggestions?

thanks in advance

User avatar
florian
Bome Software: Founder
Posts: 2436
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Thu Jun 18, 2009 1:56 pm

Hi Datek, can you send us exactly which messages are sent by a particular button? i.e. which message when pressing down, and which message when releasing? And will ANOTHER message be sent when pressing/releasing the next time? Or did I misunderstand you?

Thanks,
Florian

gio
User
Posts: 10
Joined: Thu Jun 18, 2009 3:49 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by gio » Thu Jun 18, 2009 5:07 pm

I don't understand exactly what you mean with:
'I especially need to set all buttons to momentary button'
but I think you might be confusing what the APC actually sends and what is Ableton default behavior...

Let me explain...
I'm new to Bome Midi Translator, Still...
If I try this:
- add a Translator
- go into Translator Edit Mode (Ctrl-e OR Right-Click on the Translator)
- go in the 'Incoming' Tab
- check 'Capture MIDI'

or if I use any other software that let's me monitor MIDI messages
coming from your APC40 (MAX or MIDIOX for example...)
then I'll see that every button sends:
- a midi noteon when pushing the button
- a midi noteoff when releasing the button


Also if I use the APC without even having Ableton open you won't have any LED reaction from the push and release of the buttons...


Inside Ableton everything is already built to give you a certain amount of control and interactivity so the buttons are setup in different ways:
- The Track Control Buttons (i.e. PAN, SEND_A, SEND_B, SEND_C) and the Eight Device Control Buttons (i.e. Clip/Track, Device_On/Off, Prev_Device, Next_Device, Detail_View, Rec_Quantiz, Midi_OVR, Metronome) behave like toggle buttons. Live remembers the toggled state of the device buttons in normal state (providing LED feedback for the state of their labeled functions) and (from Live 8.0.4) also in the 'shifted' state (providing LED feedback for the bank of controls selected for each device).
- The Shift Button, The Four Bank Select Arrows Buttons, The Tap Tempo and Nudge Buttons, The Transport Buttons (Play, Stop, Rec) behave like non-toggle buttons.

Similar behaviors (toggle or non-toggle or multiple 'states') are managed inside ableton python scripts also for the Clip Matrix, Track's Selection/Activation/Arm/Solo Buttons, (If only they could give their customer officially a bit of knowledge about all that stuff they use behind the scenes).


I have to wait two or three weeks at least before I could dive into the APC/MTPro/Ableton setup stuff. I hope that, given all the buzz around it, there'll be bits and pieces coming from the community will useful in helping everybody to build his/her personal setup.
For now the most comprehensive bunch of links is on
createdigitalmusic.com

Checking the MIDI messages coming from the APC it's quite simple to make a map of all the MIDI messages coming from the different buttons and encoders.
If I recall it right the Endless Encoders, Volume Faders and Track Selection Buttons are ControlChange messages. The buttons, as said before, are simple noteon, noteoff messages.
The entire set has some parts similar to the Mackie Control Protocol (like the CC numbers for the device control encoders and the Bank Select Arrows) and some other parts that 'magically' use some Mackie Control unused notes (like the notes of the five clip matrix rows...).
I haven't made a doc with all these info yet but they should be embedded in a max patch linked from cycling74 forums and I don't remeber exactly where I read that a doc should appear on createdigitalmusic in the near future.


Cheers!
Gio

P.S.
I hope that the guy in the APC40 customization video will share some of his efforts... not everything but just something to get started...


:lol:

datek
User
Posts: 5
Joined: Mon Jun 15, 2009 8:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by datek » Thu Jun 18, 2009 8:09 pm

hello guys! thanks for reply! So...

To florian:

I spent some time yesterday to write down all APC40 controls behaviors and that's what i get:

All buttons send a note on/off message...but in 2 different ways...some are momentary and some are non-momentary. for example:

- momentary : when I push a button i get a note ON message, when I release i get a note OFF message. (that's cool for me)

- non-momentary : when I push a button i get a note ON message, when I release I get nothing...if I push it another time I get a note OFF message and if I release it i get nothing.

so I need to set ALL button to momentary!

To gio:


"Also if I use the APC without even having Ableton open you won't have any LED reaction from the push and release of the buttons"

you are not right, if you plug the APC and you don't open ableton, YOU HAVE leds reactions.

"The Track Control Buttons (i.e. PAN, SEND_A, SEND_B, SEND_C) and the Eight Device Control Buttons (i.e. Clip/Track, Device_On/Off, Prev_Device, Next_Device, Detail_View, Rec_Quantiz, Midi_OVR, Metronome) behave like toggle button"

you are right for the track control buttons but not for the device controls...device controls are momentary as i want.

what i need is not set Activator, Solo/cue and record buttons to momentary, now they are non-momentary.

and the matrix clip is all non-momentary, but it is the only thing that i don't wanna change on my apc.

and about the track selection buttons, i get a really strange behavior when i press it...if i press one of these buttons i get 8 midi messages at the same time like this:

- B0 17 00
- B0 17 00
- B0 17 00
- B0 17 00
- B0 17 00
- B0 17 00
- B0 17 00
- B0 10 00

the very strange thing is that the last of these 8 messages changes randomly everytime! eheheh i'm trying to understand eheheh

so guys, i hope that somebody can help me. I'm here for any explanations on the problem.

thanks!!!!!!!

datek
User
Posts: 5
Joined: Mon Jun 15, 2009 8:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by datek » Thu Jun 18, 2009 8:11 pm

sorry i made a mistake!

what i need is TO set Activator, Solo/cue and record buttons to momentary, now they are non-momentary.

sorry :oops:

gio
User
Posts: 10
Joined: Thu Jun 18, 2009 3:49 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by gio » Fri Jun 19, 2009 8:07 am

@datek
checked out what you said and now I see what type of behavior you're speaking of... I guess that if those buttons always behave like non-momentary buttons (i.e. they don't give any release information) it's practically impossible to make them behave like momentary buttons (how is someone supposed to know when the button is released? I don't think that even some polling/timer stuff could do the trick if you don't have some form of feedback from the button...). Quite simple to do the opposite instead (if you have all momentary buttons you can make them behave like toggle buttons just having some kind of memory of their state in a patch/preset/whatever).
BUT...
Strange thing though... :shock: I'm quite sure that the behavior I explained in yesterday's post was real... I was just playing with the APC40/Bome/Max/Live bunch so I was verifying it while I was writing the post... This makes me wonder if there is perhaps a way to manage the way the buttons behave, similar to how there is a way to light them up with different colors. If that's the case it won't be the first time, don't recall which controller was but I'm pretty sure that there are other controllers where you can switch the type of behavior of the buttons... (momentary, non-momentary).
One thing is for sure, there must be a way because stray411 in the APC customization video manages to use them like momentary buttons...
:mrgreen:


I've asked openly on createdigitalmusic in the comments of the APC40 post, hoping that someone will answer... meanwhile I'm doing some research to see if someone else has figured it out or if I can come up with something...


The thing is that the APC really comes naked without a manual, a MIDI reference or any other stuff... OK I get it that they made a fixed map of note/CC and that they probably think that an editor would be useless because 99% of the users would play/remap/manage the controls inside some sort of MAX/Bome/PD/M4L tye of software... but still...
nothing, nothing at all!!!

User avatar
florian
Bome Software: Founder
Posts: 2436
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Fri Jun 19, 2009 8:23 am

It is possible with MT to at least emulate a "button release":
  • when you press the button, start a one-shot timer "release button 1" with e.g. 100ms delay
  • also, on button press, send the "button down" MIDI message
  • on timer "release button 1", send the MIDI message "button up"
There is one catch: if you press the button fast enough, you'll get "button down, button down, button up, button up". So if you want to do this, you'll need to add logic to detect that condition. Then, stop the timer and send the "button up" message for the previous "button down". Only then, send the new "button down" message. I leave this as an exercise to the reader :shock:
Or, ask back :)

Thanks,
Florian[/list]

gio
User
Posts: 10
Joined: Thu Jun 18, 2009 3:49 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by gio » Fri Jun 19, 2009 2:35 pm

@florian
correct me if I'm wrong...
but if I have a button that sends alternatively in sequence
- first time noteon/button_down
- second time noteoff/button_up
- third time noteon/button_down
... and so on

if you're faster than light and :mrgreen: somehow unwillingly succeed in pressing the button before the timer expires, what I think it'll happen is:
- I press the button, sends noteon (and start the timer...)
- I press again the button before the timer expires, so this time the button sends noteoff...
- timer expires, sends noteoff

so the sequence is - press button (noteon) - press button (noteoff) - timer expires (noteoff)

and whatever type of logic I add to this it's still a toggle button

just some thoughts
If I had to set a timer to trigger a delayed release (noteoff), I'd try to relate the timer ms to something related to the musical characteristic of the things I'm playing... for example relating the time to multiples of the clock/sync signal from the song (but this would work 'a la ableton clips' so it's probably better to stick with them...).
Too new to MT to even have a clue on how it is possible to transfer the sync/clock information to the timer ms but... even starting timers, whether song_clock related or not, doesn't give a truly momentary button... I mean one that goes on ON_state when you press it and goes on OFF_state in the precise moment when you release it. Am I wrong in thinking that without some kind of way of catching/sensing the release event is almost impossible to build the momentary behavior we're thinking of?

--------------------

going back to the APC40 messages for Track Selection.
reading values only from the ouput of the ctrlin object in MAX I got the wrong idea... I was reading them like ControlChange 23 or B0 17...
but this was because I was reading only the last value (wasn't printing them in an output page... just in number boxes...).

monitoring in a MAX print/output window or in MIDIOX the output is quite ordered and I get messages like this:
- B0 10 00
- B0 11 00
- B0 12 00
- B0 13 00
- B0 14 00
- B0 15 00
- B0 16 00
- B0 17 00

B0 to BF are the initial status bytes for Control/Mode Change for channels
01 to 16
(...so the traced messages before are from selection of track/channel 1)

10 to 17 are the first data bytes giving info on Controller Numbers.
In MIDI specs 10-13 range is indicated as 'General Purpose Controller', 14-17 range is 'Undefined'

second data bytes seems to be always 0.



I think that Bome MT has some problem in capturing this MIDI signals all together, capturing in Bome MT effectively gives me results similar to the ones described by datek (i.e. with pseudo random messages).


Don't know why all this CC messages for one button but I guess it could be related to the possibility of having more than one controller...



@datek
have you the possibility to monitor track selection buttons midi messages not from MT (MidiOX is free).

@florian
Hope no-one gets offended by my suggestion of double-checking with other softwares... but effectively the midi message monitoring for those APC track selection buttons seems ordered and clean in other softwares and not inside MT. I guess that MT midi capturing ability is meant to work with little amount of messages but please correct me if I'm wrong



Thanks
Gio

gio
User
Posts: 10
Joined: Thu Jun 18, 2009 3:49 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by gio » Fri Jun 19, 2009 9:52 pm

@datek

OK it seems that I have recreated the situation I was in when writing the other post where all the buttons send both the noteon AND the noteoff signal. As I said I was verifying while writing that post so when I rechecked the incoming midi messages after your answer I was going nuts.

It happens to me if I monitor after quitting Live.
When I quit live my APC40 present itself with no lights.
If I try to monitor the midi messages coming from the APC40 when is in this state every button (also the activator, solo, arm, device, etc...) transmit noteon and noteoff messages.
Now what's left to know is if there are other ways to enter this 'state' without having to Start and Quit Live.
When I start Live again, if the APC40 is connected directly and is selected as Control Surface both as Input and as Output then it lights up again (as it's supposed to) to interact inside Live... but if I select APC as a control surface but other virtual midi ports as input and output then it remains in the state where every button transmits both noteon and noteoff

Can you check if you can replicate the situation presented?
Can anybody else that owns an APC tell in the forum if they have the same behavior?

Cheers
Gio

P.S.
I'm using Live 8.0.4 on Vista 32Bit

User avatar
florian
Bome Software: Founder
Posts: 2436
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Mon Jun 22, 2009 10:50 am

Hi gio,

I admit, now I got confused what exactly the APC is sending on which user action. For me, could you describe in detail like
1. I push button X on APC down, sends MIDI message XX YY ZZ
2. I release button X on APC, sends MIDI message XX YY ZZ

and so on. Especially I don't know why the timer "idea" above won't work... I'll explain if I know better what the APC really sends.

Regarding Midi Translator's MIDI implementation: it works with any number of messages, and with any size, and practically any speed. It also works with malformed MIDI messages, if you need to :) The MIDI Capture box in MT should give you exactly the same sequence as OX or Max gives you. To isolate what's going wrong, I suggest:
- close ALL MIDI applications
- start MT, go to the MIDI settings and deselect all MIDI ports, except the one for APC
- check what's coming into MIDI capture

You can also abuse MT's log window, if you add a translator with just "MIDI pp qq rr" as incoming action, and "none" as outgoing action. It will trigger on any 3-byte MIDI message and log it in the log window.

Regarding Live: yes, it is likely that the APC MIDI implementation in Live will initialize the APC, maybe into a different mode, or something like that. Also the feedback (for the lights, etc.) is obviously controlled by Live. You can control them with MT, too.

Last, but not least, we don't mind references to other software. We believe in fair competition -- the user should have the choice and use what fits best.

Thanks,
Florian

gio
User
Posts: 10
Joined: Thu Jun 18, 2009 3:49 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by gio » Mon Jun 22, 2009 8:38 pm

The confusion arises because the problem is that
the APC doesn't send always the same stuff
in response to the same user action.
:?


STATE (1)
When you connect the APC and turn it on:
- a few lights are on.
- device control encoders are related to the track selection buttons. if you change the selected track the encoders settings for that track are recalled.
- some of the buttons behave like toggle buttons.


Let's take the "Pan Button" as an Example.
- I push this button down, sends MIDI message '90 57 7F', LED is on
- NO MIDI messages send when releasing the button
- I push this button down again, sends MIDI message '80 57 7F', LED is off
- NO MIDI messages send when releasing the button
and so on...
this is what I mean when I say that it behaves like a toggle button.
It has memory of being on OR off, lights behave accordingly.

When in this state it's great for the use designed by the 'Abletonians' and for the fact that it retains memory of a good number of parameters in the hardware.
-------------------------------------------------------------------------------
You Open Live and use it with the APC...
When Live Releases the APC, whether it is by closing Live or by deselecting the APC as a control Surface in Live Midi Preferences Panel, Live sends a bunch of MIDI messages and the APC is not in the same state it was when just connected.
-------------------------------------------------------------------------------

STATE (2)
- no lights are on
- track selection buttons and device control encoders are not related anymore. track selection buttons send a MIDI noteon message when you push them, a MIDI noteoff message when you release them. there's no recall of device control encoders settings.
- all the buttons behave like normal/momentary buttons (i.e. like the Track Selection buttons I've just mentioned). buttons send a MIDI noteon message when you push them, a MIDI noteoff message when you release them. pushing and/or releasing a button is disconnected from any visual/LED feedback.


Let's take the "Pan Button" again as an Example.
- I push this button down, sends MIDI message '90 57 7F', LED is still off
- I release this button, sends MIDI message '80 57 7F', LED is still off
and so on

When in this state it's great for programming your own stuff :wink:
I can decide to do with a button whatever I want to (can use it as a momentary button or as a toggle, manage the led).
For example: I can decide that the button has normally the light on, and then that as long as I take it pushed down the LED flashes accordingly to the song tempo, then at release the LED turns on again. Or anything else you can think of...

------------------------------------------------------------------------------------
for the timer idea to work I think that you still need to know somehow when the user is releasing the button. If the APC (like in State 1) doesn't inform you of the button release you can still make a timer_momentary button, but it has no relations to what the user is doing, or to how long he/she actually take the button pushed down. It' s only related to how long is the duration of the timer.
I've always thought impossible to make some buttons behaviors without a release event involved. Am I missing something?

------------------------------------------------------------------------------------
I had already
- closed all midi applications
- started MT and selected only the MIDI port from the APC

Tried to log messages and the log it's ok.
It returns the same data encountered monitoring the MIDI stream from other applications, for instance:
IN 1.1: MIDI B0 10 00, pp=0xB0 qq=0x10 rr=0x00
IN 1.1: MIDI B0 11 00, pp=0xB0 qq=0x11 rr=0x00
IN 1.1: MIDI B0 12 00, pp=0xB0 qq=0x12 rr=0x00
IN 1.1: MIDI B0 13 00, pp=0xB0 qq=0x13 rr=0x00
IN 1.1: MIDI B0 14 00, pp=0xB0 qq=0x14 rr=0x00
IN 1.1: MIDI B0 15 00, pp=0xB0 qq=0x15 rr=0x00
IN 1.1: MIDI B0 16 00, pp=0xB0 qq=0x16 rr=0x00
IN 1.1: MIDI B0 17 00, pp=0xB0 qq=0x17 rr=0x00

So, I guess it could be a visualization problem of the "capture MIDI" popup menu.

------------------------------------------------------------------------------------

I think that in some tasks/areas MT isn't the one that fits best but the only one that truly fits!
that's why we decided to go Pro just a few days ago
:D

datek
User
Posts: 5
Joined: Mon Jun 15, 2009 8:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by datek » Tue Jun 23, 2009 9:23 am

hello guys!

I did it!!!!!!!!!!!!!!!!!! I don't know why, but after re-map all "stop clip buttons", all "select track buttons" send note ON message on press and a note OFF on release. This is the same for all activator, solo/cue and record buttons.

So in this way you can make a translator for each button to make it momentary and use it ableton live.

I did it! now all buttons on my APC are momentary! I don't have LEDs behavior but I really don't care. All LEDs are off, always! but it's ok!

try to do it!

gio
User
Posts: 10
Joined: Thu Jun 18, 2009 3:49 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by gio » Wed Jun 24, 2009 12:36 am

If you use the APC inside Live, whether you add some switching to other controlling scenarios or not, you can try playing with the selection of the APC as Control Surface inside Live preferences or (as you just pointed out) re-map something.
:D

There is something disturbing though... :x (at least disturbing to me...)
If you just want to use the APC as a controller, maybe playing with other applications... :D
why do you still have to open Live and mess around to have the APC in the right state to use it elsewhere?
:x

For now I've already written a few translators and even if I'm still looking/trying to understand how to bypass the Live Pref/Remap thing I'm obviously going on with building my stuff assuming the noteon/noteoff behavior.

As mentioned in the other post I'm quite new to Bome, especially to some parts of it. What I'm trying to understand now are:
- some best practices to switch between presets (for now what's working for my scenario is with one Activate Translator and one Disactivate Translator for Preset)
- the window messages thing (Winspector doesn't work on my pc and, after figuring how to obtain infos on the window I need to control, I'm still trying to understand if I can manage every action on every window inside Ableton)

but this are other stories, and I think I'll make a post when I know a little more about the subjects and when I feel that I'm stuck somewhere...

User avatar
florian
Bome Software: Founder
Posts: 2436
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Wed Jun 24, 2009 2:49 pm

datek wrote:I did it!!!!!!!!!!!!!!!!!!
awesome! Can you post your preset here? or send me the file by private email? Thanks,
Florian

User avatar
florian
Bome Software: Founder
Posts: 2436
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Wed Jun 24, 2009 2:51 pm

gio wrote:why do you still have to open Live and mess around to have the APC in the right state to use it elsewhere?
I think Live will initialize the device into a different state, after which it sends and reacts to different MIDI messages.

I guess you can use it completely without Live, but then it'll send different MIDI messages, apparently.
gio wrote:- the window messages thing
That's rather advanced stuff. Most applications can be controlled rather conveniently by way of MIDI messages and/or keystrokes.

Regards,
Florian

Semuta
New User
Posts: 1
Joined: Wed Jun 24, 2009 5:46 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Stuff with the APC40

Post by Semuta » Wed Jun 24, 2009 5:50 pm

Over at www.semuta.com , I've posted a bome's preset and some other stuff for ableton. The preset provides toggle/momentary behavior on the mutes, scrolling in the session view, and if you implement it right, you can have four additional automapping control surfaces instead of the pan/sends panels.

Maybe this helps someone?

S

datek
User
Posts: 5
Joined: Mon Jun 15, 2009 8:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by datek » Thu Jun 25, 2009 10:38 am

@florian

hi! it's quite simple man!

This is what i did, if doesn't works i give you my bome preset:

1) remap all stop clips button on Ableton (these button are momentary [note ON on push, note OFF on release)
2) on bome, make a translator for each of these button. On note OFF message you send a note ON message.
3) remap all track selection button on Ableton (these button are non-momentary, but when i have remapped them and the stop clips...they become momentary, i totally don't know the reason)
4) on bome do the same for each button.
5) repeat this tasks for all the other buttons (for example activator, solo, etc.)

@everybody

i hope this helps!

but, as i sayd before, i don't have LEDs feedback. If someone understand how APC40 LEDs work, please let me know.

User avatar
florian
Bome Software: Founder
Posts: 2436
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Fri Jun 26, 2009 9:28 am

Hi Datek,

[quote=datek]If someone understand how APC40 LEDs work, please let me know.[/quote]
I don't know how they work for the APC40, but convention is that they react on the same message that they send (if they are in or attached to a button or knob). E.g. for a button that sends controller 10, send a controller 10 to the APC40, values 00 for OFF, and 7F for LED ON. Same for note messages, where the velocity is used for on or off. If you got LED's without attached control elements, it will be hard to guess though... of course you can just try (e.g. with www.bome.com/midi/sendsx/ ) to send ALL controllers with value 7F, and all Note On messages with velocity 7F to the APC40 to see how that works...

Florian

gio
User
Posts: 10
Joined: Thu Jun 18, 2009 3:49 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by gio » Sat Jun 27, 2009 12:41 am

OK, I think I've found it.
In the handshooken.zip file linked from createdigitalmusic.com
there's two Max Patches where it's analyzed
the handshake between the APC and Live.

If you have different virtual ports
I guess that opening it with the
MAX runtime could be useless.
(obviously no problem with the full Max version).
Whether it is MAX, MidiOX or two Instances of Bome SendSX,
with the right MidiIns and MidiOuts Setup it's possible
to monitor the sysex midi messages going between the APC and Live.


It involves five system exclusive messages.

1) from Live: 6 Bytes 'Identity Request' SysEx Universal Message
2) from APC: 35 Bytes 'Identity Reply' SysEx Universal Message. The APC tells it's from AKAI (Manufacturer ID: 0x47), the Model ID, some other Device codes and, according to the MIDI specs, probably the software revision level

3) from Live: 12 Bytes ???

4) from APC: 24 Bytes. maybe secret handshake request code?
5) from Live: 24 Bytes. maybe secret handshake response code?

The facts are that:
The first 'Identity Request' string from Live is always the same (and always should be if it follows the 'SysEx Universal Message' format).
The second string from APC seems always the same from the same APC, but two APCs could have different bytes (probably because some device codes or the software revision are different in different APCs). The second string coming from my APC it's different from the second string written in the handshakestrings Max patch distributed inside handshooken.zip
The last two strings are probably related to this secret handshake stuff/myth.

It's The third Sysex string alone that puts this 'notorious' APC toggle buttons in the noteon/noteoff state.
So if you take the third sysex String of the exchange between Live and the APC and you send it to the APC at the start of a preset you could use the APC also outside Live...

The APC maybe still have some lights on and so could receive further initialization. You should zero or switch off all the leds to have a totally clean startup.

---------------------------------------------------------
@datek
Florian is right.
LEDs for normal buttons (not the buttons in the clip matrix) are quite simple, they respond to same noteon noteoff messages they send.

If you want to switch on the LED at buttondown/noteon and to switch it off at buttonrelease/noteoff than you just 'echo' the midi message of the APC back to the APC.

Translator 1: noteon_switchon____noteoff_switchoff
Incoming: MIDI pp qq rr
Outgoing: MIDI pp qq rr


If you want to switch off the LED at buttondown/noteon and to switch it on at buttonrelease/noteoff than you just 'echo' a XOR of the APC back to the APC.
Given that in this case the buttons are switched on after they are released, and that they are first released only after you've pressed them at least once... you'd probably want to initialize them switching on the leds...
if you've other things in mind play as you like


Translator 1: noteon_switchoff____noteoff_switchon
Incoming: MIDI pp qq rr
Rules:
pp=pp^16
Outgoing: MIDI pp qq rr


for Clip Matrix buttons the mechanisms it's quite similar, the main difference is that you have to play with velocity values (third midi byte) to choose the different color settings.
I suggest to follow the link on the APC40 Hacking Post on createdigitalmusic pointing to the 'Messy Patch' uploaded by CerebralNektar on Cycling74 Forums.
There's an Image with all the velocity values to light up different colors.


Last thing... watch what is actually passing and through which ports. I've just lost a few hours because I forgot some open ports and Live replies to some 'leaking' midi messages messed up

from the apc , some messages passes and Live (or whatever other software) replies to them you can have strange behaviors. I'm not an expert but I just lost a few hours because there was a midi 'leak'

----------------------------------------------------------
@florian

about windows messages.
I think I'll need to understand how those work because there are a pair of things that I can't do. An example could be a way to open up the Launch Box and/or change the Launch Mode on a Clip. AFAIK not possible with shortcuts, not possible with Key or Midi Mapping, not even with by awkwardly navigating the menus.

Managed to use Windows Spy / Winspector on my old laptop with the old version of Live. First I tried monitoring WM_COMMAND, WM_APPCOMMAND messages but nothing happened when clicking inside Live interface. After I tried without filtering and managed to have a look to the events generated and... in so many windows events the only one always around are mouse-related... but I'd like to avoid using the mouse because coordinates change continuously based on which screen you're using, if you're using the new zoom feature inside Live, etc.


Is there anyone who has figured out how to control the most remote parts of the software? Or is just utopia?

Bye
Gio

User avatar
florian
Bome Software: Founder
Posts: 2436
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Mon Jun 29, 2009 4:21 pm

Hi gio, thanks a lot for all these infos.

Regarding invoking special functions: there is a special WM message that is sent when invoking the right-click context menu, maybe that helps? Other than that, I don't have any ideas. Oh, actually, there is the context menu keystroke that you can send using Midi Translator, how's that?

Regards,
Florian

gio
User
Posts: 10
Joined: Thu Jun 18, 2009 3:49 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by gio » Thu Jul 02, 2009 5:44 pm

No success with WM messages...
apart from the mouse related messages, which most are surely
simpler to manage indirectly with a Mouse Outgoing Action,
it seems that no particular message or parameter it's useful.
Probably I still have to understand everything I can do with Winspector,
and where eventually the resolving stuff is...
but from what I've gathered until now, there's nothing.
Haven't checked the context menu keystroke yet, but:
- isn't it still related to what's under focus?
- I can't find unique parameters that can let me assign focus to a specific sub-window inside Live
- it seems that context menu in Live are really different from menus in other softwares. some programs can be monitored very well and winspector return very clear and usable infos, doesn't seem the same for Live.

I'm probably going to use the WM_messages
feature anyway in the next months, so...
Thanks anyway for your help

Jo

majnun
User
Posts: 13
Joined: Wed May 06, 2009 4:08 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by majnun » Mon Jul 06, 2009 3:27 am

Wow you guys are alot farther along than I am... I can't seem to get basic handshake between APC bomes and ableton.

If I have Ableton open, and I try to select an APC port in bomes, I get this error:
"Cannot open MIDI input device "Akai APC40":
There is not enough memory available for this task. Quit one or more applications to increase available memory, and then try a"

I get similar error when ever I try to simply listen to the APC with midiox when Ableton is open.

I'm not a complete dumbie, I can get other midi devices translating through bomes, but i feel like I must be missing something elementry here.

Can someone respond with all the steps needed to set up bome, ableton, and the APC to communicate properly?

My goal: I want to leave half of the matrix pads in default behavior, the others I want to translate with bomes.

Thanks in advance for any help.

:)

majnun
User
Posts: 13
Joined: Wed May 06, 2009 4:08 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by majnun » Mon Jul 06, 2009 4:20 am

First make sure Ableton is closed.

In Bomes midi ports:
*Create a virtual port (Bomes Virtual Midi Translator 1) and open both in/out port aliases for it
*Open both the APC40 In/Out Port aliases

in Bome's midi router:
Bomes Midi Translator Virtual Port 1 in to the APC 40 Out
APC 40 in to the Bomes Midi Translater Virtual Port 1 Out

In Ableton preferences
Pick APC40 from Control surface drop down.
in the input drop down, select From Bomes Midi Translater 1
in the output drop down, select the "2-To Bomes Midi Translater 1" NOTE: This is the first in the list, there is a second one further down simply labeled "To Bomes Midi Translater 1" Need to pick the one with the "2-" in front of it... not sure why. Not sure if that's what it's called on everyones system either, but I'm assuming it'll always be the one higher up n the list.

And DON'T enable the track/sync/remote buttons next to the APC inputs.

From now on launch Bomes first then launch Ableton. Now you should get your APC doing it's normal thing, while also allowing itself to be captured in Bomes.
Last edited by majnun on Mon Jul 06, 2009 7:02 am, edited 2 times in total.

majnun
User
Posts: 13
Joined: Wed May 06, 2009 4:08 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by majnun » Mon Jul 06, 2009 4:55 am

I think that's right... yeah?

Anyone want to share the noob basics of how they have things set up in ableton and bomes? Specifically which ports are open, which are routed where. Much abliged. :)

gio
User
Posts: 10
Joined: Thu Jun 18, 2009 3:49 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by gio » Mon Jul 06, 2009 11:44 am

don't recall exactly how it's the setup and I can't check it right now but your configuration seems right. I often got confused with virtual cable default names in Bome so I assigned some names/aliases meaningful to me and I don't remember anymore the actual default names of the virtual cables they represent.
Sometimes I use some other virtual cables and I personally find them more straightforward, their names do not imply any direction of midi data, they are just named something similar to VirtualCable1, VirtualCable2, etc. In this way, when you setup your stuff you just know that you've used cable1 to go from that device to that software, cable 2 from that software to that device, etc, etc.
But I guess it's a matter of preferences, also MT let's you add renamed aliases just to adapt to how your brain likes it...

a few things:
1) IMHO it's better to point the translators only to ports they really need.
keep separated the translators that:
- input from APC output to APC (ex: for instant feedback...)
- input from APC output to Live (output to virtual cable)
- input from Live (input from Virtual Cable) output to APC

2) it's right that you should not enable the track/sync/remote buttons next to the APC inputs. but you can enable them on the same virtual cable entries you've selected for the control surface.

3) if I recall it right, the fact that you can use a controller in more than one software depends on it's driver, if is multi-client or not. surely for the APC the first software that starts using it, is the one that 'holds it'.

have fun
bye
jo

majnun
User
Posts: 13
Joined: Wed May 06, 2009 4:08 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by majnun » Tue Jul 07, 2009 12:22 am

Awesome, thanks. :)

Yeah I have my translators seperated and set up to catch APC to Live and Live to APC, but how to catch APC to APC as you suggest?

majnun
User
Posts: 13
Joined: Wed May 06, 2009 4:08 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by majnun » Tue Jul 07, 2009 2:24 am

I'm making some headway on my project... I'm wondering what people think is the best way to accomplish the following.

I can listen for the mesages that Ableton sends the APC to turn clips various colors, and if I store those, I can essentially know if there is a clip in each pad, and what ableton thinks it's doing (playing, recording, loaded, etc.)

I'm doing various things the color pads and I want to essentially create a function that "returns APC to what Ableton thinks it looks like." Some things like allowing me to record over something without having to delete it manually first requires that I know if a clip is there already.

What's the best approach to do this in Bomes? Do I store ALL those things as globals? Is there something more straight forward I should do? [Edit - Sadness... there aren't enough globals to hold all the 8x5 grid values... I guess I'm stuck creating presets for each pad and color state, and toggling them on/off and passing a midi message generated by Bomes asking the preset to respond with "yes/no" if it's on in that color? OMG, that's going to take forever... anyone have a better idea?]

Has anyone found a "send this message to Ableton and Ableton will try to refresh the APC"?

Thanks :)

User avatar
florian
Bome Software: Founder
Posts: 2436
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Wed Jul 08, 2009 9:32 am

Hi Majnun,

probably there are more glbals than you are aware of:
There is the set of g0...g9 and ga...gz
Then there is the same for "h": h0...h9, ha...hz
And, sort of hidden, there is all other letters from "i" to "n".

In the future version 2.0 you will be able to define your own variable names.

So I guess you can use global variables to track the state of all "those things".

Thanks,
Florian

gio
User
Posts: 10
Joined: Thu Jun 18, 2009 3:49 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by gio » Wed Jul 08, 2009 3:24 pm

guess I'm lucky...
I was just writing a message to ask about global variables...

I have designed a few presets and translators
and made some bits and pieces to try them out.
Now, one thing is to try them all by themselves, another thing is to have them all together and switch from one mode/preset to another.
To do this I must add a main/default mode
where the APC-Live dialogue it's left almost untouched and
the main thing monitored are the buttons that trigger the 'mode switcher'.
In this mode the feedback from Live to the APC have to be recorded so that there's always a sort of snapshot of the current situation of the controls on the APC.
When you jump to other modes the leds and parameters supposedly behave in a way related to the mode you're in, and the modes I've thought about don't require any form of memory of their state in their current form. Whenever you go back to the main/default mode instead, you need to put things back how they were before leaving that mode, and where Live is expecting them to be.
Given that the APC has a discrete amount of buttons and encoders, and that some of them have more than two states (clip buttons have different led color states and cannot be stored as 'bit' switches), I thought that the global variables weren't enough...
given the 26 letters english alphabet and the global variables combinations 'exposed' in MT manual (ga-gz,ha-hz,g0-g9,h0-h9) I thought that we had a maximum number of 72 global variables.

(@majnun... enough for the 8*5 grid unless you've already used a bunch of them)

Now I have to try the other ranges instantly...
if still assuming the english alphabet (so from 'i' to 'n' you'll have also 'j','k' and not only 'l','m') and still assuming same ranges a-z, 0-9
this gives us a total, if counting right, of 288 globals.
and having more ranges to pick from is also simpler to link group of controls to range of variables.

Thanks manjun
for asking a question
almost identical to mine
before I started writing it :shock:

Thanks florian
for answering my question
before it was even made... :shock:

-----------------------------------------------------------
@manjun
if you refer to the midi thru
you can speak of catching APC_To_Live and/or Live_To_APC.

for a translator you can select a specific input port and a specific output port, if both point to the APC you're actually receiving midi from the APC and you are sending midi to the APC.


I wish I had more time to dedicate to this but I'll be working hard until mid-august so I'm 'borrowing' hours from my sleep hours...
However... In some of the few tests that I built I put the same incoming data for two translators:
- one 'translates' incoming midi data supplying Live with the midi data/keystroke function of what I'd like to accomplish with that control. this has incoming midi port 'from APC' and outgoing midi port 'trans APC to Live'
- the other gives feedback to the APC. this has incoming midi port 'from APC' and outgoing midi port 'to APC'

have I understood your question? am i missing something?



Jo

P.S.
are there any risks in using the globals not mentioned in the manual?

S4racen
Power User
Posts: 71
Joined: Sat Nov 08, 2008 5:32 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by S4racen » Wed Jul 08, 2009 8:04 pm

Hi Guys,

I'm running the MAC version of bomes and for the life of me cannot get the same set up to work as the Mac version doesn't have the multiple inputs like windows, i use MIDI patchbay to get round this usually but can't seem to make it work...

Any direction would be greatly appreciated!

Cheers
D

majnun
User
Posts: 13
Joined: Wed May 06, 2009 4:08 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by majnun » Tue Jul 14, 2009 4:14 am

Awesome! I didn't realize there was all those globals! I thought I was stuck with g0-g9 and ga-gz only!

I've made a good deal of head way, I'll post things when I'm done.

So far I've got a sequence that lights up for measures and "ticks" a bar count. And a "metronome" light. All that helps me hit record at a good spot when live looping.

I'm also able to essentially "arm" a clip with the clip pads on the APC but not record until I hit the foot pedal. That's gonna be cool once I finish mapping that across all the clip pads... essentially you'll say, I want to record here. Then hit the foot pedal when you are ready. :D This mode is on when you arm a track, otherwise it launches normally.

Got a few more details to work out, but its coming along faster than I thought.

Wish I had more free time to dedicate.

I'll post my results when I'm finished.
Last edited by majnun on Tue Jul 14, 2009 4:41 am, edited 1 time in total.

majnun
User
Posts: 13
Joined: Wed May 06, 2009 4:08 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by majnun » Tue Jul 14, 2009 4:27 am

S4racen:

Don't know the particulars of the mac... but I had a lot of trouble setting up on PC...

Basically what you are doing is:
Create a "virtual midi port" however you do that on a mac.

Then in Live's Preferences for Midi/Sync tab, select APC 40 in the top control surface drop down. Then pick the ports of your virtual midi port in the input/output drop downs... whats confusing is that in the output, you might have two references to your virtual connection, I believe you always want the TOP most one selected (at least that was the case for me)

Then do NOT select the APC ports NOR the virtual ports in the track/sync/remote toggle buttons below. (Not sure why, seems counter intuitve).

Then in bomes you have to make sure you're virtual ports are enabled in the Ports and Aliases preferences.

Then in the bomes router preferences, you take your virtual in and send it to the APC

And you take the APC in and send it to your virtual port.


On the PC I had to set up all the stuff in bomes BEFORE doing the stuff in Live because once Live took control of the ports it wouldn't let bomes do anything with them. I also now launch bomes before launching live.

Hope that helps.

User avatar
florian
Bome Software: Founder
Posts: 2436
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Tue Jul 14, 2009 5:01 pm

gio wrote:if still assuming the english alphabet (so from 'i' to 'n' you'll have also 'j','k' and not only 'l','m') and still assuming same ranges a-z, 0-9 this gives us a total, if counting right, of 288 globals. and having more ranges to pick from is also simpler to link group of controls to range of variables.
Correct. The division is like that:
a..f: hex numbers
g..n: globals
o..z: locals
gio wrote:P.S. are there any risks in using the globals not mentioned in the manual?
No, they are exactly the same. They will not work with versions prior to version 1.7. (though they do work with MT 1.6.1 on OS X).

Florian

User avatar
florian
Bome Software: Founder
Posts: 2436
Joined: Thu Apr 28, 2005 10:09 pm
Location: Munich, Germany
Contact:

Post by florian » Tue Jul 14, 2009 5:03 pm

S4racen wrote:I'm running the MAC version of bomes and for the life of me cannot get the same set up to work as the Mac version doesn't have the multiple inputs like windows, i use MIDI patchbay to get round this usually but can't seem to make it work...
Hi, please check out the beta version 1.7: it is very stable, and gives you multiple MIDI ports.
http://www.bome.com/midi/translator/osx_beta.html

Regards,
Florian

S4racen
Power User
Posts: 71
Joined: Sat Nov 08, 2008 5:32 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by S4racen » Wed Jul 15, 2009 11:05 am

florian wrote:
S4racen wrote:I'm running the MAC version of bomes and for the life of me cannot get the same set up to work as the Mac version doesn't have the multiple inputs like windows, i use MIDI patchbay to get round this usually but can't seem to make it work...
Hi, please check out the beta version 1.7: it is very stable, and gives you multiple MIDI ports.
http://www.bome.com/midi/translator/osx_beta.html

Regards,
Florian
Cool, i think you may have my old email address on your system so i don't get informed of updates... it was darrenecowley @tiscali.co.uk and it's now darrenecowley@sky.com

Cheers
D

ps cheer manjun, got it going now with your help! Now for tweaking!

majnun
User
Posts: 13
Joined: Wed May 06, 2009 4:08 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Red Box

Post by majnun » Sun Aug 09, 2009 11:51 pm

I'll play around some, but first I thought I'd ask if anyone knows already:

Does anyone know the messages the APC and Live use to indicate to each other where that red box is?

Context:
I'm trying to remap the second half of the matrix into a standard loop pad machine... basically each clip on the APCs matrix tracks 5-8, rows 1-4, is actually what is in Ableton as track 1-16, row 1.

Easy version would be simply remapping those keys using Live's key/midi mapper, but then the APCs clip lights don't mean anything... so I'd like to tell the APC what is going on in the first 16 tracks first clip slot in Live but remapping those in the second half of the APC's matrix.

I'm thinking if I can figure out what tracks in Ableton are currently represented by the the APCs matrix, I could simply sweep across the first 16 tracks in Live and store those values and spit them back to the APC rearranged on the APC.

But I'm not sure what the redbox position message is that Live sends to APC and visa versa.

Anyone figure that out yet? (I'm sure I can figure it out, just don't feel like reinventing the wheel if someone already knows how)

Thanks! :)

majnun
User
Posts: 13
Joined: Wed May 06, 2009 4:08 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by majnun » Mon Aug 10, 2009 12:30 am

Hmmm... maybe it's not communicating via midi, because I'm not seeing it. Anyone got any ideas?

blastmasterd
New User
Posts: 1
Joined: Mon Aug 10, 2009 12:11 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

APC-40 MAPPING

Post by blastmasterd » Mon Aug 10, 2009 12:13 pm

I wrote to Akai some time ago about asking could they program the unit to send MIDI off note messages for the clip launch buttons.

I received this reply:

Hello,

Thank you for your interest in Akai Professional!

Sorry to hear about your trouble with our product.

The buttons that send MIDI note numbers do send on and off messages.

Attached is a MIDI map of what MIDI note numbers and CC numbers the buttons and knobs send on.

If you mean that you want a clip to only trig for the duration of you holding the note that is done in the software.

You would change the clip in LIVE to GATE instead of trigger. This is in the clip properties.

That way if you were triggering a drum break, for example, it would only play as long as you were holding down that clip button on the APC40.

If you use MIDI OX (PC) or BOME MIDI MONITOR (MAC) and hook your APC40 up to it, you will see that the buttons send a MIDI note on message and a MIDI note off message.

Let me know if you have any additional questions.

Best Regards,

Andy Kyte

Technical Support / Return Authorization

Image

kubrick007
New User
Posts: 2
Joined: Sat Aug 22, 2009 3:55 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by kubrick007 » Sat Aug 22, 2009 3:59 pm

The picture is very helpful....Except the track select buttons say * on the picc. What is their key assignment?

Autogen
New User
Posts: 4
Joined: Wed Aug 19, 2009 12:30 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by Autogen » Sun Aug 23, 2009 3:20 am

As far as I understand it, by default the track selection buttons don't send a MIDI note or CC#. They actually select the MIDI track on which the device control knobs send their CC data. So 1 selects MIDI channel 1, 2 selects MIDI channel 2 and so on. This is why they are labelled with the wild card symbol on the above image.

I presume they must be configurable via MT to send a MIDI note or CC# though. Although I've not got my APC here to check this at the moment.

kubrick007
New User
Posts: 2
Joined: Sat Aug 22, 2009 3:55 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Trck select

Post by kubrick007 » Sun Aug 23, 2009 3:26 am

They are configurable supposedly as I have a preset from Darren cowley that allows them to trigger lucifer but I am trying to reverse hack it because I can't get the buttons to work just yet

stubar
New User
Posts: 2
Joined: Fri Oct 23, 2009 10:22 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by stubar » Fri Oct 23, 2009 10:54 pm

florian wrote:
S4racen wrote:I'm running the MAC version of bomes and for the life of me cannot get the same set up to work as the Mac version doesn't have the multiple inputs like windows, i use MIDI patchbay to get round this usually but can't seem to make it work...
Hi, please check out the beta version 1.7: it is very stable, and gives you multiple MIDI ports.
http://www.bome.com/midi/translator/osx_beta.html

Regards,
Florian
Hi I'm currently running 2 instances of 1.6 on OSX because I use 2 inputs for 2 controllers (APC and remote SL). I'm finding it doesn't remember the input and output settings ie The SL is set as the input in both instances when I fire them up. Is there a way around this?

Does the Beta expire ? I'm worried about using a beta on stage

lukelat
User
Posts: 5
Joined: Sat Oct 24, 2009 11:26 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by lukelat » Sat Oct 24, 2009 2:51 pm

majnun wrote: Then in Live's Preferences for Midi/Sync tab, select APC 40 in the top control surface drop down. Then pick the ports of your virtual midi port in the input/output drop downs... whats confusing is that in the output, you might have two references to your virtual connection, I believe you always want the TOP most one selected (at least that was the case for me)

Then do NOT select the APC ports NOR the virtual ports in the track/sync/remote toggle buttons below. (Not sure why, seems counter intuitve).

Then in bomes you have to make sure you're virtual ports are enabled in the Ports and Aliases preferences.

Then in the bomes router preferences, you take your virtual in and send it to the APC

And you take the APC in and send it to your virtual port.


On the PC I had to set up all the stuff in bomes BEFORE doing the stuff in Live because once Live took control of the ports it wouldn't let bomes do anything with them. I also now launch bomes before launching live.

Hope that helps.
Hey majnun, man you have helped me so much with your posts BUT...I just want to clarify a few things - I have seemingly got communication between Live/APC/Bome working in that Bome is detecting the midi sent from the APC and in Live the APC is working but all my Bome mappings aren't responding to anything in Live...did you ever have this problem? I'm running v 8.0.4 of Live and was wondering if this could be the problem??

ruediger
Bome Software: Partner
Posts: 194
Joined: Mon Nov 05, 2007 12:02 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by ruediger » Mon Oct 26, 2009 8:34 am

Hi stubar,

the two instances of Midi Translator 1.6 are using the same settings file. If you want Multiple Midi Ports, try the 1.7.

Cheers,
Rüdi

stubar
New User
Posts: 2
Joined: Fri Oct 23, 2009 10:22 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by stubar » Mon Oct 26, 2009 12:30 pm

Hi thanks Rudi

Is 1.7 safe to run on stage ie is it likely to expire on the night of the gig?

ruediger
Bome Software: Partner
Posts: 194
Joined: Mon Nov 05, 2007 12:02 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by ruediger » Tue Oct 27, 2009 8:53 am

Hi stubar,

we strongly believe that it is ready for stage. We always release a new version before the old one expires.

Cheers,
Rüdi

josephperkins
Power User
Posts: 59
Joined: Fri Jun 23, 2006 10:46 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by josephperkins » Sun Jan 10, 2010 9:25 am

@majnun & Gio

Hi Both, how are your MPro templates coming along? I've read all your posts which are very helpful.

I want to control Traktor & Live at the same time using the APC. I basically rewire traktor into live using jackosx. This of course opens up lots of possibilities.

Gio - i think your trying something similar to me. Use 2 presets, one untouched which will allow normal control over ableton.

preset 2 will control Traktor Pro.

I would like to create a custom grid mapping 4 decks to the pad control, utilising all the LED colours.

Of course the tricking part is making sure all the LED's update when going between presets. This can be achieved using global variables.

Could you send me your templates to get me started.

joe_perkins_1982@hotmail.com

Much appreciated

josephperkins
Power User
Posts: 59
Joined: Fri Jun 23, 2006 10:46 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by josephperkins » Sun Jan 10, 2010 12:38 pm

Ok - i've made some progress,,,

I've got the clip launch buttons working. By changing note off to note no

I'm using a rule to setup the toggle action.

if h4==3 then Goto "set to zero"
if h4==0 then Goto "set to 7f"
Label "set to zero"
h4=0
exit rules, execute Outgoing Action
Label "set to 7f"
h4=3

Outgoing: MIDI 90 35 h4

This will toggle the pads LED on/off (RED = 3)

I can use the same progress to translate the note on message to a CC message so it doesn't mess with live.


I've setup two presets 1)Ableton 2) Traktor and setup the metronome button to change between presets.

The Problem - When i move from the traktor template to ableton the LED's don't update.

josephperkins
Power User
Posts: 59
Joined: Fri Jun 23, 2006 10:46 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Post by josephperkins » Tue Jan 12, 2010 10:56 am

Ok i have a problem...

i want to convert some of the pads on my apc to control Traktor, i'm creating
two presets,

1) Full APC control
2) Traktor

in preset 1 ) Traktor - i want to convert the pads into different CC messages so they stop controlling ableton.

Pad 1 outputs note on / off messages

90 35 7f
80 35 7f

I need to convert 90 35 7f into a different CC message lets say CC60

I would like the button to toggle between cc 60 vel 127 - 0 (on off switch)

I also need to send out a CC message to control the LED of Pad 1

LED on is 90 35 01
LED off os 90 35 00

Any suggestions

Cheers
Joe

S4racen
Power User
Posts: 71
Joined: Sat Nov 08, 2008 5:32 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AKAI APC40

Post by S4racen » Wed Jan 13, 2010 11:51 am

Hi Mate,

First you need to select a shift button, look up global variables in this forum... Then you need to create two presets, the first will contain a translator for every pad you want to have dual function, each pad will have two translators...

1 = allow standard midi message through as shift is off
2 = output different midi message on as you suggested it channel 16

each translator needs to have the swallow midi messages box selected....

The second preset is to control the lights.... effectively you need to create a translator for every pad that records the last state of the pad when shift was held, and assigns this to a global variable.... When you press shift again Bomes needs to then be instructed to check for the value of the global variable per pad and send the coreesponding midi message to the APC40....

The best advice i can give is not to use the shift button on the apc as your shift button, it sends sysex and stuff that makes it harder to create your preset....

Cheers
D

josephperkins
Power User
Posts: 59
Joined: Fri Jun 23, 2006 10:46 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AKAI APC40

Post by josephperkins » Thu Jan 14, 2010 10:33 am

Yeah things are coming along...
I can now switch between presets and store the state of the LED's of the traktor preset.
The problem i have is that when i switch back to ableton the LED'S don't update automatically.
If i press one of the bank select buttons the led's do update.
How can i store the state of the LED's in ableton.

S4racen
Power User
Posts: 71
Joined: Sat Nov 08, 2008 5:32 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AKAI APC40

Post by S4racen » Thu Jan 14, 2010 5:39 pm

I found that, it's as if it doesn't send the states back when returning out of your preset.... Have you tried the button that switches out, having that send a shift on and shift off message back to ableton?

Cheers
D

josephperkins
Power User
Posts: 59
Joined: Fri Jun 23, 2006 10:46 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AKAI APC40

Post by josephperkins » Fri Jan 15, 2010 12:14 am

Good idea...

Next comes the rotary knobs, i can save the state of button i.e on off, but how would i store the positon of the LED.

I also want to convert the leds into a pan like setup.

I mix using filters and want to assign each rotary to hi pass / low pass

If the rotary is panned to the left the low pass filter is not affectig the audio - The LED feedback will help me keep track on eqing

Thanks for sending me your template, i've learned a few things :-)

I understand that the channel select pads send out syntax messages which is hard to convert, i think you use these as a sequencer with led feedback. What part of your preset deals with this?

Thanks for all your help.

S4racen
Power User
Posts: 71
Joined: Sat Nov 08, 2008 5:32 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AKAI APC40

Post by S4racen » Fri Jan 15, 2010 2:41 am

The led feedback is simply whatever velocity is being transmitted so it's these values you need to store and recall, you should be able to extract these parts from my template and then simply midi map the knobs directly in ableton to something else... I disabled the standard midi messsages and set up 4 global variables based on which pf the bank buttons was pushed last.....

The led feedback on the pads comes from the APC40 Group and within it the Metronome track, i simply mapped them elsewhere within ableton to control dummy clips and the like but also used them with shift to access the second scene (shift plus track select 5) whilst 1-4 and 6 & 7 have standard midi translations to output different midi notes when shift is pressed.....

Cheers
D

josephperkins
Power User
Posts: 59
Joined: Fri Jun 23, 2006 10:46 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AKAI APC40

Post by josephperkins » Fri Jan 29, 2010 4:16 am

Hi Mate, i brought the Native Kontrol ACP40 patch from http://www.nativekontrol.com/

apC-CL2+TC2 v1.0.1

http://www.nativekontrol.com/apC_Series.html#Manuals

Holding Shift + 8 Clip stop button transferes between presets.

Shift + Clip stop 4 puts you in user mode. This works fine but does not allow LED configuration

I had an idea of routing MT Player through MTP - I've got this setup working fine See post http://beatwise.proboards.com/index.cgi ... thread=592

Now i want to setup two presets 1) When user mode is selected Shift plus clip stop 4 MTpro sends out LED's messages like this

http://www.native-instruments.com/forum ... 1258494679

When all other presets are selected go to preset 2) Ableton mode i.e all midi through

The shift button sends out Note on / Note off messages - something like

Note on 90 xx 7f
Note of 80 xx 7f

Same for Clip stop button 4

I'm trying to setup an IF statement = IF Shift + Clip stop 4 is pressed then change to preset 1)
If Shift + clip stop button 1 or 2 or 3 or 5 or 6 or 7 is pressed then change to preset 2)

So here's my solution, thats not working lol

Translator 1
If 90 xx 7f==127 then assignment
G1=0

Translator 2
Note of 80 xx 7f ==127 then assignment
G1=1

Now i'm replicating the above for clip stop button 4 as it also sends out noteon / note off messages
Noteon
G2=0
Noteon
G2=1

translator - Change preset
incoming - Shift button note on
Rules
If G1=1 then - Jump to label 'second button'
label second button
If G=2 then exit and transmit outgoing message
Outgoing - Change preset

Now - This doesn't seem to be working :-( any thoughts

S4racen
Power User
Posts: 71
Joined: Sat Nov 08, 2008 5:32 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AKAI APC40

Post by S4racen » Fri Jan 29, 2010 11:43 am

Your problem maybe in the use of the shift button, it hoses everything when it's released so you maybe momentarily in your new scene but then when you let go of shift it reverts you back to normal.... The way i got around it with bomes was to have a global variable on both the shift and stop 4....

When holding shift and stop four ga =1 when the note off comes from the shift button it checks for ga and if it equals 1 then it blocks the message....

To get it out of this mode you need another button that when shift and the new button is pressed it changes ga back to 0 allowing the note off from shift to pass reverting you back to the standard preset.....

To be honest things are so much easier if you use a different "Shift" button that the actual shift button....

Cheers
D

josephperkins
Power User
Posts: 59
Joined: Fri Jun 23, 2006 10:46 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AKAI APC40

Post by josephperkins » Tue Feb 02, 2010 9:54 am

S4racen wrote:When holding shift and stop four ga =1 when the note off comes from the shift button it checks for ga and if it equals 1 then it blocks the message....

To get it out of this mode you need another button that when shift and the new button is pressed it changes ga back to 0 allowing the note off from shift to pass reverting you back to the standard preset.....
This sounds like it would work. Can you explain how you set this up? When holding shift and stop four ga=1???

If it possible to execute a rule without an incoming message? Say if ga=1 then change preset to?

Masabasic
New User
Posts: 3
Joined: Mon Dec 28, 2009 10:47 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AKAI APC40

Post by Masabasic » Thu Feb 04, 2010 5:21 am

finally starting to delve into this, wow it seems like a lot of work.

1. Is there a way to load the default apc40 settings into bome's, and use that as a starting point?

2. How do you start using this? I'm extremely confused and need instructions as if I was a monkey trying this out. If anyone has any suggestions, please let me know.

Thank you in advance, in the meantime, I'll keep doing research

- Masa

Masabasic
New User
Posts: 3
Joined: Mon Dec 28, 2009 10:47 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AKAI APC40

Post by Masabasic » Sun Feb 07, 2010 12:04 am

Anyone?

Thank you!

Nonspacial
User
Posts: 15
Joined: Wed Sep 07, 2011 11:49 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AKAI APC40

Post by Nonspacial » Sat Sep 17, 2011 8:06 pm

OK i have read through this entire thread now and there are some incredible gems of information in here if you've already done a weeks worth of research, but i've just stumbled through some quite large holes that are present that i discovered the other night.

So it seems that everyone has become scared of the Term Sys EX and that the shear mention of it makes people cower and revert to a work around away from it entirely. But without understanding a couple of basics surrounding the APC40 it will hinder and push you round in large circles that pretty much you don't need to dwell on. So there is a post way up near the top that metions the Sys EX of the handshake but DOES NOT actually list any numbers for HEX. this can be found admittedly on other sites where i got it from but it is not even mentioned that this pdf exists:

http://www.akaipro.com/extras/product/a ... _rev_1.pdf

which contains all the necessary information to understand the Sys EX information (except i have not found the SHIFT key string thus far).

Now the APC has 3 distinct states as observed above by some. When you turn it on it is in state 0, then ableton handshakes and it becomes State 1 and when live is turned off it is State 2 (this is known to some as DUMB MODE), from that link i give they are as follows:

Notes Regarding Generic Mode (Mode 0):
-[CLIP LAUNCH] buttons are momentary and should light the green LED when ON
-[CLIP STOP] buttons are momentary and should light its LED when ON
-[ACTIVATOR], [SOLO], [RECORD ARM] are toggle buttons and should light its LED when ON
-[TRACK SELECTION] buttons (1-8 + MASTER) are radio style and only one of the 9 buttons are ON at a
time. When ON its LED should light. These buttons will NOT send out MIDI in generic mode for its
state. These buttons dictate which one of nine banks the DEVICE CONTROL knobs and DEVICE
CONTROL switches belong to. These knobs and switches will output on a different MIDI channel
based on the current Track Selection (track 1 = MIDI channel 0, track 8 = MIDI channel 7, MASTER =
MIDI channel 8 ). Upon pressing one of the Track Selection buttons, the current position of the 8 APC40 COMMUNICATIONS PROTOCOL
Rev 1 – May 1, 2009 Page 7
Device Control knobs will be sent.
-[CLIP/TRACK (1)], [DEVICE ON/OFF (2)], [ (3)], [ (4)] will be toggle style and will light its LED when
ON
-[DETAIL VIEW (5)], [REC QUANTIZATION (6)], [MIDI OVERDUB (7)], [METRONOME (8)] will be
momentary style and will light its LED when ON
-[SCENE LAUNCH] and [STOP ALL CLIPS] buttons are momentary buttons and will light its LED when
ON
-TRACK CONTROL buttons are toggle buttons and will light its LED when ON
-TRACK CONTROL KNOBS and buttons are NOT banked in any way
-[PLAY], [STOP], [RECORD], [UP], [DOWN], [LEFT], [RIGHT], [SHIFT], [NUDGE+], [NUDGE-], [TAP
TEMPO] are momentary buttons
-LED rings are all set to SINGLE style

Notes Regarding Ableton Live Mode (Mode 1):
- All buttons are momentary buttons
- Device control knobs and buttons are not banked within the APC40
- LED Rings around the knobs are controlled by the APC40 but can be updated by the Host
- All other LEDs are controlled by the Host

Notes Regarding Alternate Ableton Live Mode (Mode 2):
- All buttons are momentary buttons
- Device control knobs and buttons are not banked within the APC40
- All LEDs are controlled by the Host

So These 3 states are controlled internally on the APC by SYS EX message sent by LIVE or not.

I have successfully created 2 buttons on the APC to send these strings back to the APC and thus change it's state internally with very little code involved. This then acts to prevent live from listening to anything that is controlled by the Banks internally held by the APC, and thus knobs twist in Traktor but not in Ableton, i then switch back to ableton and they perform as normal except Traktor also hears this state as it is also on Midi Channel 1. The String relevant is F0 47 00 73 60 00 04 40 08 02 05 F7

40 in bold represents the APC State in this case should be State 0 = Banks (can have value of 41 or 42)
and the 08 02 05 are the version number of Live you are using in Hex i am on 8.2.5 change as you will (this did still work for me when it was set to 8.1.1 but i have changed it since i understood it's meaning)

basically so you understand i have this function on both the note on and note off separately for the buttons i use, i use 2 seperate buttons for this namely the Track 7 Solo/Cue (ableton) and Activator (Traktor) buttons

Testing sys ex.bmtp is simply this button setup only, so you may see how it works it can be easily merged to your own projects as it contains nothing that blanks or otherwise only the commands associated with those buttons, no shift modifier is required and LED feedback works between button swaps. it isn't clean as when ableton preset is selected Solo/Cue is also pushed for Track 7 in ableton and cannot be deselected without 1st reselecting traktor and then back again.
The other strange behaviour is that the Sys EX code is reversed for some reason and i had to rename the translators and presets accordingly so i did not get confused but if you look at the output strings 40 Ableton and 41 is Banks for Traktor? i do not know why but it works provided you get the handshake.

Testing Sysex global blank.bmtp is where i am at now with this where i have blanked Channel's 1-9 all LED's and messages inside the Traktor preset when this is activated if you have a full matrix of lights in ableton then pushing one button per row of buttons will turn off all lights in that row, also no midi will go to ableton nor traktor. then by selecting ableton preset and then hitting the Shift key to get it to send it's Sys EX data ableton will re-populate the matrix for you.

IF anyone knows this Sys EX string sent by Shift then i can send that from the ableton preset button and always return to LED feedback. Here is why i said at the beginning understand that Sys EX is your friend and abuse it's uses for less code headache.

The other thing i'm struggling with at the moment is the not isolating of the midi cables for traktor and ableton. i'm guessing i'm going down the right road here but i'd much rather use global commands than individuals so i think correct me if i'm wrong... i have blanked all CHannel 1-9 note cammands and LEDs on 'Preset default midi ports' but it stops both channels, have i messed up by sending to and from APC for the preset?

And to clear up the Track Selection messages as i can switch between APC modes, in Mode 0 (just turned on) the Track Selections send a number of CC values on their respective Channels so Track select 1 is B0 and 2 is B1 and so forth. The 2nd byte is the CC that they are affecting from 17 down to 10 in Hex, or CC23 to 16 (your 8 knobs). The Led ring then is the 3rd byte and the channels 1-9 (master) velocities based on what is actually stored inside the APC and therefore whatever Traktor would have been left at in my case.

In MODES 1 & 2 only a simple note on and off message is sent by the APC so inside ableton with handshake active and no SYS EX to tell APC to be in MODE 0 then for traktor all you get is Note on/off messages to use and thus you have to write banks and blank cc messages and log the values of your LEDs and update them for the use of the Track selection buttons in Traktor.

i propose that you could by this then make the top 8 knobs also fall into the bank selection mode with Bomes by adding the B0-B8 suffix for CC's of the Track Control knobs under MODE 0.
Attachments
testing sys ex global blank.bmtp
(7.53 KiB) Downloaded 475 times
testing sys ex.bmtp
(2.91 KiB) Downloaded 446 times

Post Reply
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable