new LFOs as instrument/bus insert

Discussion in 'Feature Suggestions' started by soundtrax, Jun 19, 2019.

  1. soundtrax

    soundtrax NI Product Owner

    Messages:
    115
    it would be great to finally get some proper additional LFOs that could be inserted on the instrument or bus level (not on the group level, like the existing Modulators) and would act like LFOs in any other synth.

    The problems with the existing LFOs:

    - They have to be applied to each group, which can be a nightmare when having to deal with lots of groups.

    - They get out of sync easily in non-triggered mode when there’s more than one group used for a sound.

    - When using random wave LFOs, each group will be modulated independently which results in a doubled, tripled, etc. randomness (they will always be out of sync by design because they are supposed to be random on each group) - But that’s not how a synth normally would work. On every other synth, you would use just one random LFO to modulate a layered sound or multiple oscillators. Kontakt’s multiple random LFOs for each group simply don’t make sense: If you try to create a classic sample&hold sound with two groups in Kontakt - you’ll realise that this it is not possible.

    If you look at the TAL sampler for example, its LFO design works and sounds like it should - though not as complex as Kontakt, there are 4 sound layers (=groups) that can be played simultaneously and it is possible to use just one LFO to modulate all these layered sounds.

    Shouldn’t be too hard to implement this in Kontakt…
     
  2. EvilDragon

    EvilDragon Moderator Moderator

    Messages:
    14,985
    While I do agree with this, it's probably not happening any time soon, so scripting global LFOs using listener callback seems to be the way to go here.

    You'd think, but modulation system is one of the most arcane and complicated things in Kontakt in the back-end.
     
  3. soundtrax

    soundtrax NI Product Owner

    Messages:
    115
    Brilliant idea - but probably a rather tricky and complicated script. Or do you know of any factory or third party library script that does this?
     
  4. EvilDragon

    EvilDragon Moderator Moderator

    Messages:
    14,985
  5. soundtrax

    soundtrax NI Product Owner

    Messages:
    115
    fantastic, thanks for the link!
    Unfortunately my scripting skills are rather limited (I am just a musician/producer with no programming background,) so I don't think that I'll be able to script this...

    It would be cool if the Kontakt devs could include a global LFO script in a next Kontakt update.
     
  6. EvilDragon

    EvilDragon Moderator Moderator

    Messages:
    14,985
    Don't hold your breath. :)
     
  7. soundtrax

    soundtrax NI Product Owner

    Messages:
    115
    just curious - do you think with a global LFO like this it would be possible to toggle through different LFO waveforms, and immediately hear the change? (unlike with the current LFOs, where you have to play a new key).

    And do you think the 'on listener' method would also a be way to improve Kontakt's ADSR envelopes? (same problem here, that you won't hear immediate changes until you hit a new key).
     
  8. EvilDragon

    EvilDragon Moderator Moderator

    Messages:
    14,985
    Yeah you can definitely use this method to hear waveform changes in realtime.

    However for envelopes, since they're polyphonic, it's not exactly easy to use a monophonic callback (listener) to do them. Plus, you can run the listener callback with 1 millisecond precision, but this is not enough to shape the curve on shortest envelope attack times.
     
  9. soundtrax

    soundtrax NI Product Owner

    Messages:
    115
    Thanks for the heads up!
     
  10. stephen23

    stephen23 NI Product Owner

    Messages:
    393
    The manual says a new random value is generated with each new note. Not so - it seems to generate a new value each time a random number is required for a calculation.

    If your only problem is lack of synchronisation between groups, this simple script will generate a new random value for cc#3 with each note. You can then control your lfos or whatever with cc#3. (Obviously any unused cc will do)

    Paste it into the first available script slot and click on apply.

    on note
    set_controller (3, random(0,127))
    end on

    (EvilDragon will make any necessary modifications/corrections)

    And of course you can edit all groups with Edit All Groups.
     
  11. soundtrax

    soundtrax NI Product Owner

    Messages:
    115
    Thanks for your suggestion, but I can't get this to work.
    How would you actually map the CC#3 random generator inside the kontakt synth engine?
    ( I tried mapping it to a Source modulator: Midi CC - CC#3 > Pitch, but that's not working)
    Another problem is probably the fixed speed of your random generator.
     
  12. EvilDragon

    EvilDragon Moderator Moderator

    Messages:
    14,985
    There's no fixed speed in that RNG. It's just a different random CC#3 value sent on every played note. It works fine here.
     
  13. soundtrax

    soundtrax NI Product Owner

    Messages:
    115
    hmm I don't get it, how do I map this RNG to the note pitch?
    If I add a modulator (CC#3 > Pitch) I get a new random (straight) note each time I hit a new key, but what a LFO usually does is to alter the pitch while playing a note.
     
    Last edited: Jun 21, 2019
  14. stephen23

    stephen23 NI Product Owner

    Messages:
    393
    Sorry never use LFOs - remind me too much of science fiction B movies from the 1950s.

    The little script just circumvents the above-mentioned bug. If you modulate some aspect of your LFO (?frequency, depth) with cc#3 all your groups will use the same random value so should synchronise.
     
  15. soundtrax

    soundtrax NI Product Owner

    Messages:
    115
    haha, I'm a big fan of cheap science fiction movies, so I can't live without good sounding LFOs!!

    yes, in theory your script makes sense...I am just struggeling with the right connections in Kontakt.
     
  16. soundtrax

    soundtrax NI Product Owner

    Messages:
    115
    Just found a great working global LFO script in another thread at vi-control (post#30 by Fredeke) https://vi-control.net/community/th...htly-out-of-phase-solved-via-ksp.82645/page-2
    It's a vibrato-like LFO (incl. a fixed LFO fade in and sliders for Freq and Amount) and modulates the pitch of the whole nki perfectly with a free floating sine wave.
    I guess it wouldn't be too difficult to implement other LFO waves and more features into this script.