the_terg ([info]the_terg) wrote in [info]theatre_techies,
@ 2006-02-26 15:00:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Current music:Mates of State

I just finished the programming portion of a new project of mine - this may be of interest to those of you who have ETC boards but do not want to pay for a remote focus unit.

I'm working on a basic HTML interface for ETCMidi (the term ETC uses for the midi input on all of it's consoles). ETCMidi is a piece of cake in itself - send a simple midi command from a computer to the console, you can change cues, set submaster levels, and all sorts of other good stuff. I think you can also change individual channel levels (can anyone back me up on this?) but I have not figured out how to yet. I was thinking of ways that I could interface with my ETC Express 48/96 for free (without having to buy any software or hardware). The only link that I can think of using is via ETCMidi.



I have already tested out ETCMidi by controlling the console with simle midi commands from a nearby soundboard computer. My goal is to be able to do that remotely, and I think I have a solution worked out. My solution is to write a program in java - in fact a java servlet - that will allow for any basic HTML webbrowser to log onto the server machine (in my case the soundboard computer) and send MIDI commands to the console just by clicking on links. Using this interface, I am able to use my cellphone's browser (a nextel i830) to connect to my home computer and get it to play midi commands. Here is what my program can do, and a list of goals that I want to implement next:

Can do:
-Adjusts submasters 1-6 in 25% intervals (using HTML links which clutter the screen quickly).
-Can "release" submasters from MIDI control (by sending a NOTE_OFF command).
-Has a "fade" command. I have only implemented this in a single link which fades the house up and down 3 times (the pre-show house bump! I had been DYING to automate this!)

My Goals:
1) A better interface. Right now I use HTML links. They fill up the screen quickly. I want to see if a small form will look better on a cellphone screen.
2) A flexible interface. If I can get some kind of form to work, I want the user to be able to type in commands for added flexibility. Like being able to fade submasters and set specific levels.
3) Channel Control! I would LOVE to be able to set levels for individual lights! This is critical, but difficult to do. I'm not even sure if it's possible, and if it is possible, it will require me to send a custom Midi command, which will be additionally hard to program in java. It will also require the development of 1 and 2 to be worthwhile. Does anybody know how to set channel levels via ETCMidi???

As I said, the actual program is a java servlet. It means that if you wanted to use this idea, you would need a computer that is near the lighting console that has a midi output and a cable connecting the computer midi out to the console midi input. All you need to have installed on the computer is java (which most computers have already installed) and Apache Tomcat (a webserver made by apache (a very well known and reliable webserver) that is designed specifically for the running of java servlets). Installing my software on Tomcat is a breeze, you simply install the webserver, connect to it, click on administration, and deploy the program from a single .WAR file.

So, I guess these are my questions for you all:
-Am I reinventing the wheel here? Does anyone else know of software that lets a client send midi commands from a server machine? Or any RFU software that works with ETC Express consoles? I've googlesearched like crazy for this, but I keep getting garbage - just software that lets the client play back midi on the client machine.
-Does this interest anybody else? I mean, i'm developing this for my own curiosity, and tailoring it to my own theatre space, but I can easily put more effort into it and make something that will work for everybody.
-If you are interested in this software/idea, do you have any suggestions or requests?



I'm pretty stoked about going into school tomorrow and being able to raise, lower, and fade the house lights from my cell phone.

X-Posted to theatretechies




(Post a new comment)


[info]misswong77
2006-02-27 02:19 am UTC (link)
Interesting concept. Give us updates after you test it out.

(Reply to this)


[info]jamesbond464
2006-02-27 03:51 am UTC (link)
Does this interest anybody else?
-Yes

I would love to have something like this with our new auditorium (that the lazy idiots still haven't broken ground for.)

Neat idea, keep us imformed (or at least me :) )

(Reply to this)


[info]the_terg
2006-02-27 10:10 pm UTC (link)
well, the update goes as follows -

The software didn't work right out of the box, as I was hoping that it would. Apparently java doesn't use the default windows midi port as it's default. So, I had to edit the audio.properties file in the lib directory of the java folder in order to get the program outputting midi correctly.

but once that was ironed out, the software worked! It didn't work exactly as I had hoped, but i was inspired by what I found to make some major program revisions:

-First off, I thought that I would have control over submaster LEVELS. I dont. ETCMidi only supports submaster BUMPING. only either 0 or 100.
-Secondly, the cellphone browser didn't react as nicely as I had hoped to the software. It was working for a little bit, and then decided to stop taking commands. I attribute this to the fact that I use HTML parameters to actually control the lights, which I think is bad practice.

So, these are the steps next on my adjenda (I was bored during class so I already started writing out some pseudocode):
-I'm going to base the entire system off of macros. I think I can program roughtly 18 macros that will give me better control of the entire system - (setting submaster LEVELS, setting channel LEVELS, setting ranges of channels at a time, etc).
-I'm going to switch out of HTML links and into an HTML POST command. That way, I can write some script that will parse a string that the user types into the phone - for example C20-40A70 could be translated to channels 20 thru 40 at level 70%. It will me a little less user friendly but a whole lot more powerful.
-I'm going to have to remove the variables that keep track of submaster levels. They are causing problems, possibly causing the cellphone webbrowser to stop communicating with the servlet. The overall effect will be more like a basic command prompt of such.

I'm half annoyed that i'm going to have to add 18 submasters to make this work, but i'm also the other half excited about the added flexibility if it works as I think it will.

(Reply to this) (Thread)


[info]the_terg
2006-02-27 10:13 pm UTC (link)
OH and as a note - I might be able to figure out how to get the program to select the midi port itself, rather than the user going in there manually to change the properties file. This will be difficult, though, as much of the javax.sound.midi API is really very mysterious.

(Reply to this) (Parent)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…