Topics

Conflict with controllers in Ableton? FCB1010 midi mapping works then fails

Len Brown
 

I have several things going on. I am working with Ableton Live 9 suite. I have an MPC40 Mk 2, and MPD218 and a MPK mini in addition to the FCB1010.
1.  I am using the FCB1020 script because I am unable to run the FCB1010 script except in adminstrrator mode.  Is there anyway to make FCB1010 script available in live in non administrator mode? Can I just choose no script to make the FCB1010 do only what I set up?
2.  I set up the FCB1010 to send midi notes for each pedal.  Start Ableton Live.  I mapped pedal 6 to arm track 1, pedal 1 to launch clip #1 in track one. I push pedal 6 to arm, then pedal 1 to launch the clip.  Clip records.  I am not recording anything yet, just trying to get the commands working properly first.  After that I am unable to turn off the arm button on the track.  The midi track recorded  has note 127 at the beginning of the track.  I am also unable to stop the clip from playing except to delete it.  Mouse will not stop the overall app from playing, so Ableton just keeps playing.  Pedals no longer do anything in Live.  
3.  Once I send commands from FCB1010 to Ableton the APC 40 goes haywire, lights up different buttons in a strange way and does not work.

I would like to use button 6 to arm a track, button 1 to start recording a clip, and do the same thing with the other tracks build clips in a scene.
Any ideas on where to start?

Thanks
Len

chrisw_63
 

The FCB1020 script is purportedly an APC40 Emulator.  I've never used it, but from the Readme on Github, it does exactly what it says.  It sends commands to Ableton emulating and APC40.  So, yeah, it would Definitely mess up the hardware APC40 (Guessing that 'MPC40' was a typo.  Akai's naming scheme leaves a bit to be desired, but there is no MPC40).  And then you programmed the FCB1010 to send notes.  And then mapped those MIDI notes.  Wow....

The FCB1010 works fine with Ableton Live without a script.  In order for the script to work correctly, the FCB1010 has to send a specific set of MIDI commands that the script then translates to... something.  The README in the GitHub package details how to send the SYSEX for those MIDI commands to the FCB1010.  If you then program the FCB1010 to send something else:
  • The script might not be getting what it expects any more.
  • Unless you know exactly what the script does, you don't know how the MIDI you programmed into the FCB is going to affect the script.
  • The FCB1010 can send one note, two CC messages, and five PC messages for each button press.  Between the script and your custom programming/mapping, it could be trying to do several things at the same time, possibly (probably, from your description) interfering with each other AND sending who knows what to the actual APC40.

This is bound to give even FCB1010 pros a headache!!!  My advice:  Drop the script.  Yes, if you know Python, Ableton scripting, and that script, you could probably get them to coexist.  But it'll be a lot of work.  If you really feel you need that, have fun.  But there's a lot the FCB1010 can do without a special script.  I urge you to give that a try and see if it fills your needs.

Stephen Hannah
 

I was finding a lot of these same issues until I bought a new midi interface (which fixed everything). Which midi interface are you using? I got the the mio, and it works soooo well!

Also use https://www.midimonitor.com/ (using Chrome browser) to see what midi messages are being sent. I imagine you're getting a lot of junk from the midi interface and that's why Ableton is being weird. 

Best,
Stephen

On Mon, Mar 30, 2020 at 6:19 AM chrisw_63 <chrisw_63@...> wrote:
The FCB1020 script is purportedly an APC40 Emulator.  I've never used it, but from the Readme on Github, it does exactly what it says.  It sends commands to Ableton emulating and APC40.  So, yeah, it would Definitely mess up the hardware APC40 (Guessing that 'MPC40' was a typo.  Akai's naming scheme leaves a bit to be desired, but there is no MPC40).  And then you programmed the FCB1010 to send notes.  And then mapped those MIDI notes.  Wow....

The FCB1010 works fine with Ableton Live without a script.  In order for the script to work correctly, the FCB1010 has to send a specific set of MIDI commands that the script then translates to... something.  The README in the GitHub package details how to send the SYSEX for those MIDI commands to the FCB1010.  If you then program the FCB1010 to send something else:
  • The script might not be getting what it expects any more.
  • Unless you know exactly what the script does, you don't know how the MIDI you programmed into the FCB is going to affect the script.
  • The FCB1010 can send one note, two CC messages, and five PC messages for each button press.  Between the script and your custom programming/mapping, it could be trying to do several things at the same time, possibly (probably, from your description) interfering with each other AND sending who knows what to the actual APC40.

