Jump to content

Midi Translation box


grindFish
 Share

Recommended Posts

Ok to give a heads up i am definitely not the programmer or electronics type, i like making the music far more. This is mearly an idea ive had that i think may be of use to this community in terms of its realisation.

Right, so, say i have a grid controller like a novation launchpad, and i also have a couple of hardware synths and a drum machine. Say i want to use the controller as a complex sequencing interface, with bi directional feedback (lights show step position etc, pressing buttons edits steps etc). Now, this could be possible with a computer but if theres one lesson ive learnt running shows, the guy with the laptop always has technical issues before or during their set. I dont want a computer here. I want a little brain box, with rock solid timing, dedicated to one task and one task only and in this case all it needs to do is handle custom midi routing software.

So thats where this idea comes in, a little box with say 4 usb ports for various midi/usb controllers, 4 midi din in/out (or at very least out) with a brain that can handle custom written software that could handle some pretty crazy midi and sysex commands. Could even work with out a display, just load up the program via usb or sd card then take on the road as you'll have it pre-programmed to your setup needs.

SO there you have it, hope i explained that clearly enough, the hardware system seems simple, the hard parts the software but considering the awesome crazy cool stuff i've seen happening with the Midi SEQ v4 i think im in the right place :D

Look forward to hearing opinions and insight!

Thanks,

GrindFish

Link to comment
Share on other sites

An enhanced MIDI/USB-MIDI/OSC Router which allows scripting is on my TODO list.

The plan is to write a simple scripting language in a way so that it can be re-used for MBNG, but it would be easy to provide a standalone version as well of course...

In order to configure the router, two lists have to be created.

One list defines MIDI event formats, such as


@1 NoteOn x x
@2 NoteOn C-3 x
@3 CC 1 x
@4 CC x1 x2
@5 NRPN 123456
@6 PitchBend
@7 SysEx F0 00 00 7E 4F 01 x1 x2 * F7
[/code] And a second list which defines the routing and wildcard replacement, such as
[code]
# USB1 All Channels > OUT2 All Channels
% USB1 > OUT2

# USB1 Channel 1 > OUT2 Channel 1
% USB1.1 > OUT2.1

# USB1 All Channels > OUT2 Channel 1
% USB1 > OUT2.1

# USB1 Channel 1 CCs > OUT2
% USB1.1@4 > OUT2

# USB1 Channel 1 Modwheel CC > OUT2 Channel 16
% USB1.1@3 > OUT2.1

# CCs received from any port will be forwarded to OUT4
% ALL > OUT4

# Receive 14bit PitchBender from IN1, convert to NRPN and send to OUT2
% IN1@6 > OUT2@5

# Receive 14bit PitchBender from IN4, convert to SysEx and send to OUT4
% IN4@6 > OUT4@7
It might look a bit cryptic, but the advantage of this syntax is, that it forces the user to code the routing so that it can be easily parsed and translated with very low latency. For MBNG the even definitions can be re-used for button/LED/encoder/pot assignments. Another advantage is, that the routing can be changed independent from event definitions. This would allow (beside of reading definitions from SD Card) limited support for runtime editing on control surface based on the SCS (Standard Control Surface, see MIDIO128) Editing events on this interface would be too time consuming, but routing could be changed quickly without mounting the SD Card on a computer. Later an advanced version could even allow filtering and pipelining! :)

# Forward all events from IN4 except for CC Modelwheel to OUT4
% IN4!@3 > OUT4

# and convert ModWheel to PitchBender
% IN4@3 > OUT4@6

# pipelining
% IN4@3 | dosomeprocessingstuff | dosomemoreprocessingstuff > OUT4
[/code]

Best Regards, Thorsten.

Link to comment
Share on other sites

Awesome, the potential of a little box that could have sequencers and control surface programming running an apc40 or launchpad without a computer could be a dream come true for many, glad that the idea seems to be in the works! Down the track id like to contribute some program workflow ideas that could feed into this project, there is a lot of potential here for something market friendly beyond the DIY crowd.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...