Expansion Tutorial
-
@Christoph-Hart I'll buy you lot's of Dinners in a luxury restaurant
Thank you! very cool stuff, as always...
-
if I understood correctly, the .hxi file will group together all the files usually found in the extension? to put it simply, the extension will no longer look like a "mini project"?
-
Yes, the mini project is just for development, at the end you get one file with a customizable amount of encryption (if you don't care about it, then pick 1234 as blowfish key).
-
@Christoph-Hart Will that 1234 key work with any project that can load an extension? Without changes? If that's what I want to be the case.
-
@Christoph-Hart great, when will this be possible?
-
@yall said in Expansion Tutorial:
@Christoph-Hart great, when will this be possible?
It already is, that's what Christoph's announcement was for :)
-
@d-healey do you have to recompile hise with the latest scriptnode branch?
-
Does this new expansion encryption includes simple serial protection stuff?
Since Hise creates a json dump file while serial number validation, can we use this encryption method here too?
-
@Christoph-Hart
i just tried, so indeed the encryption works, but one thing i don't understand, the .hxi file created is only to "protect" the expansion? how to turn the "mini expansions project" into a single file? I must have missed something ^^ -
Lol the hxi file is the mini project. Everything is in there (except for the samples obviously)
-
@Christoph-Hart it also includes the sample map folder?
so if I understand correctly, the end user either simply has in Appdata .... / expansionsName, a Sample folder and the .hxi file?
I ask because in fact, my hxi file has a size of 30kb it seemed really very small to me -
Thats the power of zstd...
-
And the correct path is APPDATA/Expansions/ExpansionName/info.hxi
-
@Steve-Mohican said in Expansion Tutorial:
Does this new expansion encryption includes simple serial protection stuff?
Since Hise creates a json dump file while serial number validation, can we use this encryption method here too?
No the serial key restriction is totally unrelated to expansions
-
@Christoph-Hart ok great. I get it. in the expansionName folder there must be only the hxi file and the sample folder ok? and if i want to modify my expansion i have to remove the hxi because the expansion becomes unreadable in the sampler is that correct?
-
Yes. While you can still load the samplemaps that are embedded in the .hxi file using scripting calls, they will not show up in the sampler's dropdown anymore (because you would be operating on the embedded data and not the actual .xml files which would be terrible annoying to realize later)...
There's also a quick feature that removes the hxi / hxip files and bumps the "expansion level" back by one using this button on the expansion property popup:
-
@Christoph-Hart ok great. I get it. in the expansionName folder there must be only the hxi file and the sample folder ok? and if i want to modify my expansion i have to remove the hxi because the expansion becomes unreadable in the sampler is that correct?
-
Yes. While you can still load the samplemaps that are embedded in the .hxi file using scripting calls, they will not show up in the sampler's dropdown anymore (because you would be operating on the embedded data and not the actual .xml files which would be terrible annoying to realize later)...
There's also a quick feature that removes the hxi / hxip files and bumps the "expansion level" back by one using this button on the expansion property popup:
-
This post is deleted! -
@yall I see that you've pasted your question again and then deleted it :)
Anyways I've just pushed a few changes to the system that smooth out some edges:
- you don't have to call
ExpansionHandler.setEncryptionKey()
anymore. I don't remember exactly why I added it in the first place but I think that it was before I used the project-wide Encryption Key setting in the project settings and I can't think of a scenario where this call isn't 100% redudant. - you can now specify the target directory when installing an expansion with
ExpansionHandler.installFromPackage()
. You also getExpansion.setSampleFolder()
andExpansion.getSampleFolder()
so you can implement a way that the user can change the folders afterwards. - I backrolled the change that David added to
FileSystem.browse
. Using 5 parameters and remembering their correct order is a bit too much, so I used the old signature forbrowse
and added abrowseForDirectory()
function to add the other functionality.
- you don't have to call