This is bound to give even FCB1010 pros a headache!!!  My advice:  Drop the script.  Yes, if you know Python, Ableton scripting, and that script, you could probably get them to coexist.  But it'll be a lot of work.  If you really feel you need that, have fun.  But there's a lot the FCB1010 can do without a special script.  I urge you to give that a try and see if it fills your needs.

Len Brown
 

Thanks for the replies.  I decided to drop the script. As to the cable I am using a Midisport Uno that came with the FCB that I bought used. So I have no script loaded in Ableton only the in and out for Midisport Uno enabled for track and remote.  I disconnected the APC40 (not MPC40!) and mapped FCB pedal one to the record button on track one and mapped pedal 2 to the clip transport button that is only visible in midi map mode in Ableton.  Pedal one toggles the record button just fine.  I arm record with pedal one, push pedal two to record and get the behavior above in Ableton (unable to to stop the clip, FCB commands do nothing) I then went to the midi monitor website and pushed pedal one on the FCB.  The result is attached. In the FCB editor(pic attached) I only have a note being sent from the FCB yet I am getting a double entry in the midi monitor.  I then connected the APC40 and opened the midi monitor and noticed when I use the APC40 to arm track one to record I only get one entry in the midi monitor.  Any ideas or comments are greatly appreciated!


Thanks,



Len

EJ SHELDON
 
Edited

In the attached screenshots, note that the first pair of NOTE messages are from the FCB, and the second pair from my APC mini.
Note the VELOCITY.
For the FCB pair MIDI MONITOR reports:
NOTE ON = 100
NOTE OFF = 64

MIDIOX reports:
NOTE ON = 100
NOTE OFF = 0

For the APC pair MIDI MONITOR reports:

NOTE ON = 127
NOTE OFF = 127

MIDIOX reports:
NOTE ON = 127
NOTE OFF = 127

Therein lies the problem, and there's no way I know of to change the NOTE OFF VELOCITY in the FCB.

The solution is to forget NOTEs and use CCs.
In the attached sysex FCB Presets 1-10 are set to CC#s which send VALUE = 127.

They mapped correctly and toggled everything I tried.




EJ SHELDON
 

Sorry, I sent the test sysex, which sends a bunch of stuff you don't need. Here's a cleaner version.

ossandust
 

This appears to be a bug in this Midi monitor. The FCB1010 doesn't send NoteOff MIDI messages at all. Instead it sends a NoteOn message with velocity 0, which according to the MIDI spec is a valid (and even preferred) alternative for a NoteOff message. It is a known issue that several software applications which use NoteOn messages for something else than playing notes forgot about this part of the MIDI spec, and incorrectly treat this type of NoteOff as a NoteOn.

Len Brown
 

Thanks for the responses EJ and ossandust.  And thanks EJ for going to the trouble of creating the sysex file and posting.  So I downloaded MidiOX to monitor.  I loaded up EJ's sysex into the FCB. Opened MidiOX to monitor. When MidiOX is running alone I get the expected CC messages from the FCB. Open Ableton.  Mapped button 6 to toggle record, button 1 to the clip controller. Push button 6 to arm the track, Push button 2 to launch and record a new clip.  Clip records then I get the same bad behavior in Ableton as before.  Go to MidiOX and the monitor is scrolling endlessly with command after command.  Attached is a screen shot of Ableton's midi set up and mapping. Also attached is a Midi Ox screen shot with four lines which is what I get pushing pedal 6 and 1 with Ableton running.  The second MidiOX screen shot with two lines is what I get pushing pedal 6 and 1 after I closed down Ableton.  Looks like Ableton is not processing the commands properly? 

EJ SHELDON
 

TWO MIDI Monitors both report NOTE OFF from the FCB. One reports a VALUE of 64, the other reports 0.
Both report NOTE ON 127/NOTE OFF 127 from the APC mini, which is designed to work with Ableton.

I have no clue if the APC is sending NOTE OFF or just a NOTE ON with VALUE of 127.

So, I have two questions:

According to the UNO 1.0.2f docs (hope I read them right) the NOTE ON VALUE can be set GLOBALLY. 
I followed the directions and set it to 127 on the board. That change is reflected in ControlCenter.

ControlCenter's MIDI Monitor reports:
NOTE ON = 127
NOTE ON = 0
????????????????????????????

Second question - AFAIK, MIDIOX is the BEST! If I can't trust it to know the difference between NOTE ON and NOTE OFF, is there a proper general purpose MIDI Utility that YOU recommend which tells the truth?

Also, is there a Plugin that speaks truth - I'm using MIDI Monitor from Insert Plz Here.

Thanks!

EJ SHELDON
 

Here's my Ableton configuration.
Pedals 1-5 control the clips.
Pedals 6-8 control the Transport.
My APC mini reflects the FCB commands.

