Specifications on the TIM File XML

thewball

New member
Hello!

I am looking into developing a companion program for Vixen 3 that takes .TIM files as an input. Are there any specification on what the file contains and how things should be formatted? It looks like an XML file with sections for media, effects, marks, and values of row settings. Can someone point me in the right direction of what all of the xml tags are and how things are formatted with the keys? Specifically I am looking for the way the times are formatted. Assuming it is Prefixed with PT and the min and second marks follow.

Thanks for the help!!
 
I may be phrasing this the wrong way, but we don't actually have a spec for the file format. The contents of the file are determined by the modules that contribute to it. Each module is responsible for its own data objects, and those are all serialized out to the XML file. So the format of each specific object is defined by the module that created it.

We generally don't recommend interacting with the data in these files from outside the software itself.

What specifically are you looking to accomplish? There's probably a better way to go about it than directly interacting with the tim file.
 
Thank you so much for the reply, Jon!

I am looking into creating an interface for MIDI 'recording' into a TIM file, so basically 'Live Recording' on/off timestamps with the MIDI format and then parsing that into the XML Vixen can understand.

I saw there was an epic for it, but looks like it is stagnant and my C# just isn't there to be a meaningful contributor, unless you would like some unprofessional code. My thoughts were to create a 'converter' using something like Python that would take in a midi file and output the XML.

Do you have any suggestions on other ways I could accomplish this/


Here is the ticket:
https://vixenlights.atlassian.net/browse/VIX-428

Thanks so much!
 
Thank you for the reply!
I am not sure if my replies are sticking here, but I am looking to basically make a companion program using Python to take the on/off/pitch of specific notes in midi files and map them to effects and record those as a export that as a .tim file. I know there was an epic to the midi integration, but unfortunately my C# is virtually non-existent and I would have a hard time contributing in a best practice or meaningful way code wise.

Do you have any suggestions on how to go about this or make the recording/sequencing process quicker?
Thank you!
 
Can you outline a sample mapping? What effect type would you want it to create? What would the note number correspond with in vixen? What would the intensity correspond with? etc?

Perhaps an easier option would be to leverage the vixen mark system. Import is already supported there in various formats. The audacity format is probably the most universal/flexible. marks have a start time, and optionally have a duration and label. Start and duration sound like an obvious mapping. Note number could be the label. Here's a link to the audacity label format.
https://manual.audacityteam.org/man/importing_and_exporting_labels.html
 
Sounds complex - I had a quick look at simple .TIM file for a single node display with some basic 'set level' effects set on that element. It's doable (I made it work at a very basic level), but tricky. You would need to generate your own GUIDs too I think for the ModuleInstanceId properties. For this basic effect each has an associated EffectNodeSurrgotate which contains the timing data, but really I don't have any real knowledge/understanding of the finer detail. This comes with lots of disclaimers since my tests were very simple, using the most basic effect available. Audacity mark import sounds a more straightforward option, though you would need to add the effects to the marks still.

If you were feeling very brave you might be able to map midi velocities to intensities, for example. I would suggest to make a sequence using the effects you want to use, added in the normal way, then analyse the XML to work out how to reverse-engineer the same. As Jon says there are so many forms a mapping could take.
 
Last edited:
Worth noting that there's some powerful automated methods to add effects to marks when you use the "add multiple" function. That speeds it up quite a bit. And you can work in as large or small of a section as you like at a time.
 
Nice - can you clarify how that works please? I was able to add marks from an audacity import, then draw effects using the pencil tool roughly near those. Then I can select mutliple and right click->align start to nearest mark and end to nearest mark (or set duration of all). Is there a way of adding effects to marks in a single step?
 
Last edited:
Right click on the timeline where you want to start adding effects. Select "Add Effects". Then hold the shift key and click the effect you wish to add. The Add Multiple form will appear. Expand the section to show beat mark alignment options. Click align to beat marks and select the mark collection you want to align to.
 
I could certainly make use of that for some of the sequencing I do, the shift key option is is news to me :) Thanks for clarifying.

I'm thinking of an improvement here that might help the OP - could this dialog also include the option to match the effect duration to the mark duaration? You can import a mark with a duration (show the Mark Bar to see them), but there is no option to match the effect to the duration of the mark. You can only choose to span between each mark and the next mark. Generating the list of times from some kind of midi capture software should be fairly easy.
 
Last edited:
I could certainly make use of that for some of the sequencing I do, the shift key option is is news to me :) Thanks for clarifying.

I'm thinking of an improvement here that might help the OP - could this dialog also include the option to match the effect duration to the mark duaration? You can import a mark with a duration (show the Mark Bar to see them), but there is no option to match the effect to the duration of the mark. You can only choose to span between each mark and the next mark. Generating the list of times from some kind of midi capture software should be fairly easy.

It should not be to hard to have it match the mark duration. Durations for marks were added after the add effects to marks so that was probably not considered. Create a feature request and we can add an option for it to match durations when the effects are added.
 
Wow, thank you everyone for the replies!

To answer the question about an example mapping, I was looking at the following

C3 could correspond to Spin on Arch 2, use on and off marks to add the effect to the right group
D3 could correspond to Strobe on Arch 2, use on and off marks to add the effect

... But that does sound mighty complicated, especially for all of the available effects.

I really like the idea of using Audacity marks and leveraging multiple effects box. I was unaware of the draw tool in general, that might be a great time saver too!

Seems like the original MIDI idea is doable.... but not super practical... for this season at least LOL

Thanks again!!
 
There is framework in Vixen to take input sources and map them to effects. No implementations were ever built, but the building blocks are there. There has been sporadic interest over the years, but it just has not made it to fruition yet.
 
Back
Top