MIDI translation real world use experiences?

Dear community :slight_smile:
I found out about this project by googling MIDI translators - essentially I’d like a computerless way to connect and translate between USB and DIN MIDI devices.
Now I read that Zynthian started out as a simple MIDI translator, so I figured it should work, but then reading up it seems that there’s no end to troubles with USB MIDI devices on a RPi, like having to disconnect everything before startup, and stuff like that.
I wonder if anyone has real world experience with using a Zynthian like this - maybe any experiences with a RPi4 based setup? (If I build a Zynth, it will be based on a 4…) A BomeBox is comparatively more expensive, as it costs $200 just for the MIDI translation and nothing else, but I’d be really, really sure that it will not flake out on me. My own experiences with RPi reliability, on the other hand, are not that great. :smiley:

I use it to connect things from usb to DIN MIDI, it works well. There’s a whole world of filtering and translation with MIDI profiles that I’ve never needed to get in to.

I think the disconnect-before-start issues were fixed weren’t they? They’re usually 98% power related, 2% using a DAC we’ve never used before. As for reliability, I’ve use my zynth for Church stuff, for synths rather than MIDI translators, and it’s behaved impeccably.

There a decent enough list on Reddit too https://www.reddit.com/r/synthesizers/comments/d39su2/usbmidi_hosts_currently_available_solutions_xpost/

3 Likes

Oh and @beb has the Kissbox

1 Like

Yes, I can vouch for the fix of multi USB issues. You can connect multiple USB MIDI connections and it all gets passed into the MIDI Router. I’ve had multiple USB MIDI devices ( Roland A-88, Alesis Trigger i/0 & Behringer Motor 61), all on the same Zynth and they’ve been restarted 100’s of times and I don’t even think about the problems that used to occur.

All my machines are RPi3’s so I can’t comment on the Pi4 approach.

The MIDI logging is a godsend in this sort of environment !

1 Like

That’s good to hear, actually. Fundamentally, I want two things from a Zynthian build: Impeccable MIDI translation and processing, and Pianoteq running at 44kHz. (Because lo-fi Pianoteq is just too sad.)
For the latter, I’m considering designing a case that allows for a Seeed Studo Ice Tower cooler, and overclocking the RPi4. :smiley:

Seen this… https://blokas.io/midihub/ ?
Allows standalone midi processing via web based editor.

Currently Zynthian doesn’t support SysEX commands. It will discharge any SysEX.
Apart from this limitation, it works pretty well :wink:

Currently, Pianoteq is running at 22KHz internally. Probably you can run at 44KHz with RBPi4, but you could be too close to the limit…

Anyway, running at 22KHz, sound is really good and rich. You loose the higher frequencies over 11KHz, but probably you don’t care about it when playing in a gig or rehearsal. Things change when you make a serious recording…

Regards,

Pianoteq will trigger xruns if set to 44100 on a RPi4 - it is one of the first things I tried when I got my RPi4. 11kHz roll-off is disappointing for studio / recording but you probably wouldn’t notice live (except for classical concert hall type performance). I would love to hear Pianoteq play with full bandwidth but I think it is still not possible with the RPi4 :frowning:

1 Like

Can often be the difference between what you hear and what you know…

Yea I guess 22kHz should be good enough for most cases. That said it’d be nice to have a proper CD quality output. I mean I find the angelic overtones on the high notes one of the most magical things about the piano as an instrument, I guess that would definitely suffer at an 11kHz Nyquist rate.

Have you tried with a cooled RPi4? Apparently a passively cooled (or uncooled) RPi4 will inevitably thermal throttle under load, so just plain adding cooling is a form of “overclocking”. :slight_smile: (@jofemodo that might be something to note for the RPi4-based kit and case… It needs a CPU fan to do the hardware justice.)

I have a large heatsink with forced air (fan) cooling. RPi 4 doesn’t seem capable of 44100.

This old chestnut. I’ve been running an uncooled RPi4 for my zynth and it’s never even got close to the throttling temp (80C) IO - Adafruit I’ve run the Pianoteq demo, OB-Xd, XPolyMonk, foo-yc20, compiling and segfaulting Surge synthesizer and any number of lv2 plugins. i.e. all sorts of cpu intensive engines. I got inventive and ran 8 OB-XD’s in parallel driven by an arpeggiator for 4 hours, It got xruns, sure, and high load, but it didn’t ever throttle the cpu due to temperature. Chrome running on a desktop will send it over, yes, but Zynth stuff doesn’t.

