Topics

FCB1010 as Bass pedal

Josef Albert Meile
 
Edited

Hi

I have a PSR-9000 and my idea is to use the FCB1010 as Bass pedal. On the PSR-9000 I can setup finger mode to "Single Finger" on the PSR. In the easiest case, you need to send a note, which will produce a major chord. I tested this and got it working; however, with seventh chords you will have to send two keys: the root and its seventh. As far as I now, it is not possible to send two notes on the FCB1010 simultaneously.

By searching on the group messages, I found somebody suggesting the "Bome MIDI Translator" to pre-process the MIDI messages and send the required keys. For example: when receiving the note "G-1" you can then send "G-1, F-1" from the tanslator software, which represents the G7 chord. However, what would happen if you have both chords: G Major and G7 on the same score? This approach will obviously failed because you will be always sending the same key on G.

My idea is perhaps using an undefined controller, ie: Controler 03H, then using the values 0 until 127 and map them to chords. My main concern is if this will interfere with other devices or is really the controller 03H unused? I found this list:
https://www.midi.org/specifications-old/item/table-3-control-change-messages-data-bytes-2

and controller 03H appears with other controllers as undefined.

Is there perhaps any other way of doing this?

Best regards
Josef

Jack Fenton
 

Hi, as I understand it, you could set up Bome MIDI Translator to convert incoming CC's to outgoing notes. As long select the right MIDI devices for input and output, the CC's should not interfere. They have a free trial version if you want to give it a try before deciding on a purchase. The trial version times out every 20 minutes at which point needs to be restarted, but it should be easy to determine within a 20 minute period whether what you want will actually work.

Josef Albert Meile
 

Hi Jack

Yes, I know about that trial version and already had it. I was only concern about this controller messages interfering with another devices. Anyway, I rethink a little bit after having posted this message and I figured out that as soon as I set the controller messages to a MIDI channel that it is not been listened by the PSR-9000, then I guess this won't affect my setup. My keyboard has two midi ports (2 midi ins and 2 outs), so, I will use one of them for the messages coming from the FCB1010 and disable port 16, then send the "Note ON/OFF" events through another channel. This is possible and I have already done it.

I would like only to know how another people has solved this. Perhaps there is a simpler way than the one I'm thinking now.




On my case, I will use two controllers: #14 and #15 to be able to send the chords. I will use the full fingered mode of Yamaha since I also want to play the chords with my left hand too, so, single fingered is not enough for me and besides of that, this mode doesn't include all existing chords.

Controller 14 will be used to send status of the first 7 notes (C until F#), ie:
    |1|0|1|0|1|0|1| = 85 -> So, starting from right to left, we will have:
   
    bit 0 = C  = 1
    bit 1 = C# = 0
    bit 2 = D  = 1
    bit 3 = D# = 0
    bit 4 = E  = 1
    bit 5 = F  = 0
    bit 6 = F# = 1

which means that the notes: C, D, E, and F# must be sent. Controller 15 will be used to send the last 5 notes (G until B), ie:
    |0|0|1|0|0|0|1| = 17 -> So, starting from right to left, we will have:
   
    bit 7  = G  = 1
    bit 8  = G# = 0
    bit 9  = A  = 0
    bit 10 = A# = 0
    bit 11 = B  = 1
    bit 12 = 0
    bit 13 = 0
   
which means that notes: G and B must be sent. As you see, bits 12 and 13 will be always 0 (zero). I will use those last two bits to turn off all notes; I guess this is convenient in some cases.

So, at the end, I will send C, D, E, F#, G and B, which according to the manual of my keyboard is a CM7(#11) chord.

Best regards
Josef

Jack Fenton
 

Hi,
You should be able to set up Bome MIDI Translator Pro to route CC14 and CC15 only between the FCB1010 and Bome MIDI Translator and either swallow the messages for other devices or do other processing as necessary.  I would check the manuals to determine if anything else in your setup is using CC14 or CC15 and if so, find another pair of unused controllers to use.

I guess the question I have is that since FCB1010 has only 10 pedals (you cannot send messages with up and down pedal) you can send and there are 12 notes an octave, how do you handle the other 2.  What pedal press, sequences would you use to produce all of the combinations of major, minor, M7, m7, diminished etc? Would you be using bank switches to control this?  Just trying to wrap my head around it.  I've thought of doing something like this before but this is where I hit a roadblock (aside from the fact that the layout of the FCB1010 is not like a keyboard).

Steve Pettinger
 


On Sun, 17 Nov 2019, 12:57 Jack Fenton, <jackf@...> wrote:
Hi, as I understand it, you could set up Bome MIDI Translator to convert incoming CC's to outgoing notes. As long select the right MIDI devices for input and output, the CC's should not interfere. They have a free trial version if you want to give it a try before deciding on a purchase. The trial version times out every 20 minutes at which point needs to be restarted, but it should be easy to determine within a 20 minute period whether what you want will actually work.

Steve Pettinger
 

I have been wonder if there was a way to play chords via the fcb1010 as well. Would be very useful.

Steve


On Sun, 17 Nov 2019, 12:57 Jack Fenton, <jackf@...> wrote:
Hi, as I understand it, you could set up Bome MIDI Translator to convert incoming CC's to outgoing notes. As long select the right MIDI devices for input and output, the CC's should not interfere. They have a free trial version if you want to give it a try before deciding on a purchase. The trial version times out every 20 minutes at which point needs to be restarted, but it should be easy to determine within a 20 minute period whether what you want will actually work.

Josef Albert Meile
 
Edited

Hi

You should be able to set up Bome MIDI Translator Pro to route CC14 and CC15 only between the FCB1010 and Bome MIDI Translator and either swallow the messages for other devices or do other processing as necessary.  I would check the manuals to determine if anything else in your setup is using CC14 or CC15 and if so, find another pair of unused controllers to use.
I guess this is one of the minor problems I will have and it is easily solvable.

I guess the question I have is that since FCB1010 has only 10 pedals (you cannot send messages with up and down pedal) you can send and there are 12 notes an octave, how do you handle the other 2.
My idea is to program each pedal with two control change events. With such messages, you can send values between 0 and 127. If you represent 127 in binary, then you will have:
| 1 |1 |1| 1 |1 | 1 |1 |
|F#|F|E|D#|D|C#|C|

Those are seven bits, which can be mapped to seven notes: from C to F#. There other missing notes: from G to B can be sent with a second control change event. So can I handle the whole 12 notes. Then I could say for example that pedal one should send:

Channel 4, Note on, value 0 -> I intend to send this message so that the keyboard actually plays a note, which is the expected behavior on a real bass pedal. Channel 4 would be the left voice of my keyboard. I would also send it to channel 1 (right 1), 2 (right 2), or 3 (right 3) if I want to.

Channel 16, Controller Change 14, value: 85 =
| 1 |0|1 | 0 |1 | 0 |1 |
|F#|F|E|D#|D|C#|C|

Channel 16, Controller Change 15, value: 17 =
|0|0|1| 0 |0| 0  |1 |
|- |-|B|A#|A|G#|G|

So, if you translate it to note on events, then you will have to send notes: C, D, E, F#, G, and B, which is the chord: CM7(#11). I already did a small script that will translate that numbers to notes; now I have to integrate it with Bome Translator, which as far as I have read, should be possible.

Anyway, you mentioned another interesting thing here that I was also thinking: "sending messages with up and down pedal". I think that's the most difficult part of this matter. I'm not sure how I will handle this; I will need first to send some "note on" events, then their espective "note off". I'm still thinking how to solve this. Perhaps I will have somehow to save the previous sent notes (Bome Translator has some variables to do this) and when a new chord comes or after some time, then I will have to send the note offs from Bome Translator. This is indeed the most complicated part. Other way would be to know if the FCB1010 sends some kind of SysEx when releasing a pedal, then I can just catch that message.

What pedal press, sequences would you use to produce all of the combinations of major, minor, M7, m7, diminished etc?
For my keyboard, there is a clear description on the manual of which keys from the left voice will fire which chord. So, my idea is to program some pedals with the chords I need. i'm aware that I won't be able to handle all chords, but usually the scores I have, use at most 4 chords. Anyway, if you want, you can at most program 10 chords per bank and if you want, you can even program the other banks.

Would you be using bank switches to control this?
I guess, I will only program individual pedals with the chords I need. Switching between banks while playing would be really a big challenge for me, which I will avoid right now.

I've thought of doing something like this before but this is where I hit a roadblock (aside from the fact that the layout of the FCB1010 is not like a keyboard).

Yes, I'm also aware that the real bass pedals would be much easier to play since they look like a keyboard. Anyway, I guess I will have to do it with I have.


Anyway, the Bome Translator is just a temporary solution for me. My plan is to use this:

https://www.sparkfun.com/products/12898

which should be connected to an Arduino board. I have this one since a long time and I thought it would be nice to use it:

https://www.arduino.cc/en/Main/Arduino_BoardLeonardo


The reason for me for choosing the hardware solution instead of the "Bome Translator" is that I don't need to power on my laptop and have it next to me. I just have to connect a phone charger to the Arduino board and it will start working without me having to login or doing additional stuff.

Best regards

Josef

Jack Fenton
 

Thanks Jose,

I have a MIDI shield and do a bit of Arduino programming with it, however it is time consuming. Have you looked into BomeBox? I know it is quite a bit more expensive, however, you could take the project you create with Bome MIDI Translator Pro and transfer it to BomeBox for execution there (with out a computer). You DO need to also have Bome MIDI Translator Pro license as well however and not the trial copy or the project will not work on BomeBox.

The only way I've figured out to use the up and down pedals on the FCB1010 is to buy EurekaProm3 and then all pedals, LED's and displays would be programmable with Bome MIDI Translator Pro.
IO Mode is a really dumb mode so you would have to put all of the brains in the Bome (or Arduino), products. In IO, mode it doesn't send SysEX but sends unique CC for any pedal up/down and expression pedal movement. You can see what it sends by going to their website and looking at IO mode. It has a table of everything it sends and recieves.

I've also been experimenting of getting the Arduino to send RT-MIDI across to my Mac. If I get that working, I could then integrate it with other products that support RT-MIDI.  So far, I'm having issues getting my attached ESP8266 wireless shield working.  The IDEA is to have my MIDI Shield and ESP8266 shields both attached and send and recieve MIDI over the network from any attached MIDI DIN device.  I know iConnectiity can do this with their products but iConnectivity is also a more expensive solution (unless you count my time in trying to get the Arduino to do it).
.

Josef Albert Meile
 

Hi Jack

I have a MIDI shield and do a bit of Arduino programming with it, however it is time consuming. Have you looked into BomeBox? I know it is quite a bit more expensive, however, you could take the project you create with Bome MIDI Translator Pro and transfer it to BomeBox for execution there (with out a computer). You DO need to also have Bome MIDI Translator Pro license as well however and not the trial copy or the project will not work on BomeBox.

I haven't tried BomeBox: it looks good, but I think it is really expensive for my budget, so, I will first try the software solution with Bome Translate and if it works, then i will perhaps think about it.

The only way I've figured out to use the up and down pedals on the FCB1010 is to buy EurekaProm3 and then all pedals, LED's and displays would be programmable with Bome MIDI Translator Pro.
IO Mode is a really dumb mode so you would have to put all of the brains in the Bome (or Arduino), products. In IO, mode it doesn't send SysEX but sends unique CC for any pedal up/down and expression pedal movement. You can see what it sends by going to their website and looking at IO mode. It has a table of everything it sends and recieves.

I have heard also about the Eureka-Prom; however, I haven't done much trials with the pedal controller, so, first I will see if I get something and then I will consider this update, which seems to add more flexibility to the FCB1010

I've also been experimenting of getting the Arduino to send RT-MIDI across to my Mac. If I get that working, I could then integrate it with other products that support RT-MIDI.  So far, I'm having issues getting my attached ESP8266 wireless shield working.  The IDEA is to have my MIDI Shield and ESP8266 shields both attached and send and recieve MIDI over the network from any attached MIDI DIN device.  I know iConnectiity can do this with their products but iConnectivity is also a more expensive solution (unless you count my time in trying to get the Arduino to do it).
This sounds interesting.

Thanks for sharing your findings.

Best regards
Josef

chrisw_63
 

AFAIK, no one answered one of your original questions:  Is controller 03 really undefined?  The answer is, of course, yes, mostly.

TLDR: Whichever you use, test it and see if it has any undesired effects. You can always reset everything and change to a different controller number.  You only have to worry about YOUR MIDI setup.  Connections between different musicians gets really complicated really fast, and usually isn't done - at least in smaller setups.  So just research your gear, and you should be good.  If your stuff won't be connected to anyone else's, it can't interfere.  Use whatever works for you.

The fact is a lot of instrument and pedal manufacturers use non-standard MIDI implementations, and it can be hard to decipher their MIDI documentation, IF you can even find some.  Don't be afraid to call their tech support and ask direct questions.  They might be able to help you, and might not.  Maybe if they get enough calls they'll start paying attention to proper and easy to read MIDI documentation in their manuals (to those of you experienced in this field, don't laugh too hard).  If you can find the documentation, read it.  If it's hard to understand, just try to find any mention of the controller numbers you want to use.  Make sure to decipher whether they're talking in hexadecimal numbers or regular decimal. I really hate the ones that use hex for controller numbers and decimal for everything else.

From my admittedly limited experience (mostly helping others decipher those manuals), most non-standard stuff sticks to the lower undefined controller numbers, before the 20-31 range.  I usually stick to that higher range, mostly because it's sequential and easy to remember the numbers, but also because I've never seen any pedals or effects boxes that use them.  But like I said, if all you're using MIDI for is the PSR-9000, just pick one and go.  Oh, and one thing I've found really valuable - Write It Down.  Print it out.  Tape it to the box.  Nothing like adding gear down the line and having to use MIDI-OX or something similar to figure out which controllers and/or channels you set up three years ago.  That gets old fast.

chrisw_63
 

I agree.  Much easier to pick a CC#, send individual notes using it's Data.  If different CC's are really needed, 20-31 are enough for most scales (eight notes), and you can just transpose them to the scale you're using.  Personally, I'd use a transpose setup anyway, even with a single CC# - cuts down on remembering which pedal is which.

chrisw_63
 

On 11/17/2019 9:59 AM, Steve Pettinger wrote:
I have been wonder if there was a way to play chords via the fcb1010
as well. Would be very useful.
You would definitely need something like the Bome MIDI Translator, or a
DAW on a computer.  I made a setup with Ableton Live once that let you
play chords in any key just using the white keys, as if you were in the
key of C (or A minor, if it's a minor key).  Not only could you
transpose to any key, you could set the starting octave and how many
octaves you wanted to repeat the chord in.  Simple triad chords, but it
was easy to do.    It also had a Max4Live effect that found the lowest
note and sent that to a Bass channel. It was clunky, kinda sounded like
a toy Casio from the 70's with better audio, but it was fun to play with.

Josef Albert Meile
 

Thanks chrisw_63 for your answers

Anyway, I guess that if I only connect the FCB1010 to my computer, which will do the postprocess and send the notes to the keyboard, then I shouldn't have any problem with the compatibility. I have an Emagic Unitor 8, so, I can route the devices easily.

Regarding Bome Translator: yes, that's the setup I'm testing now. The closest I got without using anything was sending "Note" messages; the keyboard detected the chords, but unfortunately this will only work for Mayor chords :-(

Best regards

Josef

 

chrisw_63
 



On 11/19/2019 11:05 AM, Josef Albert Meile wrote:

Thanks chrisw_63 for your answers

Anyway, I guess that if I only connect the FCB1010 to my computer, which will do the postprocess and send the notes to the keyboard, then I shouldn't have any problem with the compatibility. I have an Emagic Unitor 8, so, I can route the devices easily.

Regarding Bome Translator: yes, that's the setup I'm testing now. The closest I got without using anything was sending "Note" messages; the keyboard detected the chords, but unfortunately this will only work for Mayor chords :-(

Best regards

Josef

 

chrisw_63
 

With the Translator you should be able to send any chord you want.  Maybe set up the lower tier foot switches with the regular triads and the upper tier with the modified ones?  For instance, in many songs the fifth chord sometimes has a seventh added, so for the key of C, you could have G on footswitch 5 and G7 on footswitch 10.  Another option would be to set some of them as 'modifiers', so if you turn on the sus4 modifier, all the chords you play would be sus4.  You'd have to have REALLY fast feet though, and I'm not sure I'd want to be the one to program it. 

On 11/19/2019 11:05 AM, Josef Albert Meile wrote:

Thanks chrisw_63 for your answers

Anyway, I guess that if I only connect the FCB1010 to my computer, which will do the postprocess and send the notes to the keyboard, then I shouldn't have any problem with the compatibility. I have an Emagic Unitor 8, so, I can route the devices easily.

Regarding Bome Translator: yes, that's the setup I'm testing now. The closest I got without using anything was sending "Note" messages; the keyboard detected the chords, but unfortunately this will only work for Mayor chords :-(

Best regards

Josef

 

John Abrams
 

If you have a computer, why not try https://www.jamorigin.com/products/midi-bass/  They give a free trial.  I've gotten rid of all my midi hardware except for the pedals which I hook up directly to the PC. 

On 11/19/2019 8:05 AM, Josef Albert Meile wrote:

Thanks chrisw_63 for your answers

Anyway, I guess that if I only connect the FCB1010 to my computer, which will do the postprocess and send the notes to the keyboard, then I shouldn't have any problem with the compatibility. I have an Emagic Unitor 8, so, I can route the devices easily.

Regarding Bome Translator: yes, that's the setup I'm testing now. The closest I got without using anything was sending "Note" messages; the keyboard detected the chords, but unfortunately this will only work for Mayor chords :-(

Best regards

Josef

 

violet_quartet
 

Hi all, thank you for all the effort to let this group live further.

I don’t use my fcb1010 that much anymore, instead the KMI pedal, which is much lighter. It’s sturdy enough for the locations I play…

But still like the fcb with it’s 2 pedals and flexibility. And this group J !

 

One idea though for midi routing without PC or Mac: The midi hub https://blokas.io/midihub/ is a box for midi routing, processing and translation. It can be tweaked with an editor software and then works standalone. It’s seems to be unavailable at the moment, just to let you know … I ordered one with their campaign – I don’t trust my old notebook for concert use.

 

Also their MOD Duo emulation on Raspberry PI looks interesting as a virtual FX board. https://blokas.io/modep/

Maybe this inspires someone from the no-PC fraction….

 

 

Von: main@fcb1010.groups.io [mailto:main@fcb1010.groups.io] Im Auftrag von John Abrams
Gesendet: Dienstag, 19. November 2019 19:45
An: main@fcb1010.groups.io
Betreff: Re: [fcb1010] FCB1010 as Bass pedal

 

If you have a computer, why not try https://www.jamorigin.com/products/midi-bass/  They give a free trial.  I've gotten rid of all my midi hardware except for the pedals which I hook up directly to the PC. 

On 11/19/2019 8:05 AM, Josef Albert Meile wrote:

Thanks chrisw_63 for your answers

Anyway, I guess that if I only connect the FCB1010 to my computer, which will do the postprocess and send the notes to the keyboard, then I shouldn't have any problem with the compatibility. I have an Emagic Unitor 8, so, I can route the devices easily.

Regarding Bome Translator: yes, that's the setup I'm testing now. The closest I got without using anything was sending "Note" messages; the keyboard detected the chords, but unfortunately this will only work for Mayor chords :-(

Best regards

Josef

 

 

Josef Albert Meile
 
Edited

Dear all

thanks for all your suggestions. Some of them look interesting, but they are somehow expensive. So, I kept going on my approach with Bome Translator.

So, here I'm sending you the first draft of my translator. I haven't tested it yet, but I will do it soon. At first, I will test it without the FCB1010 as follows:
  1. Start the "Bome MIDI Translator PRO"
  2. Start the "Bome SendSX" software, a software for sending SysEx, then setup the MIDI Out to: "Bome MIDI Translator 1 Virtual Out" and Midi IN to "none"
  3. Start a sequencer software. In my case, I'm using "Yamaha XGWorks". Setup MIDI IN to: "Bome MIDI Translator 1" and disable MIDI OUT.
  4. Inside your sequencer, create a MIDI track on the MIDI channel you plan to use for the controller messages and then open the staff view and start recording
  5. Send the controllers and note messages from "Bome SendSX". The first message should be "FA" (Start)
If I get the chords as expected, then I will try the FCB1010.

If you want to try it, be aware that it may not work. Some stop conditions aren't yet defined.

Here is the hardware setup I'm planning to use:
  1. Route the FCB1010 MIDI Out directly to your computer either via USB cable or a MIDI switch. I have the Emagic Unitior8. So, the FCB1010 out, an USB cable (MIDI IN/OUT) that goes to my PC, and my keyboard (MIDI IN) are connected there.
  2. Route the MIDI Out of your USB MIDI cable to your keyboard MIDI IN. You can just connect directly your USB MIDI cable to the keyboard.
  3. On each Translator catching MIDI messages setup the incoming port of your MIDI Cable, on my case it is M-Audio UNO IN.
  4. On each Translator sending MIDI messages setup the outgoing port of your MIDI Cable.
  5. On the global configuration of the FCB1010, set the MIDI channel for CNT 1, CNT 2, and NOTE to the one you want to use in your keyboard. On my case, I will use channel 4 (Left voice). Alternatively, if you wish, you can just leave the global configuration as it is and setup the MIDI channel for all MIDI Out messages inside the MIDI Translator
  6. For each pedal of your FBC1010 setup this messages: CNT 1, CNT 2, and NOTE. The first two controller messages contain the statuses of your keys (see my previous messages); here I will use controllers 13 and 14, so, if you want to change them, then you will have to adjust the "Bome Translator" file. The note message is just the root note of your chord.

Now you are ready to go.

First at all, you should now that all messages are sent on this order by the FCB1010: PC1 PC2 PC3 PC4 CC1 CC2 PC5 NOTE ON AND OFF, see:
https://fcb1010.groups.io/g/main/message/27965?p=,,,20,0,0,0::relevance,,posterid%3A2705325+order,20,2,0,43081405



Forget about the following lines talking about the Bome Translator. I figured out that the logic of my solution was good, but the implementation was bad. Bome Translator has a nice feature called timers, which will save me to set a lot of unnecessary global variables

So, here how my translator is supposed to work:
  • Translators [0] and [1]: 17 global variables will be initialized when you click "Start or Stop rhythm" on your keyboard. Here I have two for the controller messages, one for the send note, one for its velocity, and one for its MIDI channel. All of them will be set to -1. Then the rest (12 in total) will be the notes of the chord I want to send. They will be set to 0 (zero)
  • Translator [2]: Catch CNT 1 message and set its value to a global variable. Then through Bitwise operations extract all the note statuses from C to F#
  • Translator [3]: Catch CNT 2 message and set its value to a global variable. Then through Bitwise operations extract all the note statuses from G to B
  • Translator [4]: Catch the Note On message and set the received note, its velocity, and MIDI channel to global variables
  • Translators [5] until [16]: for each note status check the following is true before sending them:
    • The CNT 1, CNT 2, note velocity, MIDI Channel, and note status values should be greater than 0 (zero)
    • The note status should be equal to 1, which means that it will be sent
  • If the previous conditions are true, then set the note status to 2 and send the respective Note On, event, ie: C, C#, D, etc. Note: setting the value to 2, will avoid sending the note on multiple times.
  • Translator [17]: Catch the Note Off message.
    • Here I will use the global variables for note and MIDI channel to make sure that it is the same note that was previously sent.
    • Then I will increase by 1 all note statuses. This will prevent that the note off are not sent several times.
  • Translators [18] until [29]: here I will sent each note status only if:
    • The note MIDI Channel, and velocity values are not -1
    • The note status is equal to 3
    • After having done this, the note status will be set to 0 (zero) and the CNT values to -1
    • Finally the note off will be sent

I will try this perhaps during the weekend.

I'm not a Bome Translator expert, so, I guess there are some things that could be done different. For example, I would like to know if it is possible to initialize global variables without having to catch a MIDI message. It is possible to define a "none" MIDI message, but what I haven't seen is how to disable that translator once it gets executed. That's why I rely on rhythm start and stop.

Please also note that I'm always sending the same notes: from 0 (C-1) until 11 (B-1). I could indeed calculate the octave of the note sent with "Note on", but at first I will keep this simple. If it works, then I will calculate that and set a global variable.

Best regards
Josef

Jack Fenton
 

This is all very interesting but appears to be more in the weeds of how Bome MIDI Translator works as opposed to how the FCB1010 works. Just a suggestion that this level of discussion may be more appropriate to the Bome Forum. Once you either get it working or not, then come back here to post your findings.

Josef Albert Meile
 

I put it here since I though somebody could be interested in testing it. Anyway, I will do it as you suggested since the problems that I'm having right now are related to Bome Translator.