DiyLightAnimation
Fun => The Porch => Topic started by: csf on August 18, 2011, 01:58:05 am
-
Well the other day some of you may of scene in the xlights topic that I have gotten a bit side tracked with another idea. So here is some information for you all.
The real time lighting project (Name may eventually change) is a project geared at creating a lighting program that will control you lights in real time to what ever song you throw at it, no sequencing required.
Currently it works with a single universe of DMX lights. Additional universes and protocols may be supported at a latter date, but that decision will be moths away at best, there is allot of other things to work on first.
Where does this fit in with xlights? I am sure this is a question some of you may have and truly I am not 100% sure. This program is in a different language and structured rather differently then xlights. Part of me is thinking it may be best to make this a separate project not to cause confusion.
If all goes well I would like to use a version of of this program as part of my Halloween display this year. That being said I maybe able to have an alpha version out with in a few weeks.
To give you all a better idea of what I am working on here is a sample video.
http://www.youtube.com/watch?v=0qnUDmXVZcw (http://www.youtube.com/watch?v=0qnUDmXVZcw)
In the video I had a Enttec DMX pro driving a LOR 16 DC bored controlling 2 of last years Rainbow Flood Lights daisy chained.
-
Interesting.
Ron
-
Just like a Madrix S2L - Great!!!
-
Sounds like a great project. I can't wait to try it.
-
Have you considered using this as a sequence developer tool? The output of this would certainly make developing sequences much easier.
Just a thought ...
\dmc
-
Interesting.
Ron
I thought Spock would be more likely to use the word "Fascinating". ;D
-
Interesting.
Ron
I thought Spock would be more likely to use the word "Fascinating". ;D
LOL! I knew that was coming. That is what I thought after I posted it. You will have to excuse me.... I am right in the middle of Pon Farr >.d9
Ron
-
Interesting.
Ron
I thought Spock would be more likely to use the word "Fascinating". ;D
LOL! I knew that was coming. That is what I thought after I posted it. You will have to excuse me.... I am right in the middle of Pon Farr >.d9
Ron
Ron,
Enjoy it while you can 'cuz the next will be a very long 7 years away... >:D
Greg
-
Have you considered using this as a sequence developer tool? The output of this would certainly make developing sequences much easier.
Just a thought ...
\dmc
Yes I have thought about that. Probably wont come about until I have a fairly useful program. Right now the program is just to limited to be much use for making sequences.
-
Just want to give you guys an update.
Work is moving along. I am hoping to have something ready for download with in about three weeks.
The first go at this is going to be on the technical side.
Almost everything will be set up by hand generating XML file. Don't fear though there really not that complex at all ;)
If all goes well there will even be java script integration, so if you know how to program you can customize the effects.
Detecting something in the sound wave is only a small part of the equation, making the lights respond in a way that makes sense is real the real creativity comes in and where the scripts and xml files will help us :)
It would be rather challenging to make a scripting GUI but a GUI for the XML files will definitely come sometime next year. I just want to get core done, before worrying about the fluff :)
-
Time for some Information on what the first release will feature.
First is the screen shot of what the program will look like attached to this post. The screen shot is from OSX but I have also tested it on windows XP and it should also work on Linux.
Description of the screen shot:
Start = Start playing song, if song selected and starts setting lights to the song, or the audio input.
Pause = Pauses playing song, if song selected and pauses the light animation
Stop = Stop playing song, if song selected and stops light animation, turning off all lights.
Next Song = App will now select the next song off your song list
Previous Song = App will now select previous song off your song list
Load Settings = Loads main XML file that references the rest of the XML files the program needs
Preset = A static state you can configure for your light show (Basically a list of channels and there intensity)
Real Time = Instead of playing a song you can attach you mic / line in and the lights will respond to what ever comes in. (Only main Beat detection works in the mode).
Anim Start = Starts Animation on the screen
Anim Stop = Stops animation on the screen
FPS On = Shows FPS counter
FPS Off = Hides FPS Counter
Load Song = Allows you to select a sound file not in your sound file list
FPS = Frames Per second (Ideal FPS is 100 FPS, which = 10ms between each light command)
Song = Title of song
By = Artist of Song
NA = None Applicable, we have no way of determining the song name in real time mode
Green Circle = Main beat detection
Blue Circle = Low range sound detection (Not for real time mode)
Yellow Circle = Mid range sound detection (Not for real time mode)
Orange Circle = High range sound detection (Not for real time mode)
Feel free to make comments, suggestions, or ask questions.
-
Will you be able to modify the screen layout at all? I run windows and am thinking of something like a bar, or even a gadget...
Otherwise looking good - and cant wait :) Can put my 2 old 4 channel AC controllers away for good - Flex strips at the ceiling line around the game room will look good :)
am hoping to be able to merge this into my MP3 jukebox that is on the wall :) (runs windows behind the scenes)
Thanks
Myk
-
Glad you like the idea! When you say bar do you mean a task bar application?
-
something like what you can do with winamp - make it into a floating bar on the screen
-
Thanks for the suggestion!
In the next few months chancres are there will not be a view like you suggested. With the limited amount of time before Halloween and Christmas I want to try and focus the effort on the technical aspects of the app.
Once January comes around I plan to restructure the app based on the feed back of the community and some of my other ideas for this app.
There is a good chance the version of the app to come out next year will include a small limited control view, like you suggested!
-
Kewl, we can only ask/suggest :)
if you need help with anything - testing etc - let me know
Myk
-
Kewl, we can only ask/suggest :)
if you need help with anything - testing etc - let me know
Myk
Will do thanks!
So for the weekly update...
Progress is going nicely. Took a while to get xml file handling working on OSX but the issues are finally cleared up. I added a bar across the top of the app (see screen shot) that shows the progress of the song. (first number is time into the song, number at the bar is the seconds in to the song (needed to function correctly, may try to hide it in future versions) and time remanning in the song. The bar can also be used to skip around in the song. Skipping more then a few seconds will result in about a 10 second load time. The load time is unfortunately needed due to the sound analyses going on. I think its better to be able to skip and load then not skip around at all.
Also included in the screen shot is an example playlist xml file.
There was allot of work done in the background in the last week, but don't want to boor you all with technical details.
Remaining items:
Finish XML file handling (Should be done by the end of the week)
Implement DMX code (Should only take a few days to get working. I already have dmx code from the prof of concept, I just want to make some modifications to it)
Implement effects (should take about a week, the ideal solution would be to use java script, if time becomes and issue I will make a hard coded version for now and add java script support latter)
Questions / Comments / Suggestions welcomed :)
-
Let me know if I can help in anyway :)
Am possibly looking to do some predefined chase sequences to the beat of like the base track etc - kinda like some of my old light controllers could....
Myk
-
Let me know if I can help in anyway :)
Am possibly looking to do some predefined chase sequences to the beat of like the base track etc - kinda like some of my old light controllers could....
Myk
Thanks I will let you know I can use any bata testers.
You should definitely be able to do a chase to the base track.
I have bought a few CCR from LOR during there last sale... Please don't shoot me I planed to go pixel net but my life had other ideas for me this year and I ran out of time to get a system together @-@... Any way I am fully thinking of ways to use RGB pixel based lights with this program and have some interesting ideas. I have already run some test and like the results so far.
-
So I have started working on this program again and have another video to share.
http://www.youtube.com/watch?v=3QqIvso2Xx4
I am still trying to figure out exactly what direction I want to go with this program, but I will keep you posted on my progress.
-
Pretty neat...when will you share?
-
Pretty neat...when will you share?
Glad you enjoyed it! I will have a much better idea for the programs time line in a few weeks.
Right now I am working on making a lot of the hard coded values XML configurable and testing the program.
First release will probably be a closed source beta limited to 1 universe of DMX RGB Pixel strings. Possibly DMX RGB Spot lights too. XML configurable with a limited number of hard coded effects. Granted RGB is just 3 channels so you could just use any DMX device to get the general idea.
The goal will be to support more then just RGB devices, support multiple DMX universe, have everything configured from the GUI, and have a flexible effect system.
I just want to stay focused on getting something released then get so caught up on making this complex program that it gets no where.
-
I'd like to volunteer if testers are needed. I have 4 CCRs both MAC and PC.
Looks great so far...
Tom
-
I'd like to volunteer if testers are needed. I have 4 CCRs both MAC and PC.
Looks great so far...
Tom
Thanks for the offer that is great to know!
Do you have a way to control lights using DMX? This program does not work with the LOR protocol.
-
i can control smart strings via dmx
-
I've been looking for something just like this to use at my fourth of july party. Actually posted about it about a month ago. I'd be more than happy to test the program as well. Can't wait to try this out!
-
i can control smart strings via dmx
Smart strings and DMX really don't go well together. DMX simply doesn't offer enough channels for it. Now if they were monocrome light strings .....
-
regardless if it goes well or not, he was asking if they can control the lights via dmx, and so i spoke up that yes, i can.
-
LOL, my mistake. I read i wrong and thought that you were asking if it could control RGB with DMX. Never mind.
-
Yes I can control via DMX both Lynx DMX dongle and E1.31 to 4 X DMX bridge.
-
Thanks all for the offers to beta test! Looking forwards to getting a version of this out for public use!
-
Real Time = Instead of playing a song you can attach you mic / line in and the lights will respond to what ever comes in. (Only main Beat detection works in the mode).
Can you briefly explain how you detect the "main" beat? Do you use an FFT algorithm and display the instantaneous dominant frequency at the given sample rate or . . . ? I'm trying to envision what a display might look like if I used Tchaikovsky's "1812 Overture" or Pachelbel's "Canon in D".
Richard (from SoCal) :)
-
Since originally posting that, I got all beat detection working with both audio files and mic / line input.
There are two different algorithms at work in this program.
The main beat detection is based off of spikes in the audio level.
Then I have frequency detection that makes use of FFT that detects sounds in a cretin frequency range. Right now I have them set up for low, mid range and, high frequencies.
Using all four of the above beat detection values along with some additional logic makes the designees shown in the last video.
I am not sure how it will respond with classical music since I have yet to try it, but its something I can try.
-
THANKS for the info.
You are further ahead than I in this endeavor, as I am still in "thinking" mode. The classical music mentioned is a type of "stress" test for my ideas; if the display works for this music, it should work for most holiday music as well.
My current thinking is to use many more frequency "buckets". One way is to use the MSGEQ7 Graphic Equalizer Display Filter, an incredibly easy chip to interface to a micro-controller (uC). For even more buckets, an FFT algorithm seems to be the method of choice, as you have incredible control over the number of buckets and frequency range. Using another uC, you can do further filtering and control, especially if an RGB string is used. Seems like a fun project; I only need to find the time! ;D
Richard (from SoCal) :)
-
THANKS for the info.
You are further ahead than I in this endeavor, as I am still in "thinking" mode. The classical music mentioned is a type of "stress" test for my ideas; if the display works for this music, it should work for most holiday music as well.
My current thinking is to use many more frequency "buckets". One way is to use the MSGEQ7 Graphic Equalizer Display Filter, an incredibly easy chip to interface to a micro-controller (uC). For even more buckets, an FFT algorithm seems to be the method of choice, as you have incredible control over the number of buckets and frequency range. Using another uC, you can do further filtering and control, especially if an RGB string is used. Seems like a fun project; I only need to find the time! ;D
Richard (from SoCal) :)
Do you know how to program? Chances are after I build the base, beta test, and document the code, I am going to release this as open source.
-
THANKS for the info.
You are further ahead than I in this endeavor, as I am still in "thinking" mode. The classical music mentioned is a type of "stress" test for my ideas; if the display works for this music, it should work for most holiday music as well.
My current thinking is to use many more frequency "buckets". One way is to use the MSGEQ7 Graphic Equalizer Display Filter, an incredibly easy chip to interface to a micro-controller (uC). For even more buckets, an FFT algorithm seems to be the method of choice, as you have incredible control over the number of buckets and frequency range. Using another uC, you can do further filtering and control, especially if an RGB string is used. Seems like a fun project; I only need to find the time! ;D
Richard (from SoCal) :)
Do you know how to program? Chances are after I build the base, beta test, and document the code, I am going to release this as open source.
Have u looked at widi recognition system?
This is a tool that takes an mp3 as an input and then changes it into a midi file. http://www.widisoft.com/mp3-to-midi.html
It was original written in 1998 , so 14 years old. I came across forum entires where they were going over the detection methods they use for beat detection and the fft they use to get dozens of channels out of music.
I tried their demo on different mp3s. some worked ok, some not so good. The issue is the timbre of the music that is all mixed together. Think of clarinets, flutes, trumpets, strings all playing together. Now try and detect the 3rd clarinet part out of that mp3, not quite yet.
They are making progress and i do foresee a time when it will be a great asset.
This takes me back 20 years to those boxes radio shack had to connect to your stereo so they would turn lights on to the beat of the music.
Your tool looks very promising.
-
Do you know how to program? Chances are after I build the base, beta test, and document the code, I am going to release this as open source.
I do. I will be interested in seeing your approach in action. Many approaches have been previously implemented in "color organ" design; I have always felt that a software FFT with a few additional uC filters may allow for a better display to a broader range of music. I believe trying to detect too many instruments simultaneously creates a very busy display and may be less visually satisfying. YMMV.
Richard (from SoCal) :)
-
THANKS for the info.
You are further ahead than I in this endeavor, as I am still in "thinking" mode. The classical music mentioned is a type of "stress" test for my ideas; if the display works for this music, it should work for most holiday music as well.
My current thinking is to use many more frequency "buckets". One way is to use the MSGEQ7 Graphic Equalizer Display Filter, an incredibly easy chip to interface to a micro-controller (uC). For even more buckets, an FFT algorithm seems to be the method of choice, as you have incredible control over the number of buckets and frequency range. Using another uC, you can do further filtering and control, especially if an RGB string is used. Seems like a fun project; I only need to find the time! ;D
Richard (from SoCal) :)
Do you know how to program? Chances are after I build the base, beta test, and document the code, I am going to release this as open source.
Have u looked at widi recognition system?
This is a tool that takes an mp3 as an input and then changes it into a midi file. http://www.widisoft.com/mp3-to-midi.html
It was original written in 1998 , so 14 years old. I came across forum entires where they were going over the detection methods they use for beat detection and the fft they use to get dozens of channels out of music.
I tried their demo on different mp3s. some worked ok, some not so good. The issue is the timbre of the music that is all mixed together. Think of clarinets, flutes, trumpets, strings all playing together. Now try and detect the 3rd clarinet part out of that mp3, not quite yet.
They are making progress and i do foresee a time when it will be a great asset.
This takes me back 20 years to those boxes radio shack had to connect to your stereo so they would turn lights on to the beat of the music.
Your tool looks very promising.
Thanks I did not know about that, I will take a look.
Do you know how to program? Chances are after I build the base, beta test, and document the code, I am going to release this as open source.
I do. I will be interested in seeing your approach in action. Many approaches have been previously implemented in "color organ" design; I have always felt that a software FFT with a few additional uC filters may allow for a better display to a broader range of music. I believe trying to detect too many instruments simultaneously creates a very busy display and may be less visually satisfying. YMMV.
Richard (from SoCal) :)
From my experiments the real trick to making it look good is how what you do between beats and how you respond to when there is a beat.
Lets take my first video of the spot light, its much simpler to explain the logic.
If I get a beat I turn the intensity up full, then each frame of no beat I decrees the intensity until I hit my low intensity limit that I stop decreasing Intensity at. Now if I am at a mid intensity and a new beat comes in I keep the same color. If I am at my low limit intensity and a new beat comes in I change the color and make the intensity full power.
If you just do a hard on / hard off to each time you get a beat I am not a fan of the results. Its just to spartic for my taste.
-
From my experiments the real trick to making it look good is how what you do between beats and how you respond to when there is a beat.
Lets take my first video of the spot light, its much simpler to explain the logic.
If I get a beat I turn the intensity up full, then each frame of no beat I decrees the intensity until I hit my low intensity limit that I stop decreasing Intensity at. Now if I am at a mid intensity and a new beat comes in I keep the same color. If I am at my low limit intensity and a new beat comes in I change the color and make the intensity full power.
If you just do a hard on / hard off to each time you get a beat I am not a fan of the results. Its just to spartic for my taste.
One of the best analog implementation I have seen can be found at www.audiolites.com. Take a look at their 20-channel implementation, using discrete, sharply tuned filters for each color channel. They chose rings for the visual pattern of each channel (a uC can define any desired pattern, changeable at any time) and cleverly interleaved adjacent channels for a more visually enjoyable experience. You can view various audio demos (look at "Vivaldi Concerto for Two Recorders").
At any instant in time, an FFT will identify numerous active channels. A uC allows you to decide which of the active channels will be displayed and at what intensity. In addition, you can control the sample rate, thus determining how active your display becomes.
My initial thinking was to merge a color organ and RGB matrix, thus allowing short passages of the show to free-run in color organ mode before switching to RGB matrix mode, sequenced in the normal manner.
Richard (from SoCal) :)