Jump to content

A slighty different MIDI controller


thomasfedb
 Share

Recommended Posts

Hi, I work in a theatre company as a lighting tech and i'v always wanted to build a lighting desk.

Basically i'v spent a few hours on the wiki and on UCAPPS looking at what midibox has to offer, and im feeling optimistic!

These are the requirements i'm aiming for: (this is a rough replic of a lighting controller called a 520i)

4 x Charactor LCD

4 x Motorised Faders

8 to 16 normal faders

numerical keypad and many other buttons (probably over 100 total)

communicates with a LINUX program via midi to controll the lights

3+ rotary encoders / joystick / trackball

4 XLR Desk Lamps

I would like to know your opinion on this project, and if anything similar has be attempted before.

Also should i go with Core32?

I imagine a large amount of my code will be custom anyway.

Thanks, thomasfedb

Link to comment
Share on other sites

Hi.

Is there any reason you want to communicate with a Linux program to control the lights? I have created a DMX module for MIOS32 that works well and allows the CORE32 to talk DMX! There is also a CORE8 version that uses a rewritten IIC_MIDI firmware to talk DMX.

I currently have it working as a simple lighting desk using the guts of an old Strand board.... Take a look at http://www.midibox.org/dokuwiki/doku.php?id=midiboxdmx

I have to admit that things have slowed down a bit on development recently but eventually I hope to have a fully featured desk with moving light control etc. Also using the MIDIbox ETHernet interface, it will be able to talk to other devices over OSC and Art-Net etc. I also aim to support RDM for automatic fixture configuration.

With regard to faders, buttons etc obviously they are easy for MIDIbox to support!

Cheers

Phil

Link to comment
Share on other sites

Hi.

Is there any reason you want to communicate with a Linux program to control the lights? I have created a DMX module for MIOS32 that works well and allows the CORE32 to talk DMX! There is also a CORE8 version that uses a rewritten IIC_MIDI firmware to talk DMX.

Cheers

Only thing is that i requrie a fullsize screen output. And this device will be controlling moving fixtures and doing some quite heavy maths do deal with some moving light features i have in mind. Also i'm a c++ guy. So i would feel better once im back in c++ on the computer. And linux i can create a 2gb part of my computer and run a very small, fast micro linux.

Must say, looks like you have a very nice project. I'm just fed up with the board at my theatre really. Its a manual (fader based) board. And i prefer key based programming.

Edited by thomasfedb
Link to comment
Share on other sites

your in luck then!!!!

what you need to do is come into the chat and speak with smashtv, he is a lighting tech and can help you out on a lighting controller better than anyone i dare say.

ok easiest way is this, goto http://mibbit.com/chat/ then do a channel search for midibox, when you find it click on the name and in your browser a chat window will pop up, you will see most of us lurkers in there, change the name it gives you to something else by typing /nick bob or what every you want to call yourself. smashtv is in the chat most days and he will be able to advise you.

Link to comment
Share on other sites

A major consideration for having DMX on the laptop is that i may need up to 1024 channles of dmx, all simutaniously with sine-curve fades. I dont think the SMT32 will be able to handle that.

That's only 2 DMX universes, no problem for the STM32 smile.gif

sine curves can be achieved with a simple lookup table so the amount of processing required is minimal. Don't forget, the STM32 runs at 72Mhz... I wouldn't dismiss it out of hand.

EDIT: You can also write MIOS32 apps in C++ now, look at the MB_SID_V3 !

Cheers

Phil

Edited by philetaylor
Link to comment
Share on other sites

Must say, looks like you have a very nice project. I'm just fed up with the board at my theatre really. Its a manual (fader based) board. And i prefer key based programming.

To be honest, that was my motivation for starting the MIDIboxDMX project in the first place, I have used many different manual and programmable boards in the past (Strand, Zero 88 Avolites etc etc) and I always find them either too basic or too complicated and I wanted to create something that was somewhere in between smile.gif

Phil

Edited by philetaylor
Link to comment
Share on other sites

That's only 2 DMX universes, no problem for the STM32 smile.gif

sine curves can be achieved with a simple lookup table so the amount of processing required is minimal. Don't forget, the STM32 runs at 72Mhz... I wouldn't dismiss it out of hand.

EDIT: You can also write MIOS32 apps in C++ now, look at the MB_SID_V3 !

Cheers

Phil

Wow, we i'll definately be writing in c++, the stl is sooo handy. And i'v never got to terms with malloc and all those variants. Only other reason to use a laptop is for the screen. Can you output VGA from a midibox?

Link to comment
Share on other sites

Wow, we i'll definately be writing in c++, the stl is sooo handy. And i'v never got to terms with malloc and all those variants. Only other reason to use a laptop is for the screen. Can you output VGA from a midibox?

TK found that once ported to C++, the new MB_SID application was actually smaller and slightly faster that the C version (which surprised us both at the time).

The problem with VGA is always the framebuffer, a 640x480 mono screen requires 38400 bytes of buffer RAM (over half of the CORE32's RAM). It isn't impossible though, if you are only looking for a basic text screen (like used by many lighting boards) then an external charater generator/framebuffer would be an option but a full graphic screen is going to be difficult.

Something like these from EA would be another option. They are quite expensive but they have simple commands for creating windows/icons etc. The maximum size is 480x272 so not exactly VGA.....

My interest is also slightly selfish as I have been looking for another programmer to work with me on the MIDIboxDMX project :)

Cheers

Phil

Link to comment
Share on other sites

The problem with VGA is always the framebuffer, a 640x480 mono screen requires 38400 bytes of buffer RAM (over half of the CORE32's RAM). It isn't impossible though, if you are only looking for a basic text screen (like used by many lighting boards) then an external charater generator/framebuffer would be an option but a full graphic screen is going to be difficult.

Doing VGA on the same controller is possible but will not only severely limit the available RAM but also the general performance. As soon as you want even 4 bit color or 800x600 output, you're set to using an external fast (parallel) RAM. So I think the best would be to separate the task of updating the picture frame, drawing text etc from the Core module. Probably an FPGA would be more suitable than a regular MCU, but there are also some CortexM3 MCUs with integrated RAM interface. The quick and easy non-DIY solution would be to use one of the available embedded VGA modules, like

http://www.microvga.com/

http://www.dontronics-shop.com/4d-micro-vga-picaso-md1.html

I remember there are a few more, can't find the links right now. A module like these can be fed commands like "print Hello World at coordinates xy in light green" via UART or SPI, so it loads all the heavy work off the main MCU.

If you'd rather DIY than buy, take a look at e.g.

http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm

as a starting point. it's only mono and low res, but maybe enough to get some inspiration. I guess there are more advanced projects on the web, too.

good luck :)

S

Link to comment
Share on other sites

I really wish people would stop telling me about these toys Seppo..... I have just ordered a Micro VGA to play with smile.gif Expect to see PICS of my MIDIbox projects using my 46" LCD TV as a display soon !!!!

I don't have a problem using these commercial modules, rather than build my own MB-ETHernet module, I bought a commercial one.....

Cheers

Phil

p.s. Got it from http://www.mcustore....ay_Adapter.html £29 inc VAT and delivery.

EDIT: It also includes a PS/2 keyboard socket which is useful for naming scenes/chases etc....

Edited by philetaylor
Link to comment
Share on other sites

Thanks for taking so much interest guys. After some thinking, and a talk with SmashTV, i'v decided to run the main software on a PC. Sorry to dissapoint.

Unfortuantly this mean that i will be developing this software first and wont get to play with midibox for a while. However i am having some thoughts about a system to send more than 7bits of data over MIDI. When i work out the spec for this protocol i will post it in this thread.

Link to comment
Share on other sites

Thanks for taking so much interest guys. After some thinking, and a talk with SmashTV, i'v decided to run the main software on a PC. Sorry to dissapoint.

No problem smile.gif

Unfortuantly this mean that i will be developing this software first and wont get to play with midibox for a while. However i am having some thoughts about a system to send more than 7bits of data over MIDI. When i work out the spec for this protocol i will post it in this thread.

MIDI already has provision for this, it is called 14 bit controller messages, it involves sending 2 messages, one for the MSB and one for the LSB.

Cheers

Phil

Edited by philetaylor
Link to comment
Share on other sites

Great, is there an article anywhere?

I'm sure there is but it is pretty straight forward. Many CC (control change) messages are actually 14 bit capable.

For Example CC 0x0 (Bank Select) can just be the MSB of the bank select CC. Sending a CC 0x20 provides the LSB.

The beauty of this type of implementation is that if just the LSB changes (a small move of a fader for example) then only the LSB needs to be sent.

http://www.midi.org/...idimessages.php Gives a list of the available messages.

Another option is to use the MSC (MIDI Show Control) protocol which is designed specifically for show cueing and uses System Exclusive (SysEx) messages: http://www.richmonds.../1992Summer.txt

Cheers

Phil

Edited by philetaylor
Link to comment
Share on other sites

I'm sure there is but it is pretty straight forward. Many CC (control change) messages are actually 14 bit capable.

For Example CC 0x0 (Bank Select) can just be the MSB of the bank select CC. Sending a CC 0x20 provides the LSB.

The beauty of this type of implementation is that if just the LSB changes (a small move of a fader for example) then only the LSB needs to be sent.

http://www.midi.org/...idimessages.php Gives a list of the available messages.

Another option is to use the MSC (MIDI Show Control) protocol which is designed specifically for show cueing and uses System Exclusive (SysEx) messages: http://www.richmonds.../1992Summer.txt

Cheers

Phil

thanks

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...