Page 1 of 64 1234511 ... LastLast
Results 1 to 10 of 636

Thread: The LSX tutorials thread!

  1. #1
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default The LSX tutorials thread!

    This thread is here to bundle all kinds of tutorials, hints and tips for LSX, the lasersoftware from drlava. The software is a bit overwhelming at first with all kinds of neat functions and bells and whistles. This is why we are creating a community generated users manual. To help you even more there's this thread!

    Please share your cool findings!

    Resources

    Living Manual: Access must be received by drlava.

    Tutorial videos: https://www.youtube.com/playlist?lis...ledsHYM-2bxwPd

    Useful Posts

    Simple abstract generator (lissajous, live on-screen slider input) (CMB)

    Dot morphing effect (Swamidog)

    Swamidog abstract base file (Swamidog)

    Static text and clock (Dzodzo)

    Constantly changing value from positive to negative over time of event (Dzodzo)

    Primitive sound to light with beat detection (Dzodzo)

    Use "loop" in RotateZ for abstracts (CMB)

    Live abstract show file, using on-screen sliders (CMB)

    Incoherent ramblings about live shows (CMB)

    Swooping lissajous effect show file (Swamidog)

    How to create a floating sinewave made of points using SFX Loop (Dzodzo)

    Creating a draw/writeout effect (CMB)

    How to generate dots arranged in a circle (Discussion: SaltyRobot, CMB, Swamidog, drlava)

    CMB schools swami (apparently funny?) - using expressions in the duplicate count field of a Loop event (Swamidog)

    Make transform events alter more than one source event (Swamidog)

    How to create a bouncing ball effect (CMB)

    Swamidog LSX talk at Selem 2013 (Swamidog)

    Circular movement of frame (Galvonaut)

    Swamidog talks about Rend2Frame (Swamidog feat. Arwyen)

    Frame catalog explanation (Dzodzo)

    MIDI remapping (nnasire)

    Phased loops (Galvonaut)

    Galvonaut explaining some effects in his abstract show (Galvonaut)

    A show to play with (Galvonaut)

    FPS vs PPS discussion (Discussion: solidude, Galvonaut, CMB)

    Change show length, event evaluation order, color vs rgbi event (CMB)

    Using one frequency of audio input to modulate effect (CMB)

    Using the RGBI amplitude, phase, offset, frequency buttons (Discussion: zorn, DKumpula, CMB, Swamidog)

    Creating a random number that changes every time the effect is played (DKumpula)

    Overcomplicated answer to basic question (CMB aka showoff)

    Preview window (DKumpula)

    Etherdream network problems 101 (Swamidog, Rodman1369)

    Attempt at getting a wave2-like effect for show audio (CMB)

    Attempt to get BPM working in LSX using external programming (Discussion: BlueFang, CMB)

    SELEM 2014 LSX talk by DKumpula, Swamidog and LuLightTec (DKumpula)

    RotateZ effect controlled by MIDI (Discussion: Maton, CMB and Sandstorm)

    MIDI controlled random expression (Discussion: Maton, DKumpula, CMB)

    PIC & CAT files (Discussion: SaltyRobot, LuLightTec, DKumpula, CMB)

    Creating a spiral and how to use PicEdit scripts (CMB)

    Scripts in PicEdit (Discussion: SaltyRobot, CMB, Maton, DKumpula)

    Record to ILDA (CMB)

    Creating a damped Wave2 effect and select another audio input (Discussion: GhostTrain, CMB, DKumpula)

    MIDI keys for live use (CMB)

    Spiral square arrangement according to the Fibonacci sequence (Sandstorm)

    Toggling currently displayed frame in animation event with keyboard keys (CMB)

    Iterate through a show on a frame by frame basis using arrow keys (CMB)

    Make object follow camera path - including example show file (drlava)

    Saving thumbnail pictures for SFX (Brockwitzer)

    Creating a dot morphing (DKumpula, Swamidog)

    Making an animation strobe with selectable frequency, dependent or independent of event duration (SaltyRobot, Swamidog, DKumpula, CMB, drlava)

    Expressions lookup document (SaltyRobot)

    Link to a link of a post with a reply with a long winded explanation on advanced expressions to set up a custom timing and effect triggering environment. (CMB)
    Last edited by colouredmirrorball; 08-03-2020 at 13:29.

  2. #2
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default Simple abstract generator

    I'll go ahead!

    We'll start off with a very simple abstract generator.

    We are going to use some (rather basic) math applied to a number of points, and we are going to manipulate them in real time using sliders.
    Start with creating a number of points. This is best done with Quick Picedit. The easiest solution is to just draw a dot in the exact middle of the screen and copy-paste it a number of times so that you get a good number of points (in the upper left corner you can see the total number, somewhere between 200 and 600 points is ideal for 30k scanners, experiment to find out what gives the best results for you). A good thing to know is that if you place one dot, actually two points are created, and the first one is blanked. We don't want this, so unblank the point by opening the Active Point Editor (next to the zoom button) and unclick the blank button of the first point. Now you can copy-paste it to the desired amount of points, and all points are going to be connected (make sure all points are on exactly the same location).







    Now on to the fun part! Go back to Realtime and double click on the timeline. Place an Animation event and stretch it out to the length of the entire show. Double click on the event and set our newly created frame with the points as the first and last picture. Press Edit play to see your results in real time.



    Now double click on the event again and go to the Animator tab. Tick the box that says Enable to see results (yeah I spent several hours trying to figure out why it didn't work and this was one of the reasons).
    Double click on the PreMoveX button. This gives an Animator window where you can give in expressions. Leave the lower bound to 0 and set the upper bound to 1. The dot should now start moving horizontally. Set the type of animation to Expression.
    Do the same for PreMoveY and PreMoveZ.



    What we are going to do now is program our own very simple lissajou pattern generator. I found the lack of a simple lissajou pattern generator rather disturbing for software like LSX, until I programmed my own by accident!
    We are going to use a sine and a cosine function for both PreMoveX and PreMoveY. The neat thing is that you can apply them to the index of a point! Write in both expression windows for PreMoveX and Y the following expression:
    sin(Idx) + cos(Idx)

    If you did everything like I told you, you should see no more output. This is because the total sum of the sine and cosine is going to be greater than one, so our points are out of the screen. We can scale them down by simply multiplying the above expression with a small number but I know something more neat: multiply them with sliders! If you go to Live >> Open new slider dialog for live control you get a bunch of sliders, and they would be great for generating our patterns in real time. So change your code to:

    slider1*sin(Idx) + slider2*cos(Idx) for PreMoveX and
    slider3*sin(Idx) + slider4*cos(Idx) for PreMoveY.

    If you don't have a DMX controller for controlling these sliders tick off the box "Enable DMX in" so you can use those sliders in a normal way. Mess around with the sliders 1-4 to see what they do. Not that much impressive yet, so let's move on!

    Idx gives an output between 0 and 1 (read up on this under the Expressions help button) where 0 is the value for the first point and 1 for the last. But from mathematics we know that for a complete circle, the values under sin and cos must be between 0 and 2*pi. Even this might be a bit limited for our purpose, let's make them vary between 0 and 10*pi, for example, and use the next four sliders to access them in real time:

    slider1*sin(Idx*10*pi*slider5) + slider2*cos(Idx*10*pi*slider6)
    slider3*sin(Idx*10*pi*slider7) + slider4*cos(Idx*10*pi*slider8)

    Now, messing around with sliders 1-8 gives a very interesting result!
    To add to the awesomeness, we can vary the offsett of the sine and cosine functions with time. In mathematics, this is called the phase, and in LSX there is a convenient function for this called phase which is basically just 2*pi*etime, where etime is a number between 0 and 1 and which is 0 at the beginning and goes up to 1 to the end of the event. We can use sliders 9 to 12 for these:

    slider1*sin(Idx*10*pi*slider5 + phase*slider9) + slider2*cos(Idx*10*pi*slider6 + phase*slider10)
    slider3*sin(Idx*10*pi*slider7 + phase*slider11) + slider4*cos(Idx*10*pi*slider8 + phase*slider12)

    By messing around with sliders 9 to 12 you can now let your weird shape move with time! One downside is that when you set these sliders to somewhere between 0 and 1 you will get a discrepancy in the movement, so set sliders 9-12 only either full up or full down for smooth movements.



    That starts to look rather impressive! Don't let those big expressions frighten you, we're nearly there! Still with us? Great! Let's move on to the last step: 3D! To avoid your headache to grow bigger, we'll try to keep it simple. Just type Idx in the expression box for PreMoveZ, and you already will get some nice results.
    To see the 3D effect, go to the Masterbeam window (Live >> Masterbeam). Here you have some sliders. The fourth and fifth sliders are of our interest: they can rotate the image around the X and Y axis. For example, generate a circle by setting all sliders to 0 (in the sliders window, not the masterbeam window), then setting sliders 2 and 3 to about halfway (otherwise the circle will be too big) and sliders 6 and 7 to any frequency you like, but they need to be the same. Setting these sliders all the way down is the easiest Now go to the Masterbeam window and rotate the effect. You will get a spiral!



    To make stuff even more awesome you can add RGB transform events but as my projector is blue only, it's not of much interest for me to investigate those functions :P

    This is how you can create stunning results with just some basic math. Have fun! In attachment is an example.

    Who needs Digisynth?
    Attached Thumbnails Attached Thumbnails scrnsht7.png  

    scrnsht1.png  

    scrnsht2.png  

    scrnsht6.png  

    scrnsht5.png  

    scrnsht4.png  

    scrnsht3.png  

    Attached Files Attached Files
    Last edited by colouredmirrorball; 08-22-2012 at 11:09.

  3. #3
    swamidog's Avatar
    swamidog is online now Jr. Woodchuckington Janitor III, Esq.
    Join Date
    Nov 2006
    Location
    santa fe, nm
    Posts
    1,545,752

    Default dot morphing effect

    here's a little dot morphing effect i've been getting a lot of feedback on.

    you can see it in action here at the 1:17 mark in this video:



    this just a morphing effect. here are the steps involved.

    first, create a script FX loop entry on your timeline:

    Click image for larger version. 

Name:	screen grab 1.JPG 
Views:	140 
Size:	43.8 KB 
ID:	30686

    populate the script effect loop with the following events:

    1) Animation/Trick Film

    this effect is a morph between two dotted circles. i'm using cat frames 96 and 97 in my catalog.

    Click image for larger version. 

