Device for MIDI velocity compression in 2020?

I want to ensure that my controller only outputs MIDI velocities 80 and higher for all notes while keeping a natural velocity response. So I’d like to map its vel 1 to vel 80, then have its vels 2-127 map to vels 81-127 as linearly as possible. On the controller I must use, there is no possible adjustment to come close to this, so I’m looking for an accessory rather than use a laptop.

Search shows people asking about MIDI velocity compression over the years, but apparently it doesn’t exist. I hope Midihub will do this when it’s available, but in the meantime I’d like to ask one last time if there’s currently some box that will do MIDI velocity compression?

Without having tried it myself, my guess is that Bomebox can do this (and a myriad of other cool things) easily.

3 Likes

Yes, that looks very promising. I might ask what’s the difference between BomeBox and the upcoming Midihub, but that’s not so important to me if I can get just this one functionality.

Bomebox, event processor from midi solutions, sipario from lab4music…

I ve used the three.
Sipario is the easiest then eventprocessor.
BomeBox is the most powerfull but the more complicated in term of workflow. I’m stil using sipario and bbox on a daily basis.

2 Likes

Should be possible with a retrokits rk-002 too.

2 Likes

Looking through Sipario’s manual, it says you create custom dynamic curves on p. 13. It looks like the curve can only have its low, mid, and hi points specified, so the customization of the curve is limited (right?). That might be good enough and would be a simple solution. But I’d like to verify it works the way I think: if I set low and mid to the equivalent of velocity 80, will that pull every value below 80 up to 80? And then I set the last point, “HI”, around 127, then the curve is drawn for me without any further ability to customize the curve? That looks pretty inflexible.

I tried the Bome software demo, and I think I created a script to map any note with velocity 1 to velocity 80, then output it, but I have no way to test. So to create the velocity curve, I make 80 more of those, and then velocities 81-127 one-by-one until I have the curve I like. It looks tedious, error prone, and time consuming, but once done, it’s done and could be copied for tweaking. Then I’d have to experiment with the timing of the note off after the note on because this is for percussion sounds, so there’s some more timing work and troubleshooting, etc.

In short, it does look like Bome is the only one that will do what I need, but it’s going to take a lot of time to program it and work through my mistakes and frustration. Sipario doesn’t look capable, unless I happen to luck out with the way they implement the parts of the dynamic curve I can’t manually specify.

Cost isn’t a factor: they’re both expensive, with Bome’s price increasing by 25% to add on the software wtf. Bome also looks like a much smaller, less active community so that it will be harder to get help if I can’t figure the thing out on my own, which is a distinct possibility. Any comments before I take the $300 USD gamble on Bome? I have to do it because otherwise I won’t be getting the anticipated value out of $3500 worth of other gear that don’t work together well without some sort of duct tape to mediate between them.

No ! You keep received velocity in a variable, then output rescaled variable .

For sipario, I need to test it…I’ll try to report in the afternoon.

1 Like

Right, that’s what I did: when velocity 1 is received for any note, I stored the note number in a variable, then I output the same note on with velocity 80. Then I need to make 79 more actions like this, one for each velocity 2 through 80. Starting with 81, I start scaling the remaining 47 velocities so that the velocity 127 outputs as velocity 127. So every note on received chooses one of 128 possibilities based on that note on’s velocity, passes on the note with a scaled velocity, and then (after a short delay) a note off. It’s the note off that I don’t know how to do yet.

If Sipario can work this efficiently, that would be worth knowing.

Midipal/Midigal can do this although I’m not sure if they are available new anymore, check the usual used gear outlets.

Edit: Cheapest option is probably arduino uno, midi shield and search for the code online or if you are handy do it yourself.

2 Likes

After watching Nick Batt’s demo and browsing the manual, the market for the Sipario is for live routing of MIDI setups on stage. I’d be surprised and lucky if it happens to also be able to do this low level MIDI message stuff that I need. Existing patches for the Midihub indicate it should be able to do what I want, but that specific patch doesn’t exist yet. I’ve installed their software and will be able to compare its workflow to the Bome, but who knows when the Midihub will be available and at what price.

EDIT: Yahtzee! Midihub’s software has a module called Rescale with parameters to set it to do exactly what I need: pulls everything below 80 up to 80, then scales linearly to the user-specified high of 127. Took less than a minute to figure out. I hope they can get these out the door soon, or else I have a long slog ahead with the Bome.

Thanks–I didn’t notice those parameter manipulation features and was just storing and passing them on. I could easily end up with the Bome even if I also get the Midihub. Aside from the wait issue, the Midihub module does the scaling for me once I specify the end points. If that doesn’t work out, and I need to build the scale velocity by velocity, the Bome will do that. I expect I could also build my own Midihub module, but that might defeat the device’s convenience.

Yes, it looks really cool and looks like once you get used to programming it, you can try stuff out much more efficiently. Midihub has the advantage of cut-and-paste modularity: you just plop down the pipes from the online stock, plug in your parameters and go. Each pipe is already documented. But I don’t see how to build your own pipe. As always, I expect I’ll end up getting them both, if only because I can order the Bome right now.

Perhaps relate a few? The world needs more bricks…

1 Like

Hello shiny new brick. I just ordered the thing with the software. It’s double the cost of a Midihub, but their first batch won’t be available until at least March, and I didn’t make the first batch. I’ll certainly get one, too, when it’s available because why not.

Full disclosure: I need this to use my Zendrum.com drum controllers to play a Soma Pulsar-23. My dream has always been to have a good electronic drum kit that has the natural playing feel my Zendrums provide. Existing sampling software covers a wide range of acoustic kits and percussion quite nicely, but electronic drums have always sucked for real time drumming. This damn Pulsar-23’s MIDI interface, though, requires minimum velocity of 80, so it’s really difficult to play because I have to keep whacking my controller too hard to play more complex stuff well. It’s a weird oversight on such a brilliantly executed device, but whatever–it’s my bitch now that I can re-map MIDI velocity.

MidiTranslator Pro doesn’t require such an extensive (1:1) setup. A single translator will do the job nicely (requires just a few moments to set it up).

In general the calculation looks like this:

VelocityOut = 80 + (47*VelocityIn) / 127

Just make sure you select only NoteOn events with Velocity>0 for the translator to process (some devices uses NoteOn with velocity=0 as NoteOff).

Update: formula corrected.

1 Like

You sure about this formula ? Seems curious…
You’ll find a nice remapping vid here : https://www.youtube.com/watch?v=g4AoEyq3qGw
I tried remapping vel to vel in Sipario, but I’ve had troubles getting it to work, whereas I managed to remap anything else to vel with scaling function…I won’t dig it further since I do not need this function atm. ( it’s in page 3 of performance if it’s of interest for anyone. ) But seems a bug. It should work.

1 Like

Thanx for the hint. I was in a hurry - now its correct.

1 Like

I got my BomeBox, and it’s totally the shit. What a great utility device. Aside from price, any comments how it compares with the upcoming Midihub? I don’t think I’m experienced enough with it yet to discern the pros and cons.

hmm, not many (any?) will have both a bomebox and midihub… as the midihub is not out in the wild yet.

however, I was part of the testing group for midihub, and have had it for a year or so (?)…
and have also looked at the bomebox quite a bit (though not got one, yet?!)

my impression is:

bomebox pros:

  • usb hosting (!)
  • network connectivity with wifi, ethernet
    however my major gripe (and why I haven’t bought one) , is the networking is a proprietary protocol - it is not standard RTP midi.
  • more generic scripting, particularly rules processing.
  • computer keyboard support
  • scripts can be used/tested on computer (with additional license)

midihub pros:

  • 4 midi din in , and 4 midi din out
  • usb device (!)
  • simpler interface, easier to use
  • some pretty creative fx to use ‘out of the box’
  • half the price, and in a nice durable metal case.

how’s this pan out, into choosing?

first connectivity, it you have lots of usb devices or want to network midi … then bomebox.
if you have quite a few midi din devices or you want to interact to your computer (or other usb hosts) then midihub.

as for scripting…
midihub is simpler, and is powerful. - I’d suspect it handles most musicians requirements for filtering, merging, scaling, re-directing, and also midi fx.
I’d also say the simplicity means, it’s quick and easy, and therefore fun to try different ideas out.

IF you have more advanced needs, e.g. a lot of conditional logic, then it might be you need the bomebox (*)

as I said, Ive had a midihub for a while and used it a lot, its really fun to use.
but Ive still been considering adding a bomebox, not for scripting, but mainly for the usb host connectivity… and if they added RTP midi support then Id probably go for it.

the other interesting ‘development’ is bomebox are talking about midi 2.0 support, so perhaps that will add some interesting utility… though of course early days, and its possible blokas could add similar features to the midihub.


(*) if you think you need this, you’d be wise to check specs of both midihub and bomebox to check they cover your needs… neither can do anything.

2 Likes

Aside from saving my life by micro-customizing velocity response, the BomeBox is also providing me a major bonus function. My ZenDrum controller’s antique control interface makes program changes relatively tedious: you have to stop playing, re-position the heavy instrument, then punch some old-style buttons that require some concentration and physical effort. Even DIP switches would be easier. Patch changes, then, bring the music to a grinding halt. 25 years ago, I guess the inventor figured players would settle on the best patch for a session, then set it and forget it without really needing real-time changes. That’s still reasonably practical, but BomeBox enables the equivalent of program changes on the controller by creating presets of remappings of the MIDI outs of its 30 triggers. Now, I just leave the controller on its BomeBox preset, then remap its controllers externally with BomeBox presets and effect patch changes by pressing one key on a USB keyboard plugged into the BomeBox. I now a lot more than the 16 user patches provided by the antique firmware, and I can change patches and combinations in real-time while playing. Now I want a foot controller to do these patch changes and finally free my hands up after all these years of playing this instrument.

I see that the main advanced use of the BomeBox is to do fancy stuff involving software modules and DAWs. I don’t even really need that, which has eased my BomeBox learning curve. The stuff I need to do is pretty simple. Support-wise, the Bome community is great. There’s not a lot of activity on their forums, but when people post—particularly when newbies ask rudimentary questions—the inventor is right in there to help.

1 Like