Michael Erlich - 2013-02-05

Introduction

The Xlights designer provides a sequencer for designing your light displays similar to audio/video editors. It includes a canvas to layout the lights against a background image of your house/building so that the display can be simulated to view the results of the design. It contains a flexible plugin architecture to allow custom communications controllers to be created to control any devices that you will be using. Since my own implementation will be using an Arduino processor, the sample controllers use MIDI and Serial communications. They offer templates on how to create your own plugins to work with the devices that your lights are connected to. Since I am designing my own controller, it will need to be customized to fit your own needs. It can be designed to work with any other controller on the market including DMX if you have such devices. Since, I do not have any standardized controllers, I have not way of testing such an interface and have left that task for anyone that chooses to do so. However, if you are able to create such a controller and have interest in taking part in the project, let me know and I will happily include it for distribution with the Xlights application with due credit displayed for your efforts.

This is still a work in progress and currently experimenting with low pass filters for finding audio peaks to make alignment of lights toggling on/off easier to edit.

Credits

Xlights wouldn't be possible without the hard work of many other open source projects. I offer my gratitude for those that have provided the sourcecode of their hard work to make this application possible.

DrawToolsLib

Created by Alex Farber, available on code project. Provides the foundation of the simulation canvas.

AttachedCommandBehavior

Created by Marlon Grech which allows for attaching control events to the view model.

MathNet.Neodym

Created by Christoph Ruegg as part of the Math.NET project used for the audio peaks analyzer.

NAudio

Created by Mark Heath and used for playing the mp3 audio files.

WPF Sound visualization Library

Created by Jacob Johnston and used for displaying the waveform for the audio file and the time clock for the location in the audio file.

TabLib#

Created by Alan McGovern, Alexander Kojevnikov, Andy Beal, Bertrand Lorentz, Garbirel Burt, John Milikin, and Stephen Shaw, and used for displaying the metadata written into the mp3 files.

MidiDotNet

Created by Tom Lokovic and used for the sample MIDI communications controller to allow controlling lights via a MIDI interface.

WPF Tooklit Extended

Created by many (http://wpftoolkit.codeplex.com/team/view) for various controls used by the Xlights application.