Hi there! this is my first post.
I’ve seen other threads that tackle parts of this (it’s been very helpful) but I don’t think any directly address this particular setup as a whole. I was hoping someone could steer me in the right direction.
Here’s some context of what I’m doing.. questions will come after.
My goal is to create a qwerty 5 row CBA (chromatic button accordion) System-C midi accordion.
I’ve gotten pretty far with the right hand. I found a great mechanical qwerty keyboard that has pretty consistent isomorphic button placement. (a lot of times the F1-F12 keys break the pattern)
This mechanical keyboard also allows any key to be reassigned to any other key (as long as it’s already on the board) This allowed me to reroute some tricky keys like the left shift to be recognized as a separate button in order to extend the range of the ‘instrument’. It’s also NKRO meaning it can play full ‘polyphony’ unlike most membrane qwerty keyboards which typically have 4KRO or 6KRO and usually have weird combinations that aren’t playable (due to how membrane keyboards are wired).
It’s working great for just the right hand with midi translate pro running on my laptop. I’m going to add a separate octave switch (maybe just using a separate little pitch bend module or two other keys). Midi Bome actually creates a very flexible environment to add expression controllers combining 2 or 3 different usb inputs results in a pretty expressive instrument.
I have to questions right now moving forward:
Question 1.
I’ve order a Bome Box. The ultimate goal is to have this setup running standalone off battery power for portability and to be able use it as a live instrument to control my synths/keyboards on stage. Is this achievable with a USB power bank of reasonable size? what would the smallest form factor for something like this be? I’m envisioning a bit of a contraption with the midi Bome box and a small power bank velcroed to the back on the qwerty keyboard. It won’t look pretty but I think that has its charm.. people will be ask ‘What the hell is THAT thing?!’
Question 2:
What is the best way to utilize 2 qwerty keyboards using midi Bome box? I saw on another thread that someone mentioned that Midi Bome will only recognize one keyboard at a time. I also saw someone recommend holding down a modifier key to create a new set of note instructions from same qwerty keyboard. Are complex key combination are even assignable to ‘down’ and ‘up’ button push information? (this is essential) Only problem here is I’d like to have all 5 rows on the left hand as well. (If you research left hand Free bass chromatic button accordion, the left hand is essentially a mirror image of the right hand making it easier to play the exact same information with both hands)
I will need to remap the qwerty keys on the left hand qwerty keyboard to be a mirror image.
I’m not sure if remapping F1-F12 keys and cap lock keys etc is possible.
The obvious solution I thought of was to just use a second midi Bome box and merge the two midi signals together. channel 1 for right hand. channel 2 for left. But of course this is more expensive.. might require another another batter power bank.. ect.. not against the idea. But trying to find the simplest solution. I’d also have to split the expression breath control to both Bome boxes.. starts to get complicated and not very elegant.
So far.. just using the right hand layout works surprisingly well as an instrument. Adding the second qwerty keyboard for the left hand I fear is where things will become more complicated.
Let me know what you think. I’d also like to thank you all! I’ve been creeping the forums for the past month or so.. you all have been very helpful getting me this far.
For question 1, yes you can use a power bank to power BomeBox as long as it provides consistent (not fast charging) power.
Power: requires 0.75W, either
via Micro-USB Type B: 5V (150mA) with a standard cell phone charger, or
via Power over Ethernet (PoE, 48V): PoE In port
You can only use 1 QWERTY keyboard and it needs to be attached as to a hub. Like computers, there is no distinction between attached keyboards. I have actually never tried to attach 2 keyboards at the same time though.
If you purchase Bome MIDI Translator PRO, then you can load a project file that uses modifier keys. I believe an example is included on the BomeBox but if it isn’t, come back here and I can find one for you.
F1-F24 keys can be programmed using the project file as well as other modifiers. I think Caps Lock and Num Lock can be as well, but don’t remember for sure.
I’m not sure if your keyboard will allow you to map multiple keys to the same keystroke but if it does, then that would be great.
Steve Caldwell
Bome Customer Care
Also available for paid consulting services: bome@sniz.biz
Thanks for this info. Yes, I have Bome MIDI Translator PRO. It’s how I’ve been testing the setup so far.
Can you send me the project file so I can see if that could work for me. I noticed that assigning key modifiers like shifting, control + any letter isn’t an option with ‘down’ and ‘up’. Which I think is essential for note on and off. But maybe that’s what your project file addresses.
Just thinking out loud here but..
Since my mechanical keyboard is reassignable.. I could reprogram all the keys to be the mirror image of the first keyboard. they would all just shuffled around. And that should send a duplicate midi message for that note. This might be the way..
Ok, now that I’ve done this the wrong clunky way.. I’m ready to do it the smart way. Here’s what I did.. I tried to find as many unique characters as possible for example numpad keys are recognized separately F13-20 is recognized. So I remapped all those qwerty keys to a second qwerty keyboard for 2 octaves lower. (it gave me a 6 octave range between the two qwerty keyboards)
It’s actually working.. and it’s reasonably playable..
But now I’m realizing there is probably a more elegant solution that requires less remapping of the qwerty keyboard hardware.
I think I understand the modifier. Assigning to channel as you have done in this preset could be very useful for separating left hand qwerty sound to a different sound too. I’m still a bit confused as to the rules parameters.. gs, ga ect.. also where is the value for the channel change actually being assigned? I don’t see that field anywhere.
Question.. can the modifier change the note value itself ? A different value for each key pressed. for transposing to the correct mirror image key on the left hand qwerty keyboard?
Thinking out loud again.. I guess using the channel modifier setup.. I can tell Midi Bome to ONLY convert notes using a separate translator only when recieved from channel 2 (second QWERTY with modifier held down)? But it leaves channel 1 notes alone. Or I could merge both channels back to a single channel after the notes have been converted? A two stage process.
Am I on the right track here? Is there some clear easy to understand documentation of rules for modifiers you could point me towards.. My plan is to add a breath controller and pitch shift down the road.
That brings me to a new ‘notes choking bug’ I’ve found with this experiment. Note on and off values get buggy with duplicate keystrokes. Button accordion has multiple buttons for the same note.. It’s one of the main benefits of chromatic button accordion.. makes the layout isomorphic for the player. So there is overlap on the same qwerty keyboard and even more overlap from the second qwerty keyboard.
The bug happens when I accidentally play the doubled note position and release one of them. Midi Bome of course receives the note off information and turns off the note.. even though my other finger is still holding that note down. It causes notes to choke out in an unwanted way.
This is hypothetical wishful thinking but.. if it’s possible to have Midi Bome listen for the same note value. count the instances. and not trigger the midi note off until the same number of note off values are received. That should prevent the choking.
Each incoming keystroke, will need it’s own translator. You can then map the outgoing MIDI message to a different note number if you would like.
I usually use the modify to change the selected preset and then each preset can use the same keys to perform a different outgoing note or channel using global variables. Please press F1 or the help menu within Bome MIDI Translator Pro to read the manual and especially the section on variables.
So perhaps you use a different outgoing MIDI channel based on the preset selected. In each preset you can change the MIDI channel, say by changing a global variable upon preset activation (which is a possible incoming trigger). Then use that global variable as the outgoing channel within the translators within that preset.
This is a bit trickier and you may need to use a method to count the number of times a given note is turned on (note-on). On note-on (keypress) you increment the count, then on note-off (key release) you decrement the count and only send the note-off message if the count is 0. You would have to use a different global variable for each of the notes.
You might want to also create a panic translators that turns off all notes in case you get stuck notes.
Steve Caldwell
Bome Customer Care
Also available for paid consulting services: bome@sniz.biz
Wow, so helpful. Thank you for humouring this crazy little experiment of mine. Going to dive into all these suggestions and read the sections of the manual you suggested to make sense of all of them.
How would a note counter be implemented? Specific code? Once I have a decent version of this running efficiently is there someone who could help with this very task? I don’t need to focus on this YET.
A panic translator is a great idea too. I’ve already run into this. Most of the time it’s on the receiving end though or something in the OS interrupted the flow of virtual midi port out. for example Expose on Mac hijacks the keyboard and can result in hung notes. I imagine this won’t be as big of an issue when plugged straight into the Bome Box.
Here is a simple note-count example for 1 note. I use keystroke “a” down for note on and keystroke “a” up for note off. I use the global variable “ga” to house the note count. The relavent translators are in preset 1. Preset 0 is for housekeeping that I use with most of my projects.