Forum
    • Categories
    • Register
    • Login

    Saving MIDI CC assignments in user presets?

    Scheduled Pinned Locked Moved Scripting
    6 Posts 2 Posters 21 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dannytaurusD
      dannytaurus
      last edited by dannytaurus

      HISE saves MIDI CC assignments in the .preset when a user saves.

      This seems contrary to a lot of other synths I've used.

      Feels like normally, I would set up some MIDI CCs on various knobs, then browse through presets and those CC assignments would stick across preset loads.

      This allows me to [1] set up a consistent 'performance' system, like mod wheel to filter cutoff, knob1 to filter res, etc, for all presets and [2] play through presets and have any existing CC automation produce predictable results.

      HISE saving MIDI CC assignments to the preset data means that, after setting up a bunch of CC assignments for one preset, when I load a new preset they will either [1] all disappear if the new preset has no saved assignments, or [2] change to different assignments.

      If anything, I'd prefer to have MIDI CC assignments saved globally, separate from the preset data, so they persist across not only presets but instances of the plugin.

      What do you all do about this?

      Meat Beats: https://meatbeats.com
      Klippr Video: https://klippr.video

      David HealeyD 1 Reply Last reply Reply Quote 0
      • David HealeyD
        David Healey @dannytaurus
        last edited by

        @dannytaurus This is a very good point and something I'm going to start adding to my instruments, don't know why I didn't think about it before.

        I'm pretty sure if can be achieved using the MidiAutomationHandler and storing the automation settings to a file which you load back in on init.

        https://docs.hise.audio/scripting/scripting-api/midiautomationhandler/index.html

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - HISE tutorials
        My Patreon - More HISE tutorials

        dannytaurusD 1 Reply Last reply Reply Quote 1
        • dannytaurusD
          dannytaurus @David Healey
          last edited by dannytaurus

          @David-Healey Scripting the saving and loading of MIDI CC assignments to a separate file is one step, but you also have to fight the saving and loading of the data in the presets.

          Claude came up with a (hacky) way to script around it but in the end I felt like a PR with a new preprocessor was better.

          https://github.com/christophhart/HISE/pull/995

          (I know there are already too many preprocessors, but this is mainly just for me, only upstreaming in case anyone else wants it.)

          So now I just turn this off (HISE_MIDI_AUTOMATION_IN_USER_PRESETS=0) and then I don't have to fight anything in script.

          Meat Beats: https://meatbeats.com
          Klippr Video: https://klippr.video

          David HealeyD 1 Reply Last reply Reply Quote 0
          • David HealeyD
            David Healey @dannytaurus
            last edited by

            @dannytaurus load them in the post load callback

            Free HISE Bootcamp Full Course for beginners.
            YouTube Channel - HISE tutorials
            My Patreon - More HISE tutorials

            dannytaurusD 1 Reply Last reply Reply Quote 0
            • dannytaurusD
              dannytaurus @David Healey
              last edited by

              @David-Healey Unless you prevent saving/loading the CC data to presets, you're always doing more than you should have to.

              Without the preprocessor:

              1. Launch the plugin - load the CC mappings from separate file
              2. Load a preset - in post load callback you need to reassign CC mappings because they're overwritten by the load
              3. Assign some CC mappings - automatically save the new mappings to separate file here
              4. Save the preset - the CC mappings save with the preset, so maybe do a post save callback to remove the data
              5. Load the next preset, etc.

              With the preprocessor:

              1. Launch the plugin - load the CC mappings from separate file
              2. Load a preset - nothing to do
              3. Assign some CC mappings - automatically save the new mappings to separate file here
              4. Save the preset - nothing to do
              5. Load the next preset, etc.

              Meat Beats: https://meatbeats.com
              Klippr Video: https://klippr.video

              David HealeyD 1 Reply Last reply Reply Quote 0
              • David HealeyD
                David Healey @dannytaurus
                last edited by David Healey

                @dannytaurus said in Saving MIDI CC assignments in user presets?:

                Save the preset - the CC mappings save with the preset, so maybe do a post save callback to remove the data

                You don't need to do anything here because you're already loading the CCs from the file.

                So your preprocessor removes step 2 the rest is the same.

                I think AppConfig.h is autogenerated when you save the juicer file so probably shouldn't be tracked by git - I could be wrong.

                Free HISE Bootcamp Full Course for beginners.
                YouTube Channel - HISE tutorials
                My Patreon - More HISE tutorials

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                13

                Online

                2.4k

                Users

                13.8k

                Topics

                120.5k

                Posts