Introducing the Smart Multibox

rjmmusic

Administrator
Staff member
Got something new for you guys. This is a 2 input, 4 output MIDI box with USB-C and a TRS input. It has an ARM CPU that can run Micropython scripts so you can do complicated routing, filtering etc.

Yes, this is a nerdy product, even by our standards.

There's going to be an editor app, which you can use to write your own scripts or download from a database of scripts that we're building online. Also, there are 2 built in hard-coded modes that don't use scripts. In the first mode, the box acts as a MIDI merge and thru. In the other, it acts as a USB-MIDI interface for use with DAWs, etc.

I've thought about doing this for years, but I finally decided it needed to happen. There's just a ton of weird cases that customers have run into, and there haven't been good solutions for them.

More details on the main website: https://www.rjmmusic.com/smart-multibox/

Now available for purchase! https://shop.rjmmusic.com/smart-multibox/
 
Last edited:
Got something new for you guys. This is a 2 input, 4 output MIDI box with USB-C and a TRS input. It has an ARM CPU that can run Micropython scripts so you can do complicated routing, filtering etc.

Yes, this is a nerdy product, even by our standards.

There's going to be an editor app, which you can use to write your own scripts or download from a database of scripts that we're building online. Also, there are 2 built in hard-coded modes that don't use scripts. In the first mode, the box acts as a MIDI merge and thru. In the other, it acts as a USB-MIDI interface for use with DAWs, etc.

I've thought about doing this for years, but I finally decided it needed to happen. There are just a ton of weird cases that customers have run into, and there haven't been good solutions for them.

More details on the main website: https://www.rjmmusic.com/smart-multibox/

I expect we'll be selling them in a week or two. Price is $199
Wow! That looks very handy. I might have to experiment with one. I could see these being useful for some of my custom pedalboard clients.
 
Any updates regarding availability of the Smart Multibox and its dev info? I'll definitely be picking this up to help wrangle some MIDI madness in my rig.
 
HI! Quick Q, is there any expectation to be able to translate MIDI to USB commands with the box? I would like to be able to USB switch programs/parameters in the Tonex One
 
HI! Quick Q, is there any expectation to be able to translate MIDI to USB commands with the box? I would like to be able to USB switch programs/parameters in the Tonex One
Sorry, a MIDI USB Host adapter is the one thing the Smart Multibox is not. You can connect it to a USB host (like a computer or tablet), but not a USB device (like a pedal with a USB port).
 
Can you use that as a hub in the middle of a MIDI chain? Like I have a PBC 10 that goes MIDI out through all my pedals and back to the PBC, but then I separately have the PBC 10 connected via it's usb-b out to my computer, and maybe I could eliminate that part with one of these? Just send the chain into one of the Ins and back out one of the Outs, but also connect my computer to the USB?

Or can you only update the PBC 10 over that usb-b?
 
Can you use that as a hub in the middle of a MIDI chain? Like I have a PBC 10 that goes MIDI out through all my pedals and back to the PBC, but then I separately have the PBC 10 connected via it's usb-b out to my computer, and maybe I could eliminate that part with one of these? Just send the chain into one of the Ins and back out one of the Outs, but also connect my computer to the USB?

Or can you only update the PBC 10 over that usb-b?
Although it's technically possible to do something like that, it wouldn't be a good idea. MIDI is hundreds of times slower than USB, so if you used the Smart Multibox to convert USB to MIDI before going to the PBC, your transfers would be incredibly slow.
 
It's now available for sale!

The Mac & PC editor apps are available on our website, the iPad version is still in the works.
 
It's now available for sale!

The Mac & PC editor apps are available on our website, the iPad version is still in the works.
Just downloaded the editor to check it out and, when I try to run the app, it says it's incompatible with my OS.

I'm running macOS Sonoma 14.7.4 (the requirement states requires MacOS 12 (Monterey) or higher).

Thanks
 
Just downloaded the editor to check it out and, when I try to run the app, it says it's incompatible with my OS.

I'm running macOS Sonoma 14.7.4 (the requirement states requires MacOS 12 (Monterey) or higher).

Thanks
Weird, ok, I'll check that out as soon as I can. Sorry about that.
 
Fortunately, it was an easy fix. Please delete the copy you have and download again, this time it should work. I tried this new build in Monterey and it does work now. I must have forgotten to test it last time.
 
Fortunately, it was an easy fix. Please delete the copy you have and download again, this time it should work. I tried this new build in Monterey and it does work now. I must have forgotten to test it last time.
This is fantastic customer support. Love it. Thanks for all you do.
 
Fortunately, it was an easy fix. Please delete the copy you have and download again, this time it should work. I tried this new build in Monterey and it does work now. I must have forgotten to test it last time.
Installed again successfully and it's working. You continue to be the best!
 
Hi RJM team,



I'm experiencing a persistent issue with my Smart MultiBox.



Whenever I power on the unit, the status LED begins blinking rapidly—dozens of times per second—and it starts sending out continuous MIDI data on its own. This behavior persists until I upload or read a script via the Mastermind Editor. After that, the MultiBox operates normally.



However, the issue reoccurs every time I reboot or power cycle the unit. It seems like the Smart MultiBox fails to load the script or initialization properly during startup unless I manually intervene.



Here’s a summary:



On initial power-up: LED blinks rapidly, MIDI data floods out

After uploading/reading script: returns to normal behavior

On next reboot: problem returns

Using with: pbc 6x- smartmultibox -strymon mobius, timeline, bigsky

This behavior makes it very hard to use the unit reliably in a live or automated setup.



Has anyone else experienced this?

Is there a known fix or firmware update that addresses this issue?



