Author Topic: Started software to create secuences.  (Read 19407 times)

Offline castortiu

  • Moderator
  • Sr. Member
  • *****
  • Posts: 200
Re: Started software to create secuences.
« Reply #15 on: August 09, 2010, »
Almost finished the very basic primitives I needed on the waveform to jump to the work area where most of the work will be, probably I won’t be posting for a while since there is a lot to do before something can be showed.

What changed today?

Added multi layer selections
-   Those layers of effects or behaviors will be assigned to objects (trees, arch, star, light strings, etc), so we can individually control and edit the object sequence without interfere with different objects. (need help to find a terminology for a group of lights to form an “object”, “object” is perfect in the programming world but sucks on the real world :), “group”, “cluster”, etc… propose a name pls… )

Added support to edit selections (effects or behaviors - Edition Mode)
-   Self explanatory, see video ;).

Added support to control the playback via fine tuning
-   Now playback follows the fine tuning in the center of the application instead top left.
-   Also fine playback tuning allows to find the perfect spot in the wave where you want to start the “effect  or behavior”

Cosmetic changes.
-   Some colors changes

Optimization in the code was made.
-   Now runs under 2% CPU usage, this is important since I’ll need every bit of CPU for what is coming later.
-   Memory management is not optimized yet and is above 400Mb RAM and growing fast :/, I think will reach more than 1GB when the work area is made, Hopefully will down to 400MB on the final prototype after optimizations.

Just FYI, I’m using hardware acceleration for Video and Sound, so I really doubt it will run on very low specs machines.

Cas.

[attachment deleted by admin]

Offline castortiu

  • Moderator
  • Sr. Member
  • *****
  • Posts: 200
Re: Started software to create secuences.
« Reply #16 on: August 09, 2010, »
Kwajtony,

I think the video will answer what you asked, different "objects" will render the effects individually on the waveform, so you can control every channel if you wish but the recommended way will be group them in sets and work with the sets.

The idea is to have a huge number of effects and behavior for objects, so you would not need to work directly on the channels.

Cas.







Offline Kwajtony

  • Sr. Member
  • ****
  • Posts: 647
Re: Started software to create secuences.
« Reply #17 on: August 09, 2010, »
Way cool, I can see the arches leaping as you are developing this, the roof wreaths are blinking according to the program and in the preview I have my objects placed upon a picture of the front of my house.  Live Preview  WOW!
R,
Tony "C"

Offline meman

  • Sr. Member
  • ****
  • Posts: 569
Re: Started software to create secuences.
« Reply #18 on: August 09, 2010, »
Looks great so far, please continue to keep us posted on your progress! I can see that use of the shif+x or FKeys would be great for allowing two handed operation...controlling speed and toggling between create/edit mode with the keys while using the mouse with the other hand.

Mike E.

Offline deplanche

  • Sr. Member
  • ****
  • Posts: 347
Re: Started software to create secuences.
« Reply #19 on: August 09, 2010, »
A feature I think would be useful is to use the scroll mouse button to ramp or fade while the music is playing.  I think it could make nice, smooth transitions, especially for things like arches.

Offline castortiu

  • Moderator
  • Sr. Member
  • *****
  • Posts: 200
Re: Started software to create secuences.
« Reply #20 on: August 13, 2010, »
Quick update:

Lot of progress in the last few days…

Finished the basic functionality for the wave form and I jumped to the semantics of the applications.
In the diagram picture you will find out what is the idea behind the monster.

So far we have 3 main modules:

Wave Form module:
- Takes care of the wave form management.

Sequencer Engine
- Main beast that synchronize everything.

Render module:
- Takes care of 3D rendering on screen.

Then we have the semantics so far defined as:

Sequencers:

- Sequencers sets how a single sequence instance interactive with the physical channels, sequencers are not objects like Arch or Trees, but instead they are independent entities that are programmed to interactive with the physical channels for a period of time. For example a sequencer can be programmed to go back and forth between all the channels associated.
- User creates many sequencers as needed.

Devices:

- They are physical objects as archs, trees, etc. Every object has properties to be set. For example define numbers of segments for archs , colors size, etc.
- Devices are attached to sequencers; a single device can be attached to many sequencers as needed.

Effects:

- Effects have a period from/to in time during the song and define the behavioral intensity of the channels associated in the sequencers. Many Effects can be attached to every sequencer.

Currently there is a big progress on everything I wrote, but everything is under the hood and the demo just show the tip of the current progress.

If everything works as planned, you can’t imagine how powerful will be the things you could do.
Imagine devices playing a current normal sequence and at the same time a whole “ghost” wave running through the whole show since in theory you can overlap effects from different sequencers and the intensity of the channels can be set to “additive” or “subtractive” in the effects for the relation between sequencers.
 
