Author Topic: Using transitions to program lights  (Read 2322 times)

Offline Mickpat

  • Beta Tester
  • Sr. Member
  • *****
  • Posts: 556
Using transitions to program lights
« on: December 28, 2011, »
Here are a few things I learned while using transitions to create RGB light effects. 

1.  Bold patterns work best.  Even something like using a solid color for the primary, a b/w mask and another solid for the secondary worked well.  I did this multiple times when transitioning from one transition video to another.
2.  I created some custom videos using After Effects and Adobe Premiere.  I also found some video patterns on various sites that I used in my show.  After creating the video, I would output to AVI at 320 x 240 at 15 FPS progressive vs. interlaced (top field/bottom field).  They must be encoded using AVI.  I used Intel's codec to encode the video.  Uncompressed AVI files will work, but the source file will be huge.
3.  In LSP for transitions I would set the frame rate to half the video.  10 second video would be 150 fps since the video was encoded at 15 FPS.  Instead, I would set the Frames to 75. 
4.  If you are scrolling text or want the entire video to be used, the number of frames must match.  In this case, when you save the video lower the FPS to 5 or 10.  In LSP, set the number of frames to match your FPS.  For example, 10 seconds at 5 FPS should be set to 50 frames. 
5.  Lower frame rates work much better than I expected since LSP will blend the video for you.   Lower frame rate also helps to reduce the number of new timing marks and reduce memory.

I am using xLights to schedule since xLights works really well even with large sequences.  In many cases, 150megs.  To support xLights, I would follow these basic steps.

1.  Close LSP, open the sequence in LSP again, export LMS.  Starting clean helps avoid out of memory errors during export.
2.  I needed all of the units to be on Unit 1 so I used an XML based search and replace script to find any unit number other than 1 and replace it with 1. 
3.  Used another script to adjust the channel numbers to support 16 DMX universes since I am using the EtherDognle
4.  Using Xlights, convert the LMS into xLights fromat

I have onr sequence that was so large I could not export it from LSP without running out of memory.  Given the time of the year, I choose to simplify the sequence and try again next year.  One thought around this was to export two sections of the LSP sequence to LMS and then us an XML editor to merge the two sections back together.  This would require a little bit more work than I was willing to put in at the time.

I ran 3960 RGB pixels this year without any issues.  11 flex strips with 120 nodes.  Looking forward to 2012!


Offline rdebolt

  • Patron Member
  • Sr. Member
  • ****
  • Posts: 1605
    • Christmas in Boise
Re: Using transitions to program lights
« Reply #1 on: December 28, 2011, »
This is some great information. Thanks for posting!

I am going to start testing for next year's show this weekend and will be trying to use Xlights to run my show. LSP Scheduler does not cut it for me! You have me a little worried though now. I have a 5760 channel Pixelnet SS megatree. I have not tried to export to LMS yet. It sounds like I am going to have some issues in doing that. Any suggestions?

Offline sielbear

  • Sr. Member
  • ****
  • Posts: 214
Re: Using transitions to program lights
« Reply #2 on: December 29, 2011, »
A couple of other notes for Mickpat and others reading this-

1. Yes, bold patterns work MUCH better.  It's hard to determine what was going on when rendering video to lights.
2. Ditto on the format - I used Divx as that's what the LSP videos were encoded to.  Most of my 30 second videos were < 1 MB in size.
3. As long as the LSP transition setting is an even multiple of the original frame rate, you should be good.  If the video is at 30 fps, 15 fps for the transition SHOULD work.  If EVER in doubt, render what you'll be using in LSP. 
3b. One other item - xlights in the default configuration (source code) outputs at 20 fps.  Next year I'll use 20 fps for my transition videos as I'll be planning on playing back the sequence with xlights.
4. I did not try the text this year, but I can definitely see the importance of matching the frame rate - again, I uncovered some really unhappy rounding problems when not matching up the frame rate.
5. I did not experiment with lower frame rates after my problems with the rounding issues.

For the xlights workflow, this is an ok idea, but keep this in mind: with 4166 channels, my 30 second segments at 15 fps were 200 MB each once exported to the LOR format.  I tried exporting a minute of video at 15 fps and LSP crashed.  I would recommend changing where you do the conversion to the xseq format.  Export your segments to LOR in 30 second segments (smaller if you have higher channel counts).  Perform any xml / script file updates on the 30 second exports.  Convert those 30 second LOR files to xseq format.  THEN combine the .xseq files to one for playback.  Python will run out of memory if you combine your LOR files too early - better to convert to xseq first, then combine your xseq files.  Much smaller "combined" file size.

Oh - one other item- I used Adobe Audition (other audio editors will work fine) to create audio files of silence to make sure my LSP files were however long I needed them to be.  If I had it to do over again, I would use the exact music.  It's hard to determine where the beat is if you're doing any "add-ons" like adding snowflake falls, bethlehem star fades, etc. that would ideally be in time to the music.  All of my critical "beat" events were sequenced in Sony Vegas, so 99.9999% of the sequencing didn't need audio timings by the time I rendered the transitions.  There are 1 or 2 songs though where I added some last minute items that didn't match up as I envisioned... 

With all of this processing, my 38 minute show used almost 20 GB of hard drive storage space.   The xseq format is really nice and compact, and I anticipate a sizeable file can be played back using xlights in comparison to any other format currently available.

I posted in another spot about using video to sequence this year, and much of this information is duplicated there.  I did have some trouble really getting things to play nicely when using transitions as I did this year, hence my post here.  I wanted to minimize any confusion for "how" and "why" in the list of steps.  To circumvent the memory issues and playback delays, several post sequence generation steps must be taken to achieve acceptable playback performance.

Oh - here's a link to picture in picture video that was generated and the resulting output - again, this is in another post, but why make you guys search for it...  I think our workflow was very similar - I ended up doing almost my entire show this year with video / custom transtiions.  I will be doing the same next year.  I'll also be putting together a video tutorial / powerpoint this summer for steps / tips / workflows.

You are not allowed to view links. Register or Login
« Last Edit: December 29, 2011, by sielbear »

Offline rdebolt

  • Patron Member
  • Sr. Member
  • ****
  • Posts: 1605
    • Christmas in Boise
Re: Using transitions to program lights
« Reply #3 on: December 30, 2011, »
Great in formation and thanks for the video. Awesome show sielbear. This brings several questions for me. Since I don't write or really know code this is becoming a little (really a lot) intimidating to me. I do not want to become and idiot on this forum (even though I know I am), but without extensive documentation I am going to be asking a lot of what will appear to most to be stupid questions. So I may as well start now. My show is fairly large, but I plan to go MUCH larger in channel count for next year. With all of the problems that I have been having with LSP Scheduler I do not plan on running my show with LSP next year. At this time it looks like Xlights is my best solution. So sticking to the thread topic; I will be using almost all video transitions at around a 50,000 channel count. I also use video in my display.

1 How do you export sections of a sequence in LSP. I still plan to program with LSP.
2 How do you recombine then after converting to xseq. format   

                                     

Offline sielbear

  • Sr. Member
  • ****
  • Posts: 214
Re: Using transitions to program lights
« Reply #4 on: December 30, 2011, »
I'm not a programmer myself - I can typically decipher code and understand what the program is doing, but I could not write the same code of many of the talented people here.  Hats off to those who can!!  I relied on Frankr to assist me greatly in some of the scripting this year.  If no changes are made to the script, I know I have a workflow that will work next year.  I'm hoping that some of Frank's genius can be expanded so that some of his programs can be used for many folks looking to get into the video side of sequencing.  On to your questions / concerns...

There is no native way to export certain segments of a show.  To do this, here were my steps:
1.) Create my video in Vegas (or Premiere or whatever you're using) and export the video in segments - all NLE software will allow this at this point.
2.) Take all of those show segments and add them to LSP as custom transitions - I put all my transitions under the song name so I didn't have 100 video segments in one big pile of ...  garbage in LSP.
3.) Create a new LSP media sequence and use custom length audio for the sections.  For example, I broke my show up into 30 second segments because I knew I could export at this level without issue.  If you were using 30 second segments, either copy / paste your original media file into exactly 30 second segments or (and this is easier if you're doing your entire show by video) generate exactly 30 seconds of silence in a wav file.  You can use those custom length wav files over and over again.  All you care about is a sequence that is exactly X number of seconds long (and that matches your exported video).
4.) You can REALLY speed up the render process by standardizing on a certain segment length by performing the following:
a.) Open LSP and add your 30 second media file.  Add All your custom transitions that are 30 seconds in length to LSP.
b.) Drag your LSP transition to the appropriate layer.  Make sure the transition is at the VERY beginning of the 30 second segment. 
c.) Verify all your transition settings are correct - duration and frame rate need to match.  At 30 seconds and 15 fps, you'll have 450 frames - the maximum number of frames you can specify for a transition is 500. 
d.) Save the file as <song>Section#.lms.  Then click on your transition and CHANGE THE Transition file, but leave ALL OTHER SETTINGS ALONE - UNCHECK RENDER NOW or GENERATE NOW.  Save the file as the next section.  Click the transition - change the file, Save as the next file section.  You'll quickly have the entire song saved in 30 second segments.
e.) Open each transition in a seperate instance of LSP.  Right-click the layer with the transition and "generate". 
f.) Take all of these sections and export to LOR format.
g.) For the last song segment, you'll have a shorter movie / wav file duration.  Just create a custom file for the last segment for the appropriate duration.  Make CERTAIN you match up the frame rate / number of frames or you'll get unpredictable results with the transition effects generation.  If your song is 10.5 seconds at 10 fps, you'll have 105 frames total.  Specify that in your transition - 10.5 seconds, 105 frames. 

2.) This is sort of a multi-part operation.  You'll need to take the lor files and perform whatever operations are necessary for xlights.  If using several etherdongles, you may not have to do much at all - I've not done a conversion yet so I just don't know.  I think if your LSP file is setup correctly, nothing may need to occur.  I will iron this out first of 2012. 

Once your LOR files are processed, you'll need to convert each segment to individual xseq files.  Then you'll need to use a script to append the xseq files.  Frankr was a genius on this - I will check with him to make sure he's ok posting his script for all to use / abuse.  Essentially his script allows you to specify a NEW (original) media file for the xseq format to reference, then attaches all of the xseq individual files together.  This is what allows you to use a dummy 30 second clip of silence with LSP for the transition effects generation.  During the combining process of the xseq, you point to the original file your video was built to.  4 x 30 second clips plus 1 x 10.5 second clip would be a 130.5 second clip which (hopefully) matches your original song.

I would highly recommend setting up a test lab to verify your lights perform as you need them to in relationship to brightness when doing the video transitions.  Once you've rendered all the video to lights, run through a couple of external scripts, and played back the file in xlights, you're a LONG way from the raw data you started with! :)

One last word of caution...  going to 50,000 channels is a MONSTER.  I hope I'm not speaking out of turn, but I've seen a couple of comments asking if the smart string controllers in 2012 could allow a "group node" function.  Essentially a 100 count strand could be controlled as 10 nodes if a grouping of 10 lights was used.  There are not many places where I really need 100 bulbs controlled individually.  Even if you can group by 2, you've cut your effective channel count in half!  I think you're likely going to see some SERIOUS sequencing issues when you start playing with 50,000 channels.

Consider the following:  I had 4,166 channels this year.  At 15 fps, I was only able to export in 30 second segments.  If we assume (and I DON'T know if this is the case - I've not played with the software to see) the relationship between LOR export and channel count / fps is linear in nature, your exported LOR files will be approximately 12.5 times larger than mine were.  The 200 MB LOR file size seemed to be towards the upper limit of what I could export from LSP.  If that's the case, to render a show with 50,000 lights, you're going to need to build that in 2.4 second segments for the same exported file size of 200 MB.  A 3 minute song will be comprised of 75 segments.  That is 15 GB of LOR data for 1 song that needs to be processed.  My scripts took approximatley 3 minutes per 200 mb LOR file to update the network / channel numbers I needed.  Converting to xseq (which must be performed 1 song at a time in the current xconvert implementation) took 1:25 per 200 mb file.  It will take you 1:25 for every 2.4 second file.  Perfectly optimized, you're looking at roughly 337 minutes of post effects generation processing.  That's 5 hours.  Per song.  Shoot me now!

I would STRONGLY recommend looking for options to reduce channel count, whether by grouping nodes together, operating many strands in hybrid mode so you can control the entire strand with 3 channels, etc.  I just foresee many, many problems when you're creating so many sequences, keep track of the sequence names, adding THAT MANY transitions to LSP.  I would seriously consider installing LSP in a seperate folder for every song you were doing just to keep the load times down - or I could create a bat file to swap the transitions xml file based on the song you're loading.  Silly things that you won't anticipate will arise, and I don't want you to be like me this year.  The day before Thanksgiving, I had NO show.  With 50,000 channels, eek!!!

Now, when you do succeed, and I think you will - there are simply too many good, helpful people on this board, I'm really excited to see what you come up with next year!  I hope that helps a little, and perhaps sheds a little light on some of the issues you may encounter with running such a fantastically large display.

Offline frankr

  • Sr. Member
  • ****
  • Posts: 347
    • Rocklin Lights
Re: Using transitions to program lights
« Reply #5 on: December 30, 2011, »
Wow Alan you can type  ;D

Huge props to Alan for this sequencing method  <res.
I was able to plagiarize... err. borrow his O come Emanuel to my display and it looks incredible. Thank You!

My scripts are absolutely intended for anyone to enjoy, modify, enhance, etc... I know that Steve Gase made a useful modification to drive the setnet script via channel name rather than savedIndex.

If someone can get David to implement xseq exporting we can improve this workflow substantially.  I am running 7600 channels and like Alan I also had to do my LSP files in 30 second chunks to get them to work.  I believe this is due to how much XML is required by the LOR and LSP file formats.  Xseq is a very basic format and you can always know how big a file is going to be as it is 512bytes of header + (1byte for each period on each channel in each network).  For David to implement this he would need to allow us to specify the the xLights network settings, at least count of networks and last channel in each index.

With that change I think we should be able to do much larger channel counts and durations.

If David implements the conductor export that may also be another approach that could get similar benefits.  I have nto looked at the format but from the glances of it in the xLights code it looks similarly straightforward to xseq.

I am a big fan of a grouping solution on the SSCs as well.  I have some ideas that would use 10-20 nodes as a single channel.  String mode does not cut it for this (unless I want to buy a bunch more SSCs and hubs... Personally I think my time is better spent on the software and sequencing side then on soldering....)

Frank

Offline dpitts

  • Restrictive
  • Sr. Member
  • *
  • Posts: 466
Re: Using transitions to program lights
« Reply #6 on: December 30, 2011, »
Any word on whether a modification to ssc firmware to support node grouping is in our future. I am creating some gutter lights from smart strings that use three nodes per light. Being able to group three nodes together would be awesome.

Offline dpitts

  • Restrictive
  • Sr. Member
  • *
  • Posts: 466
Re: Using transitions to program lights
« Reply #7 on: December 30, 2011, »
Frank do you have a link to your scripts.

Offline rdebolt

  • Patron Member
  • Sr. Member
  • ****
  • Posts: 1605
    • Christmas in Boise
Re: Using transitions to program lights
« Reply #8 on: December 30, 2011, »
You are not allowed to view links. Register or Login
Now, when you do succeed, and I think you will - there are simply too many good, helpful people on this board, I'm really excited to see what you come up with next year!  I hope that helps a little, and perhaps sheds a little light on some of the issues you may encounter with running such a fantastically large display.