MIDIOX can be confused by having certain devices combined with certain others, usually if they're daisy chained. My eDrums will do this.
Here's the MIDI Monitor Plugin I use, eliminates the need for MIDIOX and that way too simplistic web app.

Jack Fenton
 

APC Mini sends note off with value of 127

80 nn 7f

EJ SHELDON
 

On Wed, Apr 1, 2020 at 12:58 PM, <jack_fenton@...> wrote:
APC Mini sends note off with value of 127

80 nn 7f

BUT...per ossandust's reply above, is it truly  NOTE OFF/127, or NOTE ON/127? 
And what does Ableton require - NOTE OFF/127 and/or NOTE ON/127?
And what does it matter (in the context of this thread) if the FCB can't be made to do either?
No, we're not going to use BOME. :-)

Seems like the only solution which will for sure work with the FCB and Ableton is to use CCs.

I asked ossandust above which MIDI Monitor, if not MIDIOX, tells the truth, and how to be sure?
Do you know of such a program, preferably that will run on PC?

ossandust
 

I tested it. MIDI-OX tells exactly what it is receiving. When it's a NoteOn with velocity 0 it names it "NoteOff" and colors it as a NoteOff, but still showing the exact values which were sent, so you can perfectly see the difference.
I sent :
NoteOn 100 127 ( = 90 64 7F)
NoteOff 100 127 ( = 80 64 7F)
NoteOn 100 0 ( = 90 64 00)

EJ SHELDON
 

On Wed, Apr 1, 2020 at 03:54 PM, ossandust wrote:
I tested it. MIDI-OX tells exactly what it is receiving.
Which is what the screenshot I posted above showed. But you're saying that the FCB sends on NOTE ON (what ControlCenter reports), and MIDIOX shows NOTE OFF when it's actually a NOTE ON, which means that even if it's reporting the VELOCITY accurately, it's NOT reporting exactly what it sees, or it would report NOTE ON, NOT NOTE OFF.

See what I'm getting at? ControlCenter reports correctly, which is great for the FCB, but IF there's a MIDI Utility which reports correctly, it would be nice to have it.

Truth is, it's never mattered before, and since Ableton will accept CCs, it doesn't REALLY matter now.
I just think that it would be nice to know what's REALLY coming out of a given device. Is it is, or is it not?
I'm just weird that way. :-)

chrisw_63
 

Apologies if you know this already:  Note messges from the FCB1010 will send a Note On with the velocity you set when you press the foot switch, and a Note Off (zero velocity version) when you release it.  If you use a Note message to control something in Ableton Live, it knows to eat both the Note On and Note Off so they won't do anything odd.  So the two Note messages with velocity 127 (Hex 7F), and velocity 0 are the FCB1010 working as intended.  I've used it for the Play and Stop buttons, and the hidden All Stop button you mentioned, and all worked fine.  If it doesn't work for you, changing it to use a CC message will work as well.

Second:  The FCB1010 interface (your MIDISPORT) does NOT need to be in the top section of the MIDI settings window. Please remove it (and, if you need proof, see EJSHELDON's MIDI window a couple messages down from yours).  That could be the cause of the problem you're having - I kinda doubt it, but it's an easy thing to try.  Only controllers that need scripts go in that top section.

Jack Fenton
 

The APC MINI will respond with colors to note-on messages only. Off color is note on with velocity of zero. But as you showed, when SENDING note off it sends velocity 127 (7FH).

If you need to convert messages, you might need a piece of software like Bome MIDI Translator. I use it a lot for many of my controllers and applications.

ossandust
 

As all MIDI-OX screenshots show, you know exactly what's really coming out of a given device by looking at the status/data1/data2 values in the MIDI-OX monitor screen. Apparently you are confused by the fact that MIDI-OX calls the "90 xx 00" messages "Note Off", while the status message is 90, not 80, but still that is correct. The only error I see is in the Midi Monitor plugin screenshot, which shows an incorrect velocity value of 64 for the "90 01 00" message.

EJ SHELDON
 

On Thu, Apr 2, 2020 at 01:13 AM, ossandust wrote:
As all MIDI-OX screenshots show, you know exactly what's really coming out of a given device by looking at the status/data1/data2 values in the MIDI-OX monitor screen. Apparently you are confused by the fact that MIDI-OX calls the "90 xx 00" messages "Note Off", while the status message is 90, not 80, but still that is correct. The only error I see is in the Midi Monitor plugin screenshot, which shows an incorrect velocity value of 64 for the "90 01 00" message.
OK, you're getting a bit beyond me now. I don't speak HEX. Are you saying that in MIDIOX, the HEX message correctly shows NOTE ON while the translation shows NOTE OFF, and HEX also shows a correct VELOCITY value of 0 while the translation shows an incorrect value of 64? That would be two bugs in a utility that will, unfortunately, never be updated.

The very foundations of my MIDI belief system are shaken! :-)

