Solved [bug] Full expansion audio files not being pooled.
-
I have an hxi with embedded audio files/impulses. It works fine in HISE but when I load the hxi into Rhapsody the files aren't showing up and can't be loaded.
Here's a test project, you can export the hxi from this.
You can download Rhapsody here - https://codeberg.org/LibreWave/Rhapsody/releases/tag/1.2.1
@Christoph-Hart This is quite a critical one for me because I am using this in a released product and would like to get this fix out to users. Thanks.
-
@d-healey What's the process for exporting hxi again? It's been a minute since I've used expansions
-
@Dan-Korneff Go to Tools > Export as Full Instrument Expansion. You can use the Rhapsody format and you'll get an lwz file that you can point the Rhapsody expansion installer to.
-
-
@Dan-Korneff Oh yeah, I didn't use the Rhapsody format, I did it manually. One sec and I'll update the zip file with a placeholder icon.
-
Done, I've updated the link in the original post.
-
@d-healey I'm still getting an icon error if I export Rhapsody format. Selecting NO for the format only seems to export info.hxi
-
@Dan-Korneff Is the Icon.png image in the images folder?
-
@d-healey nope... I just downloaded the zip file for the 3rd time. Finally has it
Checking -
@Dan-Korneff Probably some kind of caching issue.
-
@d-healey I'm getting 2 error in PresetHandler.cpp
Is this normal?
-
That might be because there isn't a Samples folder in appData. What is the value of
dir
? -
@d-healey Samples (5)
-
@Dan-Korneff Adding a Samples folder to appData should solve that.
-
I'm guessing the problem can be traced from
ScriptingApi::Engine::loadAudioFilesIntoPool()
It's like it looks in the binary (Rhapsody) but not in the expansion hxi.
-
-
@Christoph-Hart Thank you!
-
@Christoph-Hart I think I've hit another similar problem. This time I'm using the loop player. I save a preset with a file (from the expansion's samples folder) loaded but when I open the preset in the player the file isn't there.
I've been poking around in ExternalFilePool.cpp and think I'm in the right location but do you have any pointers?
-
@Christoph-Hart I've narrowed it right down now.
The problem is here - https://github.com/christophhart/HISE/blob/develop/hi_core/hi_core/ExternalFilePool.cpp#L538
There isn't any handling for the
sampleFolderWildcard
.So as a test I added this:
else if (input.startsWith(sampleFolderWildcard)) { if (auto e = mc->getExpansionHandler().getCurrentExpansion()) { input = input.replace(sampleFolderWildcard, "/media/dave/Projects/projectName/Samples/"); } }
And it works. However when I try to use the expansion wildcard instead of the absolute path it still doesn't resolve. Can you suggest the last bit of the solution?
-
Aha!
input = input.replace(sampleFolderWildcard, e->getSubDirectory(FileHandlerBase::Samples).getFullPathName() + "/");