Any help would be greatly appreciated.



Thanks,

Chris.
 
HI there,

That sounds like a MIDI loop of some sort. Do you know what it's actually sending? And, how do you have it connected? What script are you using?
 
HI there,

That sounds like a MIDI loop of some sort. Do you know what it's actually sending? And, how do you have it connected? What script are you using?
Hi RJM team,

I'm encountering an issue with my Smart MultiBox that occurs consistently on every power-up.

When I first power on the unit:

  • The status LED blinks extremely rapidly (dozens of times per second),
  • And the unit begins sending a continuous stream of MIDI messages by itself, even though no user interaction occurs.
However, once I upload or even just read a script in the Editor, the behavior immediately stops — and everything behaves normally. But after the next reboot, the issue comes back again. It seems that unless I manually reload the script, the unit doesn't behave correctly.

I initially suspected a MIDI loop, but here’s why I think that may not be the case:

  1. The problem occurs even when the Smart MultiBox is in its default state (no script loaded), which I believe uses the built-in merge/thru functionality.
  2. If it were a true MIDI loop, I would expect the behavior to persist even after uploading a script — but it stops immediately upon script load.
  3. The script I'm using routes messages from MIDI IN 1/2 to OUT 1~4, and from IN 3 to OUT 5. There are no feedback loops in the logic.
So my current suspicion is that the Smart MultiBox doesn’t initialize properly on boot unless a script is manually triggered.


Additional observations:

  • When the issue occurs, sending the script resolves the problem — and the unit behaves normally afterward.
  • This happens every time I power the unit on, and I must connect it to a PC and send or read the script before I can use it.
  • Surprisingly, even in default merge/thru mode, where no script should be active, the same issue occurs. Yet uploading the script still resolves the issue.
  • This suggests that the root cause may be related to the initial system state rather than the script logic itself.

To help you better understand the setup and reproduce the situation:

  • ✅ I’ve attached a MIDI routing diagram that shows how the Smart MultiBox is connected to my Mastermind PBC/6X and MIDI devices (Strymon Mobius, Timeline, BigSky, and Eventide H90).
  • ✅ I’ve also pasted the exact script I’m using below for reference.


multibox route diagram.pngUsing script
  • from multibox import *



    def midi_received(port, msg):

    if port == MIDI_IN_3:

    # 예외 처리: Input 3 → Output 5

    midi_send(MIDI_OUT_5, msg)

    else:

    # 일반 처리: Input 1, 2 → Output 1~4 (Clock 포함 모든 메시지)

    midi_send(MIDI_OUT_1, msg)

    midi_send(MIDI_OUT_2, msg)

    midi_send(MIDI_OUT_3, msg)

    midi_send(MIDI_OUT_4, msg)



    # LED 피드백

    blink_led()



    # MIDI 수신 콜백 등록

    midi_set_receive_cb(midi_received)



    # Output 1

    outchan = 7

    outcc = 15

    outmin = 0

    outmax = 60



    # This function scales the incoming pedal value

    # to a given minimum and maximum

    def scale_pedal_value(value, minval, maxval):

    # First, sanity check our parameters

    if (value < EXPPEDAL_MIN):

    value = EXPPEDAL_MIN

    elif (value > EXPPEDAL_MAX):

    value = EXPPEDAL_MAX

    if (minval < MIDI_MIN_VAL):

    minval = MIDI_MIN_VAL

    elif (minval > MIDI_MAX_VAL):

    minval = MIDI_MAX_VAL

    if (maxval < MIDI_MIN_VAL):

    maxval = MIDI_MIN_VAL

    elif (maxval > MIDI_MAX_VAL):

    maxval = MIDI_MAX_VAL

    # Now apply scaling

    if (minval < maxval):

    scaled_value = (value - EXPPEDAL_MIN) * (maxval - minval)

    scaled_value = scaled_value // (EXPPEDAL_MAX - EXPPEDAL_MIN) + minval

    else:

    scaled_value = (value - EXPPEDAL_MIN) * (minval - maxval)

    scaled_value = scaled_value // (EXPPEDAL_MAX - EXPPEDAL_MIN)

    scaled_value = minval - scaled_value

    return scaled_value



    # This callback is called every time the expression pedal position changes

    def exp_pedal_cb(value):

    # Send to each output as needed

    # Output 1

    cc_value = scale_pedal_value(value, outmin, outmax)

    cc_msg = midi_msg_make_cc(outchan, outcc, cc_value)

    midi_send(MIDI_OUT_1, cc_msg)

    blink_led()



    # Hook up our callback so that the system calls it as needed

    set_exp_pedal_cb(exp_pedal_cb)







    midi_route_clock(MIDI_IN_2, MIDI_OUT_1, True)

    midi_route_clock(MIDI_IN_2, MIDI_OUT_2, True)

    midi_route_clock(MIDI_IN_2, MIDI_OUT_3, True)

    midi_route_clock(MIDI_IN_2, MIDI_OUT_4, True)
 
The Strymon pedals themselves are a MIDI loop. If any of those Strymon pedals sends any MIDI message, I would expect there to be an endless feedback loop in the default Merge/Thru mode. A Strymon pedal sends a message, which goes into the Smart Multibox's input 1. The Smart Multibox forwards that message to output 1, which goes to the Strymon pedals, and the cycle continues infinitely.

Have a look at the script you're running. If it's forwarding messages from input 1 to output 1, I would expect the same behavior. The correct routing should be to route USB to output 1 and input 1 to USB, with no routing between input 1 and output 1. The Strymon Nixie Interface script you can download through the Smart Multibox Editor is an example that you could work from.
 
Back
Top