Wow Allan that is a lot of GREAT information. I cannot thank you enough. Good thing that I am starting now! Just for your information purposes I am planning on doing my entire roof in ss nodes. They will be varying in length, but will range from 110 node strings down to probably around 50 nodes on the shortest ones with a total of 50+ strings. For the effects that I will be looking for I will have to be able to use every node. Ouch!!! I also am planning on building ss arches and outlining my house and windows with ss. I already have a 1920 node ss Megatree.  I know that this is a huge undertaking and am very worried that I will not be able to pull it off (especially after this year). My thought right now is "Go Big or Go Home", oh wait I will be at home!  :D I am sure that everyone here will be very tired of me by the end of February if they aren't already! Thanks again!

Roger

End Highjack: Back to Subject!

Offline sielbear

  • Sr. Member
  • ****
  • Posts: 214
Using transitions to program lights
« Reply #9 on: December 31, 2011, »
Roger -

I don't know if it's coming or not, and I have no idea what is involved, so this is pure speculation, BUT...
If node grouping is available next year, SERIOUSLY consider if you could do even a 2 or 3 node grouping. If you do this, your channel count drops to either 25,000 or 16,000 channels. Your sequencing will be faster, you're in a more "tested" range of channels, cheaper license if using lsp, and I bet you would have a very, very difficult time seeing the difference.

I realize I'm being repetitive - from a "been there, done that perspective", I'm trying to encourage you to incrementally expand your channel counts. I know a couple of folks (and commercially, eclectic precision) running up to 16k channels. I don't know ANYONE running 50k.

I'm sure you'll get lots of support from this group to help along the way. The more you can do to have at least one other display that's similar in size, I think it will pay off big time!

I think Fast Eddy did a great show in Australia. Several of his roof strands were just that, rgb strands. He did an amazing job of mixing nodes and strands to the point I couldn't tell which were which. He saved a lot of complexity by doing this, and I honestly can't see it when watching- and I know he did it that way in 2010.

That may not be possible for you, but where possible, try to conserve channels. Keep us posted as you develop this beast of a show!!

Offline mykroft

  • Restrictive
  • Sr. Member
  • *
  • Posts: 424
Re: Using transitions to program lights
« Reply #10 on: January 01, 2012, »
Here is a description of what LOR calls this for the cosmic ribbon

Logical Resolution
This channel allows the logical resolution of the ribbon to be changed on the fly. The logical resolution is the number of pixels the ribbon appears as in the Sequence Editor.  The ribbon has a physical resolution of 50 pixels.  This means the ribbon can appear as up to150 regular channels or 50 RGB channels. If the resolution channel is set to one of the following intensities, adjacent physical pixels may be combined to reduce the channel count:
1, 2, 5, 10, 16, 17, 25 & 50
Any other value will select the resolution configured with the Hardware Utility.  When set to ‘1,’ a single RGB channel (or 3 normal channels) will set the color/intensity of the entire ribbon. When set to ‘5,’ five RGB channels (or 15 normal channels) will set the color/intensity of the 5 equal segments of the ribbon.  Note that resolutions 16 & 17 do not divide evenly into 50 pixels. In the case of 16, the logical pixels at the ends of the ribbon have one more physical pixel than the center logical pixels.  In the case of 17, the center logical pixel has one fewer physical pixels than all the others.  In Triples mode channel numbering, only as many RGB triples as are necessary to address the current resolution are used. I.e. the first five sets of RGB channels if the logical resolution is set to 5.  In Sequential mode, the number of channels used causes the points where the G and B channels start to move. I.e. the first G channel will be 51 if the logical resolution is 50. The first G channel will be 6 if the logical resolution is 5. This was done for legacy support and DMX.

Is something similar can be achieved, this would GREATLY reduce channel counts (and wear and tear on my brain during sequencing :) )

Myk
« Last Edit: January 01, 2012, by mykroft »

Offline rdebolt

  • Patron Member
  • Sr. Member
  • ****
  • Posts: 1605
    • Christmas in Boise
Re: Using transitions to program lights
« Reply #11 on: January 01, 2012, »
Channel grouping would help me greatly, but not string mode. I already have the largest license in LSP so no savings there.

Alan you are correct with Fasteddy. Fenominal display with fantastic use of colors.

My roof is my best canvus so I want to leverage it as much as possible to make my display the best that it can be! I can and may back off a little if needed, but I have a lot of time to build test and sequence.