Nutcracker in 2013

Nutcracker in 2013

  • C++ version of Nutcracker. No more WAMP

    Votes: 20 69.0%
  • Add beat tracks, notes to music phrases

    Votes: 18 62.1%
  • Be able to play movies in nutcracker. Start with avi files.

    Votes: 10 34.5%
  • Expand targets: Marty fans, horiz matrix, snowflakes, stars

    Votes: 20 69.0%
  • Create a msq, asq file export for LSP

    Votes: 16 55.2%

  • Total voters
    29
  • Poll closed .

smeighan

Dedicated elf
Joined
Jan 19, 2012
Messages
1,109
Location
4217 Greenfinch Dr CO 80126
Well it is time for 2013 planning for Nutcracker


I am open to any suggestions you would like to see.


This is my current short list
1) Explore making Nutcracker C++. This will give real time feedback while creating effects. Still to be worked out as how these standalone programs can talk to a central database so that we still get the gallery. If Nutcracker can talk to a remote database this will reduce the Nutcracker foot print from 1 gigbyte to < 20mbytes. Today Mysql+Apache=970mbytes + 10mbytes of php Nutcracker code. Future could be just 20mbytes of C++ code. The code would be C++ plus wxWidgets. There would be a Windows, Linux and Mac version available.


This option would eliminate the need for wamp or xampp to be installed on your machine.


2) I want, in the future , new effects that can be easily shared by other sequencers. For example the new fireworks effects (with physics, particles fall), should just be able to be dropped into xLights. I want to see if Vixen 3 and HLS could use effect generation modules in their sequencers.
3) New expansion of Music phrases. Beat tracks, Notes, individual instruments. Once a song has been marked up, everyone could use it. Each person would decide what effects to attach to the new meta data.
4) Speaking of #3, enhance current effects to be beat aware. Example: While a spiral is turning, have beat track effects that can highlight that effect. Maybe flash white on spiral on down beat of each beat.
5) Be able to play movies in nutcracker. Start with avi files.
6) Use avi files to create layers over top of your existing effects or have them be effects by themselves
7) Expand targets
a) all targets can start at the left,right,top,bottom corners.
b) Horizontal matrix
c) Marty Fans
d) Spinners
e) Snowflakes. You will be able to design how many arms
f) Stars. 5 point, 6 point, n point. Have effects specific to stars
g) Each string in your target can be given a starting channel #.
8) Create a msq, asq file export for LSP
9) Expand single strand effects. Model arches, eaves better.
10) Write software that can locate every rgb pixel in your display by capturing a video of your show and mapping each rgb node to x,y,z space. Think cover a tree with strings and then map all the pixels. Now the tree is a "matrix" that we can project all our effects on to. This is a big , fun target
11) Increase effect classes
a) plasma balls
b) fireworks
c) process a mp3 and great equalizer effects
d) general sound to effects
e) general video to effects




So what would you all like to see this year?
 

smeighan

Dedicated elf
Joined
Jan 19, 2012
Messages
1,109
Location
4217 Greenfinch Dr CO 80126
bdeditch said:
Be able to export to LOR animation file as well as Musical

I will make a las export sometime in the next few weeks.


I need someone to


create a nutcracker effect, like bars. export as lms. load it into LOR and the save as las.


I then need the lms and the las file sposted where i can download them


thanks
 

toodle_pipsky

Minister of Silly Walks
Joined
May 9, 2010
Messages
334
Location
Toowoomba, Australia
Really looking forward to getting into Nutcracker properly this year. Unfortunately ran out of time last year to really use it (crashes and me just being clueless!). Keep up the great work! :)
 

smeighan

Dedicated elf
Joined
Jan 19, 2012
Messages
1,109
Location
4217 Greenfinch Dr CO 80126
I was thinking of making some batons. Have them in different colors. I haven't figured out the electronics, but I need to be able to detect where the baton is, maybe just in vertical space.


I was then going to connect their movements to the lights. Get kids to conduct the music. Effects follow what they do.


It would make the show very interactive


i was thinking of having kids along the sidewalk, so maybe 10'. I want to make it so that they kids who have blue batons, will draw with blue. If they weave among themselves, the colors on my display match their movements.


With Nutcracker maybe going to a C++ program, xlights already is real time. It handled my 12,100 channels with no lag.


I would start with what they do would only show up on the megatree. take it from there.
 

oldmanfathertime1000

Computers, music, audio, video, electronics
Joined
Jan 19, 2012
Messages
157
Location
Lake Arthur, Louisiana
That will be a great idea to have the kids see the effects that they are making themselves. That is the things that they will remember for the rest of their lives....
 

smeighan

Dedicated elf
Joined
Jan 19, 2012
Messages
1,109
Location
4217 Greenfinch Dr CO 80126
oldmanfathertime1000 said:
How are you doing with the downloading of the Gallery to the local host ???

code currently creating more than 1000 images. I am working through the bad data people have entered into the 10,000 effects. This is what i get for not having more rigorous error checking. Should be done by this weekend.
 

ptone

New elf
Joined
Nov 7, 2010
Messages
23
Location
Santa Barbara
smeighan said:
I was thinking of making some batons. Have them in different colors. I haven't figured out the electronics, but I need to be able to detect where the baton is, maybe just in vertical space.

I've done simple experiments with a kinect when it first came out a couple years ago, controlling LED lights on an AC controller in response to kinect data and a person's movements:


Next kinect and dmx demo


The other option if you have lit batons would be to use OpenCV to do the detection.


http://www.aishack.in/2010/07/tracking-colored-objects-in-opencv/

