Author Topic: What would you want in a visualizer?  (Read 5506 times)

Offline MrChristmas2000

  • Sr. Member
  • ****
  • Posts: 1115
Re: What would you want in a visualizer?
« Reply #15 on: August 24, 2014, »
That is good so far.

I don't know how many universes of DMX that your demo covers but if you could cover at least 64 universes of DMX you would have pixelnet nailed.

Offline DanHouston

  • Sr. Member
  • ****
  • Posts: 499
Re: What would you want in a visualizer?
« Reply #16 on: September 04, 2014, »
I've conducted a performance test with 32 universes of DMX and the software kept up....though my network did not like it. :)

While doing that test it highlighted an issue with how I was threading the application which leads me to a question around universes (DMX and Pixelnet) and pixels....

If you are using DMX can you span a universe with a single string? It seems like you could not since a universe is not divisible by 3 so the data would come in two packets.

I assume the same is true for Pixelnet that a string cannot cross a Pixelnet universe?

This is important to me since I was threading by DMX universe, but when Pixelnet enters the picture (the hardware is combining DMX universes) you could now SPAN a DMX universe inside a single Pixelnet universe....meaning I need to change my threading from universe based to channel based and make sure each thread is handling a channel count divisible by 3.

Am I missing something or do I have the concept correct?

2011 - Year #1
    4000 lights and 16 channels
    5 Songs sequenced
2012 - Year #2
    5000 lights and 123 channels
    8 Songs sequenced

Offline tbone321

  • Sr. Member
  • ****
  • Posts: 4055
Re: What would you want in a visualizer?
« Reply #17 on: September 04, 2014, »
It is not so much an issue of spanning packets as it is with spanning interfaces.  We do NOT use DMX for our pixels for the very reason that you suggested, not enough channels per universe.  In plai DMX, all you have is 512 channels and every packet starts bac at channel 1.  We use PixelNet for all of our pixel devices because unlike DMX a pixelnet universe has 4096 channels (8 DMX universes). 
If at first you don't succeed,
your not cut out for sky diving

Offline arw01

  • Sr. Member
  • ****
  • Posts: 866
Re: What would you want in a visualizer?
« Reply #18 on: September 05, 2014, »
I have not tried running a set of lights right up to the 4096, but the controllers here on DIYLA only do one of the 4096 universes at a time, the new zeus let you specifiy by string which universe it listens too, so you still could in theory span over with one string coming right up and the next string starting right at 4097.

I would plan on just supporting to the boundry, what's the worst thing that can happen on the visualizer, the one pixel is off color, doubt you would notice it.

Are you splitting the actual decoding of the protocol from everything else so that a plug in architecture can be shared?  e.g. a plug in for dmx, one for pixelnet, one for art net, one for whatever comes up later, maybe lor. 


Offline DanHouston

  • Sr. Member
  • ****
  • Posts: 499
Re: What would you want in a visualizer?
« Reply #19 on: September 05, 2014, »
The way I was planning to listen on the wire it would've actually meant any object that spanned a universe would only show channels in the universe it started in....I'm already changing that so that you wouldn't have the issue of large chunks of channels potentially not showing for large objects (mega trees, etc)....so with the new plan it would mean one node would be the wrong color since part of the data was in a different universe.

I'm reworking the whole listening piece now to hopefully make it not matter, but it may also mean I have to rethink the drawing performance.

Hoping to have something new to show next week with a new interface (setting the stage to have more than one view of your show on the screen at the same time...or for those that do multiple houses) and this issue addressed (with new performance tests to validate).
2011 - Year #1
    4000 lights and 16 channels
    5 Songs sequenced
2012 - Year #2
    5000 lights and 123 channels
    8 Songs sequenced

Offline CaptainMurdoch

  • Sr. Member
  • ****
  • Posts: 180
Re: What would you want in a visualizer?
« Reply #20 on: September 05, 2014, »
Some of your comments and questions have me curious about your design.

If I were creating something like this I would have the socket receiver code just stuffing data into a raw channel array.  Ie, E1.31 universe 2 of 510 channels gets mapped to raw channel ID's 511-1020, etc..  That part should be really fast, it's just memcpy-ing data into an array.  Then I would have a thread or multiple threads for pulling data off that raw channel array for each display model and drawing that on the preview display.  I think the simplest way to do this would be to 'draw' onto an image with a transparent background then overlay that image every X milliseconds onto the background image.  The image could be generated by multiple threads each working on separate models pulling channel info from the raw channel data.  Then once the models are all drawn, a single thread makes a single call to draw that image over top your background image.

