1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Kontakt Update 5.8.0

Discussion in 'KONTAKT: Sampling, Programming & Scripting' started by pfmusic, Apr 12, 2018.

  1. EvilDragon

    EvilDragon KSP Wizard

    4,558
    2,359
    May 25, 2010
    Croatia
    Yes, copy out somewhere else the 5.6.6 exe (standalone) and dll (plugin), do the update to 5.8, then rename the older version files and place them where latest versions are. In most DAWs this should work.
     
  2. Vardaro

    Vardaro Senior Member

    171
    64
    Feb 16, 2014
    Near Paris, France
    But won't that replace the 5.8 ?
    I used the 5.6.6 installer, and Spotlight worked fine. NA simply put 5.8 as an "available update".
    I don't remember the 5.6 installer giving me a choice of installation folder, it simply crushed the 5.8.
     
  3. Tod

    Tod Old Fart

    I think what ED's talking about is to copy the 5.6.6 dll and stand-a-lone to another folder for safe keeping. Then go ahead and update to the 5.8 and let it do what it wants.

    Now I'm not sure how interchangeable the Stand-a-lone is, I've never monkeyed with that, but the dlls are easily changeable. I've got Kontakt 5.1, 5.2, 5.5, 5.7, and 5.8 dlls, all in different folders. All I have to do is select the one I want to use is by selecting the folder in "Preferences" in my DAW.
     
  4. Vardaro

    Vardaro Senior Member

    171
    64
    Feb 16, 2014
    Near Paris, France
    So I should reinstall 5.6.6, copy it elsewhere, then update it (again) in NA to use the newest libraries. But will 5.6.6 then work without registering it with NA?
     
  5. EvilDragon

    EvilDragon KSP Wizard

    4,558
    2,359
    May 25, 2010
    Croatia
    Sure it will work. They all run off the same licence.
     
  6. Vardaro

    Vardaro Senior Member

    171
    64
    Feb 16, 2014
    Near Paris, France
    Well, my 5.6 installer (an update from Komplete9 on a 32bit Windows 7) must have been 32bit, since it did not remove the 5.8 dll's from the 64bit vst folder, but put 5.6 dll's in a new 32bit folder alongside. The stand-alone .exe I saved in a new folder, relabelled it Kontakt 566.exe with a link on my desktop. Then I re-updated to 5.8 in NA. ( in about 5 minutes.)

    I don't think it would have worked if the 5.6 installer had been for 64bit, since that installer gave me no options for modifying the installation path.

    Thanks for the help, E.D!
     
  7. EvilDragon

    EvilDragon KSP Wizard

    4,558
    2,359
    May 25, 2010
    Croatia
    NI installers have both 64- and 32-bit plugins in them. You gotta mind the VST paths when going through installer steps, don't just click "Next".
     
  8. Vardaro

    Vardaro Senior Member

    171
    64
    Feb 16, 2014
    Near Paris, France
    The 5.6 installer gave me no path option: it just told me what it was going to do..

    Or maybe the 5.6 installer refused to crush the 5.8 64bit dll's and just installed its 32bit components? It crushed the standalone .exe o.k...
     
    Last edited: Jun 14, 2018
  9. Tod

    Tod Old Fart

    I don't recall having any path options either, except for the instruments and samples. I just learned long ago to save my dll files somewhere else before I update. I don't worry about the Stand-a-lone, I never use it.

    I'm not sure what you mean by "crush", I think it just replaces the files.
     
  10. Vardaro

    Vardaro Senior Member

    171
    64
    Feb 16, 2014
    Near Paris, France
    I meant "replace", but it felt like crushing...
     
    Last edited: Jun 16, 2018
  11. Levitanus

    Levitanus Senior Member

    Where can I find the KSP changelog? I updated just today (was busy) because some users have problems with one of my scripts particularly in 5.8
    The 24 hours of debugging lead me to the thought that there is a new callback or something has been added, that reacts on my ui_callbacks entirely. But, or my KSP reference is unupdated, or just has not be written yet.

    P.S. Ok, I have read the thread entirely and assumed, there is no new API. So I'm confused to double-time. Really can not catch the bug. I have huge lags in the interface, but I'm almost sure, it does not depend on my ui_control callbacks.
    For example, I have glitches even in this code:

    Code:
    ....
    
    on ui_control($Layout__Unit1Knob1)
      pgs_set_key_val(Unit1Knob1,0,1)
    end on
    
    ....
    
    on pgs_changed
      select (pgs_get_key_val(FXRACK,0))
        case 1
          $i := 0
          while ($i<588)
            select ($i)
              case 0 to 255
                %master_preset[$i] := pgs_get_key_val(FXRACK_PRESET,$i)
              case 256 to 511
                %master_preset[$i] := pgs_get_key_val(FXRACK_PRESET1,$i-256)
              case 512 to 767
                %master_preset[$i] := pgs_get_key_val(FXRACK_PRESET2,$i-512)
            end select
            inc($i)
          end while
          call get_master_preset
          $KnobsPreserved := 1
          call AssignUnit1Plugin
          call AssignUnit2Plugin
          call AssignUnit3Plugin
          wait(10000)
          $KnobsPreserved := 0
          if (1=1)
            set_control_par($Layout__OverlaySliderID,$CONTROL_PAR_HIDE,$HIDE_WHOLE_CONTROL)
            $Layout__i := 0
            while ($Layout__i<374)
              if (%Layout__control__Page[$Layout__i]=$Layout__UnitsPage)
                set_control_par(%Layout__Page__IDs[$Layout__i],$CONTROL_PAR_HIDE,$HIDE_PART_NOTHING)
              end if
              if (%Layout__control__Page[$Layout__i] # $Layout__UnitsPage and (%Layout__control__Page[$Layout__i] # 0))
                set_control_par(%Layout__Page__IDs[$Layout__i],$CONTROL_PAR_HIDE,$HIDE_WHOLE_CONTROL)
              end if
              inc($Layout__i)
            end while
          end if
          call RenderInserts
          $Layout__lfoTweakButton := 0
          $Layout__seqTweakButton := 0
          pgs_set_key_val(FXRACK,0,0)
        case 2
          call set_master_preset
          $i := 0
          while ($i<588)
            select ($i)
              case 0 to 255
                pgs_set_key_val(FXRACK_PRESET,$i,%master_preset[$i])
              case 256 to 511
                pgs_set_key_val(FXRACK_PRESET1,$i-256,%master_preset[$i])
              case 512 to 767
                pgs_set_key_val(FXRACK_PRESET2,$i-512,%master_preset[$i])
            end select
            inc($i)
          end while
          pgs_set_key_val(FXRACK,0,-1)
      end select
      select (pgs_get_key_val(FXRACK_BYPASS,0))
        case 0
          select ($Unit1PluginOnProxy)
            case 0
              $Layout__Unit1PluginOn := 0
              call OnUnit1PluginOn
            case 1
              $Layout__Unit1PluginOn := 1
              call OnUnit1PluginOn
          end select
        case 1
          select ($Unit1PluginOnProxy)
            case 0
              $Layout__Unit1PluginOn := 1
              call OnUnit1PluginOn
            case 1
              $Layout__Unit1PluginOn := 0
              call OnUnit1PluginOn
          end select
      end select
      select (pgs_get_key_val(FXRACK_BYPASS,1))
        case 0
          select ($Unit2PluginOnProxy)
            case 0
              $Layout__Unit2PluginOn := 0
              call OnUnit2PluginOn
            case 1
              $Layout__Unit2PluginOn := 1
              call OnUnit2PluginOn
          end select
        case 1
          select ($Unit2PluginOnProxy)
            case 0
              $Layout__Unit2PluginOn := 1
              call OnUnit2PluginOn
            case 1
              $Layout__Unit2PluginOn := 0
              call OnUnit2PluginOn
          end select
      end select
      select (pgs_get_key_val(FXRACK_BYPASS,2))
        case 0
          select ($Unit3PluginOnProxy)
            case 0
              $Layout__Unit3PluginOn := 0
              call OnUnit3PluginOn
            case 1
              $Layout__Unit3PluginOn := 1
              call OnUnit3PluginOn
          end select
        case 1
          select ($Unit3PluginOnProxy)
            case 0
              $Layout__Unit3PluginOn := 1
              call OnUnit3PluginOn
            case 1
              $Layout__Unit3PluginOn := 0
              call OnUnit3PluginOn
          end select
      end select
      if (pgs_get_key_val(Unit1Knob1,0)=1)
        pgs_set_key_val(Unit1Knob1,0,0)
      end if
      if (pgs_get_key_val(Unit1Knob2,0)=1)
        pgs_set_key_val(Unit1Knob2,0,0)
      end if
      if (pgs_get_key_val(Unit1Knob3,0)=1)
        pgs_set_key_val(Unit1Knob3,0,0)
      end if
      if (pgs_get_key_val(Unit1Knob4,0)=1)
        pgs_set_key_val(Unit1Knob4,0,0)
      end if
      if (pgs_get_key_val(Unit1Knob5,0)=1)
        pgs_set_key_val(Unit1Knob5,0,0)
      end if
      if (pgs_get_key_val(Unit1Knob6,0)=1)
        pgs_set_key_val(Unit1Knob6,0,0)
      end if
      if (pgs_get_key_val(Unit1Knob7,0)=1)
        pgs_set_key_val(Unit1Knob7,0,0)
      end if
      if (pgs_get_key_val(Unit1Knob8,0)=1)
        pgs_set_key_val(Unit1Knob8,0,0)
      end if
      if (pgs_get_key_val(Unit1Knob9,0)=1)
        pgs_set_key_val(Unit1Knob9,0,0)
      end if
      if (pgs_get_key_val(Unit1Knob10,0)=1)
        pgs_set_key_val(Unit1Knob10,0,0)
      end if
      if (pgs_get_key_val(Unit1Knob11,0)=1)
        pgs_set_key_val(Unit1Knob11,0,0)
      end if
      if (pgs_get_key_val(Unit1Knob12,0)=1)
        pgs_set_key_val(Unit1Knob12,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob1,0)=1)
        pgs_set_key_val(Unit2Knob1,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob2,0)=1)
        pgs_set_key_val(Unit2Knob2,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob3,0)=1)
        pgs_set_key_val(Unit2Knob3,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob4,0)=1)
        pgs_set_key_val(Unit2Knob4,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob5,0)=1)
        pgs_set_key_val(Unit2Knob5,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob6,0)=1)
        pgs_set_key_val(Unit2Knob6,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob7,0)=1)
        pgs_set_key_val(Unit2Knob7,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob8,0)=1)
        pgs_set_key_val(Unit2Knob8,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob9,0)=1)
        pgs_set_key_val(Unit2Knob9,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob10,0)=1)
        pgs_set_key_val(Unit2Knob10,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob11,0)=1)
        pgs_set_key_val(Unit2Knob11,0,0)
      end if
      if (pgs_get_key_val(Unit2Knob12,0)=1)
        pgs_set_key_val(Unit2Knob12,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob1,0)=1)
        pgs_set_key_val(Unit3Knob1,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob2,0)=1)
        pgs_set_key_val(Unit3Knob2,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob3,0)=1)
        pgs_set_key_val(Unit3Knob3,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob4,0)=1)
        pgs_set_key_val(Unit3Knob4,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob5,0)=1)
        pgs_set_key_val(Unit3Knob5,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob6,0)=1)
        pgs_set_key_val(Unit3Knob6,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob7,0)=1)
        pgs_set_key_val(Unit3Knob7,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob8,0)=1)
        pgs_set_key_val(Unit3Knob8,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob9,0)=1)
        pgs_set_key_val(Unit3Knob9,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob10,0)=1)
        pgs_set_key_val(Unit3Knob10,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob11,0)=1)
        pgs_set_key_val(Unit3Knob11,0,0)
      end if
      if (pgs_get_key_val(Unit3Knob12,0)=1)
        pgs_set_key_val(Unit3Knob12,0,0)
      end if
    end on
    P.P.S. I know. it looks bad, but It is only for doing anything in the callback.
    If remove lines in pgs, it works. The same with couple-line functions, like
    Code:
    function OnKnobs
        // NI_CALLBACK_ID etc
        ....
        // arg1 is id of value-label of ui-element
        arg1 -> hide := HIDE_PART_BG
        wait(1000)
        // if NI_CALLBACK_ID etc
        arg1 -> hide := HIDE_WHOLE_CONTROL
    end function
    P.P.P.S. More than, with profiling of ui_callbacks, they are executed just in 6-10 microseconds with all big code called. But ui is stacked.

    P.P.P.P.S. :grin: I have also counted all controls of all types (though there is a problem) and not so scary:
    Code:
    slider amount: 85
    button amount: 142
    switch amount: 52
    label amount: 94
    menu amount: 2
    table amount: 1
    waveform amount: 0
    knob amount: 0
    file_selector amount: 0
    level_meter amount: 0
    text_edit amount: 1
    value_edit amount: 1
    xy amount: 2
    P.P.P.P.P.S. Of course, I've blocked all listener and persistent_changed code at first. And have not ui_update callback at all.
     

    Attached Files:

    Last edited: Jun 16, 2018
  12. EvilDragon

    EvilDragon KSP Wizard

    4,558
    2,359
    May 25, 2010
    Croatia
    Why would you do what you're doing there in PGS? :/

    That is some really nasty code right there. Too many branches that are ran EVERY time there's a PGS call (which, if you're setting a PGS key on ui_slider callback, is a LOT of calls). No wonder you get laggy GUI (and possibly CPU spikes too).

    If you absolutely must do something like that via PGS, you need to have a message passing system - have a separate PGS key that will be used to designate when a message is sent (otherwise do nothing in PGS callback), and to which parameter it should apply, then select-case your way through all the parameters.

    But this is really nasty.
     
  13. Levitanus

    Levitanus Senior Member

    It's really, really the last example I took from the code. There is no pgs in the subject script. There is the function with set_engine_par and hide_part. Nothing really strange in it. Look at the second example. It stacked too, without any pgs code.
     
  14. EvilDragon

    EvilDragon KSP Wizard

    4,558
    2,359
    May 25, 2010
    Croatia
    Well, just with these tidbits of code I cannot confirm anything happening here...


    Not sure what you're getting at here.
     
    Levitanus likes this.
  15. Levitanus

    Levitanus Senior Member

    this is the main strange thing)
     
  16. EvilDragon

    EvilDragon KSP Wizard

    4,558
    2,359
    May 25, 2010
    Croatia
    That's because the code you sent is useless for checking. Post a more useful piece of code that actually works and compiles in Kontakt so that we can easily see what's going on.
     
  17. geronimo

    geronimo Senior Member

    254
    21
    Oct 8, 2010
    Update in version 5.8.1. via Native Access _ (cool)


    • IMPROVED Wet & Dry sliders on many effects (e.g., Reverbs and Delays) would cause loud artefacts when used; control signal smoothing is now a lot more robust with artefacts greatly reduced
    • IMPROVED KSP: "Array out of bounds" warnings now include additional info (name and size of the array and index of attempted access)
    • FIXED Some older Kontakt Player libraries (like East West RA) would stay in Demo mode even when properly authenticated
    • FIXED Group MIDI input channel settings are now recalled correctly after saving and reloading an NKI
    • FIXED Kontakt would crash when trying to set the Sample Subdirectory on the Save As dialog
    • FIXED In some cases (e.g. with Top Shelf Drums by 3 Sigma Audio), the instrument GUI would be corrupt when using multiple instances of the same NKI
    • FIXED Kontakt would crash when trying to multi-select groups with Shift+Click
    • FIXED Kontakt would crash when assigning automation to controls the name of which included special characters
    • OS REQUIREMENTS This version requires macOS 10.11 or higher or Windows 7 or higher
     
    Robo Rivard likes this.
  18. derstefmitf

    derstefmitf Senior Member

    273
    8
    Nov 2, 2013
    Germany
    IMPROVED KSP: "Array out of bounds" warnings now include additional info (name and size of the array and index of attempted access)

    This is great.
     
    Jaap likes this.
  19. Vardaro

    Vardaro Senior Member

    171
    64
    Feb 16, 2014
    Near Paris, France
    Just updated to 5.8.1.
    Spotlight Solo Strings still crashes it. Grrr..
     
    Last edited: Jun 22, 2018 at 2:40 AM
  20. geronimo

    geronimo Senior Member

    254
    21
    Oct 8, 2010
    I don't understand well, since my french origins: on an impression that it concerns the arrays and their errors messages.
    What is it exactly, please ?
     

Share This Page