Full Instrument Expansions - how, what where....
-
@David-Healey said in Full Instrument Expansions - how, what where....:
@Lindon said in Full Instrument Expansions - how, what where....:
Is there a "how to" anywhere that walks thru the steps to build a full instrument expansion and get it to load in a "player"?
I think I covered this in the Expansion Installer video I posted on Patreon in February.
Thanks yes you did, but it makes some assumptions, mostly that I want to use this expansion handler way of installing the expansions, and I dont - I have a fair bit of meta data to install as well so I want to use the powerful installer I've already written..so basically Im asking : what needs to go where in a finished completely installed Full Instrument Expansion?
part of this is clearly the (non standard) way I work with file based expansions, in Im installing them in the finished plugin myself...
So to be clear:
I have an installer system that will put (I think) any file anywhere I want it....
so what does an installed Full Instrument Expansion look like? ..and if I copy all this stuff in myself where does this Full Instrument expansion look for the samples?@Lindon said in Full Instrument Expansions - how, what where....:
I want to have tone of Full expansions, surely these dont all get called info.hxi - unless they are placed in some sub-folder structure in the player project (like say the Expansions folder)???
Yes all are info.hxi in there own subfolders.
-- so I think this leads me back to the question above....
-
@Lindon In the project's app data folder there should be an Expansions folder. Inside there create a sub folder for your expansion.
In that sub folder drop your hxi. Add a subfolder called UserPresets and another called Samples. Put your Link file in the Samples folder.
-
@David-Healey golden, as it happens I dont have any expansion presets, so do I need the UserPresets Folder?
-
@Lindon Only if you're using the preset browser and the user might make presets.
-
@David-Healey OK well there no way in the instruments to open the preset browser (yeah strange I know) so crossing that off the list.
-
Ok some progress...
My player now loads a very simple test full instrument expansion....but the expansion cannot seem to find its sample maps....so Im doing something wrong...
So how I have this set up:
In my HISE project for the Player I have an Expansions folder, in there is an expansion folder (named for the expansion)
inside the individual expansion folder I have the classic folder structure...

..as well as the info.hxi file
In the Samples folder here I have a LinkWindows file (only)
and in the SampleMaps folder I have all the xml sample maps for my expansion, but when I load my expansion using the player I get this in the sampler:

So no sample maps found...
How I set up my info.hxi file:
I loaded my expansion as its own project, with sample and sample maps set up.. and generated the hxi using the export menu...
What is it Im doing wrong?
-
@Lindon said in Full Instrument Expansions - how, what where....:
In my HISE project for the Player I have an Expansions folder, in there is an expansion folder (named for the expansion)
The expansions should be completely separate HISE projects
-
@David-Healey it is... I have a seperare expansion project...which is where the hxi is being generated - then Im copying over to the player (in the Players exapnsions sub folder structure)..
-
@Lindon Nothing goes in the player project's Expansions folder. Put your hxi, UserPresets, and Samples folder (with Link file) in the player's AppData Expansions folder.
-
@David-Healey Okay.... now nothing works from within the Players HISE project -- does this ONLY work in a compiled plugin?
-
@Lindon No it will work in HISE if you've set the player project to use Full Expansions and the encryption key matches the one used for the expansion project.
-
@David-Healey well I have and it doesnt....now nothing happens at all...so Im still doing something wrong..
-
@Lindon This is how my app data folder looks for Rhapsody, is your structure similar?

-
-
@Lindon No need for the sample maps folder, the sample maps are embedded in the hxi. How are you expecting the expansions to show up in your player HISE project?
-
@David-Healey it shows up as taking over the entire screen with a LOUD ui.....
heres what Im doing to call the expansion
reg eh = Engine.createExpansionHandler(); function instrumentMouseCallBack(event,panel) { if(event.doubleClick) { pos = InstrumentPanels.indexOf(panel); tempMouseJSON = getJSONforInstPanel(pos); //Content.getComponent("Label1").set("text", "here we load an expansion called:" + tempMouseJSON.ExpName); Console.clear(); Console.print("loading an instrument........." + tempMouseJSON.ExpName); for(e in eh.getExpansionList()) { Console.print("the name of the expansion is:" + e.getProperties().Name); } eh.setCurrentExpansion("KeyEngineTest"); } };..and now its not printing "the name of the expansion is..."
So its not finding any expansions....
-
@Lindon right now the expansions own project cant even find the sample maps in its own project structure...this is getting silly.
-
You're loading the expansion directly after that loop so the loading of the expansion probably wipes out the output, not sure.
Try putting that loop in on init right after you declare your expansion handler.
-
@Lindon said in Full Instrument Expansions - how, what where....:
right now the expansions own project cant even find the sample maps in its own project structure...this is getting silly.
Do you mean when you load it through the player project?
-
@David-Healey no - just loading the expansion project...it cant find anything, rebuilding a new test expansion project now.... called Test2
..ok thats back to working at least... now:
Building the hx1 file....
Expansion type = Full
Encryption key = TestOK creating a new folder called Test2 in the AppData folder structure of the Player
Adding a Samples folder - with the LinkWindows file in it only...
Adding an empty UserPresets folder
putting my info.hxi that I just generated in the Test2 folder...to get to this:

I load the Player project and execute this code:
reg eh = Engine.createExpansionHandler(); reg expansionList = eh.getExpansionList(); function instrumentMouseCallBack(event,panel) { //Console.print(trace(event)); if(event.doubleClick) { pos = InstrumentPanels.indexOf(panel); tempMouseJSON = getJSONforInstPanel(pos); //Content.getComponent("Label1").set("text", "here we load an expansion called:" + tempMouseJSON.ExpName); Console.print("loading an instrument........." + tempMouseJSON.ExpName); Console.clear(); for(e in expansionList) { Console.print("the name of the expansion is:" + e.getProperties().Name); } eh.setCurrentExpansion("Test2"); //Console.print(trace(eh.getExpansionList())); } };and nothing happens.......it cannot find the list of expansions in its AppData folder...
