has anyone here used bome box before? In particular, have you used it with pyramid? I’d just love your impressions
I use it. Everything In & Out of the Pyramid goes through mine for routing, control, interpreting controller input for Pyramid control, modifying Note Events, etc.
No direct access to scripts on it - you have to make them on a computer and upload. Runs MIDI Translator Pro scripts.
Probably not as easy as a MIDIHub to pgm, but not really tough if you di MIDI
You think the midihub is easier to program? Hrm, I only opened the translator pro software and briefly looked at it. It very specifically supports what I want to do, which is convert Midi CC’s into other messages and send them to specific hardware ports. To me it looked esaier than midihub in this regard, so I’m curious - would you mind telling me your use case like what kinds of rules are you programming? Since you know midihub as well and i have some familiarity with it, I’d love to get a sense for what you felt were the strong/weak points in programming the bome box vs the midihub.
Apologies: I don’t ‘know’ MIDIHub. I researched it for a bit. It does not work for me, but my assumption is that things with an icon driven GUI are ‘easier’ than things you have to type some sort of code.
Converting MIDI CC’s is easily done with Translator Pro, in addition to changing ranges, etc. Example: When I send ‘level’ to my Rample, my BomeBox stores that value. Then as I send a Note Event, I translate the Velocity into Level as a fraction of the total Level. So, if the Overall Level is set for 74, then sending a Velocity of 64 actually sends out 37.
Also, I use an OT. Using the BomeBox and the OT in Slots mode, I hijack PgmChg msgs and store those values. Then when a Note Event is sent to the OT, I create 12 bytes that includes translating Velocity into Filter Cutoff, AmpLevel, and Pitch while regurgitating the value stored for the Note# - end result is that I can scroll through my Samples on the OT using PgmChg msgs, pitch all my samples, and control dynamics with Velocity. Also the Filter Cutoff works similarly to the Rample Levels.
Then there’s all my control scripts which also do a bit of logic for determining Tracks to play that trigger DMX lighting. Plus I have meta-controls including a complexity control that can turn on/off Pyramid Tracks based on incoming CCs. I have an Intensity control that can change the velocity of Note Events based on song-by-song parameters. (The algorithm can change per song - song Presets on the BomeBox are called from the Pyramid)
Anyhoo - I tried making a blog page describing all the insanity, but suffice to say pretty much every piece of data in and out of the Pyramid is read, stored, modulated, processed, or something. It started simply - but 2 years of playing around and it just grew and grew.
Weak points on MTPro are that I still find it rather cumbersome to use with regards to the GUI - I still can’t get the hang of it after using it regularly for 5 years (also been using a BomeBox since the pre-production model). I could use more local variables, too. I almost ran out of Global Variables but I started packing them.
Superstrength on MTPro is if you can code a bit. Don’t need it, but I’d think it’d help if you got into some serious bit manipulations and stuff.
As for 1:1 CC translation, I’d swear the MIDIHub does this.
I think even iConnectivity interfaces do this, or even a MIDI Solutions Event Processor.
ah - i wonder if that will happen to me where I just had one task to do, and next thing i know I’m warping midi in all kinds of ways. Do you use a midi device hooked to the usb port of the bome box?
And Midihub does it, but it’s very low level so you have to use a lot of these very specific building blocks to do something like convert a midi cc message into a start or stop (which is what i’m doing). And in using the specific building blocks, you sorta have to make a whole midi pipeline to do any one little thing.
The building blocks are really fundamental so for example - you’ll have to put one block down to filter out everything but a specific channel. another filter to only get CC messages. A filter for the type of CC message you want, a transformation block. And then you’d need a second pipeline to let everything through that’s not specifically those CC messages.
Where things get trickier is when midihub doesn’t have more upfront support for something. So say you want to just filter out PC messages of value 1 – there’s no way to filter any kind of value on a PC message in midihub. Instead you have to build up the filter around CC filtering since that is supported with values, so for midihub this means you have to convert PC’s to CC’s, do filtering and convert them back to PCs.
Midihub is so low level that it’s really powerful, but it’s also kind of cumbersome in it’s own way too. At least for these transformations - from what I can tell the bome software is pretty intuitive “thing goes in with these parameters - here’s the thing that goes out” - so at least for something like converting a PC or a CC to some other mapping, it’s pretty straight forward and everything you’d want to know to make that conversion is presented as the standard workflow. At least, that’s what it looks like to me on the surface - I guess i’ll try it out in a few days
You can test out MTPro with the demo version.
In my rig, I can put my laptop in the data flow in serial for working on the scripts. Then I just upload the script, and change one USB connection and one DIN connection and it runs without the computer.
My BomeBox connects to a USB Hub which powers/connects to the Pyramid, a button/led box (for feedback), a Prophet 12, a Minitaur, an iConnectivity 2 port interface, powers the BomeBox, and possibly something else (I have everything built into a rack and there it sits and unless I review my documentation I forget how things are hooked up). The Prophet is my controller, but the button box does the same thing - except I haven’t adjusted the knobs. The BomeBox DIN also connects the Pyramid and a Kenton Thru that distributes to some older rackmount synths (I hesitate calling anything ‘vintage’ that I owned when they first came out).
Thanks for the insight on the MIDIHub. That kind of setup would be fun, but I really prefer the BomeBox since I can just use code-like statements and logic instead of learning a new syntax.
But yeah: Filter out messages and stuff? Super easy on Bome!
Hell, I want to go on and on and on, so apologies. If you decide to start warping MIDI, I’ll be in your fan club.
Actually, I’m going to steal/borrow that expression now.
I get excited on this subject. Sorry.
Someday I’ll share all the stuff my script does - it basically makes the Pyramid behave like the sequencer I’ve been dreaming about for almost as long as I’ve been messing around with electronic music
Now if only my music didn’t suck
Oh, I doubt you’d need any help with MTPro, but just in case feel free to msg me if you can handle my exuberance. If not, the forum over at Bome is excellent, but I assume you’ll have no troubles.
@CreepyPants - in my (limited) experience, MidiHub works best for gently shaping a MIDI stream. For arbitrary programming, the experience is something like Scratch meets Brainf*ck. Things are often possible but if you need 32 pipes to do it… I haven’t found a whole lot use for it so far.
@vt100, knowing you can program: one low-cost, small-size, extreme-power alternative to the commercial processors is a Teensy board (starting at around 13€ if you don’t need USB Host). Especially if you can do with USB-only connections so it doesn’t need to build any electronics around it. At least I find the Teensy MIDI library far easier to understand and program than the MidiHub
This is kinda validating. Yea the midihub took some real effort and a lot of forum diving for me to ‘get it’ at a basic level. I think for what I wanted to do I had to have 3 pipes per channel (so 6 pipes because I do this remapping in two places). It was just quite the learning curive and, I got what I want to work - but I found a bug I think in the device that i’m struggling to get past.
Looking at the bome box programming interface that does seem straight forward - tho the bome is a high buy in. I’m looking forward to seeing what it’s like creating this remapping in bome - I guess i’ll be able to give you an A/B comparison soon.
I didn’t know about the Teensy boards - I shall take a look
This kind of direct translation is so easy to do with MTPro.
Really - using the drop down boxes you’d just choose the Channel & “Control Change” and set the value to a local variable, then output Channel, Control Change, which CC, and stick the variable for the outgoing value. Just update the Incoming & Outgoing Ports and you’re done. Easy Peasy.
If you wanted to code something, to me that’s even easier - for some reason seeing it on the screen is easier for me than drop down boxes. You could even do both translations in one MTPro Translator this way if they have the same incoming & outgoing ports/destinations.
INC: oo pp qq
// rr = Incoming channel to remap (1-16)
// ss = Incoming CC to remap
// tt = Outgoing remapped CC
// TEST FOR MSG TYPE & CHANNEL
if oo!=xx then exit rules, skip outgoing action
// TEST FOR CC
if pp!=ss then exit rules, skip outgoing action
OUT: oo tt qq
This is a common difference between ‘patch’ (GUI) programming vs. scripting.
Patch programming is generally easier to get into , but becomes a little less flexible/cumbersome for more complex tasks. So both have their place.
Have you talked to blokas, perhaps they could create modules which make this a bit easier, if, is a common problem to solve.
It’s a pity blokas did not want to open it up to allowing 3rd party blocks - but in fairness that can be a support nightmare - perhaps one day it might happen perhaps once it’s fully mature.
( blokas are very cool about open source so if not be surprised in the long run )
Hey - about incoming & outgoing ports. The docs say you can attach a midi interface to the usb and get more din IO on the device that way. Have you tried that? Like what i’m going to need to do is route to a specific hw din out via that usb connection. I guess it’s the main thing i’m nervous about without getting to try it myself.
Well, i’ve been talking to them in a support context. Since I was able to figure how to do the thing i wanted to do, I guess it’d hadn’t occurred to me. It could definitely offer something to ‘make the easy things easy’, at least that would be appealing to my personal workflows. Fwiw, they’ve been as helpful as they reasonably can be regarding issues i’ve brought to them so I have no reason to believe they wouldn’t record suggs - maybe i’ll come up with some
Yes. I have a USB Hub connected to the BomeBox and at least one Class Compliant MIDI Interface on the Hub.
I used to have a MIDISport 4 Port, but now just have a 2 Port Mio. You can address each port individually, btw. It’s super slick.
Any Class Compliant MIDI Interface should work but honestly Id avoid the MIDISport
Oh, additional info: dont put 2 of the same kind of interface on the hub. My original layout was having multiple UM-Ones. Due to USB addressing or something something, it was never a guarantee which one was (1) and which one was (2).
okay sweet - that’s really good to hear. My first though, assuming this doesn’t provoke the bug, is to use the midihub as just simple set of additional ports. If that doesn’t work I might try something like the 2 port since all i need is two ports.
I’d love to hear if the MIDIHub works in this context.
I could have uses for this - or at least weekend exploratory fun
I’d love to hear if the MIDIHub works in this context.
Hi, in my setup Midihub works perfectly to extend ports plus giving a mighty routing engine. With a set of 14 pipes I manage to jam dawless, with Sqarp or with Live using 4 input devices and 8 synths on the output bus. I dont even use different presets. The routing pipes do nifty things like: Remapping Modulation to aftertouch when input comes from channel 14 but only from the KeyStep, restrict the value range from 0-32 and give the output signal to channel one. Results in a cool key pressure vibrato on my Model D Midihub with Pyramid is a perfect combo!
The question was using the MIDIHub with a BomeBox.
Is this how you use it?
Can’t provide you the Bome context, but I’ll risk this much anyway: based on what I’ve read on the forum, I’d guess you’d have plenty of fun with it if you think of it as an externally controllable MIDI multi-effect box. Some of the effects overlap with Pyramid but provide more control and can be chained to arbitrary lengths, or run in parallel. For creating the actual “effect” chains you do need the editor, but beyond that, every single parameter, including routing decisions, is mappable to external control.
okay well - i guess a little status update. I’m stuck at home for a minute so I still have some more playing to do with the bomebox but I figured i could share what i had so far.
The bomebox itself is pretty nice - i wish it wasn’t a plastic chassis and i wish it was a little smaller (for things like the ethernet are just, there).
Anyways - what you’re all waiting for is to hear about the midhub bomebox interaction. It really wants to work for me but just doesn’t. When I plug the midihub into the bomebox I see 4 inputs and 4 outputs as one would expect. The problem was that every so often (usually under a minute), the midihub would like error out when connected to the bomebox and lose its connection. Like all the lights on the midihub would light up and go solid, then after a little bit midihub looks like it resets itself and the process starts all over. So while I started to play with midi hib and got basic routing to work, this issue is a deal breaker.
Now it could be electrical - since this is like a daisy chain of usb power. I have a powered overbridge → bomebox → midihub – so maybe there’s just not enough power for it to sorta work but not work well. Alternatively, maybe there’s something between bomebox and midihub that’s just not quite working. Anyways - I’m not sure I have ton of energy to debug this with blokas given i’m already a little burned on midihub as it is (Program Change Clusters with values 1 or 124 and duplicate all note off messages with value 0 or 123 - #9 by Giedrius - Support - Blokas Community)
Hopefully i’ll get back to the studio in a couple hours and get my program to work. I wrote my program, it was really easy - i just haven’t had a chance to see if it works (i got caught up on the midihub thing). If it’s as easy as it appears to be, yea - the bomebox is dramatically easier to program than midihub - at least for ‘turn this midi thing into this other midi thing’ - but i guess i should save that for when i actually get things working.
There are two bomeboxisms that i’m not sure about though - maybe you folks have guidance?
- Do you use the bomebox in hotspot mode? I’m inclined to throw it on my wifi as a client - but it’s not clear to me how this would affect useability. My desktop is on a wired connection so connecting to the bomebox wirelessly isn’t an issue - but just something i was curious about.
2.) There’s like a logical disconnect as to what midi ports the programming software uses versus what’s on the bomebox. To me it seems like the way to program it is to connect your usb midi to the computer so you can see the port in the programming software - then do the program. But it says I should be able to use ‘aliases’ to do things (USB 1, USB 2 etc) - i just don’t really get how to use them. I’ll probably go watch a video before too long, but i just wondered what the workflow here.
anyways - looking forward to getting back to it. unfortunately that I can’t get the midi hub to work - maybe other people can. It’s a tank, very solid build - but i keep seeming to have weird little issues with mine. I’ll probably pick up a 2 or 4 port hardware midi box on amazon and give that a go once i verify my program works.
okay so a couple of videos later and i get it. And, I think my program is working. This was so easy. SO EASY.
Maybe i’m speaking too soon again, so i’m gonna play some music but OMG I think I love the bomebox. Now to just give it a couple of hours and see how it does.