There was a lot of scratching to my head behind the rendering 3D module for performance improvements, since you can’t imagine how many operations will be needed when the full app is finished, as a minimal quality gates, currently I must render 512 channels simultaneously without lose much precision on the animation.

As you can see in the second picture.

Also there is a fair amount of work done for object properties “bottom-right”, lot more to do in there.

Here is the demo:

The video doesn’t do too much justice since there is a lot of compression and many frames are skipped. 3d objects are very smooth and visually pleasant.

This is the beginning of what I call “abstract” from the grid.

You are not allowed to view links. Register or Login

Cas.

Offline foodseller

  • Full Member
  • ***
  • Posts: 75
  • Celebrating CHRISTmas-one light at a time!
Re: Started software to create secuences.
« Reply #21 on: August 14, 2010, »
This is just way to cool!  When do you need beta testers?  Not that I am anxious to try it or anything.......but when do you need beta testers?     ;D

foody
Up to three channels now!!! Flashlight in each hand and one on my hat!

Offline castortiu

  • Moderator
  • Sr. Member
  • *****
  • Posts: 200
Re: Started software to create secuences.
« Reply #22 on: August 14, 2010, »
You can count with it.

Still there is a long way to go but is looking promising and I’m engaged on the project working every night for several hours.

Cas.

Offline Aussiephil

  • Sr. Member
  • ****
  • Posts: 480
    • My Controllers
Re: Started software to create secuences.
« Reply #23 on: August 15, 2010, »
Blame rmonty for pointing this out, really need to pay more attention...

This looks awesome, grabbed the latest published build to have a play.

Now i have a silly question - have you looked at integrating E1.31 protocol into the application to cater for some of the extreme channel count RGB display's that are going to happen this year?

Cheers and all the best, now to go and have fun
Aussiephil
Never enough time
Dont Forget - "Play Nicely"

Offline Kwajtony

  • Sr. Member
  • ****
  • Posts: 647
Re: Started software to create secuences.
« Reply #24 on: August 15, 2010, »
I'm sure it is close to handling that (RGB) if not now soon, with the stuff Cas has put together so far   all I can say is -- WOW -- I'm willing to give it a try. 

TOny "C"
R,
Tony "C"

Offline dmaccole

  • Sr. Member
  • ****
  • Posts: 758
    • PacificaLights.info
Re: Started software to create secuences.
« Reply #25 on: August 15, 2010, »
You are not allowed to view links. Register or Login
Now i have a silly question - have you looked at integrating E1.31 protocol into the application to cater for some of the extreme channel count RGB display's that are going to happen this year?

Phil:

What Gus is building is a sequencing front-end to Vixen, which in turn would then play the files normally. As he said back in December ...

You are not allowed to view links. Register or Login
Is Vixen good enough for everyone?
....

What do you think about a software that generate.VIX files that can be loaded with Vixen, but this software allows to create the whole sequence in the preview screen, basically there is no preview screen.
As I understand it, the Xlights software (You are not allowed to view links. Register or Login) should, therefore, be able to play Gus' Prancer files as well.

\dmc

________________________
The only thing more dangerous than a software engineer with a soldering iron or a hardware engineer with a compiler is a liberal-arts major with either.
You are not allowed to view links. Register or Login

Offline castortiu

  • Moderator
  • Sr. Member
  • *****
  • Posts: 200
Re: Started software to create secuences.
« Reply #26 on: August 15, 2010, »
I have looked DMX protocol in detail some a time ago and is extremely simple, no feedback, no error correction, just streaming frames of bits into the wire, I did a quick view for E1.31 and doesn’t looks it adds too much complexity.

At the beginning I thought implementing the protocol on the application, but the beauty of Vixen is all extra stuff which has around it, like the scheduler and a lot of other stuff.

Unless my application give all the other stuff, doesn’t make sense spend time to create something that exists already in Vixen since I can focus my time/effort on the front end and let Vixen drive the show.

When the app is completed and the queue of users requests is down to a reasonable level :), I could focus on “possible” stage 2, which could be add protocol support.

But…, If Vixen doesn’t get updated for long time to support new protocols and RJ wants to use E1.31 then we have a need and priorities could change.

About RGB lights, I’m totally a newbie, but from what I have in mind, the handing of RGBs will be really transparent to the users in the application, the application will handle devices like the Aether and manage the 3 RGB channels independently internally, so in theory you could even choose the mixing of white you would like to see.

Quick update:

- Wife is getting mad since I go to bed around 5 AM every night :)

Sequencers:

- First sequencer object created, it is a dumb sequencer to be a helper to develop the devices objects, it activates channels sequentially over the long of the song.

Devices:

