Author Topic: Open light sequencer format?  (Read 1445 times)

0 Members and 1 Guest are viewing this topic.

Offline T3sl4co1lTopic starter

  • Super Contributor
  • ***
  • Posts: 22435
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Open light sequencer format?
« on: December 12, 2019, 04:09:46 pm »
I'm building a simple LED controller for shop lighting.  Might as well put some effects on it -- glowing, flashing, color fades, that sort of thing.  (I've already implemented gamma correction, and per-channel fading between setpoints.)

Looks like this, if you're curious: https://www.seventransistorlabs.com/Images/QuadController1.jpg

Basically, it comes down to a wave file or sequencer -- either: at time x[n], channels 0-3 <= new value(s); at time x[n+1], ...; or: set channel(s) w <= z, delay(n), etc.  Arb gen data would do, multichannel wave would do, sequencers would do; etc.

I'm leaning towards a sequencer, should be the most compact format.  Not sure how I want to store the program, if it should be loaded into RAM or ROM or EEPROM or what.  Perfectly happy to write my own, but what I'm wondering is:

Is there a somewhat standard format people have used for this before?

Also unsure if I want per-channel programming, or all at once, or let the program select, or what.  Hmm...

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline senso

  • Frequent Contributor
  • **
  • Posts: 953
  • Country: pt
    • My AVR tutorials
Re: Open light sequencer format?
« Reply #1 on: December 12, 2019, 05:57:27 pm »
DMX?
 

Offline ajb

  • Super Contributor
  • ***
  • Posts: 2821
  • Country: us
Re: Open light sequencer format?
« Reply #2 on: December 12, 2019, 06:09:57 pm »
Is this all so that you can walk into your workshop, hit the switch, and get that cool sci-fi effect of all for the lights coming on one at a time, starting from the closest to the door? :clap:

I doubt there's a 'standard' that extends beyond any particular ecosystem.  The stage lighting world uses cue stacks, which are a similar concept, but a bit more abstract on modern control systems (calling into palettes/presets rather than a plain list of channel values) and the exact way they work varies.  Actually, come to think of it, there is a USITT ASCII file format specifically for stage lighting show files, and I think it includes a way of storing cue lists.  Being ASCII, it's verbose and inefficient, and I'm not sure how sophisticated it is, so probably not useful to you.  Not many people use it. 

Anyway a very general approach to the concept would be something like, for each cue:

- List of channel values in this cue
- Fade up time
- Fade down time
- Optional cue to link to automatically
- Delay before linking to next cue

This works very well up until the point when the link delay is less than the fade times (or the user manually advances the cue list), at which point you need to figure out what happens when one channel is commanded to a new value but hasn't yet finished fading to it's previously commanded value.  Stage lighting also tends to have a lot more going on and so has even more complications to resolve, but a general distinction is made between 'highest takes precedence' and 'latest takes precedence' when resolving which command takes priority on a given channel (highest meaning commanded channel value, last meaning most recently commanded).  Most control systems these days default to LTP because HTP really only makes sense for intensity, and is sort of meaningless for things like pan/tilt, color, gobos, etc.

For a simple system, you can probably just define that fade times must be less than link times and be done with it (or that the link delay is added to the longer of the two fade times), that simplifies implementation a LOT, but does limit the sorts of effects you can display.  For a small number of channels you can always store all of them, and mask out any channels that a given cue should not affect, or you can choose a more complicated scheme that can more efficiently support sparse channel lists.
 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 21611
  • Country: us
Re: Open light sequencer format?
« Reply #3 on: December 12, 2019, 06:19:56 pm »
DALI and DMX are the two commonly used lighting control protocols I'm familiar with. DALI is normally used for permanent installations to control general illumination which is what it sounds like you're doing. DMX is used for stage and theater lighting and other effects, it has gained popularity with a lot of people using it in their holiday light displays.
 

