User Tools

Site Tools


create_sequence:sequence_understanding

This is an old revision of the document!


Sequences Understanding

IMPORTANT NOTE

This article assumes you're running FreeStyler on a PC using a little endian processor (x86 core) You may have to consider swapping the data on a big endian processor (need cross check)

What is a sequence file (*.chb)

The sequence file is generated by the sequence editor. See the sequence editor for further information. This file contains the DMX values and other informations to allow Freestyler to play back your scenes.

Structure of the sequence file

The sequence file is divided as below:

Word0: Number of steps contained in the file

0x0200: Sequence has 2 steps

Then all steps are added with the following syntax:

all steps are using 1618 words (1 + 1 + 1536 + 79)

Word1: Time for the fade (multiplier for 500ms)

0x0100: (fade time is 500 ms)
0x0300: (fade time is 1500 ms)

Word2: Time for the scene (multiplier for 100 ms)

0x0A00: (scene time is 1000 ms)
0x0D00: (scene time is 1300 ms)

Word3 to Word1539 (included): 3 words per DMX channel where

  • First word is the DMX value for the channel
From 0x0000 to 0xFF00 
(0x0100, 0x0200, …, 0x7F00, 0x8000, …, 0xFE00, 0xFF00)
  • Second word is the usage of the DMX channel
0x0100 = Fade
0x0200 = Snap
0x0300 = OFF
  • Third word seems to be unused for now
Always 0x0000

Word1540 to Word1617 (included): Behavior not understood. Values are not changing whether cues or buttons are used. I have today no clues for that.

How can I see/edit the sequence file content

Get an Hex editor such as PSPad for example and open the file in HEX format.

HEX content of the sequence file

In this example, the sequence has 5 steps. 0x0500

In step1

  • Fade time is 500ms 0x0100
  • Scene time is 1000ms 0x0A00
  • Channel1 is 255 snap 0xFF00 0x0200 0x0000
  • Channel2 is 255 fade 0xFF00 0x0100 0x0000
  • Channel3 is 255 fade 0xFF00 0x0100 0x0000
  • Channel4 is 255 snap 0xFF00 0x0200 0x0000
  • Channel5 is 255 fade 0xFF00 0x0100 0x0000
  • Channel6 is 255 snap 0xFF00 0x0200 0x0000
  • Channel7 is 255 fade 0xFF00 0x0100 0x0000
  • Channel8 is 255 snap 0xFF00 0x0200 0x0000
  • Channel9 and follow are unused
Edited on June 12th, 2013:

I use FreeStyler Version 3.5.2. After having analyzed the Sequence file, the format has slighty changed. Below is the new detailed format.

First, I run Windows 7 64 bits Enterprise, it might be important to notice. I do not have time to crosscheck with other platform right now, but I would be surprised wether the format was platform dependant. So it will be likely the same format for other versions of Windows.

So here it is.

The size of a Sequence File vary depending on the number of sequences recorded in it. Here we must distinguish between the real size of the file, and the size occupied on the disk (right click on the file in an explorer, and click on details, you will see the two values). 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.

The size of a Sequence File, in Octets and in Decimal is calculated like this:

14120 + ( (Number of steps - 1) * 7042) Thus, for a Sequence File containg one step, we have: 14120 + ((1 - 1) * 7042 ) = 14120 + (0 * 7042) = 14120

2nd example, for a Sequence File containing 2 Steps, we calculate: 14120 + ((2 - 1) * 7042 ) = 14120 + (1 * 7042 ) = 21162

Last example, for a Sequence File containing 5 Steps, we calculate: 14120 + ((5 - 1) * 7042 ) = 14120 + (4 * 7042 ) = 14120 + 28168 = 42288

To confirm, here are 3 file details, 1, 2 and 5 steps Sequence Files:

Let's have a look at the Sequence File containing only one Step with an Hex Editor:

The end of file is at address (hexadecimal) $3727, which makes in decimal 14119. Thus we have position zero to 14119, bingo we have our 14120 octets.

Now, how is a Sequence File organized inside ?

important

Prior to begin, an important note for those who would like to develop. All data is recorded on a “Word” basis. One Word = two Octets = two times 8 bits = 16 bits. The MSB (Most Significant Byte) is stored firts, followed by the LSB (Last Significant Byte). This means, if ever you record the value “2”in decimal, this makes “0002” in hexadecimal (1 Word = 2 Bytes = 4 Hex quartets), it makes “0000000000000010” in binary (Two Bytes = 16 bits). The value will be stored into the file as “0200”. This is Windows, an so it was in DOS time. I am not sure about what format is user with mac Systems.

So, let's go ahead. Another screenshot with the Hex Editor, at the begining of the Sequence File containing only ONE Step:

create_sequence/sequence_understanding.1371060520.txt.gz · Last modified: 2013/06/12 18:08 (external edit)

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki