Author Topic: Media name in FSEQ  (Read 3367 times)

Offline charleskerr

  • Jr. Member
  • **
  • Join Date: Jun 2013
  • Location: Oak Hill, VA
  • Posts: 87
  • Kudos: 0
Media name in FSEQ
« on: September 22, 2014, 08:51:06 AM »
I am moving my software over to fseq, but I noticed it doesn't contain an avenue to specify the media name that goes with the sequence data (not including the directory but the file name for the media file).  I understand I can extend fseq, or supply the data sperate, but that seems rather awkward.  Let me give the workflow.

I have sequenced a file. The textual representation of that sequence file, has the media name, along with the effects I want.  I then render it to a binary file to put into fseq format.  At that point, the media file name information is lost ( I may have two sequence fils that are for the same media, just different interpretations, so I can force the name of the sequence file to match the media name).  I could make another file with that metadata, or force the user to supply it when scheduling.  But I would rather not lose the information.  Has any thought been given on extending fseq to include this (so I could extend in a uniform way)?  I can of course make my own version 2 of feet, and it would be "backward compatable", but other version 2 may be different.

One is never too old to learn

Offline David Pitts

  • Administrator
  • *****
  • Join Date: Mar 2013
  • Location: Falcon, CO
  • Posts: 3,734
  • Kudos: 63
Re: Media name in FSEQ
« Reply #1 on: September 22, 2014, 01:31:03 PM »
At this time these are the programs that I know of that  create a .fseq file.

Xlights, Vixen 3 and Light Elf (LSP conductor and .xseq converter)

I would be up for a discussion about version two with all parties involved to address issues that we may have. This would be a good time to change it since the number of programs is minimal and the FPP team can change one of them directly. The first requirement may be that the data portion of the file stays similar so porting to new format would take a small change to data offset.

Let's start with your suggestions Charles to get the ball rolling.


PixelController, LLC
PixelController.com

Online CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 8,268
  • Kudos: 151
Re: Media name in FSEQ
« Reply #2 on: September 22, 2014, 03:35:44 PM »
I have an uncommitted patch that modifies FPP's sequence.c parser to read all fields in the .fseq header and makes it easy to add parsing for other values as the header is extended with version 1.x, 2.x, etc..   So, FPP is almost ready to support this.  We'd be backwards compatible with at least xLights-created files since xLights is already writing out 28 as the data offset and fixed header size values.   If Light Elf fills these two values in as well then we shouldn't have to worry about files created on older versions of that or xLights.

I think that we can come up with a 2.0 extensions set of fields we'd like to add to the header and add those without any issues once my pending patch is committed.

I like the idea of adding the suggested media filename, we can have our UI parse that and auto-select similar to how we do now if the media and sequence filenames match.
-
Chris

Offline jchuchla

  • Full Member
  • ***
  • Join Date: Jul 2014
  • Location:
  • Posts: 221
  • Kudos: 0
Re: Media name in FSEQ
« Reply #3 on: September 22, 2014, 08:35:43 PM »
I just sent Ed Brady a message letting him know about this thread. He's the export guy on the V3 team. He may have some input from our side.


-- Jon Chuchla --

Sent from my iPad using Tapatalk

Offline ebrady

  • Jr. Member
  • **
  • Join Date: Dec 2013
  • Location:
  • Posts: 51
  • Kudos: 0
Re: Media name in FSEQ
« Reply #4 on: September 22, 2014, 09:17:09 PM »
I have an uncommitted patch that modifies FPP's sequence.c parser to read all fields in the .fseq header and makes it easy to add parsing for other values as the header is extended with version 1.x, 2.x, etc..   So, FPP is almost ready to support this.  We'd be backwards compatible with at least xLights-created files since xLights is already writing out 28 as the data offset and fixed header size values.   If Light Elf fills these two values in as well then we shouldn't have to worry about files created on older versions of that or xLights.

I think that we can come up with a 2.0 extensions set of fields we'd like to add to the header and add those without any issues once my pending patch is committed.

I like the idea of adding the suggested media filename, we can have our UI parse that and auto-select similar to how we do now if the media and sequence filenames match.

Vixen3 is also writing out 28 as the data offset and using fixed header size values as well.

I second the idea of adding the media file name, make sense and would be a good add. 

One thought that comes to mind is export metadata.  Would there be benefit in adding optional fields to the header that could describe how the file was originally exported (like controller count, and number of channels per controller). This info could be compared against the current channel config in FPP and either warn of a mismatch or prevent it from loading at all.

For example, if I exported a sequence from Vixen3 that had 2 controllers, one with 920 channels and the second with 1024 and tried to load it on an FPP with 1 controller of 1800 channels, FPP would warn me of the mismatch.   

Ed

Online CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 8,268
  • Kudos: 151
Re: Media name in FSEQ
« Reply #5 on: September 22, 2014, 09:28:50 PM »
I think I like the idea of having some extra meta data in there but would be a little leery of a warning on mismatch.  In some ways it sounds good, but what if I change my display to add another controller for some optional features, now I'll get warnings on the sequences that don't have those controllers defined until I re-export them (with possibly blank channel data).

