HISE Logo Forum
    • Categories
    • Register
    • Login

    Multiple instruments, single project or multiple projects?

    Scheduled Pinned Locked Moved General Questions
    94 Posts 3 Posters 22.2k 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.
    • d.healeyD
      d.healey
      last edited by d.healey

      This looks awesome! well done. The drop in RAM usage will be very welcome but what is the effect on CPU?

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

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

        Well if you can decompress 8000 voices in realtime the CPU usage for each voice is 0,0125%

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

          Is the compression tool part of HISE or is it a separate app?

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

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

            It will be of course embedded into HISE but I am using the seperate tool for testing & tuning the algorithms until it gets to a stable state.

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

              Alright, the crashs should be fixed (it was the same reason that caused the REAPER crash so it's two for one :)

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

                Brilliant, I'll give it a try later today

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

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

                  Good news! The crash is fixed, not so good news, found a new bug :)

                  When using the last snippet I posted:

                  HiseSnippet 1184.3ocsV8+SabCE2GvM0KaTsNs+.73mBprzj1xV0XnUR.1xJDh5QQUpppy4NGN2dwNxmu.YH9mX+kt+C1d19tbWBWYDjVDBc980O989X6WeoHfljHjHmu7zoioHmux0eJWE0Ihv3nt6ibdn6wjDEUhshZOcLIIgFhbbV8W0Bb7VCY982+RaRLgGPKDgPmIXAziXiXpBo+wKeEKN9PRH8T1nRV+7W1MPv6HhEo.dV0sIZLI3Sjyo8HZyVwEMgQuHA4zz8YOsg7SsF7m603y9axYGz3iu3T8mnfTojxUmAtibbc9G3mi6AgLkP5qHJJDy0ZKBm5GItfaS8YrD1fXpdQKjOfIq3CEwg5Mu9aTmHVbX+7RXBBhR+hB5p1B525dLKjMSdQg8qMJvEdTtz5rxsAuV2S34TBdqYg2ib8CjrwpBMZr8MYR+LnypDsxe459jmzsWmidy9G3Wql96tmVqifqfpciDp52nryiT02t4l6nUi6Hov9ASvIvdC5r3wDNMdKbDKjhYpsvDdHNgLQu.y3XUDXhjBQpFPMRT3IDYtu80th2EmmNRXnQT8MJavFagaB+A4urTM1puwDaQDLYHINgVoMZvzk22fAvPkLkt3d47Xw.RLVL3iz.E.YhBeAPvwQPyvrClPhSoI3gBoYo.9GrKL0vjF0xbOMgJsoYehh.6qqt1lGepx3Vlc4UNRBjkvyoJa3mEcnTFR41BaCs+cGMVHUDt5m.8rDK13BENHVvoVDYf9V3AoJbRDQp2UR5PJbnIf9c2npblNg0mGv5hRQKZfhejfDNe2ocpRI302vnYVEs01P+oktAMm69ZRPktazLy8bmK4MOcjg5atHKABh4iFPop2bZpOWNClyk28dHj5RZcFrp4NXF9mWHvfrG+3MqcUMuRt9N16KmvByaOsKOjdYcFjzq080CeSuNm18jdlyMc16niZuWmW4WaXJOPwDbrf2SnnmvqaRA3yhZFNrJU5BlTDGSkUoUegq7VbqNrEGPkaY4TF6XCwYRw6t6bm81rlGn2CnXulNNlDPKSSyNMbASEYoX.UanTLxrPScxOW64cCluI463UyCJTKj+LhUVpuSMHOioKzjZ.4C1JTy8qKPkA0PSxCxtmmMyEjdMUqZXook2CXciTCts.ToWpO.aQ5+EvtFt6e9WNpc2d4HvdPqjgBdWNScxX5r0VBYtjlnYDwxhJHfkkZHdUXVgna9bEJ6vO7v0pYlCeoLOasd9yVZhHhEpmSoL2DY3PHmG3969mz6pqsAqbDdXVDrWqXBw5tktZJOBdeQ9rL2sPT55oJBwMe.FFCPDlFSTyOafd1pLEvIz4d8sqtpjvTSKO60RLvPyJGXnUUcf6HbejaelJHpZ7tRE3EZo+ei2rwuV28fgCgahJ.6ZtG9166rVKATdsHUw3meLQIYWBScBu83CC1FPAjvAFZhdRzUzrJ65l505JiOkG1LeL0LkszqcxT1JWIZDIPJ9PfkVpGv6AFI.l3lQl8fY2g03V4LQMtGASc9gf.cg36AjWsGOco83YKsGOeo8X6k1ieXo83GWZOdws3gdD+8RUhQ1iEHz+B3sqkq.
                  

                  If I load this from clipboard and then add a container to the Master container, and then try and add a sampler (or any other sub-module) to the new container it doesn't do anything. If I then delete the container and click the save button on my script I get an error that the container I deleted can't be found.

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

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

                    Yes this is because scripts get recompiled if you add a sound generator, which interferes with the possibility of adding sound generators via scripting.

                    This is a rather annoying design flaw and I have to think about a clever solution (perhaps just removing the possibility to restore containers might be enough).

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

                      Would that affect the contents of containers too?

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

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

                        If you restore a container, it will delete every sound generator in it and add the new ones which triggers a global script recompile (I am not 100% sure why it does that, but I think I added this for a good reason).

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

                          Ah I see, well taking it out shouldn't really be an issue then because it's really the contents of the container that needs restoring, although I can think of a few edge cases ;)

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

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

                            I just noticed the "save current state as new user preset" option, when did this appear? Does it also save the state of samplers and sample maps?

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

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

                              It simply stores every control on the main interface (so basically it's the same as using the preset browser to save a new preset). So you need a control that restores the samplers and sample maps

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

                                Aha ok, same as before then :)

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

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

                                  I'm working with the storeAllControlsAsPreset and restoreAllControlsFromPreset functions but I'm getting a crash as soon as I try to restore. Any ideas?

                                  /**
                                   * Title: Preset Hander v1.0.0.js
                                   * Author: David Healey
                                   * Date: 02/07/2017
                                   * Modified: 03/07/2017
                                   * License: GPLv3 - https://www.gnu.org/licenses/gpl-3.0.en.html
                                  */
                                  
                                  //INIT
                                  const var save = Content.addButton("Save", 0, 0);
                                  const var load = Content.addButton("Load", 150, 0);
                                  
                                  //FUNCTIONS
                                  function savePreset()
                                  {
                                  	Content.storeAllControlsAsPreset("test");
                                  }
                                  
                                  function loadPreset()
                                  {
                                  	Content.restoreAllControlsFromPreset("test");
                                  }
                                  
                                  //CALLBACKS
                                  function onNoteOn()
                                  {
                                  }
                                  
                                  function onNoteOff()
                                  {
                                  }
                                  
                                  function onController()
                                  {
                                  }
                                  
                                  function onTimer()
                                  {
                                  }
                                  
                                  function onControl(number, value)
                                  {
                                  	switch(number)
                                  	{
                                  		case save:
                                  			number.setValue(0);
                                  			savePreset();
                                  		break;
                                  
                                  		case load:
                                  			number.setValue(0);
                                  			loadPreset();
                                  		break;
                                  	}
                                  }
                                  

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

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

                                    You are storing the widget that calls the restore function in the preset. This causes an endless loop because it will load the preset on the onControl callback, fire the onControl callback, load the preset on the onControl callback, fire the onControl callback, load the preset on the onControl callback, fire the onControl callback, load the preset on the onControl callback, fire the onControl callback, load the preset on the onControl callback, fire the onControl callback, load the preset on the onControl callback, fire the onControl callback, load the preset on the onControl callback, fire the onControl callback, load the preset on the onControl callback :)
                                    This can be solved by setting saveInPreset to false for both buttons. (I thought about adding a safety measure that prevents this loop, but there was no easy solution and this is the kind of error that you'll only do once.

                                    Also you need to give it a file extension (the HISE default extension for user presets is .preset) - and the number widget is not defined, which causes a script error.

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

                                      Thanks Christoph, that makes total sense - you are right, I will not make that mistake twice :p

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

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

                                        After I saved a user preset with Content.storeAllControlsAsPreset("Bank 1/Category 1/test.preset"); I then click to load it from the preset browser and I get the prompt "This User Preset Was Built With a Previous Version. Do you want to update it?" - am I missing a setting somewhere?

                                        Also is there a way to get the ID of the current script (self)? I want to save the state of all scripts but I can't reference the script I'm in, my current solution is to ignore midi processors with a particular ID but I have to hard code that ID to be the same as the MIDI processor and I would like it to be more generic if it could just know its own ID.

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

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

                                          Can you post the .preset file, then I'll take a look.

                                          I need to rewrite the preset system a bit to make sure you can store multiple scripts - I added this feature long time ago but it never got used so it's a bit abandoned. With the new layout stuff and the possibility to include script interfaces within other script interfaces, it might become interesting again.

                                          But actually you don't need to retrieve the ID of the script, the preset is a XML file that has a child element for each script that gets automatically resolved using the ID.

                                          Oh, and Happy Birthday!

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

                                            Thank you!

                                            I've uploaded the preset file here - http://www.filedropper.com/preset10

                                            I've almost got a fully working factory preset saving system that saves all modules, effects, synths, and processors :)

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

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

                                            34

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            102.1k

                                            Posts