This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - tribble
1
« on: February 02, 2013, 11:13:57 am »
Well, I spent a few hours today trying again to set up an environment in which I can build LaserBoy, but no dice yet. I downloaded and installed wx-Dev-C++, per DogP, but I can't get it to see the SDL libraries to the linker is failing. I found a dirent.h for Visual Studio, but VS compiler does not like a lot of the C++ constructs that are accepted by the gcc compiler. So, that's kinds of a dead end unless I want to rewrite all of those bits. I compared my spencerizer code with the code above, and I think it would be tedious but not terribly difficult to translate the effects. There are multiple transformations that need to occur; entering a blanking sequence, leaving a blanking sequence, ending a frame, and beginning a frame. Those would each have to be handled as they are in the ildadump.cpp code. I thought about trying to translate without compiling, but I figured that would not work out in the end. I'll need to be able to compile and test it to see if I'm interpreting your structures correctly. So, it's going to take another while before I can submit an updated spencer frame effect.
2
« on: January 20, 2013, 10:43:31 am »
OK, here are some samples from the 1-16 version: As-drawn: ILDA format: ildadump.cpp spencerizer format: LaserBoy spencer frame set filter format: So! Getting closer! I think in my original code I failed to correctly consider the "return to home" process, or my code for making the final vector light is incorrect. I am seeing in come places the last vector fail to light. Thanks for the beta! I especially like how you don't have to go through the 6voqt^o dance to get a 3D frame when using the spencer output filter. That is nice.
3
« on: January 20, 2013, 09:50:32 am »
Thanks for the feedback, James! I don't think the specific DAC used will affect the relative timing of the frames or the frame set process. Even if the frame set were exported to a WAV, it would have the same points and same timing. Yes, I've played with the overlay option. It's quite nice, I like it a lot! I used it to create the "skyline fireworks" ild file I posted over at PL. I combined the fireworks ild with the skyline frame and I think it came out lovely. I also use it to create "counterrotating" figures. I use the rotate effect to produce the counterclockwise rotation, then trim out the rotations in the other axes, then import and overlay to have superimposed clockwise/counterclockwise rotating shapes. Is there a feature in LB that allows you to optimize a frame set such that each frame has a specified number of points? E.G., if you set it to 2500, you could optimize the normal way, and then just add a bunch of blank points to bring it up to 2500. Actually, it might not be that hard to do that frame by frame by hand. If I create a dot frameset, and then a graphic frameset, and a "long blank point" frameset, I can overlay all three and then use delete enough blank points to bring me to the desired number. Hmm, I think I will try that and see how onerous it is. I also owe you a test of the spencer effect. I will do that now.
4
« on: January 20, 2013, 06:44:00 am »
OK, sorry for the delay. Been under the weather this weekend and trying to balance the household chore list, lasers, and extra sleep. So I figured out that my problem was that I had accidentally copied my header row from Excel, where I am building some test frames, into the text file, and LB didnt' like that. So, my bad. What I am trying to do... I am trying to assemble a laser show for a short song using LaserBoy. But, I think some of the "simple" things I want to do maybe are not so simple after all. I will walk through it. The difficulty I am having can be summarized as "trying to overlay different graphics elements into a frame set while maintaining strict control over timing." What does that mean? It's like this. The song I'm playing with starts with some nice arpeggiated lines with short synth notes, very evenly spaced. In WavePad I determined the period of the notes to be 141.3ms, about 7 notes per second. At my estimated Spencer speed of about 15,500 points per second, that gives me a little over 2,200 points per note to play with. I figured that was a good candidate for some dancing dots; a dot would come on at the start of the note, then go off, and then come on again nearby at the start of the next note. So I figured I would light the dot for maybe 300 points and blank it for 1900 points. I created this frame, imported it, fixed the palette, made it 3D, copied it a bunch of times, and exported it... and it played pretty well! I was pretty happy. So then I said, gee, there are some slow-changing chords coming in here behind the arpeggios, so I'd like some slow-moving hypocycloids rotating in time with the chords. I'll just use the overlay feature to put the dots and the other graphics frames together. UHOH. There are 1900 points "available" each note to draw other things besides the dancing dot for each note. But, I don't see how to automate the combining process to preserve the timing of the dots. I can change the black dwell and dot dwell settings, and other settings, but short of manually calculating how many points are in each frame, how many are lit-dot, how many are left over, and how many the other graphics take, and building each frame in Excel or a different app and THEN importing it, I don't know how to get it done. And, while that process may technically work, it would be like building the Canterbury Cathedral out of pez. It would take FOREVER. So. Maybe you can tell me what the 'right' way to do what I'm trying to do is. Thanks!
5
« on: January 18, 2013, 03:27:25 pm »
I take it back... it's not the number of points... I tried a new location for a vertex and I must have used the wrong format.
I'm doing
frame xy hex 0 0 0xffffff ... -0.8 -0.8 0xffffff
and it didn't like that. I tried integers...
-20000 -20000 0xffffff
and it didn't like that either.
What's the right format, again? :-)
6
« on: January 18, 2013, 03:22:45 pm »
What's the maximum number of vertices you can put in a frame? I ask because I was able to create a frame with 15,000 vertices but one with 15331 causes LB to crash when it tries to load the file. I guess I could create more frames with fewer points... but I'm just curious what the limit is.
7
« on: January 12, 2013, 07:54:12 pm »
While playing with the insignificant distance and insignificant angle settings, it looks like the insignificant angle test overrides the insignificant distance test. That is, if you have two points in the middle of a long line that are very close, say just a few dozen units apart, but form, say a 20 degree angle...
--------+ \ +--------
... the optimization code does not remove either of them.
Actually, what i think would be best in that case would be to replace both points with one point which is the average of their two positions subject to the maximum vector length, of course. I haven't looked at the action of the insignificant point code on its own, but it was a thought.
8
« on: January 07, 2013, 06:19:20 pm »
9
« on: January 06, 2013, 10:29:25 pm »
OK, I didn't have a problem with SDL... I'm just looking for dirent.h. Where is dirent.h on your system?
10
« on: January 06, 2013, 05:39:46 pm »
I'm setting up a visual studio project for laserboy. I'm missing this file: dirent.h
Do you know where it should be or what it goes to? Probably I do not have some prerequisite installed.
11
« on: December 31, 2012, 08:37:38 pm »
I do optimize the art before Train. The number of blanking points does limit the length of the tail, if only because the first segment of the blanking path is shorter with more points on the same length path. But, that makes me spend more time drawing the frame, and with slow scanners, I want to waste as little time as possible.Maybe I will set up the development environment and see if I can play with the code to figure out what's going on in this projector... That will take me some time, though.
12
« on: December 31, 2012, 12:45:29 pm »
Right, but... there is only one blank vertex drawn by the projector at a time for some reason. If I try to represent the circles as ascii art and the four blank verticies connecting them like this...
----++---- || ++ || ----++---- What we start out with is this (with blank vectors shown as 'x'):
---x++---- xx ++ |x ----++x---
And then when I apply the train, there are some frames in the middle of the sequence where a single blank moves through the gap, but never more than one blank consecutively:
----++---- || ++ || ---x++----
----++---- || ++ x| ----++----
----++---- x| ++ || ----++----
---x++---- || ++ || ----++----
...and then later, as the outer circle completes drawing, this:
----++x--- || ++ || ----++----
----++---- |x ++ || ----++----
----++---- || ++ |x ----++----
----++---- || ++ || ----++x---
Where did the other consecutive blank vectors go? I have no idea. I'm just describing what I'm seeing the projector draw. IDK, maybe I can post a video of it if you think it would be helpful.
Thanks for looking!
13
« on: December 30, 2012, 10:49:08 pm »
OK! I tried the train. The thing about train is that only one segment appears to go dark at a time. In the case of the two circles, there are, I think, four vectors that need to be blank; the two that go from the inner circle to the outer circle, and the two that go back to the inner circle when the outer circle is completed. There are a few frames where the correct vertices are blank, but they are never all blank in the same frame.
Does that make sense?
I think it does confirm that there is an ordering issue; it's not that those vectors can't be blanked on this projector, just that it's blanking the "wrong" ones.
14
« on: December 30, 2012, 08:56:38 pm »
OH, OK I understand the circle definition now. For some reason I thought it would generate a 'solid' ellipsoid figure by using the x/y/z radii, but if I think about the information you need to make an ellipsoid you need more than that. Sorry for my misunderstanding. I tried it your way (the right way) and it works as expected. :-)
I am interested in pursuing the 'off by one' behavior if you are. If it's peculliar to this projector, I'd hate to ask for an accommodation unless it might be generally useful. I tried going in and blanking/unblanking near the blank vectors, but failed to change the correct ones. I'm sure with practice it could be done by hand, but, that would not solve the issues for effects-generated frames.
Thanks for the help!
tribble
15
« on: December 30, 2012, 05:16:20 pm »
OK, I'm excited! I think we may be on to something. Here is a screenshot of my LaserBoy screen. There are two concentric circles created with the 'm' menu 'g' command. They are 22000 and 17000 radius. (By The Way... it does not seem possible to create circles of radius 30,000? The circles seem larger than they should be for a given radius and they get distorted above 25K or so.) Traveling in ascending vertex number, the inner circle is drawn clockwise. The outer circle is drawn counterclockwise. I'm not sure why, but that's just how the 'q' optimize command chose to do it. Here is a shot of the circles as projected. You can see that the FIRST vector, which should be red, is BLANK. You can also see the first blanking vector, which is supposed to be blank, is LIT. The second blank vector is blank. Now, at the other end of the blank, we start counterclockwise, but the first vector that is part of the circle that should be LIT is actually BLANK. It's as if the index of the blank/colors is one off from the index of the vectors they apply to! It's possible that the firmware in this projector has an off-by-one error. Or, it could be an off-by-one error in the code that writes out the .ild file format. Or it could be somewhere else. But it definitely looks like an off-by-one error to me. It's uncanny how close the ends of the vertexes are as drawn to where they are in the editor. The 'tail' extends halfway between the two circles; not a little bit, and not a lot, and it ends sharply. The unlit portions of the circles are exactly as long as the first vector composing them. Now, I have no idea what to do about that, but at least I feel like I have a handle as to what's going on!
|