Page 40 of 64 FirstFirst ... 3036373839404142434450 ... LastLast
Results 391 to 400 of 636

Thread: The LSX tutorials thread!

  1. #391
    Join Date
    Feb 2007
    Location
    Fort Mill, SC USA
    Posts
    1,507

    Default

    I think there's only a few core CAT files that are the base used across many of the shows. 5th Element has one of them that I frequently start with and add too as desired. There is another one that has many single color frames that is different that I start with as well. Each of the bases CAT files have lots (over a thousand) base frames and some are more complicated (i.e. 3D) that you may not notice at first.
    "Help, help, I'm being repressed!"

  2. #392
    Join Date
    Jan 2014
    Location
    North Carolina, USA
    Posts
    219

    Default Possible tempo support for Live Shows coming soon...

    Possible tempo support for Live Shows coming soon...

    Click image for larger version. 

Name:	Screen Shot 2014-12-15 at 4.29.21 AM.png 
Views:	26 
Size:	179.7 KB 
ID:	45699


    Although CMB makes a very good case for not "needing" tempo capabilities in LSX, I personally feel that no tool should be hidden from the artist... So here is a sneak-peek at tempo control with LSX.

    I prefaced this with "possible" because tempo based live clip playback is not at all officially supported in LSX. I have it working perfectly here, though it is using a magic "timeline constant" which I only figured out through measurement techniques, and don't know if it scales across individual systems (I would love input from DrLava on this magical timeline constant).

    More testing is needed.

    Anyway, with this setup, you launch the APC40 Max app that I have created, then load in the included LSX Template in LSX for creating live shows that has the timeline speed midi math already created.

    Features:

    • Tap Tempo - set the tempo by the familiar "tap tempo" method - uses a statistical algorithm to average out button presses on the tap tempo button.
    • Manual Tempo Entry - you can use your mouse to manually enter a tempo - drag on the 1's column to change the 1's value. Drag on the 10th's column to change its value. Any tempo changes will update the playback speed in LSX in real-time. You can also use the APC's tempo knob to change the tempo. Rotating will inc/dec by 1 BPM. Holding shift while rotating will inc/dec by 1/10th BPM
    • Every press of a clip-launch (playback or midi-note) button on the APC40 or inside LSX will re-sync that clip to the current tempo.
    • Sync Button - every press of the Sync button will restart the clock allowing MIDI clock visual sync with the music - this doesn't effect LSX playback speed.
    • Quantization Values - Once you have established your tempo (BPM) - you can set the quantization value, i.e., the value at which LSX will use as it's loop length in a live show. A value of 1 BAR will make LSX loop at 4 beats per measure. A value of 1/16 will make LSX loop at every 16th note, and so on.



    I know teasers suck... but hopefully I will release this little doohickey in the next couple of days... Also, I might get fired because I spent way too much time on this... and I need to get back on a day-time schedule ASAP.

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

    Default

    Looks like somebody is getting the hang of expressions.

  4. #394
    Join Date
    Jan 2014
    Location
    North Carolina, USA
    Posts
    219

    Default

    There is only one expression involved... and it simply takes the BPM and the current Quantization value and does some math to figure out the Timeline Speed to set. All of the magic actually happens in the Max/MSP patch.

    The BPM is sent using 3 Midi CCs - the Quantization value is sent using 1 Midi CC.

    There are still lots of things I don't understand... like the difference between var(i) and gbuf(i). Also, I don't really understand the scope of variables. If a variable is set in one expression can it be used in another expression?

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

    Default

    You can't do assign(var(a), somevalue) (or at least I don't think you can, let's say you're not supposed to be able to do this). You can change the value in var(a) by placing a SetVar event on the timeline and change its value by the three options you get (one-line-expression, animator window, curve window). The gbuf works as explained above. There are only 127 SetVar addresses possible but nearly unlimited gbuf positions.
    Both these variables can be used across expressions. Same goes for dampers (if you set up a damper using setdamp(a, b, dampname) you can do damp(a, dampname) across all other expressions) and reg## (I believe, this is from my usually faulty memory) which is not documented anywhere but is used in a few shows/effects drlava himself made, but gbuf(a) is better since you can easily increment the address.

    The others can't be used across expressions. This includes variables you make yourself: if you do a=5; in one expression you can't use a in another expression and expect it to have the value 5.

  6. #396
    Join Date
    Jan 2014
    Location
    North Carolina, USA
    Posts
    219

    Default

    Thanks CMB. That all makes perfect sense. I initially tried creating a lookup table for the quantization value using val() - but I think I was using assign(val(i), x) - The quantization value has a range from 1-256 - which is too big for a midi CC - couldn't get the var()s to work like I wanted. It would be nice if there was some kind of log() or print() statement to see what is going on. In the end I just ended up splitting the quantization value across 2 midi CC controls, just like th BPM is split across 3 midi CC controls.

    I am still refining and testing things out. Getting a solid "Tap Tempo" algorithm is actually quite difficult. Us Humans are not really good metronomes, and computers are not really good at guessing what we mean.

    At the moment this is what the BPM to Timeline Speed function looks like (when the lower limit of Set Timeline Speed is set to 0 and the upper limit is set to 50)

    1/(120*4*16.55)*(BPM)/(quantvalue/64);

    Where quantvalue is the number of 16th notes per loop. So a quantvalue of 1 would mean the loop is looping at 16th note values (very fast), and a quantvalue of 16 would mean the loop is looping at 16 16th notes, or 1 measure (or 4 beats).

    The part I don't like is the 16.55 constant - which is a constant I came up with simply by measurement. I have no way of knowing if this is constant across all systems. When the timeline clock is set to Live (variable speed) - what is it actually using to keep time? I wish I knew the answer to this question. I don't like guessing at constants. But so be it... It is all we have for now.

  7. #397
    Join Date
    Jan 2014
    Location
    North Carolina, USA
    Posts
    219

    Default

    BPM playback in LSX:

    Click image for larger version. 