- Heavy work on Devices and mapping to physical channels.
- Now “devices channels” can be mapped to “physical channels” on the fly.
- Now devices can select the sequencer from which where wants to interact.

First sign of intelligent life can be show in the new demo, which I’ll upload soon.

Cas.

Offline castortiu

  • Moderator
  • Sr. Member
  • *****
  • Posts: 200
Re: Started software to create secuences.
« Reply #27 on: August 16, 2010, »
Quick update:

I'm going back to the whiteboard :(... I found out that the idea about the sequencers having “virtual” channels where devices can attach to them is powerful since the sequencer can be reused many times during the song.

But the mapping of the devices to the sequencers is a nightmare. Too many clicks and too many settings, the application becomes boring and complicated.

I have a video of a working sequence where the archs are animated, but since I’m discarding sequencers code doesn’t make sense to show it.

I’m uploading a video how I set the physical channels, which I think is fair since is done once. Also I show the main problem with the sequencers…

It took 30 minutes to explain to my wife how devices/sequencers/effects work… That’s not good!!!.

My wife should be able to create a sequence without previous knowledge of the internal mechanism.

I was bitten for the thinking like an engineer instead think like a user … from now on my wife drive the UI… she already gave me good ideas, which I’ll start to put in practice soon.

Cas.

Offline dmaccole

  • Sr. Member
  • ****
  • Posts: 758
    • PacificaLights.info
Re: Started software to create secuences.
« Reply #28 on: August 16, 2010, »
You are not allowed to view links. Register or Login
My wife should be able to create a sequence without previous knowledge of the internal mechanism.

I was bitten for the thinking like an engineer instead think like a user … from now on my wife drive the UI… she already gave me good ideas, which I’ll start to put in practice soon.


This is good for a number of reasons (back in the day, I used my mom as a UI guinea pig), but most especially:

You are not allowed to view links. Register or Login
- Wife is getting mad since I go to bed around 5 AM every night :)

Now at least she knows what you're doing.

"Honey, I was up all night trying to make it so you'd like it."

\dmc
________________________
The only thing more dangerous than a software engineer with a soldering iron or a hardware engineer with a compiler is a liberal-arts major with either.
You are not allowed to view links. Register or Login

Offline Aussiephil

  • Sr. Member
  • ****
  • Posts: 480
    • My Controllers
Re: Started software to create secuences.
« Reply #29 on: August 23, 2010, »
You are not allowed to view links. Register or Login
I have looked DMX protocol in detail some a time ago and is extremely simple, no feedback, no error correction, just streaming frames of bits into the wire, I did a quick view for E1.31 and doesn’t looks it adds too much complexity.

At the beginning I thought implementing the protocol on the application, but the beauty of Vixen is all extra stuff which has around it, like the scheduler and a lot of other stuff.

Unless my application give all the other stuff, doesn’t make sense spend time to create something that exists already in Vixen since I can focus my time/effort on the front end and let Vixen drive the show.

When the app is completed and the queue of users requests is down to a reasonable level :), I could focus on “possible” stage 2, which could be add protocol support.

But…, If Vixen doesn’t get updated for long time to support new protocols and RJ wants to use E1.31 then we have a need and priorities could change.

About RGB lights, I’m totally a newbie, but from what I have in mind, the handing of RGBs will be really transparent to the users in the application, the application will handle devices like the Aether and manage the 3 RGB channels independently internally, so in theory you could even choose the mixing of white you would like to see.

Cas.

Cas

Sorry, should read more, as dmc pointed out this is a front end to vixen. That is great then, no need to handle the underlying protocol support.

I would agree with your statements about "all the other stuff"

Vixen can handle the output of 4k-8k channels without any dramas but there is no way that you can work with that many in the interface and especially if they are RGB channels. I could personally have up to 8k channels this year.

So Vixen is too painful to use for large RGB counts and LSP can handle the sequencing but gets very slow to use once the counts go into this region.

What you are doing sounds like a great way to potentially sidestep some of these issues whilst still using vixen's output performance.

Vixen already supports E1.31 so no worries there.

I have long been a fan of the concept of object based sequencing and would love to actually have a play with what you are doing and see how it may work for very large RGB displays.

For any RGB object you should be able to select a start colour and end colour and even a middle colour then say change from start to end going through the middle colour if defined, setting the midpoint offset would be usefull as well. for say an RGB arch this could be colour at each end etc. For a RGB megatree, a starting point would be vertical string start colour, rotation direction, end string colour. or colour 1 to 2 and speed of change plus rotation speed. For pixel level this would also then include vertical fades. think of it as a matrix wrapped around a tree.

None of this is even vaguely easy in vixen.

I remain a fan of Vixen but it is impossible to do meaningful sequencing with large channel counts

Cheers
Phil
Never enough time
Dont Forget - "Play Nicely"