1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

Host automation for instruments in instrument banks

Discussion in 'Feature Suggestions' started by Coorec, Aug 7, 2017.

  1. Coorec

    Coorec NI Product Owner

    Messages:
    337
    Since its the main purpose of an instrument bank to switch instruments on the fly, i'd like to use Maschine knobs to change the instrument. But only Volume and Pan can be targets for host automation at the moment.

    I know ts supposed to work with midi program change messages, but these can be dangerous in live situations. Using host automation would be a saver way.

    Please add this little feature to make instrument banks more useful for performing live.

    Thanks for considering.

    PS: As always with feature requests it would be nice of the devs, to respond wether they consider, or even plan to implement the suggestion. You know, for us who bother to give feedback it would feel less like talking to a wall.
     
    Last edited: Aug 7, 2017
  2. EvilDragon

    EvilDragon Well-Known Member

    Messages:
    19,938
    I wouldn't hold my breath on this happening. Instrument banks will only change patches on Program Change messages. Plus, it seems that NI has focused on solely instruments (NKI), rather than multis or banks for quite some time now.

    If you need program changes to happen at certain times during your set, can't you just write them into the sequencer/pattern at the point they're supposed to happen? That would be THE safest way to go about it, because Program Change messages via knobs is not safe, and host automation is equally not safe for this purpose.
     
    Last edited: Aug 7, 2017
  3. Coorec

    Coorec NI Product Owner

    Messages:
    337
    Thanks ED for your answer.

    What i try to do is build a container with lets say 50 kick drums, that i can switch via a Maschine knob, like i would switch a drumsample on one of the old drum romplers. With your knowledge its probably pretty easy to program into script. But i cant program and the instrument bank seemed like a good way to do it. Until i realized you cant use host automation for the switch.

    I didnt find a way to do it in instrument or multi modes. I didnt get it done in Reaktor, nor Maschine. The instrumentbank really is like designed for this purpose..

    Is there any other way?
     
  4. EvilDragon

    EvilDragon Well-Known Member

    Messages:
    19,938
    What about switching Maschine to MIDI mode, then using NI's Controller Editor to modify the MIDI mode template and dedicate one knob to sending Program Change messages over a certain MIDI channel? This would change patches in instrument banks directly, with no scripting whatsoever, and you can always go out of MIDI mode back to regular Maschine mode.

    Should work really well.
     
  5. Coorec

    Coorec NI Product Owner

    Messages:
    337
    Yeah this could work too. But if i switch the mode anyways, i may as well use Kontakts keyswitches along with pad mode in Maschine. I was hoping i would be able to somehow stay in sound, where all the other edits are too.

    Thanks a lot ED. I will let this feature suggestion open anyways. It looks like such a simple thing to implement, and may be the devs have mercy ;-)
     
  6. EvilDragon

    EvilDragon Well-Known Member

    Messages:
    19,938
    You might think it's a simple thing to implement, but in reality it's probably not, as it could inadvertly break a lot of other related (and possibly even UNrelated) things...

    Another thing you could possibly do is use a particular MIDI CC, then use the factory Transformer multiscript to convert the CC message to Program Change messages. That still kinda requires the MIDI mode, I suppose, though. Or, if you have a secondary MIDI controller, you could use that one instead?
     
    Last edited: Aug 9, 2017
  7. Coorec

    Coorec NI Product Owner

    Messages:
    337
    Yea, you are right of course. Nothing is ever as easy as imagined.

    Its a little bit frustrating. I feel like i've read everything in regards to host automation, group start options, KSP and eventhough Maschine and Kontakt are very flexible tools, one cant change an instrument, or a group without using midi. There are various ways to do it via midi, but no way to do it via host automation. In result, one can not change presets without leaving the Sound edit menu in Maschine (or any other hosts auomation controls). In this case i might as well load a different sample or instrument directly..

    And still i keep thinking, this can not be.. all we would need is a knob that runs thru the content of an instrument bank. So it can be assigned to host automation. At first i thought the instrument bank is just an on midi in thingy, but then you can automate pan and volume there...

    I wanted to replace my S5000 (which i use as a drum rompler) with Kontakt, but it doesnt seem possible at the moment.

    Any way. ED! Thank you for your efforts. much appreciated!!
     
    Last edited: Aug 9, 2017
  8. EvilDragon

    EvilDragon Well-Known Member

    Messages:
    19,938
    I'd say because there are going to be synchronicity issues when loading patches over host automation, which can be sent at VERY fast rates (even SSDs wouldn't be able to cope with that), it's simply not viable to do it. Even for MIDI, which is a slower protocol (yet still relatively fast), you cannot do this on the fly because messages can still come in way too fast and saturate hard drive very easily. This is why instrument banks PRELOAD all the patches you can switch between, and only THEN you can use Program Change to change between them. If you can convert host automation to MIDI somehow, that'd be the way to go, but I still think not without caveats...

    (Pan and Volume of instrument banks are not MIDI related, they are simply dealing with the audio output at the end of instrument bank, so this can of course be easily host automated - it's not accessing hard drive in realtime or anything).
     
  9. EvilDragon

    EvilDragon Well-Known Member

    Messages:
    19,938
    Actually, perhaps this could be of some use to you: what if you drop 128 samples in a Kontakt instrument (not instrument bank!), and you got a knob that selects one of them, and a single key over which you would play that one sound? Scripted knob can be host automated and automatically assigned to an automation slot in Kontakt, so it'd just work. You'd first need to drop your samples in, though...
     
  10. Coorec

    Coorec NI Product Owner

    Messages:
    337
    That sounds exactly what i would like to do.

    Until now i have my favourite selection of for example kick drums preloaded in my S5000 (autoload at start up). All mapped to the same key. Then whilst Maschine plays the pattern i flick thru them til i find the one i want to use for the track. So there are no fast changes, and pre-load is a given, not a caveat in my case.

    So after work today i will check the KSP reference for trick how to switch samples (groups?) with a knob. Sounds very promising.

    Again, i cant thank you enough for your time and willingnes to share your knowledge.
     
  11. EvilDragon

    EvilDragon Well-Known Member

    Messages:
    19,938
    No no. Here you go with the script:

    Code:
    on init
      make_perfview
    
      declare $i
      declare $prev := -1
      declare $last_vel := 96
    
       declare ui_switch $PreviewSel
      declare ui_knob $Select (0, 127, 1)
      declare ui_value_edit $Key (0, 127, 0)
      declare ui_knob $Preview (100, 1000, 1)
    
      $Key := 60
      $Preview := 250
    
      set_knob_defval($Preview, 250)
      set_knob_unit($Preview, $KNOB_UNIT_MS)
    
       set_text($PreviewSel, "Preview Select")
    
      make_persistent($last_vel)
      make_persistent($prev)
    
      make_persistent($Select)
      make_persistent($Key)
      make_persistent($Preview)
      make_persistent($PreviewSel)
    
       move_control($Select, 1, 1)
       move_control($Preview, 2, 1)
       move_control($PreviewSel, 3, 1)
       move_control($Key, 3, 2)
    
       set_control_par(get_ui_id($Select), $CONTROL_PAR_AUTOMATION_ID, 0)
       set_control_par(get_ui_id($PreviewSel), $CONTROL_PAR_AUTOMATION_ID, 1)
       set_control_par(get_ui_id($Preview), $CONTROL_PAR_AUTOMATION_ID, 2)
    
       set_control_par_str(get_ui_id($PreviewSel), $CONTROL_PAR_AUTOMATION_NAME, "Preview")
       set_control_par_str(get_ui_id($Preview), $CONTROL_PAR_AUTOMATION_NAME, "Time")
    
      message("")
    end on
    
    
    function KeyColor()
      $i := 0
       while ($i < 128)
         set_key_color($i, $KEY_COLOR_INACTIVE)
         inc($i)
       end while
       set_key_color($Key, $KEY_COLOR_BLUE)
    end function
    
    
    on persistence_changed
       call KeyColor()
    end on
    
    
    on note
      ignore_event($EVENT_ID)
      if ($EVENT_NOTE = $Key)
      $last_vel := $EVENT_VELOCITY
      play_note($Select, $last_vel, 0, -1)
      end if
    end on
    
    
    on ui_control ($Select)
       if ($PreviewSel = 1)
        if ($Select # $prev)
        play_note($Select, $last_vel, 0, $Preview * 1000)
        $prev := $Select
        else
        $Select := $prev
        end if
      end if
    end on
    
    on ui_control ($Key)
       call KeyColor()
    end on

    Automation slots are automatically assigned and you can use this patch via Maschine parameter pages easily. Just drop your (up to 128) samples chromatically in a single group in Kontakt and that's it.

    If you enable Preview Select button, then you don't need to play anything from the host, just turn the Select knob and it will play a short excerpt of each sound (default time 250 ms, but you can change that with the Preview knob).
     
    Last edited: Aug 10, 2017
  12. Coorec

    Coorec NI Product Owner

    Messages:
    337
    Awesome, going to test it tonight. Will report back :)
     
  13. Coorec

    Coorec NI Product Owner

    Messages:
    337
    World class, exactly what i wanted to achieve and it worked on first try.

    Hats off, i hope i can return the favour one day. Many thanks!!!