Name:	screen grab 3.JPG 
Views:	50 
Size:	127.9 KB 
ID:	30687

    set up a triangle waveform animator effect:

    Click image for larger version. 

Name:	screen grab 4.JPG 
Views:	137 
Size:	96.8 KB 
ID:	30688

    and set "morph from one picture to another" to an unused frame in your catalog (remember: don't use frame 0):

    Click image for larger version. 

Name:	screen grab 5.JPG 
Views:	27 
Size:	74.8 KB 
ID:	30689

    2) Create a RotateZ entry in the FX Loop:

    Click image for larger version. 

Name:	screen grab 6.JPG 
Views:	125 
Size:	78.9 KB 
ID:	30690

    3) Create a RotateX entry in the FX Loop:

    Click image for larger version. 

Name:	screen grab 8.JPG 
Views:	115 
Size:	74.7 KB 
ID:	30691

    4) Create a RotateY entry in the FX Loop:

    Click image for larger version. 

Name:	rotateY.JPG 
Views:	119 
Size:	77.3 KB 
ID:	30694

    5) Set up the color effects with Module RGB Colors. I used the default settings:

    Click image for larger version. 

Name:	screen grab 9.JPG 
Views:	21 
Size:	63.2 KB 
ID:	30692

    The Script FX Loop should now resemble this:

    Click image for larger version. 

