Feature Request:Data Folder
-
OK so I think we need a way to ship json files - we have ways to open and save them, but no way(that I can see) to easily ship them - easily is the important bit here.
Kontakt does this by letting you ship the Data folder in the same structure that holds your samples and your nki
Clearly this isnt the case in HISE, so I suggest:
we have a folder called Data_<productname>_<productversion> in the project folder structure, e.g.
<CoolROMpler>
<Data_CoolROMpler_1_0>When we ask HISE to export our samples for delivery (in the .hr1 files) it looks for this folder and includes it.
When installing the samples it adds this sub-folder.
At this point the instrument knows where the samples are and the (unique)name of this sub_folder, so all we need in HISE is a version of {PROJECT_FOLDER} called {DATA_FOLDER} that looks in the project folder during development and in the deployed samples folder in production
Of course I'm all ears for a better way to do this...
-
What data do you need to add after the user has installed the plugin? If you're using expansions you can add extra stuff in the additional source code directory, I don't know if this is also possible without expansions though.
-
@d-healey If you look back thru the Channel Robot catalogue(no hang on I'll save you the bother...) We have a lot of sequencers that DONT use step ordering like fwds, backwds but in fact employ user selected patterns - we tend to ship about 50-200 patterns - so the user can select them...I'd really like to ship these NOT held as some internal array as it gets too big, unwieldy and isnt expandable (I cant easily send everyone more patterns...)
-
@Lindon I see. Couldn't you use the preset system for this? Using a hidden slider pack or a panel to store all the values.
-
@d-healey no you couldn't , the preset system would be used to set the sounds of the instrumetn, so loading a preset with the required pattern would overwrite the sounds the user had set up...
I think there are several clear and obvious use-cases for the ability to load/save and ship JSON files that contain non-preset data that is useful in an instrument sequencer patterns are just one case.
-
@Lindon Well I think the additional source code directory is the way to go, it already does what you need when using expansions so it would just be a case of implementing it for non expansions.
-
@d-healey great. Is there somewhere I can look for documentation on expansions... I cant find it in the docs anywhere.
-
@Lindon just on the forum I think, it's not an official feature yet. I don't think expansions will be useful for you use case. I'm going to test if the additional source folder already works for non expansions. I will let you know.
-
I don't think expansions will be useful for you use case.
Actually they will be. Just ship the JSON files as expansion (put them in the additional source folder of the expansion folder), then you can reference it as
{EXP:MyExpansion}MyData.json
. -
@Christoph-Hart perfect!
-
@Lindon But you can already use the JSON dump/load as well as sending json file to the user
-
@ustk Which folder do you put those JSON files in when you send them to the user?
-
@d-healey I am not in a real situation, but since the dump of the json is going to the appsupport/mycompany/myplugin/userpresets folder, I assume you can place the files over there
-
@ustk but as that folder only exists on the users drive at install - where would you put them to start with such that they ended up there? Answer: there is no-where , except now of course they can go in the Extensions folder structure
-
@Lindon Not sure I'm on the right way, but you can create the folders at install time before the plugin is launched for the first time, so you have the possibility to place the json with the installer
-
@ustk yes clearly I could do this in the installer. Im trying NOT to do that. The extensions folder is a solution though.
-
@Lindon You'll need to do a similar custom installer thing with expansions too since there is no in-built expansion installer.
-
@d-healey -- oh no! really? damn. OK @Christoph-Hart back to my original feature request then, can we have a way to ship , within the normal compile - ship process, a folder of "useful stuff" for a given product.
-
I was going to create a new topic but then saw this one so I thought I'd revive it.
I have some data files (jsons) that I don't want to include as script files and I don't want to put them in the user presets folder (because that's a weird place to put them).
These files are not part of an expansion.
Expansions have an additional source code folder where we can put arbitrary files which we can access at run-time. Could this be extended to the project's additional source code folder? Maybe a sub-folder called
data
or something. And we'd get a function likeEngine.listDataFiles()
like we have for expansions. -
@d-healey said in Feature Request:Data Folder:
I was going to create a new topic but then saw this one so I thought I'd revive it.
I have some data files (jsons) that I don't want to include as script files and I don't want to put them in the user presets folder (because that's a weird place to put them).
These files are not part of an expansion.
Expansions have an additional source code folder where we can put arbitrary files which we can access at run-time. Could this be extended to the project's additional source code folder? Maybe a sub-folder called
data
or something. And we'd get a function likeEngine.listDataFiles()
like we have for expansions.@d-healey can you not use the File API to get this?