Understanding HISE
-
(sorry for posting here, the forum seems broken. It is impossible to post to the General Questions category: "Unknown Category", plus this was actually sent to the category Documentation)
I'm looking for ways to build an extensible sound module for use in connection with a composing software that currently generates MIDI only.
Would it be possible to build a multi-timbral 'rompler' sort of plug-in with HISE that would allow on any of its 16 channels to receive a program change message and select/load one of several (previously built with HISE) patches from disk to play on that channel? Not unlike DLSMusicDevice on the Mac, or Microsoft Wavetable GS Synth on PC, only with much better sound quality and variety?
If so, it would be fantastic to start right away :-)
-
Yes, theoretically it should be possible. Do you want to host HISE as a plugin in your software? You can also create a standalone app with HISE (and perhaps you might also embed it directly into your software).
You can have a patch with 16 samplers and hotswap different sample maps with different sounds. Program Change messages are currently not supported, but it shouldn't be too hard to add these.
And sorry about the forum, the categories are off by one and I really don't have the time and patience to dig around in the Node.js code...
-
Thanks for your quick reply. Yes, I want to make a plug-in that runs in the host I already have (also JUCE based). Swapping sample maps only wouldn't suffice. Rather swapping full instrument definitions that include a sample map, ADSR, filter, mods, panning, etc.
The forum does also not send emails (or they don't arrive). You'll need a domain and legitimate SPF, DKIM, PTR entries in the DNS. Or use a 3rd party SMTP service. Communication is a top priority for any project, if you want it to thrive.
-
Yeah, I had to get another server for the forum, but I'll migrate back to my original hoster and resolve this DNS mess soon.
I thought emails worked (I am using a Gmail account for the mails), but I'll investigate.
Everything you mentioned could be also changed via scripts. I would recommend a JSON file with all instrument definitions which contains the parameters for all envelopes, sample maps / filters, etc.
Another possibility is to embed everything into your app. In this case you can actually swap out the whole preset on the C++ side by calling
MainController::loadPreset()
.