Name:	screen-shot.png 
Views:	11 
Size:	177.7 KB 
ID:	45745

    If anyone is interested in trying out this attempt at getting BPM support in LSX, check the thread linked below for all the details:

    http://www.photonlexicon.com/forums/...launch-buttons

    Note that even though this app works as a mediator between an APC40 and LSX, and APC40 is not required to use the app. You can tap tempo on the app itself, and also set the tempo manually by scrolling around in the number box. If you aren't using a midi controller, you will have to use the Master Beam window to launch clips on the beat to test sync.

    I originally thought it would be easy to come up with a relationship between BPM (tempo) and the Timeline Speed event.

    Through some trial and error, I came up with the simple transformation from BPM to Timeline Speed factor:

    ts = BPM/(124.5*quantValue)

    Where ts is the value for the Timeline Speed event with limits [0] and [50]
    BPM is the tempo in beats per minute
    quantValue is the quantization value (or how many beats per loop of the timeline) - this is scaled so that a value of 1 would cause the timeline to loop at 16th note intervals, a value of 4 would loop at quarter note intervals, and a value of 16 would loop at 4 beats (or 1 measure in 4/4 time).

    It was all well and good when testing against a metronome running at 120BPM... I then started testing against a metronome at other tempos, and started getting different scalar values. At first I thought I could just figure out what this linearity was, but after quite a bit of measuring of different tempos, it became obvious that the scale factor I originally found (124.5) does not scale in a linear fashion across all BPMs... here is a graph of different BPMs:

    Click image for larger version. 

Name:	ts-drift-web.png 
Views:	12 
Size:	42.5 KB 
ID:	45744

    I feel like I am missing something simple... anyone have any insight on how to resolve this non-linearity, please help!
    Last edited by BlueFang; 12-21-2014 at 13:47.

  8. #398
    Join Date
    Feb 2007
    Location
    Fort Mill, SC USA
    Posts
    1,507

    Default SELEM LSX Tips and Tricks August 2014

    At SELEM 2014, Swamidog, Lulighttec and I gave an informal talk about some of the lesser known features of LSX. Unfortunately the use of a single camcorder didn't allow us to capture close-ups of the screen, speakers and laser output so it is a bit difficult to see. The audio is cleaned up as best I could, but still isn't great by any means. This said, I hope those LSX users will still be able to get the gist of it.

    Thanks to everyone at SELEM who took the time out to share some of their knowledge!

    -David

    "Help, help, I'm being repressed!"

  9. #399
    Join Date
    Dec 2012
    Location
    Poland
    Posts
    26

    Default

    Quote Originally Posted by dkumpula View Post
    At SELEM 2014, Swamidog, Lulighttec and I gave an informal talk about some of the lesser known features of LSX. Unfortunately the use of a single camcorder didn't allow us to capture close-ups of the screen, speakers and laser output so it is a bit difficult to see. The audio is cleaned up as best I could, but still isn't great by any means. This said, I hope those LSX users will still be able to get the gist of it.

    Thanks to everyone at SELEM who took the time out to share some of their knowledge!

    -David

    Thanks for sharing !

  10. #400
    Join Date
    Dec 2012
    Location
    Poland
    Posts
    26

    Default

    Anybody knows mayby how to write expression of "linear interpolation" ? I'm trying to set up world rotate z with midi key, to rotate over and over in the same direction. Thanks for advice.

Posting Permissions

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