create_sequence:sequence_understanding
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
create_sequence:sequence_understanding [2013/06/12 18:08] – [How can I see/edit the sequence file content] zenbass | create_sequence:sequence_understanding [2013/06/17 23:22] (current) – [How can I see/edit the sequence file content] zenbass | ||
---|---|---|---|
Line 80: | Line 80: | ||
**I consider only the real size of the file, not the space occupied on the disk** | **I consider only the real size of the file, not the space occupied on the disk** | ||
To make sure, you can download an Hex Editor and open your file, it will display the data regarding the real file size. | To make sure, you can download an Hex Editor and open your file, it will display the data regarding the real file size. | ||
+ | |||
+ | There is an important thing to notice here, when you record/save a sequence file, FreeStyler store an additional step tou yours; Thus, if you record a sequence with only one step, actually you clicked only onece on the " | ||
The size of a Sequence File, in Octets and in Decimal is calculated like this: | The size of a Sequence File, in Octets and in Decimal is calculated like this: | ||
- | 14120 + ( (Number of steps - 1) * 7042) | + | <note tip>**14120 + ( (Number of steps you stored |
- | Thus, for a Sequence File containg one step, we have: | + | Thus, for a Sequence File containg one single |
14120 + ((1 - 1) * 7042 ) = 14120 + (0 * 7042) = **14120** | 14120 + ((1 - 1) * 7042 ) = 14120 + (0 * 7042) = **14120** | ||
Line 104: | Line 106: | ||
Now, how is a Sequence File organized inside ? | Now, how is a Sequence File organized inside ? | ||
- | <note important> | + | <note important> |
The MSB (Most Significant Byte) is stored firts, followed by the LSB (Last Significant Byte). | The MSB (Most Significant Byte) is stored firts, followed by the LSB (Last Significant Byte). | ||
This means, if ever you record the value " | This means, if ever you record the value " | ||
The value will be stored into the file as " | The value will be stored into the file as " | ||
- | I am not sure about what format is user with mac Systems. | + | I am not sure about what format is used with Mac Intosh |
So, let's go ahead. | So, let's go ahead. | ||
Line 114: | Line 116: | ||
{{: | {{: | ||
+ | |||
+ | Values "5A 00 5A 00" are always the same, so let's say it is a constant defining a " | ||
+ | |||
+ | Addresses $00000004-5 we have value 0200. //Remember, this makes " | ||
+ | <note tip> | ||
+ | This is why, when we load the Sequence Editor from this Sequence File, we can see Step 1/2. FreeStyler " | ||
+ | |||
+ | |||
+ | Addresses $00000006-7 we have " | ||
+ | |||
+ | Addresses $00000008-9 we have value " | ||
+ | |||
+ | From now onward, we will have 3 Words (6 octets) per DMX channel, starting by Channel 1. | ||
+ | <note important> | ||
+ | So, we can find up to 511 groups of 3 words, one group per DMX Channel: | ||
+ | |||
+ | First Word ==> Not Significant, | ||
+ | <note tip>For the 1st Channel, the value for this first Word is " | ||
+ | Second Word ==> The Value that will be sent to this channel. | ||
+ | |||
+ | Third Word ==> One value among 3 possibilities for this DMX channel: | ||
+ | - 0100 for Fade | ||
+ | - 0200 for Snap | ||
+ | - 0300 for Off. | ||
+ | |||
+ | And so on, the following Word is the first Word for the next DMX Channel. | ||
+ | |||
+ | After all the 511 Channels have been passed, we find a bunch of Data. I do not know what is it intended to, but this will not change. | ||
+ | |||
+ | To make it short, for a Sequence File containing One Step, the format from the beginning of the file is: | ||
+ | |||
+ | * 2 Words containing the data " | ||
+ | |||
+ | * 2 Words containing the number of Steps + 1 (0200 in our example). | ||
+ | |||
+ | * 2 Words containing the number of 500 millisecond units for Fade Time, 0300 in the example. | ||
+ | |||
+ | * 2 Words containing the number of 100 millisecond units for the Scenne Speed, 0B00 in our example. | ||
+ | |||
+ | * 511 groups of 3 Words, one group per Channel. The first one (address 0000000A) is "01 00 FF 00 01 00" | ||
+ | |||
+ | * A bunch of data, with unknown signification, | ||
+ | |||
+ | |||
+ | In the screenshot above, for DMX Channel 1, we send the value 255 (FF00 gives 00FF), and the following value "01 00" says that it will be sent in "Fade Mode". | ||
+ | |||
+ | Next DMX Channel, number 2, is (address 00000010) 00 00 FF 00 01 00: | ||
+ | |||
+ | firsts 00 00 is unused (the same for all the channels). | ||
+ | |||
+ | FF 00 means we sent the value 255 (FF) to the Channel 2. | ||
+ | |||
+ | 01 00 means we are in fade mode. | ||
+ | |||
+ | To be continued, we will see the organization for the Sequence Files containing mode than 1 Step. | ||
+ | |||
+ | < | ||
+ | |||
+ | What is interesting in a Sequence File? | ||
+ | |||
+ | First, given a Step Number, locate the address of the information (one octet) for: | ||
+ | - The Fading Time | ||
+ | - The Step Duration | ||
+ | |||
+ | Second, given a Step Number and a Channel number, find the address of the information (one octet) for: | ||
+ | - The value to send toward this channel (one Octet, 00 to FF, standing for zero to 255). | ||
+ | - The Status of this Channel (Fade, Snap, Off) | ||
+ | |||
+ | That's it, it should be enough for those who want to patch their Sequence files. | ||
+ | |||
+ | This is what I did: for example I knew that I wanted to make a sequence file with 14 steps (you can make more or less, up to you). So I called the Sequence Creator, with the " | ||
+ | <note important> | ||
+ | So, as I wanted to manage 14 Steps, I created a dummy 13 Steps Sequence File and recorded it. | ||
+ | From now, I could patch this file with my 14 steps. And it works, it does work. | ||
+ | |||
+ | Hera are the formulas to retrieve the needed information. | ||
+ | |||
+ | To store the Fading Time for a given Step:< | ||
+ | This is in decimal. | ||
+ | **Steps are from 1 to the FreeStyler limit** There are some topics on this subject, if you want more steps, just update the .ini file. | ||
+ | |||
+ | Let's take an example, you want to set the value for the fading time of your 3rd Step: | ||
+ | * 6 + ((3 - 1) * 7036) = 6 + (2 * 7036) = 6 + 14072 = **14078** | ||
+ | * Convert in hexadecimal, | ||
+ | |||
+ | So, with an hex editor, or a program of your own, patch one octet at your file address **36FE** to set the fading time of your 3rd step. remember, the value you store here is in units of 500 milliseconds, | ||
+ | |||
+ | Now the Step Duration Time for a given step: <note tip>8 + ((" | ||
+ | As an exemple, the duration time for your 4th Step will be an octet, from 00 to FF, at your File Address: | ||
+ | 8 + ((4 - 1) * 7036) = **21116** in decimal, giving **527C** in hexadecimal. Here you store in units of 100 milliseconds. | ||
+ | |||
+ | Now, the **value** (one octet, 00 to FF) for a given DMX Channel within a given Step: | ||
+ | <note tip>12 + (("DMX Channel" | ||
+ | Ok, let's go for an example. You want to store a DMX value for DMX Channel number 3 of your 5th Step: | ||
+ | * 12 + ((3 - 1) * 6) + ((5 - 1) * 7036) = 12 + (2 * 6) + (4 * 7036) = 12 + 12 + 28144 = **28168** | ||
+ | * Convert 28168 in hexadecimal, | ||
+ | * so the DMX value from Channel 3 within Step 5 is located in your Sequence File at address 6E08. | ||
+ | |||
+ | Now, the **status** of the Channel, regarding FreeeStyler coding, it can takes either Fade, or Snap, or Off, respectiively 01, 02 or 03. | ||
+ | |||
+ | To patch this value, apply the below formula: | ||
+ | <note tip>14 + (("DMX Channel" | ||
+ | A last example, you want to patch the status of DMX Channel number 5 of your 4th Step, and set it to " | ||
+ | * 14 + ((5 - 1) * 6) + ((4 - 1) * 7036) = 21146, converted in hexa: 529A. | ||
+ | * You just have to store " | ||
+ | |||
+ | For my needs, I made a big Excel sheet with the above formulas, this is comfortable as I can see all my scenes at a glance, and modify very easily. I export in a text file the addresses and their values. I read this text file with a program I wrote in C++ visual studio and patch my Sequence File. One could write such a program in any language. | ||
+ | Here is a snapshot of my Excel sheet, it can give ideas to someone: | ||
+ | {{: | ||
+ | |||
+ | |||
+ | To complete, be warned, **this works with FreeStyler 3.5.2**. However, the format might change in future versions, and all the above formulas would be obsolete. | ||
create_sequence/sequence_understanding.1371060520.txt.gz · Last modified: 2013/06/12 18:08 (external edit)