Name:	screen grab 2.JPG 
Views:	136 
Size:	96.6 KB 
ID:	30693

    Adjust all entries to taste and enjoy!
    suppose you're thinkin' about a plate o' shrimp. Suddenly someone'll say, like, plate, or shrimp, or plate o' shrimp out of the blue, no explanation. No point in lookin' for one, either. It's all part of a cosmic unconciousness.

  4. #4
    Join Date
    Sep 2008
    Location
    Orlando, Florida
    Posts
    1,156

    Default

    Great stuff. Subscribing to this thread.

  5. #5
    swamidog's Avatar
    swamidog is online now Jr. Woodchuckington Janitor III, Esq.
    Join Date
    Nov 2006
    Location
    santa fe, nm
    Posts
    1,545,752

    Default

    i've been getting a lot of requests for abstracts... the latest came by way of the world's funniest PM from absolom7691.

    here is the LSX show that was the basis for these abstracts. i keep tweaking them. they're not exactly the same, but it should give you a good start.



    swamidog-abstracts.rtd
    suppose you're thinkin' about a plate o' shrimp. Suddenly someone'll say, like, plate, or shrimp, or plate o' shrimp out of the blue, no explanation. No point in lookin' for one, either. It's all part of a cosmic unconciousness.

  6. #6
    Join Date
    Feb 2011
    Location
    Missouri, USA
    Posts
    50

    Default

    Thanks for sharing that swamidog. I'm all the more tempted to get this software...
    Pointers
    O-Like 532@100mW & 650@200mW
    Survival Laser 445@1.1W
    Projectors
    Homemade Variable RPM Lumia Box 405@500mW & 532@100mW & 650@200mW & 460@1.3W
    Kvant CM6000 with ScannerMAX 506 30-40k galvos - 637@1.3W & 532@1.8W & 445@3W + DMX Lumia Gratings
    Self-Repaired 532@500mW + Pangolin FB3, Chinese Galvos, Analog Modulation
    Tools & Software
    Radiator Laser Synthesizer
    LaserBee USB 2.5W thermopile meter
    Spaghetti, RIYA Multibus Lite
    Pangolin QuickShow, Beyond Advanced, integrated FB4

  7. #7
    Join Date
    Sep 2009
    Location
    Brno, CZ / Povazska Bystrica, SK
    Posts
    491

    Lightbulb a few tips i learned recently

    This one is very basic but i didn't know how to do it until swamidog told me so i think it might be useful:

    Projecting static text (not scrolling)

    1. Double-click to timeline to add event
    2. Click "More..." button
    3. Find the TrueTypeFont event
    4. Type in desired text, you can also select font, this one only works with true type fonts that are installed in your computer - for list of fonts that are quite good with laser (not so flickery) see this post: http://www.photonlexicon.com/forums/...199#post185199
    5. You can change color by changing the number of Color, it's taken from palette selected in ColorBuffer
    Note: there is activate RunText and ScrollText checkbox but they work kind of reversed as expected - text scrolls from left to right and from top to bottom where i think it should be quite the opposite =)

    Projecting realtime digital clock

    1. Double-click to timeline to add event
    2. Select the Clock event
    3. Double-click and add RunText event
    4. Type in 0123456789:: as text, see picture. The last two ":" act as divider of HH:MM:SS so if you want you can put different character like "." or "-"

    5. Now scroll the frame catalog to the beginning and be sure to select frame number 1, not 0, otherwise it won't work (dunno if bug or feature). After you click, each character will be copied as frame to the frame catalogue
    6. You can delete the RunText event as it was only necessary to fill the frames
    7. Double-click the Clock event to edit it and switch the Destination picture number in digital clock from 0 to 1, you should be now getting realtime clock output
    8. You can also change the font or add ColorRotation event to make the clock switch colors
    Note: you can also project analogue clock if you fill the appropriate frames for hour, minute and seconds stick and the clock frame, but this needs to be prepared in PicEdit and so that it rotates around the center. I don't have PicEdit skills yet so i can't cover that, maybe someone else could provide info how to draw these frames.

  8. #8
    Join Date
    Sep 2009
    Location
    Brno, CZ / Povazska Bystrica, SK
    Posts
    491

    Default Constantly changing value from positive to negative over time of event

    I'll just write this one here so i don't forget the formula:

    sqr2(etime*75,0)*(10*Spec2(0.5,idx))

    I was looking for an effect that would switch value between negative and positive value over time for PreMoveY event, something like the sign function over time. Luckily for us LSX offers rich possibilities to manipulate with objects and offers sqr2(a,b) function that will act as square sine wave. For variable A we put the function we want to have sinusoid for, in this case it's Etime. Etime takes the time run over event where 0.0 is the beginning and 1.0 end of event. So for example value of 0.5 means 50% of event has been played. I wanted to create something that would simulate this effect:



    once i figure more advanced use, i'll post again

  9. #9
    Join Date
    Sep 2009
    Location
    Brno, CZ / Povazska Bystrica, SK
    Posts
    491

    Default Primitive sound to light with beat detection

    Target was something like this, create a set of effects that would react automatically to the live audio input. Depending on tresholds each could react differently, marking certain level of input. Create a small circle in PicEdit and place 3 into timeline. Position them one below another as traffic lights using ShiftY. Then place SizeXY event to each of the circle and also RGB event. Timeline now looks similar to this:



    Set the Lower limit of SizeXY to 1 and upper to 1.2. Use following expression:

    10*Spec2(0.5,0)

    for transformation. 10* is the multiplier of input so if you have silent input you might need to rise this. Then proceed to setting up of RGB events. Upper will be for red color so tick that only Red channel is active. Select that color depends on: Point Number. Set lower and upper levels of Frequency to 0. Set lower level of Amplitude to 0 and upper to 1. Use following expression:

    if( above(10*Spec2(0.5,0),0.8), 10*Wave2(0.5,0), 0.1)

    Again change the 10* multiplier if you have silent input. Proceed to middle circle. Here we want to have yellow color so tick both Red and Green channels as active. Set Frequency and Amplitude levels as with previous RGB event. This time change the condition like this:

    if( above(10*Spec2(0.5,0),0.5), 10*Wave2(0.5,0), 0.1)

    This way it will detect only input values above 0.5, in previous it was 0.8. This is more sensitive. Proceed to lower circle. Here we want to have green color so tick only Green channel as active. Set Frequency and Amplitude levels the same as previous and change the condition like this:

    if( above(10*Spec2(0.5,0),0.1), 10*Wave2(0.5,0), 0.1)

    This will catch inputs already above 0.1 making it the most sensitive channel. If you set everything correctly, play some music so that you have input and it should look something like this:


  10. #10
    Join Date
    Jul 2008
    Location
    My momentum is too precisely determined :S
    Posts
    1,777

    Default

    I figured out a lot about abstracts lately. The most important feature was the Loop event.

    So, just create a Loop event (double click on the timeline, it's in the Procedure events row at the bottom), stretch it out and double click it. You get some kind of mini timeline where you can add events. You can add animations and other events at will. For abstracts I started out with 200 points all located in the centre of the image, and I applied sine and triangle wave expressions in PreMoveX, Y and Z. But the key to good looking abstracts is the Loop variable, and in my opinion it is best used in the RotateZ event. In the main Loop window, you can set this to a certain number (3 for example) and if you just use the expression Loop in the RotateZ event, the animation you had will be duplicated four times!

    Video!



    Show file!

    abstract2.rar


    Use the sliders to manipulate the various parameters of the abstract. Go to Live >> Open new slider dialog, uncheck the DMX input box, and have fun!

    Sliders 1 & 2: manipulate X
    Sliders 3 & 4: manipulate Y
    Sliders 5 & 6: manipulate Rotation over Z axis
    Slider 7: Size
    Sliders 8 & 9: blanking (blue only, feel free to add other colours yourself! If you don't know how to do it, buy me some red or green modules and I'll gladly do it for you :P)
    Sliders 10 & 11: control speed of rotation over X and Y axis
    Slider 12: control speed of rotation of global abstract
    Last edited by colouredmirrorball; 05-23-2012 at 17:39.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •