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


Todd Marshall
 

from the peanut gallery: My compliments for your reply to this message.

/Todd

On 4/2/2020 10:53 AM, ossandust wrote:
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. 


Jack Fenton
 

The MIDI Spec allows for the following forms of Note-Off. Technically they are all Note-Off message, These are all represented in HEX.

9x nn 00 
8x nn vv

nn is the note number and vv=value The x is the MIDI channel number -1. so MIDI channel 1 note off 1 velocity 0 would be:

90 nn 00
or
80 nn 00





Ableton Live I believe prefers only:

9x nn 00
8x nn 00

Unless progrrammed differently in a MIDI remote script (which is what is done  for the APC MINI which sends 8x nn 7F.

If Ableton Live does not allow for what you are sending (I believe FCB 1010 sends the first form) you can write a script as was done with the APC MINI.
There is a site 

http://www.remotify.io

that you can use to write simple MIDI remote scripts for Ableton Live.





EJ SHELDON
 

On Fri, Apr 3, 2020 at 09:52 AM, <jack_fenton@...> wrote:
Ableton Live I believe prefers only:

9x nn 00
8x nn 00

Unless progrrammed differently in a MIDI remote script (which is what is done  for the APC MINI which sends 8x nn 7F.

If Ableton Live does not allow for what you are sending (I believe FCB 1010 sends the first form) you can write a script as was done with the APC MINI.
There is a site 

http://www.remotify.io

that you can use to write simple MIDI remote scripts for Ableton Live.

Now that I've spent some time on this, I've managed to get it all working with NOTES from the FCB. Changing the FCB's GLOBAL NOTE ON VELOCITY setting to 127 seems to have helped.


Len Brown
 

So this thread went above my head a few posts ago.  But I am still left with the same problem:

 

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 to build clips in a scene.

 

Can anyone help? 

 

 

Thanks,

 

Len

 

 

From: main@fcb1010.groups.io <main@fcb1010.groups.io> On Behalf Of EJ SHELDON
Sent: Friday, April 3, 2020 1:07 PM
To: main@fcb1010.groups.io
Subject: Re: [fcb1010] Conflict with controllers in Ableton? FCB1010 midi mapping works then fails

 

On Fri, Apr 3, 2020 at 09:52 AM, <jack_fenton@...> wrote:

Ableton Live I believe prefers only:

9x nn 00
8x nn 00

Unless progrrammed differently in a MIDI remote script (which is what is done  for the APC MINI which sends 8x nn 7F.

If Ableton Live does not allow for what you are sending (I believe FCB 1010 sends the first form) you can write a script as was done with the APC MINI.
There is a site 

http://www.remotify.io

that you can use to write simple MIDI remote scripts for Ableton Live.


Now that I've spent some time on this, I've managed to get it all working with NOTES from the FCB. Changing the FCB's GLOBAL NOTE ON VELOCITY setting to 127 seems to have helped.


EJ SHELDON
 

On Fri, Apr 3, 2020 at 05:32 PM, <lenbrowncce@...> wrote:

So this thread went above my head a few posts ago.  But I am still left with the same problem:

 

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 to build clips in a scene.

 

Can anyone help? 


This is how I'm using what I've learned so far:
 
Attached there's a sysex, a ControlCenter sysex, and screenshots of the sysex in ControlCenter and Ableton's MIDI configuration.
 
Here's how it works:
 
FCB Banks:
 
00 = Pedals 1-4 select Tracks 1-4 in Scene 1
01 = Pedals 1-4 select Tracks 5-8 in Scene 1
02 = Pedals 1-4 select Tracks 1-4 in Scene 2
03 = Pedals 1-4 select Tracks 5-8 in Scene 2
04 = Pedals 1-4 select Tracks 1-4 in Scene 3
05 = Pedals 1-4 select Tracks 5-8 in Scene 3
06 = Pedals 1-4 select Tracks 1-4 in Scene 4
07 = Pedals 1-4 select Tracks 5-8 in Scene 4
08 = Pedals 1-4 select Tracks 1-4 in Scene 5
09 = Pedals 1-4 select Tracks 5-8 in Scene 5
 
Pedals 1-4 select a Blank slot, or start playing a slot with a recorded clip.
Pedals 6-9 ARM whichever four tracks are active.
Pedal 5 Starts the active Scene, which will commence recording on whatever tracks are ARMed.
Pedal 5 (second press) Stops recording on ALL Clips and goes immediately into Playback mode.
Pedal 10 Stops everything.
.
 
Exp Pedal A is Master Volume.
 
The biggest drawbacks (to me) are:
 
Only 5 Scenes - 40 clips - accessible. I can work with that!
Starting a Scene starts the Transport, but Stopping All Clips does not stop it. It doesn't affect anything, it just runs on and on until you manually stop it. I use a Korg nanoKontrol2 for a control surface (along with my APC mini), so I just hit the STOP button on that, no mouse required.
 
The whole thing runs on NOTEs. The Notes I used roughly correspond to the Grid Buttons on my APC mini. No idea how that relates to your controller.
 
IMPORTANT! (maybe)
Go into the FCB GLOBAL Settings and set the NOTE ON Value to 127.
I've been hacking at this for two days, and I THINK the NOTEs started working properly when I set the Value to 127.
 
DIRECTIONS:
 
Go to a Blank Slot. For instance, Bank 03 Pedal 3 selects Track 7 Slot 2.
Arm the track - Pedal 8.
Start recording by pressing Pedal 6.
Stop Recording and immediately start playback by pressing Pedal 6 again.
Press Pedal 10 to Stop Everything.
 
Sounds complicated, but it's essentially what you asked for, just more. Print out these directions and you shouldn't have a problem.

This is a project I've been meaning to do for a long time, but looping was never a major thing for me. Mostly I use LIVE to load up a bunch of commercial clips that I like to jam to, then reaRoute the audio to Reaper, where I have all my instruments set up. Now that I've got this working it should be fun to fool around with!


 

 


ossandust
 

On Thu, Apr 2, 2020 at 03:00 PM, EJ SHELDON wrote:
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?
I have created a completely new ControlCenter for the future UnO2 firmware and TinyBox hardware. It has a MIDI monitor embedded, which is also available as a separate free download for Windows and Mac : 
https://github.com/ossandust/midi-monitor/ 


EJ SHELDON
 

Cool! Looking forward to it!