Jump to content
Light-O-Rama Forums

Hacking The Xml


Tim Fischer

Recommended Posts

Anyone have any experience/tips with hacking the LOR XML files? Here's what I'd like to do:

My former mega-tree was 36 channels (12 slices x 3 colors). I will be expanding it to as many as 4608 channels, depending on if I group pixels or not.

What I'd like to do is write a script/program/whatever to take my existing sequences, and "convert" them to the new pixels. Obviously I wouldn't be taking advantage of the pixel capabilities, but it would give me a "baseline" to start with, and then add some Nutcracker effects in or what not.

Any pointers to get me going? Anyone have any source code/script code they'd be wiling to share to use as a starting point?

Anyone want to talk me out of this?? LOL

Thanks

-Tim

P.S. I should add I'm a software geek by day - fluent in C++, can hold my own in other languages like Python.

Edited by Tim Fischer
  • Like 1
Link to comment
Share on other sites

It shouldn't be too difficult. I've written perl scripts that heavily rework the animation window configuration before. Yes, this is a much different portion of the XML, but it does not look too tricky. The gotcha I will caution against is that the channel order in the XML file may not correlate with any particular tracks channel order. You may want to investigate using the clip board files as a way to simplify the process. This way, rather than dealing with the whole file, you could copy the channels for your existing tree layout into one of the clipboard slots, run the external script, and now paste from another clipboard slot that your script just filled out for you.

Another warning, if working against the saved sequence file is that you have to make sure that the raw channels are always defined before the composite channel entries that use them, like groups, or RGB channels.

Link to comment
Share on other sites

My suggestion would be to change and add to an exported config file. Then import the revised config to your sequences. Then you may need to copy and paste to the new RGB tracks. Manipulating the XML is not that hard, but getting all the pointers right is tricky. Also note that controller numbers above 70 hex are negative.

Also you may not need to convert your sequences with a program. If I understood your need. You want to be able to run your existing sequences after converting to RGB. You may be able to use the converter sequence I posted on my Software download page. It has split out tracks for R & G & B. So you just build your new config. Then paste your single white into all three to get white or just one for a single color. Then paste back into your new congig to preserve your work invested in your sequences.

The last one on this page. Two videos on how to use http://itsmebob.com/SD.html

Link to comment
Share on other sites

My suggestion would be to change and add to an exported config file. Then import the revised config to your sequences. Then you may need to copy and paste to the new RGB tracks. Manipulating the XML is not that hard, but getting all the pointers right is tricky. Also note that controller numbers above 70 hex are negative.

Also you may not need to convert your sequences with a program. If I understood your need. You want to be able to run your existing sequences after converting to RGB. You may be able to use the converter sequence I posted on my Software download page. It has split out tracks for R & G & B. So you just build your new config. Then paste your single white into all three to get white or just one for a single color. Then paste back into your new congig to preserve your work invested in your sequences.

The last one on this page. Two videos on how to use http://itsmebob.com/SD.html

It's more like what is currently 1 channel will become 128 channels. Multply that x 36 and you'll see the channel explosion :)

Basically I'd like to 'convert' the sequences so they run and look exactly as they did on the old lights, but on the new lights. Then I can add in any pixel-based enhancements that I choose.

So it's not just channel config I'm looking to do, but replicating the data across the many pixel channels in a systematic way.

-Tim

Link to comment
Share on other sites

I have manually edited the XML files quite a few times. On the other hand, I have been hand editing HTML files for something close to 20 years so it was real easy to pick up. I have NOT done anything fancy with it yet. Mostly changes to fade percentages (i.e. take every fade to 40% and make it 35% instead).

Link to comment
Share on other sites

It's more like what is currently 1 channel will become 128 channels. Multply that x 36 and you'll see the channel explosion :)

Basically I'd like to 'convert' the sequences so they run and look exactly as they did on the old lights, but on the new lights. Then I can add in any pixel-based enhancements that I choose.

So it's not just channel config I'm looking to do, but replicating the data across the many pixel channels in a systematic way.

-Tim

OK, I am new, do not use pixels and am in the learning process but I seem to think you are over thinking the process if you are looking to do what I think you are looking to do... :)

In simplest terms, as I understand it, you have 36 strands of lights, 12 sets of 3 colors. You are converting to pixels so 36 strands X 50 Pixels X 3 channels per pixel for 4800 channels ?

You want each strand of pixels to do exactly what the 36 strands do now to start?

Could you not just add the pixels in a new sequence, then copy the old sequence channel by channel to each group of pixels... If strand 1 is channel 1, then copy the sequence from strand 1 (old seq.) to Pixels 1 through 50 on the new seq, then strand 2 to 51-100, etc...

Again, just thinking it sounds that simple.. :)

Sorry if I am way off base, but sometimes I too over think and make tons more work for myself.

Mike

Link to comment
Share on other sites

Could you not just add the pixels in a new sequence, then copy the old sequence channel by channel to each group of pixels... If strand 1 is channel 1, then copy the sequence from strand 1 (old seq.) to Pixels 1 through 50 on the new seq, then strand 2 to 51-100, etc...

I could. And that's what the script would do, and what I'd do if I can't figure out a script. But doing that with that many channels x lots of sequences wiil take a lot of time, vs just running a script and having it done immediately.

Link to comment
Share on other sites

Tim, I'm in the same boat as you. Sure I could easily convert to a pixel tree, but it's going to take a long time to sequence all of those new channels (even with Nutcracker). It's best to at least have something and then add in the pixel effects as needed. You are heading down the right road. If you get a script together, please share! Thanks!

Link to comment
Share on other sites

Could you not just add the pixels in a new sequence, then copy the old sequence channel by channel to each group of pixels... If strand 1 is channel 1, then copy the sequence from strand 1 (old seq.) to Pixels 1 through 50 on the new seq, then strand 2 to 51-100, etc...

MikeyRo, you are correct in that you could do it this way, BUT you would have to paste it into the correct RGB of pixel 1 of strand X, then copy and paste for the rest of the pixels on strand X. Then you would need to do the same for the rest of the strands. That would be quite an experience (and time suck), but doable.

Link to comment
Share on other sites

  • 2 months later...

Just an update - I'm making some good headway to doing what I want to do with Python scripting (better late than never!) My current scripts are very tailored toward my exact needs (e.g. assuming the first 36 channels on track 1 are my Mega Tree) but maybe early next year (2013) I can clean them up and generalize them into a set of Python routines for others crazy enough to do stuff like this.

By the way I'm a C++ guy, not a Python guy, but it just Python just seemed the easier way to go for this one (I'd used it many years ago when it was a brand new language)

Edited by Tim Fischer
Link to comment
Share on other sites

Please ensure you keep a lot of backups if you are going to edit the XML directly. That's not something we directly support, and if you kill your sequence/visualizer/etc, it's all on you :)

Link to comment
Share on other sites

Please ensure you keep a lot of backups if you are going to edit the XML directly. That's not something we directly support, and if you kill your sequence/visualizer/etc, it's all on you :)

Understood, and agreed!

Thanks for making the file format human-understandable though. I had hacked it back in the LOR 1.x days and it was horrid to reverse engineer. As an aside, can you let us in on the significance of "Goop Blip 37"?? (Those who've ever tried reverse-engineering a LOR 1 file will understand...)

Link to comment
Share on other sites

I don't even think we have the source code available any more for S1. I know we have all the S2 and S3 revisions (thanks to a version repository), but I don't know if S1 ever made it past Dan's computer :) I do know it's WAY before my time.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...