I have to wonder what the heck is wrong with the web if this is the case though.

"compiling and segfaulting Surge synthesizer " - how’s going with it? Any success?

Maybe, just maybe they aren’t doing their hacking outdoors in a snowstorm. :stuck_out_tongue: Lol!

Well, anyway I really wonder what’s up with that. :smiley: The people whose experiences I’ve read were mainly doing artificial benchmarking, and that invariably sent the Pi over 80C in a few minutes. Maybe these real world use cases are much lighter on the CPU than a benchmark.

I believe you were running these stuff one at a time, and not all together, right? :smiley: As for the Jack xruns at low temp… Realtime / low latency is hard as f… :sweat_smile: so my second guess is that there are some short bursts of CPU intensive jobs with lots of nothing inbetween, so overall temps can stay low while the CPU is still struggling to keep up when the shit suddenly hits the fan. My first guess was that it might also be a preemption / thread priority thing rather than a CPU hardcap.

To be clear, the 8 OB-Xd’s were run in parallel. I misremembered the 4 hours, that must have been for something else Pi4 temperature

hi there. 4 years passed, I also came across the device when I was searching for a midi translator.

I have synths that are fairly limited in terms of CC implementation, but they have wide range of options when it comes to SysEx. Will I be able to map them with this device, so I could control them with nowadays sequencers?

midi filtering rules don’t mention this, but who knows, maybe it was implemented in such a long period of development.

I would suggest doing a search on “sysex” and reading the results to get an idea of what is available and planned and whether you’d be happy.

examples:

New processor for SysEx file management (currently only send and limited to 64K) in

etc…

If you want more specific responses from Zynthianers you’d have to supply more details on what you want to do and what midi equipment you want to do it with.

[edit]: And of course. you could just try without the Zynthian hardware on a RPi with USB midi and see if it does what you want, then move up to the real HW if you like it.

I have Oxi One and Morningstar MC8 controllers and I want to send LFOs to Roland TB-3:

dawless, of course, no PC nearby. desperately searching for a reasonable solution. zynthian seems interesting, because it could be used in many different ways other than that. I also have Blokas Midihub, but it can’t translate midi messages. Conductive Labs MRCC maybe does the job, but it would make it a 400$ investment in a single problem. Midi Solutions’ filter device can handle only 32 parameters and costs 200$ (for two TB-3s I need more). All in all, TB-3 offers too much under the hood and has too little options on the surface panel or via CC.

You will have to work a little deeper into MIDI than specific devices because simply listing kit isn’t too helpful, even if they have magic modes to talk to other devices.

MIDI is firstly about notes. Note on and off messages with a number to represent the note and another number to represent velocity. These numbers are values from 0 to 127 for slow computer reasons but it’s more than enough unless you are concerned with microtones.

There are sixteen channels and each MIDI NOTE message is generally made up of three lumps of data like this.

There are then Program Change messages I.e. make that synth play that patch or program. Same sort of thing 0-127 values which is mostly enough, but there is some clever stuff with banks that allows you to describe silly numbers of patches.
Then there are Control values. These are sent from the controls, sliders, potentiometers switches etc and once again these are --127 values for 127 different controllers. Again should be enough, but some things like pitchbend have a wider range for performance accuracy reasons. .
It sound like you are involved with specific CC values to map your lfo.

It’s often helpful to draw a diagram of the kit and label which device is on which MIDI channel.
The zynthian MIDI log in webconf is really handy for seeing quite what MIDI is coming out of what device. FRom their it is a matter of configuring the devices to produce and react to the signals you are interested in.

It’s this stage where zynthian can perform real magic, albeit with a little coding sometimes, but we pride ourselves on tring to do it from the existing zynthian configurations if possible.

1 Like

I appreciate your answer and the whole story about MIDI concepts – I know all that, but what I didn’t expect is that 2014 synth would require SysEx similar to 30 years old gear. Basically, there’s no need to overcomplicate it and draw diagrams – it works like this (9:30):

reacting to CCs bound to a specific channel in order to generate SysEx messages. that device does the job, but for 200$ and only 32 rules at the same time. it’s crazy, TB-3’s price was 270 when I got it last year. Raspberry Pi should definitely handle it in terms of raw horsepower, but I guess current software doesn’t do it. I was said they’re 64K limitation for what we have now - how much is it? Will it handle couple of external LFOs?