I believe it is stored in base64.
Does anyone know the format the data in stored for the EventValues data element? There are to be a reference somewhere, I am just not finding it...
Thanks!
I believe it is stored in base64.
Chris
[URL="http://www.maloneylights.com"]http://www.maloneylights.com[/URL]
[URL="http://halloween.maloneylights.com"]http://halloween.maloneylights.com[/URL]
[URL="http://ctm.maloneylights.com"]http://ctm.maloneylights.com[/URL]
That is correct. It is each channel's event values as a character, with each channel concatenated to the next, and then the entire thing is base64 encoded and stored in the Vixen file. To create this string from intensity values (0-255), you would (in some sort of pseudo code)
To work backwards from a Vixen sequence, you do the reverse, base64_decode the EventValues String, split it into equal strings, each containing the same number of characters as there are event periods, then determine the ASCII value of each character to get the intensity values.Code:str eventdata = ''; foreach(channel) { foreach(intensity) { eventdata += chr(intensity); } } return base64_encode(eventdata);
-Chris
Follow My Journey: [url]http://www.christmasinbrewster.com/blog[/url]
Fantastic! That makes sense now, so the eventdata matrix will be the number of channels * the number of event periods. Decode_base64 the entire array, split into strings equal to the length of the number of channels, and convert each character to its ascii value. Repeat for the number of events in the sequence. I was thinking there may have been some optimization/compression of the data. Had I just taken the length of the eventdata, it would have been obvious that x*y = z.
Awesome! Thanks you sooo much! This might just work...
Wait, I think I read that wrong - each channels intensity for each event time period is concatenated, then that string is concatenated with all of the other channels?
So I have to process the entire eventdata string to determine the intensity for each channel for the first event. Still doable - the more you know....
Last edited by rokkett; 12-03-2010 at 11:55 PM.
It's been a while since I worked on that blob-o-data, but if I remember correctly the MSXML DLL will be a huge help. If I am not mistaken, I think I assigned the Vixen file to DOCUMENT and then pulled off the channel data as a string - converted from base64 and ready to use.
What language are you using?
-Mike
[URL="http://www.LandoLights.com"]www.LandoLights.com[/URL]
[URL="http://www.sequencecenter.com"]www.SequenceCenter.com[/URL] --> Vixen/LOR Sequences and More
I am prototyping in Perl, because I can develop quickly with a scripted language. But, yes, Perl has a XML parser than just rips the input file apart into a convenient data structure to manipulate.
Just got the framing math right - had to round-up the music length to be an even multiple of the event period length.
Now adding code to read in the profile, if used, to get the channel count....![]()
Hi all,
I've put together a Java light-player that reads .vix files. Well, it reads the one file I've downloaded to test it with.
What I would really like is an authoritative definition of what the .vix file contains. I guess for various versions of Vixen too.
Is there some place I can download that?
Frank
YES - please, if Vixen is to be a "standard" interchange format, then it would be great if someone could put together a page on the wiki describing the file format. Even if we can just cobble together the best posts.
I have some very "square one" questions about the format, and this thread makes some assumptions.
Is .vix a good candidate for a universal exchange format going forward? Does it scale well for thousands of channels at 50-100hz?
-Preston
Bookmarks