Expansions and executable HiseScript in AdditionalSourceCode folder
-
So I have a project that wants to act like a player, allowing the end user to load different "instruments". These will have their own capabilities, e.g. tremolo, vibrato, envelope etc. as well as sound sets(samples and maps)
So theres a bunch of issues with this, not least that there needs to be a suitable set of UI controls available that these instruments can pick-and-choose from to display and use, in different ways.
So first question... How does the AdditionalSourceCode folder in an expansion work, or more importantly, how do I get it to load some scripts that will use the available ui widgets in the way required by each "instrument" ?
-
@Lindon you cannot add executable hise script in standard expansions - these are limited to static resources only.
you have two options:
- implement all logic that is required by all expansions in the base project, then just hook into it. the additional data can store JSON - this would be the config setting for which expansion needs which logic.
- If that isn't enough flexibility you can always use the Full Instrument Expansion route - this is basically what Rhapsody is doing. You get a completely dynamic module tree / script interface, basically Kontakt Player tailored for Lindon and every expansion is a complete HISE project.
-
@Christoph-Hart ok well I look like Im going down path 2 then...
can you point me at any documentation about how to get this done?
..oh and the customer wants to have a left and right panel that remains across all "instruments/expansions" is that possible with full Instrument Expansion?
-
@Lindon said in Expansions and executable HiseScript in AdditionalSourceCode folder:
..oh and the customer wants to have a left and right panel that remains across all "instruments/expansions" is that possible with full Instrument Expansion?
Yes - I opened some PRs recently with a bunch of expansion additions for the preset browser that might be useful to you, including a built in installer/uninstaller. None of them have been merged yet so things might change.
@Lindon said in Expansions and executable HiseScript in AdditionalSourceCode folder:
can you point me at any documentation about how to get this done?
Make your base project (this is your player). Add some method to it for installing expansions and loading expansions. I have a video about building an installer, and loading them could be as simple as adding a preset browser. In project preferences set expansion type to Full, add an encryption key - this key will be used by all expansions you create. Export this project as a plugin/standalone app, this gets sent to the end user.
To create an expansion make a new HISE project. Leave the expansion type set to disabled, add the same encryption key as your base project. Once you're happy with the project export it as a Full Instrument expansion, this will create an info.hxi file. Then export your samples as a hr1 archive and in the exporter window you can select the info.hxi file.
You ship the hr1 (hr2, hr3, etc.) file to the end user and they install it in the base project.
https://docs.hise.audio/working-with-hise/project-management/expansions/index.html#features