As always, thanks for taking the time to reply. Your knowledge of this arcane subject is always enlightening! 

As it was the only one of the three MIDI monitors that I used when tracking down this problem that reported correctly, I don't suppose there's any chance that you might take the MIDI Monitor part of ControlCenter and release it as a general purpose standalone utility?

ossandust
 

On Thu, Apr 2, 2020 at 03:00 PM, EJ SHELDON wrote:
Are you saying that in MIDIOX, the HEX message correctly shows NOTE ON while the translation shows NOTE OFF, and HEX also shows a correct VELOCITY value of 0 while the translation shows an incorrect value of 64?
Hi EJ,

indeed, the HEX messages shown in MIDI-OX are correct, there are no bugs. It's not difficult to speak HEX, and it's good to learn those details if you want to monitor MIDI messages, MIDI-OX is the perfect tool for that : 
there's an overview table of all MIDI status messages here : https://www.cs.cmu.edu/~music/cmsip/readings/davids-midi-spec.htm 
NoteOn = 0x90 , NoteOff = 0x80, ControlChange = 0xB0, ProgChange = 0xC0   (0x... means HEX)
The lowest number of the status message byte contains the MIDI channel, which can go from 0x00 to 0x0F  (= 0 to 15), therefore a NoteOn status message can be 0x90 (for MIDI channel 1) to 0x9F (for MIDI channel 16)
NoteOn and NoteOff are 3-byte messages (status, data1 = NoteNumber, data2 = velocity). The date values are between 0 and 127, or 0x00 and 0x7F in HEX.
That's what you see in the MIDI-OX screenshot I posted :
90 64 7F = NoteOn notenumber 100 Velocity 127  (0x64 HEX = 6 x 16 + 4 = 100 decimal) 
80 64 7F = NoteOff notenumber 100 Velocity 127
90 64 00 = NoteOn notenumber 100 Velocity 0, which is correctly "translated" by MIDI-OX as a NoteOff event. 
Your MIDI-OX screenshot shows the same thing, but in decimal : 
144 1 100 = NoteOn notenumber 1 velocity 100
144 1 0 = NoteOn notenumber 1 velocity 0, correctly translated to "NoteOff"
144 56 127 = NoteOn notenumber 56 velocity 127
128 56 127 = NoteOff notenumber 56 velocity 127
The incorrect value of 64 is not in the MIDI-OX screenshot, but in the Ableton MIDI monitor. Since the alternative NoteOff representation uses "velocity=0" to determine that it's a NoteOff, there is no actual key velocity available, and Ableton just displays a random "64" value. (the value is not relevant, I think not many synths take into account how fast you raise your fingers from the keyboard...)

Some more side info about these alternative NoteOff representations :  MIDI1.0 dates from the eighties, where bandwidth was much more of an issue than today. Therefore the MIDI spec added the concept of "running status" in order to decrease the serial data traffic where possible : when sending a large number of MIDI messages of the same type on the same channel (= same status message), it is not necessary to add the status byte to each message. When the status byte is missing, the receiver will just reuse the last status byte it received. This is typically used for expression pedals or pitchbend wheels, which indeed send a continuous stream of messages with varying value but identical status message. The number of transmitted bytes is decreased with 33% by using the "running status" concept. In order to have the same advantage when playing a synth, it was possible (and preferred) to use "NoteOn velocity 0" messages on key release, instead of real "NoteOff" messages. This way you got a message stream with identical status messages and the "running status" system could do its job.  Of course all this is completely irrelevant nowadays, but that's where it comes from.  
I happen to know all about Running Status because you need to take this into account when merging 2 MIDI streams (re-insert the missing status bytes where needed). Behringer failed to do that correctly in the FCB1010, resulting in lots of hanging notes when you route a synth through the MIDI IN of the FCB1010. This bug was the trigger for me to start working on the UnO firmware, since Behringer customer support just suggested me to buy an external MIDI merge device to solve the issue. 

EJ SHELDON
 

On Thu, Apr 2, 2020 at 09:53 AM, ossandust wrote:
It's not difficult to speak HEX, and it's good to learn those details if you want to monitor MIDI messages,

OK, I accepted the challenge and looked up how to speak HEX (math was not my favorite subject in school).
Thanks. Now I have a headache.
But I can speak HEX!
On this dismal, rainy Denver Coronavirus lockdown day I learned something!

Now I'll play my guitar.

Thanks again!