It might be good for us to have a "Generated By" field in the header so we can see what program generated the file, xLights, Vixen 3, Light Elf, etc..  I also wonder about putting model data into the file even if it is just a simple naming of channel ranges.  I think that this concept was originally tossed around some when the .fseq format was originally discussed ~18 months ago.  I don't think this would affect performance, but it could be useful in some ways.

Offline charleskerr

  • Jr. Member
  • **
  • Join Date: Jun 2013
  • Location: Oak Hill, VA
  • Posts: 87
  • Kudos: 0
Re: Media name in FSEQ
« Reply #6 on: September 23, 2014, 04:40:28 AM »
The fields I use today are duration of the media (it doesn't always match the sequence file) , and media file name.  The duration is just for quick status, and can be found elsewhere, so that isn't a biggie.

I find including the physical layout (such as controllers) to be decoupled from the sequence file, so would not think they should be included.  One of the things I hope we can maintain is speration of data, and physical configuration. That is best left to programs that process the data, and can have that information provided elsewhere.

For instance, since I worry about size, I generate several fseq files for my Beaglebone black sd cards.  They have the channel mapping setup for that physical layout.  The program reads in the sequence file, renders it, and then generates the appropriate fseq files.  The writer needs to know about the fseq file.  My player doesn't care that they fseq files are different. The just needs to know the framerate, and number of frames.

Addiing metadata about physical layout will make the file more specific to one use (one that supports those concepts), or have wasted data.

Offline jchuchla

  • Full Member
  • ***
  • Join Date: Jul 2014
  • Location:
  • Posts: 221
  • Kudos: 0
Re: Media name in FSEQ
« Reply #7 on: September 23, 2014, 07:51:49 AM »
Pardon the ignorance of the existing format and methods. But here's some food for thought. Does there exist a method for the sequence playback to start at an offset to the media file? Say that a sequence actually starts 32 seconds after the start of the audio file?
Say the audio file contains a delay or an announcement before the song starts. Could there be metadata added to specify a start time in relation to the audio file? This may also be useful for synced players where a slave only contains a part of the sequence that doesn't start at the beginning.
Also along these lines, what about a sequence that has sections with gaps. Say my megatree has its own FPP slaved to a master and the megatree doesn't participate in every "scene" of a sequence. Could the data be split into subsections with each section having its own start time.
With the information about the generated by field mentioned above, it could also include version info and creation date/time.


--Jon Chuchla--

Sent from my iPhone using Tapatalk

Online CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 8,268
  • Kudos: 151
Re: Media name in FSEQ
« Reply #8 on: September 23, 2014, 08:11:39 AM »
For instance, since I worry about size, I generate several fseq files for my Beaglebone black sd cards.  They have the channel mapping setup for that physical layout.  The program reads in the sequence file, renders it, and then generates the appropriate fseq files.  The writer needs to know about the fseq file.  My player doesn't care that they fseq files are different. The just needs to know the framerate, and number of frames.

This is essentially how our MultiSync works.  The Pi's can be running the same exact sequence file or different sequence files, but it is up to the user to handle putting the right channel info in each.  currently all files are named the same, but it is on the TODO list to have the Remote systems look for SEQUENCE_$HOSTNAME.fseq first, then fall back to SEQUENCE.fseq if the hostname-specific version is not found.

One thing that might be good with this kind of scenario is to have a "Channel Offset" in the file.  If I want to export a .fseq that is only the top half of my display starting at 32768, it would be nice if I didn't have to have the first 32768 channels of all zeros if the display controllers expected 32768 as their starting channel.

Offline charleskerr

  • Jr. Member
  • **
  • Join Date: Jun 2013
  • Location: Oak Hill, VA
  • Posts: 87
  • Kudos: 0
Re: Media name in FSEQ
« Reply #9 on: September 23, 2014, 10:22:12 AM »
WHy wouldn't the controller that doesn't use the top half just get a different fseq with  that doesn't have those channels?

I guess it is a trade off, but I have found for my purposes, I want to have diffrent configurations and reuse of channels on my seperate "universes" (controllers being fed a a fseq file).  SO I have a mapper program that reads my sequence file and generates the correct fseq file for that universe. Keeps the fseq files relative small, with data that is relevant to the universe at hand. THe trace off is more management on the user of configuration of fseq files to universes ( I just use directories for that).

Doesn't hurt either way I suppose, but it is a step of moving more physical layout information into the fseq file.  Once started, I am just concerned on how far it could go.  At the extreme, it becomse so specific to a single application or intended use, it is no longer as useful to a universal file format.  But perhaps that isn't the intent.

Trade offs either way I suppose.

Offline smeighan

  • Developer
  • ******
  • Join Date: Mar 2013
  • Location: Highlands Ranch, Colorado
  • Posts: 1,033
  • Kudos: 11
    • Nutcracker123
Re: Media name in FSEQ
« Reply #10 on: September 23, 2014, 11:27:40 AM »
In xlights terms the Xseq/fseq is a binary file that can only be used on a specific hardware layout. If I share a sequence with someone, I never share the binary files, only the sequence.xml. How u wrapped a tree, I have a mini tree, u have a horiz matrix, that is all in the models and the xml. In order to get the FPP to work with what I created , I must get the channel layouts to match. I think keeping the audio file name is a good idea. If there was another element to add it could be the info in xlights_networks.xml. Maybe the controller channel info could then be used to auto configure the FPP.
Sean
Littleton, CO
Latest releases http://nutcracker123.com/nutcracker/releases
xLights/Nutcracker Forum http://nutcracker123.com/forum/index.php
Facebook [url=https://www.facebook.com/groups

Online CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 8,268
  • Kudos: 151
Re: Media name in FSEQ
« Reply #11 on: September 23, 2014, 11:41:45 AM »
WHy wouldn't the controller that doesn't use the top half just get a different fseq with  that doesn't have those channels?

The controllers wanting different subsets of channels is just an example.

We already use this same channel offset or 'startChannel' concept in the .eseq files which contain data for only a single model (the spec allows more, but we only support 1 currently).  It's only 2 bytes to specify this offset but would make things easier to test for some users.  Normally this value would be zero, but if it was set then we effectively read data into "&seqData[startChannel]" instead of reading into "seqData".  My suggestion is mainly about flexibility and it only costs 2 bytes in the .fseq.

I have envisioned a 'fseq splitter' similar to what your mapper program does.  Having the ability to specify an optional startChannel would allow users to split a fseq without having to reconfigure all their hardware.

Offline ebrady

  • Jr. Member
  • **
  • Join Date: Dec 2013
  • Location:
  • Posts: 51
  • Kudos: 0
Re: Media name in FSEQ
« Reply #12 on: September 23, 2014, 02:03:11 PM »
In xlights terms the Xseq/fseq is a binary file that can only be used on a specific hardware layout. If I share a sequence with someone, I never share the binary files, only the sequence.xml. How u wrapped a tree, I have a mini tree, u have a horiz matrix, that is all in the models and the xml. In order to get the FPP to work with what I created , I must get the channel layouts to match. I think keeping the audio file name is a good idea. If there was another element to add it could be the info in xlights_networks.xml. Maybe the controller channel info could then be used to auto configure the FPP.

I agree with this, I can see benefit in having the controller information (pretty much like that in xlights_network.xml) embedded into the file.

You could allow the user the option of using the stored controller config, or to use the regular system config.   This data could be optional also,  so if the user wants to keep the file as small as possible, it could be omitted from the file.  Having this information in there to could make it easier to convert the fseq file back into something that could be reloaded into xlights or one of the supporting sequencer for modification also. 

With in the first few days of the Vixen3.1 release, I answered 3 different support requests on the forums and in e-mail which where due to controller setup mismatches between FPP and Vixen3. If V3 embedded this information and FPP could consume it, then it would eliminate some of these issues.

Offline smeighan

  • Developer
  • ******
  • Join Date: Mar 2013
  • Location: Highlands Ranch, Colorado
  • Posts: 1,033
  • Kudos: 11
    • Nutcracker123
Re: Media name in FSEQ
« Reply #13 on: September 23, 2014, 02:23:32 PM »
Just in general it bothers the engineer in me to have people enter the same data multiple times. If I am a lor user,I setup controllers. If I am using e682, falcon hardware I again have to define channels, universes. If I use xlights, I need to fill in the SETUP tab. If I now use FPP I need to again setup channels, universes . Four different places, basically the same info. Some future state info would be entered once and all places could use that data to self configure. Maybe next year

Offline charleskerr

  • Jr. Member
  • **
  • Join Date: Jun 2013
  • Location: Oak Hill, VA
  • Posts: 87
  • Kudos: 0
Re: Media name in FSEQ
« Reply #14 on: September 23, 2014, 02:34:27 PM »
In xlights terms the Xseq/fseq is a binary file that can only be used on a specific hardware layout.

That may be how you use it, but that doesn't have to be the case. I distribute a lot of binary files, configured for different layouts.  For instance, I have one sequence file, that has all my decorations sequenced (my text file that is used by my sequencer).  Those decorations are controlled by four different beagle bones.  I create, from that one sequence file, four difference fseq files (when I export to the fseq, I provided the remapping).  If  neighbor chooses to duplicate or be close to a setup (in terms of channel layout, doesn't have to be controller layout), they can just use the closest fseq file.  Their controller or binary file distributor may be very different in how sends out the data (it may use a different mapping on the fly). It doesn't matter, as long as it has a general understanding of frame length, number of frames, and framerate.


However, if one wants to embedded controller information into the metadata, I can work with that.  It is just more difficult to accommodate all the different possibilities and still have a streamlined header.

 

Back to top