I would like to but it would probably go low on my TO-DO list since there isn't much of a demand for it and also because of the complexities involved. Sticking the data into a wav file is not hard but fitting into my existing architecture would take a little work.
Are you a programmer? If you are, then perhaps you could write a class to do some of the work.
I definitely like the idea of wav file output and will eventually try to add support for that.
I can do C, matlab, scripting, and modifying of other programs in other languages to fit my purposes (programming by example), but coming up with a new class, I would barely know where to start, and the result would be closer to a hack than an extensible code base.
Still, If you can give some shell outline of what the structures should be I could take a swing at it.
You can download visual C# 2008 express edition for free. Create a new C# Class Library program. It will give you a default project with an empty class. Add a method that takes an audio file, array of structures containing the data and converts it to an 8 channel WAV file .
Here is an example method definition and struct definitions.
public void CreateWavFile(Frame[] frames, int frameRate, string audioFileName)
{
}
struct Frame
{
Point[] points;
}
struct Point
{
public ushort X;
public ushort Y;
public byte R;
public byte G;
public byte B;
}
If you need help send me a PM. You'll need to learn how to write new WAV files but there are probably examples on the internet to do it with C#. You'll also need to figure out how to get the data from the 2 channel audio wav file into the 8 channel wave file.
The challenging part will be making the frame data match the sample rate of the wav file. What I mean by that if you have a frame with 100 points with a frame rate of 30 frames/second you will need to massage 100 data points in .0333 seconds. But, at 44Khz sample rate of a wave file you have 1466.667 samples in in that time slice. You don't want to change the sample rate of the wave file because it will make your audio sound bad. So, that means you have to repeat each point ~15 times within the wav file for the timing to work out.
Make sense? It's actually pretty simple once you put it on paper. You just need to look up all the functions required to create a WAV file and create an algorithm to massage the data into the WAV file without causing your timing to get screwed up.
Or you could build up a bunch of short wave clips of laser show and edit them into an 8 channel wave in something like Cool edit. Just have the stereo music tracks in 7 & 8 and you can move the laser bits all over time. You can play it right there and export it as a finished piece.
There are also some effects that can be applied to the laser signals using the audio editing software. If you fade in and fade out the X and Y channels, it will result in a dot zoom from the origin to a full size image, then shrink back to a dot at the origin. You could also fade the colors in and out for various effects applied to all or just some of the color channels. You can even get away with a little resampling to slightly alter the total playing time of a laser clip. There are all sorts of things that can be done to laser control signals on-the-fly once they are in the analog streaming mode (universal image correction). Many of these same effects can be virtualized in digital.
BTW I see a picture of one of my gears. There are 3 of them in frames (starting at 0) 1, 2, 3. If you go to the output menu and apply the frame set effect (option 5) named "gears" and then open gears.ild you'll see what they are for! If you want to look further into the code, ez_ilda_frame_set_effects.cpp is where you will find the "gears" function to see how it works.
James.
Last edited by James Lehman; 05-10-2008 at 13:11.
any news here?
Not much. I started adding a morphing effect but I got busy with other things and never finished. I need to go ahead and wrap that up.
I don't get much feedback about the software so I don't have a lot of motivation to work on it, to be honest.
Hi Carmangary,
Just downloaded Spaghetti.
A bit of feedback ...
Installed OK.
Loaded OK.
Select ILDA Directory ... , took an extreme amount of time to be able to browse and select the folder.
Once I had selected the folder, the program went into (Not Responding).
Then the "Not Responding" disappeared and Spaghetti stuck at 50% cpu and I have a blank "Microsoft .NET Framework" dialogue box in the middle of the screen.
I looked at Task Manager again and now I have 2 copies of Spaghetti running, one with the Spaghetti icon the other with the default program icon.
I waited over 10 minutes and then a "Microsoft .NET Framework" came up with an Unhandled exception has occured in your application.
Exception of type 'System.OutOfMemmoryException' was thrown.
The folder I selected has 1,665 .ild files in it.
I am running and AMD Athlon X2 +4200 with 2 Nvidia SLI graphics cards enabled in multi-screen mode, with 4gb of memory.
Shame looks very promising.
If you need any more info I will try my best to obtain it for you.
André
Last edited by Onge; 06-02-2008 at 10:58. Reason: Spelling :(
When you select an ILDA directory it loads all of the ILDA files into memory and adds an icon for each in the ILDA view panel. 1665 ILDA files is obviously too much for it to handle the way it is now.
I need to figure out a better way of making that work. But even still, 1665 icons is a lot to scroll through when creating a show. Even if Spaghetti could handle it, it would be a bit overwhelming for someone to have to scroll through them and find the ones they want to add to the show.
If you want, as a work around, you could probably break the file up into folders of 50 to 100 and see how that works for you. It also depends on the size of the ILDA file. An ILDA file with 1 frame will load fast but an ILDA file that is 4 megabytes will take a few seconds to load.
Just curious, what is the total size of all the 1665 files in that directory?
I'm open to suggestions about how to handle this sort of thing from a usability point of view. As a user, what would you want to be displayed when you opened a folder with 1665 files?