PDA

View Full Version : control multiple items with 1 channel, howto ?



ActiveHouse
12-24-2007, 07:23 AM
Hello everybody,

I'm in the middel of designing my own controllers, to control leaping arches, and northpoles with "LED-rings", and an RGB-dome on top.
Because I'm going to have more then 1000 "channels" to control, I'm thinkering with the idea of "compressing" multiple channels into one vixen-channel.

For example: My poles will have 5 rings that can lit up, and an RGB dome on top. I have enough with 1 vixen-channel (with 8 bits of data, e.g.0 to 255)
The first 5 bits of this channel-data will control the 5 rings, and the last 3 bits, will control individually if the R,G and/or B of the RGB-dome needs to be "activated".
So far so good, I'm writing my own plugin for vixen, to control my own hardware, but is there a possibility to do something visually in Vixen ?
e.g. It's not very practical to calculate all values, and look up in a table, which value you need, to put manually in Vixen, during sequencing.
(instead of setting the value 0 to 255, I want to be able to set individual bits, visually)

Who can shine a light on this ?

Thanks in advance,
Kris

DynamoBen
12-24-2007, 11:35 AM
What you describing is called patching. It’s been on my short list of features I would like to see in the future. The trouble has been that it would require an architectural change to vixen.

With patching you have dimmers and channels. The dimmers are your physical outputs to the lights. Where as channels are just virtual numbers. You can patch multiple dimmers to a single channel.

So in your case you could patch dimmer outputs 3,6,10,22,35, etc to channel 1. When you set channels ones level all of the dimmers associated will go to that level. By going this route you get rid of the bit addressing and stick with "standard" byte addressing.

The best part about patch is next year if the dimmer output numbers change all you have to do is repatch. So lets say they are 6, 75, 128, 1000, etc. Every though the outputs are different nothing in your sequence changes. Scaling or changing a show becomes really easy.

P. Short
12-24-2007, 12:54 PM
Not to go off-topic, but that and per-channel brightness profiles would be nice.

Do you see the gui for that as a giant bit-map matrix (like minesweeper), or something else?

--

Phil

P. Short
12-24-2007, 01:04 PM
ActiveHouse,

I re-read your post, and have a question or two.

First, are you trying to define a new protocol, or to use one of the existing output plugin protocols (DMX or Renard or Firegod or ...)?

Second, is the problem that you are trying to address on the input side (trying to keep the Vixen screen clean)? Or is the problem on the output side (trying to compress the data as it goes out to minimize the length of 'output packets')?

--

Phil

Editted 12:00 pm PST

ActiveHouse
12-25-2007, 04:45 AM
First of all, Merry Christmas to all of you ;-)

I'm building a complete new protocol, for my own hardware.
(e.g. I have a "main" controller, which is receiving data from my own plugin, via RS232, from there on, the main controller sends out data to different controllers, via an SPI bus)

To give a "simple" example, lets presume I have a "pole" with 8 circles of LEDs on it, I'm able to turn on/off each circle, individually. (every LED circle uses one II/O channel on my controller)
I have 20 of those poles.

In vixen, I'm given each "pole", only one channel, so, I have 20 channels, for 20 poles, with each 8 LED circles.
What I'm doing for the moment is, open my calculator, putting it in binary mode, and typing in zeroes and ones, according which LED circle needs to lit up. For example, if the first, second, and last LED circle needs to lit up, I put 1 1 0 0 0 0 0 1 in the calculcator, then I let it convert this value to decimal. (so, I get a value between 0 and 255)
This value, I put in vixen as the value for one output.
What I actually need is, instead of going this way, is a way to set each bit of this value, in Vixen.

The other way would be, to use 8 channels for one pole, but this would give me 160 channels, only for my poles. (And I'm controlling tons of other stuff)

Why I actually want to do it the other way, is because of speed.
Otherwise, I would need to capture data from 8 channels, and bit-bang it in one variable in my own plugin. Because I'm controlling lots and lots of things, this method will be to slow. (the first method puts it's data out, 8 times faster !)

So, it is actually there, but the current way of using it, is time-consuming.


I hope it makes sense of what I'm saying ;-)


P.S. Sorry for my bad English. (Dutch is my native language)


Thanks,
Kris

P. Short
12-25-2007, 01:44 PM
I think that DynamoBen and I have been making it too complicated.

Are you just asking about packing information about several Vixen channels into one byte of your output packet, something like this?



while ( index < length) {
out_packet[out_index] = out_packet[out_index] * 2; // shift left
if (channel_values[index])
out_packet[out_index] = out_packet[out_index] + 1; // shift new bit into lowest position
index++;
if ((index & 7 == 7) || (index == length))
out_index++;
}

ActiveHouse
12-26-2007, 09:56 AM
Hello,


First off all, thank you for your replies ;-)
Actually, putting data from multiple channels into one channel, is the way I'm doing it right now, but as I have lots and lots of channels, this method is to slow.
In Vixen, you can toggle between gradients and bar ramps, I would like to "have" another option, toggling to "binary view" ...
e.g. if I put a value of 255 into one channel (e.g. set it to 100% brightness), I want to see a visual representation of this data in binary format.
(e.g. 8 little dots, all eight filled)
If I put for example, 63 as a value (50% brightness), I want to see 6 dots filled, and 2 dots empty ...
I also want to be able to "set"/"unset" these dots in Vixen ;-)

Is this do-able with a plugin ?
(the longer I think about it, the more I get convinced that it needs to be programmed into Vixen itself, not as a plugin)


If you want, I can allways make some drawings and screenshots, to clarify ...


Thank you,
Kris