HISE Logo Forum
    • Categories
    • Register
    • Login

    3 Quick Questions about Expansions!

    Scheduled Pinned Locked Moved General Questions
    84 Posts 6 Posters 5.4k 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.
    • LindonL
      Lindon @d.healey
      last edited by

      @d-healey said in 3 Quick Questions about Expansions!:

      @Lindon https://forum.hise.audio/topic/3959/3-quick-questions-about-expansions/28?_=1617874170786

      err that points me further up this thread at a post that says its not working...

      HISE Development for hire.
      www.channelrobot.com

      d.healeyD 1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey @Lindon
        last edited by

        @Lindon Yup, didn't do what I thought it did. Scroll up until you find my post with a link to a demo project, wasn't that far back.

        @Christoph-Hart We need a way to accurately link to other posts in a thread, clicking the timestamp appears not to work.

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        LindonL 1 Reply Last reply Reply Quote 1
        • LindonL
          Lindon @d.healey
          last edited by

          @d-healey said in 3 Quick Questions about Expansions!:

          @Lindon Yup, didn't do what I thought it did. Scroll up until you find my post with a link to a demo project, wasn't that far back.

          OK thanks.

          HISE Development for hire.
          www.channelrobot.com

          1 Reply Last reply Reply Quote 0
          • ?
            A Former User @Lindon
            last edited by

            @Lindon Here's where I'm at so far, note that it's still very much a WIP (loaded expansions aren't persistent in a DAW yet, for example)

            /*Basic Player plugin with on-the-fly sample-loading and image-changing + hiding of GUI elements.
            
            I've also hidden the init sample locate dialog with:
            
            HISE_SAMPLE_DIALOG_SHOW_INSTALL_BUTTON=0
            HISE_SAMPLE_DIALOG_SHOW_LOCATE_BUTTON=0
            
            In the Extra Definitions [Your OS] Preferences
            */
            const var expHandler = Engine.createExpansionHandler();
            const var SamplerRR = Synth.getChildSynth("SamplerRR");
            var currentExpansion = "";
            
            expHandler.setAllowedExpansionTypes([expHandler.FileBased, 
                                                 expHandler.Intermediate, 
                                                 expHandler.Encrypted]);
            
            var expansionDirectory = FileSystem.getFolder(FileSystem.Samples); //Changes using the Custom Setting FloatingTile
            reg hr;
            
            const var Image_BG = Content.getComponent("Image_BG");
            
            //Set Sample Folder Button (Just shows a panel, which contains the CustomSettings FloatingTile)
            
            inline function onButton1Control(component, value)
            {
                Panel_ChangeSampleFolder.showControl(value);
            };
            
            Content.getComponent("Button1").setControlCallback(onButton1Control);
            
            //Install Library Button
            
            inline function onButton2Control(component, value)
            {
                if (value)
                {    
                    FileSystem.browse(expansionDirectory, false, "", function(result) 
                {
                    hr = result;
                    expHandler.installExpansionFromPackage(hr,FileSystem.getFolder(FileSystem.Samples));
                    expHandler.refreshExpansions(); 
                });
                };
            };
            
            Content.getComponent("Button2").setControlCallback(onButton2Control);
            
            //Library Select (Like Kontakt's Browser)
            
            //Bloom
            
            inline function onExpansions_ButtonBloomControl(component, value)
            {
                Engine.setCurrentExpansion("Bloom");
                currentExpansion = "Bloom"; //This is used in other functions elsewhere.
                //Put Stuff Under This
            
                //Setting Background Image
                backgroundImage = ("{EXP::Bloom}bg_bloom.png");
                Image_BG.setAlpha(1);
                Image_BG.set("fileName", backgroundImage);  
            
                //Hiding/Showing UI Elements for Specific Libraries
                ComboBox_Atlas.set("visible", 0);
            
                //Setting up different Samplers
                SamplerRR.setAttribute(12, 0);
                Sampler_NoRR.setAttribute(12, 1);    
                SamplerRR.setBypassed(1-value);
                Sampler_NoRR.setBypassed(value);
            
                //Loading the sample map into the right sampler    
                SamplerRR.asSampler().loadSampleMap("{EXP::Bloom}Bloom_SampleMap");
            };
            
            LindonL 1 Reply Last reply Reply Quote 1
            • LindonL
              Lindon @A Former User
              last edited by

              @iamlamprey - thanks - looks not "too" complex...

              HISE Development for hire.
              www.channelrobot.com

              1 Reply Last reply Reply Quote 0
              • ?
                A Former User
                last edited by A Former User

                How would I make the loaded expansion re-load on DAW close/reopen?

                Making currentExpansion a const var obviously breaks the button functions that change it, and it doesn't default to a string unless I give it an initial value of "", which means calling that won't load the right expansion..

                d.healeyD 1 Reply Last reply Reply Quote 0
                • d.healeyD
                  d.healey @A Former User
                  last edited by

                  @iamlamprey Expansions are automatically loaded when one of the expansion's presets is used, so as long as the DAW is saved and closed after a preset has been selected it "should" be there when you reopen the DAW.

                  Libre Wave - Freedom respecting instruments and effects
                  My Patreon - HISE tutorials
                  YouTube Channel - Public HISE tutorials

                  ? 1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User @d.healey
                    last edited by

                    @d-healey Guess it's time to add a preset system then...

                    1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User
                      last edited by

                      Unrelated but has anyone else had the Custom Keyboard FloatingTile randomly play a high F and stick when clicking GUI elements?

                      I thought was my old midi controller but it only happens when I click something on the GUI, both in HISE and in DAW.

                      Super weird 😧

                      1 Reply Last reply Reply Quote 0
                      • ?
                        A Former User
                        last edited by

                        I still need help regarding making expansions persistent and loading on DAW open/close. 😧

                        favicon

                        (streamable.com)

                        I can install the libraries and load them manually just fine. But on DAW save/load it defaults back to no expansion HOWEVER if I hit "Open Preset Folder" in the preset browser, it directs me to the right expansion folder.

                        So somehow the currentExpansion is saved, but I can't figure out how to restore it.

                        I've tried making init presets and using

                        Engine.loadNextUserPreset(1);
                        

                        in both button callbacks and onInit, without any success.

                        //init stuff:
                        
                        include("CustomExpansionLoading.js");
                        
                        const var expHandler = Engine.createExpansionHandler();
                        var currentExpansion;
                        
                        //Load expansions
                        
                        switch (currentExpansion)
                        {
                            case "Cloudburst":
                                loadCloudburst();
                                break;
                                
                            case "Atlas":
                                loadAtlas();
                                break;
                                
                            case "Blackout":
                                loadBlackout();
                                break;
                                
                            case "Bloom":
                                loadBloom();
                                break;
                            
                            default:
                        };
                        
                        inline function loadBloom()
                        {
                                //Initialize Expansion    
                            Engine.setCurrentExpansion("Bloom");
                            currentExpansion = "Bloom";
                                //Put Stuff Under This
                                //Setting BG Image        
                            backgroundImage = ("{EXP::Bloom}bg_bloom.png");
                            Image_BG.setAlpha(1);
                            Image_BG.set("fileName", backgroundImage); 
                                //Setting up Samplers    
                            SamplerRR.setAttribute(12, 0);
                            Sampler_NoRR.setAttribute(12, 1);
                            Sampler_Loops.setAttribute(12, 1);
                            SamplerRR.setBypassed(0);
                            Sampler_NoRR.setBypassed(1);  
                            Sampler_Loops.setBypassed(1);
                            SamplerRR.asSampler().loadSampleMap("{EXP::Bloom}Bloom_SampleMap");   
                                //Setting Key Colours    
                            colourKeysReset();
                            colourKeysBloom();
                                //Hiding othe GUI Elements    
                            ComboBox_Atlas.set("visible", 0);    
                            Button_LoopSpeedHalf.showControl(0);
                            Button_LoopSpeedDouble.showControl(0);
                            Label_LoopSpeedHalf.showControl(0);
                            Label_LoopSpeedDouble.showControl(0);     
                        };
                        
                        //Button to switch to this expansion.
                        inline function onExpansions_ButtonBloomControl(component, value)
                        {
                            if (value)
                            {
                                loadBloom();
                            }
                        };
                        

                        A lot of it is dependant on the variable currentExpansion, and I think somehow it isn't saving that right.

                        I've probably massively overcomplicated this...

                        1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User
                          last edited by

                          I've just realized there's a

                          Engine.setCurrentExpansion and a expHandler.setCurrentExpansion.

                          This might be the cause of my woes...

                          1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User
                            last edited by

                            OKAY got it working (I think), I didn't know about the expHandler.setExpansionCallBack() function and was trying to do things manually this whole time 😞

                            1 Reply Last reply Reply Quote 0
                            • A
                              arminh @A Former User
                              last edited by arminh

                              @iamlamprey hey, how did you get image covers from every expansion?

                              d.healeyD 1 Reply Last reply Reply Quote 0
                              • d.healeyD
                                d.healey @arminh
                                last edited by

                                @arminh Each expansion has an images folder, put your image in there.

                                Libre Wave - Freedom respecting instruments and effects
                                My Patreon - HISE tutorials
                                YouTube Channel - Public HISE tutorials

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  arminh @d.healey
                                  last edited by

                                  @d-healey i made it, but even if i have image in Images folder i have error

                                  Interface:! Image {EXP::Factory}exp_cover.png not found
                                  
                                  d.healeyD 1 Reply Last reply Reply Quote 0
                                  • d.healeyD
                                    d.healey @arminh
                                    last edited by

                                    @arminh I would assume this is necessary

                                    195a4bde-17b4-4440-ace3-9fa100630538-image.png

                                    Libre Wave - Freedom respecting instruments and effects
                                    My Patreon - HISE tutorials
                                    YouTube Channel - Public HISE tutorials

                                    A 1 Reply Last reply Reply Quote 0
                                    • A
                                      arminh @d.healey
                                      last edited by

                                      @d-healey oh i tried create this by painroutines but as i can see we can't just put image path?

                                      Here's example

                                      g.drawImage(expansionsArr[i].cover, [50,50,50,50], 0, 0);
                                      
                                      ? 1 Reply Last reply Reply Quote 0
                                      • d.healeyD
                                        d.healey
                                        last edited by

                                        You need to load the image into the panel first with the loadImage command.

                                        Libre Wave - Freedom respecting instruments and effects
                                        My Patreon - HISE tutorials
                                        YouTube Channel - Public HISE tutorials

                                        1 Reply Last reply Reply Quote 0
                                        • ?
                                          A Former User @arminh
                                          last edited by

                                          @arminh

                                          var backgroundImage = "";
                                          const var Image_BG = Content.getComponent("Image_BG");
                                          
                                          inline function loadAtlas()
                                          {
                                                  //Setting BG Image       
                                              backgroundImage = ("{EXP::Atlas}bg_atlas.png");
                                              Image_BG.setAlpha(1);
                                              Image_BG.set("fileName", backgroundImage);
                                          }
                                          

                                          So the "Image_BG" is an Image component, and we're just setting the filename of it to whichever expansion is loaded. You probably should do it with a panel but I set this up before I learned panels existed :)

                                          A 1 Reply Last reply Reply Quote 1
                                          • A
                                            arminh @A Former User
                                            last edited by

                                            @iamlamprey Tahnks so much, i figured it out :)

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

                                            9

                                            Online

                                            1.7k

                                            Users

                                            11.9k

                                            Topics

                                            103.5k

                                            Posts