This way the display code doesn't have to know about universes or pixels split across universes (which I believe is possible with some E1.31 controllers), instead it just deals with models which are based on raw channels.  This is how Nutcracker models work.

I think the only assumption you can make about a particular pixel's R, G, and B channels is that they are contiguous.  You can't even assume their ordering, that must be defined as part of a display item model.  Pixels don't have to end on a channel number divisible by 3 or on a packet-relative channel number divisible by 3.  I might have a dumb string with it's RGB channels on 1,2,3 and then another string on the same controller on channels 5,6,7 because channel 4 is bad.  I could do the same with two 3-channel controllers or I could be skipping channel 4 in case I eventually want to switch to RGBW.

Offline DanHouston

  • Sr. Member
  • ****
  • Posts: 499
Re: What would you want in a visualizer?
« Reply #21 on: September 07, 2014, »
I had bolted the listening and drawing to each other and threaded them together, which is what made all of this matter....which was fine for my relatively small show. :)

I was trying to avoid queuing data (which I guess I still could and say if I don't  read it fast enough too bad, but I think I'd like to let the user know that I am falling behind or throwing some amount of data away to keep up). I think it will be pretty straight forward, I just need to break apart that piece of my code.
2011 - Year #1
    4000 lights and 16 channels
    5 Songs sequenced
2012 - Year #2
    5000 lights and 123 channels
    8 Songs sequenced

Offline CaptainMurdoch

  • Sr. Member
  • ****
  • Posts: 180
Re: What would you want in a visualizer?
« Reply #22 on: September 07, 2014, »
Thanks.

I'm looking forward to seeing/using it when it is out. :)  I had been toying with this idea myself but it was a case of too many projects, too little time.

Offline DanHouston

  • Sr. Member
  • ****
  • Posts: 499
Re: What would you want in a visualizer?
« Reply #23 on: September 21, 2014, »
So it took me a little longer than I thought, but new interface is there (have not added multiple display panels yet, but it is setup to do it). I also separated the listening from the drawing and tested a single 32 universe megatree with strings that spanned universes.....looking good so far.

Here's a new screenshot...

2011 - Year #1
    4000 lights and 16 channels
    5 Songs sequenced
2012 - Year #2
    5000 lights and 123 channels
    8 Songs sequenced

Offline johno123

  • Sr. Member
  • ****
  • Posts: 154
Re: What would you want in a visualizer?
« Reply #24 on: September 22, 2014, »
Super excited to throw this into my toolbox as soon as you release it.  I think at the very LEAST it would be a great tool to have monitoring your live show from the conductor inside the house to ensure that your show is 'running smoothly' outside without walking outside.

Offline tbone321

  • Sr. Member
  • ****
  • Posts: 4055
Re: What would you want in a visualizer?
« Reply #25 on: September 22, 2014, »
I don't think that you will be able to do that.  The Conductor does not send show data on its Ethernet port so unless you have some type of interface for this visualizer to pick up data from the Conductors output port, there will be nothing to see.
If at first you don't succeed,
your not cut out for sky diving

Offline johno123

  • Sr. Member
  • ****
  • Posts: 154
Re: What would you want in a visualizer?
« Reply #26 on: September 24, 2014, »
Ah yes - for some reason I was thinking we could put it downstream of the conductor on the E1.31 port, not the ethernet port (aka - between the conductor and active hubs).  Silly idea....

Offline arw01

  • Sr. Member
  • ****
  • Posts: 866
Re: What would you want in a visualizer?
« Reply #27 on: November 07, 2016, »
anything come of this interesting project?

Offline DanHouston

  • Sr. Member
  • ****
  • Posts: 499
Re: What would you want in a visualizer?
« Reply #28 on: November 07, 2016, »
Wow! Blast from the past. :)

I had put this to aside for a bit due to some personal things going on. Let me dust it off and see where I'm at.
2011 - Year #1
    4000 lights and 16 channels
    5 Songs sequenced
2012 - Year #2
    5000 lights and 123 channels
    8 Songs sequenced

Offline arw01

  • Sr. Member
  • ****
  • Posts: 866
Re: What would you want in a visualizer?
« Reply #29 on: November 07, 2016, »
Much obliged Dan, was always curious about this and if a gaming engine could do the graphics work it might be possible to make it VR capable :)