Offline ajb

  • Super Contributor
  • ***
  • Posts: 2821
  • Country: us
Re: Open light sequencer format?
« Reply #4 on: December 12, 2019, 06:21:39 pm »
Just for the sake of interest, here's a snapshot of cue list on a modern stage lighting control system (Avolites Titan).  This has separate delays for fade in/out, and you can see the optional link columns.  This is a lot more sophisticated than the basic approach I described. 

-"Move in dark" is for moving lights, essentially it delays pan/tilt changes until after the intensity has reached zero, so that lights can turn off, move to their new position, and then turn on again. 
- Tracking controls how previously commanded channel values and effects are handled (a given cue can block previous commands from carrying through to subsequent cues).
- The timecode column allows cues to be fired automatically at specific times based on a free-running clock or an external timecode source.
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 16278
  • Country: fr
Re: Open light sequencer format?
« Reply #5 on: December 12, 2019, 06:25:50 pm »
I just thought about DMX-512 as well. But if I'm not mistaken, DMX is just a communication protocol that doesn't include any sequencing feature per se?
 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 21611
  • Country: us
Re: Open light sequencer format?
« Reply #6 on: December 12, 2019, 06:35:55 pm »
DMX and DALI are both just the protocol, sequencing is up to the controller.
 

Offline T3sl4co1lTopic starter

  • Super Contributor
  • ***
  • Posts: 22435
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Open light sequencer format?
« Reply #7 on: December 12, 2019, 06:58:38 pm »
Yeah, I don't need comms, I'll just talk ASCII over serial.  Right now it's set up as a command prompt.  Probably a script could translate very easily between something like DALI and it.

Don't need something as high level as stage lighting, something a lot simpler would do.

Right now the lights are just over my bench, so, any kind of display isn't really at all useful, it's just for S&Gs. ;D

The sequencer I could just put in a script, as well.  Was thinking at first, putting it on the MCU, but either will do, really.

Would also be neat to, say, capture PC audio out, filter by frequency bands, and transmit amplitudes as brightness commands -- a light organ.  Get some party lighting going when I'm jamming to music and not trying to do any work.  That would take a bit of doing, though... I'm guessing the Windows audio system is a typical mess.

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline RoGeorge

  • Super Contributor
  • ***
  • Posts: 7256
  • Country: ro
Re: Open light sequencer format?
« Reply #8 on: December 12, 2019, 07:43:25 pm »
DMX is the established standard in the industry.  Light shows, theaters, concerts, Christmas lights, everything from spots to lasers or simple dimmers is controlled by DMX.  There are all kind of controllers and software tools, can be interfaced with any MIDI device, there is an entire environment for DMX, standardized connectors, etc.

Very simple protocol (it sends 8 bits values over a serial daisy chain of devices, devices can be anything), easy to implement, everybody uses it, strongly recommended to use DMX than to reinvent it.

For PC, there is already plenty of free DMX software controllers, e.g. Freestyler, DMXcontrol, or payed ones.  Many can take music, or images, or the position of a MIDI knob as an input, or simply create timers, and use all that (many sources can be mixed) to control lights intensity, or colors, or laser positions, or whatever other DMX devices that are listening to a chain of 8 bits values.

Later edit:
-------------
A random list of DMX controllers software, compiled for a project some years ago

Showmagic SL24 - free max 24 channels
ADJ MyDMX
Chauvet Xpress 512.
DMXControl - free
"Clarity" by LSC Lighting
Chauvet's showXpress
Freestyler
« Last Edit: December 12, 2019, 07:55:23 pm by RoGeorge »
 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 21611
  • Country: us
Re: Open light sequencer format?
« Reply #9 on: December 12, 2019, 07:54:06 pm »
I use Vixen to control my Halloween display. Version 2.x, I tried 3.x a couple times and couldn't make any sense of it, I think they tried to make it do too much and it lost the elegant simplicity that made the older versions so good.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf