Forum
    • Categories
    • Register
    • Login

    Saving MIDI CC assignments in user presets?

    Scheduled Pinned Locked Moved Scripting
    61 Posts 4 Posters 5.6k 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 @David Healey
      last edited by

      @David-Healey Yeah, that's why I wanted a solution that didn't involve any plugin/preset callbacks at all.

      Just wanted zero mappings saved in the presets, and a nice clean MidiMappings.js save/load script.

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

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

        @dannytaurus I decided to see what Claude would do with the problem. It's a massive commit so I'm not going to rely on it, but I'll leave it here as it might be a starting point for Christoph - or who knows, maybe it's perfect!

        https://github.com/davidhealey/HISE/commit/adc0826307163d1e8781d8b024a2090233dfe0c9

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

        Christoph HartC 1 Reply Last reply Reply Quote 1
        • Christoph HartC
          Christoph Hart @David Healey
          last edited by

          Worked on this today:

          https://github.com/christophhart/HISE/commit/528ccf712722db6bb213470e40a0b4cb47f9775b

          I didn't use any preprocessors but a dynamic API call - there's no need for this to be a compile-time setting.

          You can define for each of macros, midi & mpe assignments whether they should be stored externally, in the user preset or in the plugin state.

          Docs:

          https://github.com/christoph-hart/hise_api_generator/blob/271ca2d159ce26e9077ec7638b1f41ea68ba2f3d/enrichment/phase4/auto/UserPresetHandler/setStateManagerProperties.md

          David HealeyD dannytaurusD 3 Replies Last reply Reply Quote 4
          • David HealeyD
            David Healey @Christoph Hart
            last edited by

            @Christoph-Hart Oh nice, I'm going to dig into it this evening and try it out. Thanks!

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

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

              @Christoph-Hart For expansions will it use one external xml file per expansion?

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

              Christoph HartC 1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart @David Healey
                last edited by

                @David-Healey you can specify the file in the onInit callback so for rhapsody it should work if the developer keeps it tidy

                David HealeyD 1 Reply Last reply Reply Quote 1
                • David HealeyD
                  David Healey @Christoph Hart
                  last edited by

                  @Christoph-Hart This system seems to work very well, haven't thoroughly tested it yet but in the standalone version of Rhapsody it's working as expected.

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

                  1 Reply Last reply Reply Quote 0
                  • dannytaurusD
                    dannytaurus @Christoph Hart
                    last edited by dannytaurus

                    @Christoph-Hart Works great here! 👏

                    I'm only using it with the PluginState rather than External, which I think you're doing @David-Healey ?

                    SubStates: {
                        MidiAutomation: "PluginState"
                    }
                    

                    But it works great with all my scenarios.

                    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 Yeah this is what I'm doing

                      	const automationDataFile = Expansions.getAppDataFolder().getChildFile("automation.xml");
                      	const automationDefaults = Engine.createMidiAutomationHandler().getAutomationDataObject(); // Pulls the defaults from the project on first run
                      
                      	const uph = Engine.createUserPresetHandler();
                      	
                      	uph.setStateManagerProperties({
                      	    SubStates: {
                      	        MidiAutomation: "External",
                      	        MPEData: "External",
                      	        macro_controls: "External"
                      	    },
                      	    ExternalFileDefault: {
                      	        MidiAutomation: automationDefaults
                      	    },
                      	    ExternalFile: automationDataFile.toString(automationDataFile.FullPath)
                      	});
                      

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

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

                        I found when unloading a Full Instrument Expansion the automation xml was getting wiped. Made a little PR to fix it.

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

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

                        22

                        Online

                        2.4k

                        Users

                        13.9k

                        Topics

                        120.8k

                        Posts