# MIDI to TCP software



## James R. Skinner (Jan 27, 2015)

I just bought a MIDI control surface (Behringer BCF2000) for our theatre. I would like to be able to use some of its buttons and faders to send networks commands via TCP to various pieces of equipment on our local LAN (audio, video, switchers, etc). Do you know of some software that I could use to interface between MIDI and TCP?


----------



## Drew Schmidt (Jan 28, 2015)

I think of two options. It really depends on what devices need to receive the signal.

1) OSCulator. This can take in MIDI signals and convert them into OSC commands (the new network version of MIDI). Check it out. It's pretty easy. You can even download a fully functional demo. 

2) If you can't use OSC, then you're probably looking at UDP commands. This is a deep step into nerds-ville, but you could use python code to achieve this. Here's a link to an example of that. Scroll down to the third post that starts with "Python is truly wonderful". 
Run that code via Idle (if you're on a mac, you already have this). Just change the Note, Endpoint, and Message .... Copy the IF block of code for each MIDI command you need. And there you have it, you made your own custom piece of code! .... Well .... adapted .... let's say adapted.


----------



## Jay Ashworth (Jan 28, 2015)

Can OSCulator drive other things besides OSC sinks, Drew?


----------



## ThomasL (Jan 28, 2015)

The software-based solution I have is to use Dataton Watchout. Although it is a USB-licenced (dongled) software, this is not required when not outputting or communicating with what Dataton calls 'Display PCs' (essentially for fullscreen videos/pix). Other communications such as MIDI in (no MIDI out), RS232 in/out, and TCP/IP in/out works all the time.

Therefore, you would send MIDI in to trigger Auxilliary Timelines (created via the Task Window), with each Aux Timeline sending TCP/IP out to your other devices via string outputs or RS-232 commands in accordance with the device protocol and Dataton's protocol (RS-232 is prededed by $ with no spaces between codes, and usually ends with $0D or $13, the carriage return byte. String commands must be enclosed by '...' quote marks, and also ends with $0D).

ThomasL


----------



## vman (Feb 18, 2015)

You can use our free open source software V-Control (www.v-control.com). In V-Control you can set Events (from a MIDI Box) and then run other cues if those events occur to control devices via RS232, TCP or UDP. 
There is one drawback in this solution. That is the MIDI Box that can used by V-Control is only available here: http://vman.cc/store/products/midi-box/ and cost 250 EUR.


----------



## Highlander88 (Sep 13, 2015)

I think the easiest way is by using Pure Data which is free, lightweight, cross platform and open source


----------