smeighan said:
It would make the show very interactive

With Nutcracker maybe going to a C++ program, xlights already is real time. It handled my 12,100 channels with no lag.

I would start with what they do would only show up on the megatree. take it from there.

So I've been working slowly over the last couple years on a Python toolkit to do this sort of realtime interaction.


It takes a completely different approach to sequencing than most tools, but Nutcracker is the closest thing in some ways (and SuperStar). It uses code objects to represent elements in a display, and events to trigger behaviors. The behaviors and effects are all generated via framerate agnostic time based algorithms in real time. These behaviors alter values in the object, and then the objects translate those values (ie Hue, speed, etc) into channel values which are picked up and sent to participating networks.


The input layer, the channel generating layer, and the output networks are each an abstraction layer, so you can mix and match and combine them. For example: Input being one or more of [touch screen, MIDI, kinect, etc] - triggering [Chases, pulses, maps, etc], sending channel data out [E1.31, artnet, serial DMX, LOR etc] (E1.31 is all I'm focusing on for now).


Performance wise, you can do this in regular Python with a fairly large number of elements at 30-40fps, and I think you can give C++ a real run for the money on performance with something called pypy, which is a newer Python JIT based interpreter. Some quick tests I did had 12K pixels with effects being calculated in realtime using pypy.


C++ would involve a complete rewrite of Nutcracker wouldn't it? Would you change the architecture of it in a fundamental way?


-Preston
 

smeighan

Dedicated elf
Joined
Jan 19, 2012
Messages
1,109
Location
4217 Greenfinch Dr CO 80126
ptone said:
smeighan said:
I was thinking of making some batons. Have them in different colors. I haven't figured out the electronics, but I need to be able to detect where the baton is, maybe just in vertical space.

I've done simple experiments with a kinect when it first came out a couple years ago, controlling LED lights on an AC controller in response to kinect data and a person's movements:


Next kinect and dmx demo


The other option if you have lit batons would be to use OpenCV to do the detection.


http://www.aishack.in/2010/07/tracking-colored-objects-in-opencv/

smeighan said:
It would make the show very interactive

With Nutcracker maybe going to a C++ program, xlights already is real time. It handled my 12,100 channels with no lag.

I would start with what they do would only show up on the megatree. take it from there.

So I've been working slowly over the last couple years on a Python toolkit to do this sort of realtime interaction.


It takes a completely different approach to sequencing than most tools, but Nutcracker is the closest thing in some ways (and SuperStar). It uses code objects to represent elements in a display, and events to trigger behaviors. The behaviors and effects are all generated via framerate agnostic time based algorithms in real time. These behaviors alter values in the object, and then the objects translate those values (ie Hue, speed, etc) into channel values which are picked up and sent to participating networks.


The input layer, the channel generating layer, and the output networks are each an abstraction layer, so you can mix and match and combine them. For example: Input being one or more of [touch screen, MIDI, kinect, etc] - triggering [Chases, pulses, maps, etc], sending channel data out [E1.31, artnet, serial DMX, LOR etc] (E1.31 is all I'm focusing on for now).


Performance wise, you can do this in regular Python with a fairly large number of elements at 30-40fps, and I think you can give C++ a real run for the money on performance with something called pypy, which is a newer Python JIT based interpreter. Some quick tests I did had 12K pixels with effects being calculated in realtime using pypy.


C++ would involve a complete rewrite of Nutcracker wouldn't it? Would you change the architecture of it in a fundamental way?


-Preston

"[SIZE=78%]C++ would involve a complete rewrite of Nutcracker wouldn't it?". Yes, but 80% of it has already been rewritten into C++ by Matt Brown. He rewrote it into a tab on his xLights program.[/SIZE]

[SIZE=78%]You can download it here[/SIZE]
http://dl.dropbox.com/u/50766638/xlights-setup-2012e.exe


He has nearly all the effects i have,


he does not have tree, twinkle, countdown, pinwheel,animated gifs
he does have bars,butterfly,color wash,fire,garlands,life,meteors,pictures,snowflakes,snowstorm,spirals,text


His text is way better than mine. He has all fonts that are available in windows. You can size them from 6-72 point.


The missing effects are because they were not present when he did the port last November The only miss from then was the animated gifs.


There would be some changes to the architecture, not too many


Here is a summary of how Nutcracker works.


Build a target
Pick an effect and attach to the target
export for your sequencer


It may not be clear that internally i do nearly all effects against a square matrix. You have 16x50 strings, i make a 16x50 buffer. I need one of these for each frame. 50ms frame timing and a 10 second sequence means i will have 200 16x50 buffer frames. When ready i map this buffer to the horiz,vertical matrix or to a megatree. If you have a sphere, i map the buffer frames against your target.


Matt does not use gnuplot to do drawings.. he allocates a buffer and then sets the pixels when he is running through the draw process.


very fast, not as crisp as a gnuplot image, but certainly works.


i want to eliminate the local mysql database. mysqls and apache require a nearly 1 gig install. I want to do remote sql to nutcracker123.com so that we can still have a gallery of all users effects


i will still have music phrases and will enhance that to also have beats and note markups.




I would love to come up with a way that teh effecst generated with Nutcracker could be shared.


Vixen 3 is C#
xlights is C++
HLS is C++
LSP and LOR, i dont know but assume they are C++


I have dozens of new effects ready to create, i really would like to see that they can be ported or used across the sequencers.


This is the basic coordinate system in nutcracker.
Top of each strand is pixel #1, strand number from left to right.


All effects work against this coordinate system
 
Top