Sofia Woodwinds on github
-
Re: Examples of full working Hise made plugins
@d-healey Hi David, first of all thank you very much for your free tutorials. I'm going to subscribe to your patreon cause I wanna try to make my first plugin for rhapsody for my personal use at the moment.
In the meantime I wanted to ask you some help to open your project available on github to check how it works and eventually use it as an example to build my first plugin.
I followed your instructions on youtube but when I open it in Hise I cannot open it properly and I get these error messages on the console:Interface:! settings.js (18): Illegal namespace ID {SW50ZXJmYWNlfHNldHRpbmdzLmpzfDcwOXwxOHwxMQ==}
Interface:! settings.js (18): Illegal namespace ID {SW50ZXJmYWNlfHNldHRpbmdzLmpzfDcwOXwxOHwxMQ==}
overlayController:! Line 3, column 52: liveEnvelopeVelocity was not found. {b3ZlcmxheUNvbnRyb2xsZXJ8b25Jbml0KCl8MTQ3fDN8NTI=}
overlayController:! Line 3, column 52: liveEnvelopeVelocity was not found. {b3ZlcmxheUNvbnRyb2xsZXJ8b25Jbml0KCl8MTQ3fDN8NTI=}Could you help me please?
Will I be able to ask you more advices on your patreon to build my plugin?
Thank you in advance :) -
Hi,
I haven't opened that project for a long time so it's possible there are a number of issues opening it. The illegal namespace is because I called my namespace "Settings" but since I did that there is now a class in HISE that is also called Settings so the two clash. To fix it the namespace needs to be renamed - for my current projects I call it UserSettings - and any references to it through the script will also need to be updated.
Regarding the overlay controller, it's possible that you are missing the HISE-Scripting-Framework sub module and that's causing the issue.
git clone --recurse-submodules --remote-submodules <repo-url>
@d-navarra said in Sofia Woodwinds on github:
Will I be able to ask you more advices on your patreon to build my plugin?
Sure, but if it's a general question then it's better to ask it on the forum. You'll get the benefit of many people, including me, providing help.
-
@d-healey Wow thank you for your fast reply :)
Well, the main point is that I'm not able to make the scripts and I'm slowly learning it through your tutorials, that's why I asked you about the patreon.
I need some instructions to change the namespace, how do I get all the refernces through the script?
I also checked the other .js in the Script folder like for example:include("manifest.js");
include("presetHandler.js");
include("mixer.js");
include("settings.js");
include("preloadBar.js");Should I change them all or since the console pointed me out only settings.js it means the others are ok?
@d-healey said in Sofia Woodwinds on github:
git clone --recurse-submodules --remote-submodules <repo-url>
I'm using windows at the moment is this repo downloadable only through linux and git clone?
-
@d-navarra said in Sofia Woodwinds on github:
I'm not able to make the scripts and I'm slowly learning it
Might want to start with something simpler than Sofia Woodwinds :)
@d-navarra said in Sofia Woodwinds on github:
how do I get all the refernces through the script?
Use Find all Occurrences in the script editor.
@d-navarra said in Sofia Woodwinds on github:
Should I change them all
Nope, there's only a conflict with Settings as far as I'm aware.
@d-navarra said in Sofia Woodwinds on github:
is this repo downloadable only through linux and git clone
Git commands are the same on all operating systems. Submodules are references to one repo from inside another. Sofia Woodwinds scripts folder references my HISE Scripting Framework repo.
All of this code is very old, I don't think I've touched it in about 5 years, so probably a lot of it is not how I would do it today.
-
@d-healey said in Sofia Woodwinds on github:
Might want to start with something simpler than Sofia Woodwinds :)
ahahah
Damn, you're absolutly right! ihihih :)it's a mess for me but maybe we can start from scratch... BTW if you'd like to check it out and there's a way to fix it to make it available again without wasting too much time it would be nice.
Now I gotta go, the next few days I'm gonna have very busy time at work and I don't think I'll have enough concentration to work on the plugin but as soon as I can I'm registering to your patreon :)
Would you prefer to be contacted directly there for the 1st steps of this plugin or can we keep using this topic on the forum?
Sorry but I'm not used to online forums at all and have no idea :)
-
@d-navarra said in Sofia Woodwinds on github:
Would you prefer to be contacted directly there for the 1st steps of this plugin or can we keep using this topic on the forum?
If it's specific to something I've posted on Patreon then use Patreon, otherwise it's probably better here.
-
Hi David, 1st of all I'm happy to tell you I joined your patreon :)
Regarding the current topic on this forum I found a fork of your project that fixes the GUI issue :)
https://github.com/bobicloudvision/sofiawoodwinds
there are still a few errors detected on the console:
Interface:! Line 140, column 44: Unknown function 'set' {SW50ZXJmYWNlfHw0OTI0fDE0MHw0NA==}
overlayController:! Line 3, column 52: liveEnvelopeVelocity was not found. {b3ZlcmxheUNvbnRyb2xsZXJ8b25Jbml0KCl8MTQ5fDN8NTI=}
overlayController:! Line 3, column 52: liveEnvelopeVelocity was not found. {b3ZlcmxheUNvbnRyb2xsZXJ8b25Jbml0KCl8MTQ5fDN8NTI=}it looks like there's a problem with knob and always this liveEnvelopeVelocity not found...
are you able to tell me where to find this envelope?might you help?
-
@d-navarra said in Sofia Woodwinds on github:
Regarding the current topic on this forum I found a fork of your project that fixes the GUI issue :)
I just took a look at that, he changes
Settings
tosettings
which will work but is not a good way to do it because it breaks the coding style of CamelCase namespace names, and it doesn't clearly distinguish between the settings namespace and the Settings HISE class.@d-navarra said in Sofia Woodwinds on github:
it looks like there's a problem with knob and always this liveEnvelopeVelocity not found...
are you able to tell me where to find this envelope?It's probably as I said previously that you need to be pulling in the sub-module. But I'd still encourage you to start much much simpler.
-
Sorry for my late response but I got back home from work now.
Ok, I thought it was quite solved because I tried it quickly with some samples and it kind of "worked" , something wrong with the staccato but I thought it was an easy fix
@d-healey said in Sofia Woodwinds on github:
But I'd still encourage you to start much much simpler.
I absolutely agree with you because I'd like to learn from scratch.
Anyway since I tried it and some modules look very interesting you think some of them (like your legato, vibrato or transition) can be reused in another project?Tomorrow I'm going to be busy at work all day-long but in a couple of days I should have time enough to start building a plugin. I'd like to make a solo strings section and I didn't understand ho to properly manage the release together with the sustain and I also need some advices regarding the modules (a little confused about the Golabal modulator vs the modules directly in the sampler).
Then could be a good idea to start building a simple violin and keep building upon it :)For this kind of questions is better here or patreon? :)
Is there already something on the patreon about the realese samples or the management of the modules? I tried to make some research but probably I didn't do it the right way... -
@d-navarra said in Sofia Woodwinds on github:
Anyway since I tried it and some modules look very interesting you think some of them (like your legato, vibrato or transition) can be reused in another project?
I've rewritten or modified most of these and have used them in other projects, I've just (in the last few days) rewritten my legato script to simplify it for my current project.
@d-navarra said in Sofia Woodwinds on github:
For this kind of questions is better here or patreon? :)
Here - unless it's about a post I made on the topic
@d-navarra said in Sofia Woodwinds on github:
Is there already something on the patreon about the realese samples or the management of the modules?
In this one I show how to add a global velocity modulator
https://youtu.be/zroQrv-MGWc?si=E02Juk3coEqoviSj
I don't have one for release triggers but you basically drop your samples into your sampler and add the built in release trigger script.
-
@d-healey said in Sofia Woodwinds on github:
I've rewritten or modified most of these and have used them in other projects, I've just (in the last few days) rewritten my legato script to simplify it for my current project.
Ok, since I wanna use a Rhapsody template am I allowed to use this new modules then?
https://codeberg.org/LibreWave/RhapsodyBoilerplate/src/branch/main/modules
Are there some explanations about all these modules somewhere?
@d-healey said in Sofia Woodwinds on github:
In this one I show how to add a global velocity modulator
https://youtu.be/zroQrv-MGWc?si=E02Juk3coEqoviSj
I don't have one for release triggers but you basically drop your samples into your sampler and add the built in release trigger script.
I can follow this video :)
If I understand correctly, since I'd like to use violin, viola, cello and bass it's better to connect all the modules which parameters I'd like to access from the GUI to the Global modulator and in this way I can use the same samplers changing the samplemaps and setting the parameters for each instrument saving them as presets, right?
-
@d-navarra said in Sofia Woodwinds on github:
Ok, since I wanna use a Rhapsody template am I allowed to use this new modules then?
Of course, as long as your project is released under the GNU GPL or you're using the scripts that have a public domain license.
@d-navarra said in Sofia Woodwinds on github:
Are there some explanations about all these modules somewhere?
I make these for my own use, the only documentation is in the code itself.
@d-navarra said in Sofia Woodwinds on github:
If I understand correctly, since I'd like to use violin, viola, cello and bass it's better to connect all the modules which parameters I'd like to access from the GUI to the Global modulator and in this way I can use the same samplers changing the samplemaps and setting the parameters for each instrument saving them as presets, right?
There's no one way to do it. It really depends on the details of your specific project, you'll have to decide for yourself what way you want to do things. If you need a UI widget to control more than one thing then you will have to use a control callback rather than connecting it up in the interface designer.
Global modulators are good but have some limitations.
Changing the sample maps and parameters is separate from the other stuff you mentioned. The way I do it is I have a hidden knob on the UI. In the knob's callback I use the knob's value as an index to an array which contains the list of sample maps. So if the knob has a value of 0 then I use the sample maps that correspond to patch 0, if it's 1 I use the sample maps for patch 1, etc. But you don't have to do it this way.
-
@d-healey said in Sofia Woodwinds on github:
Of course, as long as your project is released under the GNU GPL or you're using the scripts that have a public domain license.
Absolutely, the most I can accomplish in terms of publishing at the moment it's something based on the VCO and Sonatina just to test it out...
Right now I'm honestly focused on resampling some patches which are for windows only and import them in Rhapsody in order to be used natively in Linux for my personal needs. I already did some test and with some tweaks I can achieve some satisfying results :) I just need to learn to set it up correctly and make it usable with a decent GUI.
BTW I think you deserve a huge thank you from the Linux community for the job you did with Rhapsody finally allowing to build very professional sample based plugin like Sofia Woodwinds running natively on Linux :)
@d-healey said in Sofia Woodwinds on github:
There's no one way to do it. It really depends on the details of your specific project, you'll have to decide for yourself what way you want to do things. If you need a UI widget to control more than one thing then you will have to use a control callback rather than connecting it up in the interface designer.
Global modulators are good but have some limitations.
Did you do any specific tutorial which might help me better understand these concepts?
@d-healey said in Sofia Woodwinds on github:
Changing the sample maps and parameters is separate from the other stuff you mentioned. The way I do it is I have a hidden knob on the UI. In the knob's callback I use the knob's value as an index to an array which contains the list of sample maps. So if the knob has a value of 0 then I use the sample maps that correspond to patch 0, if it's 1 I use the sample maps for patch 1, etc. But you don't have to do it this way.
At the moment I rather prefer learning it following your methods because for sure I'm not able to create something all by myself :)
Using this method of the hidden knobs means that if you need to run contemporary two samplers (for example sustain and release) you have to set 2 different hidden knobs? One for each sampler? -
@d-navarra said in Sofia Woodwinds on github:
Right now I'm honestly focused on resampling some patches which are for windows only and import them in Rhapsody in order to be used natively in Linux for my personal needs.
Someone already made a Rhapsody version of VSCO strings: https://youtu.be/n3RKGrUa7EQ?si=IIxmA3_npKGjgHF1
And there is a more full VSCO HISE project here - https://musictop69.wixsite.com/orchestools/orchestools-two
@d-navarra said in Sofia Woodwinds on github:
Did you do any specific tutorial which might help me better understand these concepts?
I use this stuff in a lot of my videos. I can't think of a specific one at the moment, perhaps the "Knobs" videos... I think also this is a good video for getting started with: https://youtu.be/hD1RWA5fwRQ?si=6S7qAZf8wwT0iqGT
@d-navarra said in Sofia Woodwinds on github:
you have to set 2 different hidden knobs? One for each sampler?
You can if you want, but I just use one - take a look at the Sofia Woodwinds code (or one of my other instrument projects) to see what I'm doing there.
-
@d-healey said in Sofia Woodwinds on github:
Someone already made a Rhapsody version of VSCO strings: https://youtu.be/n3RKGrUa7EQ?si=IIxmA3_npKGjgHF1
And there is a more full VSCO HISE project here - https://musictop69.wixsite.com/orchestools/orchestools-two
The Orchestools project is very nice and it's the vst which lead me to HISE :)
Anyway is not a Rhapsody instrument but I read on its forum that the developer is working on a new version.
I have to check the Open Strings, btw both projects are focused on orchestral ensemble while I'm currently focused on the solo instruments.@d-healey said in Sofia Woodwinds on github:
You can if you want, but I just use one - take a look at the Sofia Woodwinds code (or one of my other instrument projects) to see what I'm doing there.
I checked this project of yours:
https://codeberg.org/LibreWave/TheShepherdsFlute
Your projects are quite complex for me of course, but for sure I should be able to understand the Interface and try to reuse most of its structure, at least I hope.
Might you point me where exactly to find the hidden knob you use to switch the samplemaps?I took a look at the samplers and I've noticed that compared to the Sofia Woodwinds there isn't any for the release, did you replace it with some scripting?
I also noticed you still use one for sustain and one for transitions but the structure is different and you replaced staccato and flutter with an all in one called articulations.
So I tried to test it with my violin samples and put the staccato in the transitions and articulations samplers (didn't know where to put the release) but it didn't work out well of course... Could you explain me how these samplers are supposed to work? -
@d-navarra said in Sofia Woodwinds on github:
Might you point me where exactly to find the hidden knob you use to switch the samplemaps?
It's the patch knob. It does a lot more than just changing sample maps. I've completely re-written it's implementation in my current project because the version I've been using is a bit inefficient and over engineered. You'll find the code for the knob here - https://codeberg.org/LibreWave/RhapsodyBoilerplate/src/branch/main/includes/Patches.js#L23
@d-navarra said in Sofia Woodwinds on github:
there isn't any for the release, did you replace it with some scripting?
If I remember correctly the samples for that library are very dry so the ADSR is enough for handling the release sound.
@d-navarra said in Sofia Woodwinds on github:
I also noticed you still use one for sustain and one for transitions but the structure is different and you replaced staccato and flutter with an all in one called articulations.
Every instrument is different.
@d-navarra said in Sofia Woodwinds on github:
Could you explain me how these samplers are supposed to work?
Not off the top of my head, I'd need to go back to the projects and see what I did. There will be different group configurations depending on the number of RRs and articulations and stuff like that. I may have integrated the group switching for articulations into the RR handler or I may be using a separate group switcher. There's no one size fits all so each project is tailored to the specific instrument and sample sets.
-
@d-healey said in Sofia Woodwinds on github:
Not off the top of my head, I'd need to go back to the projects and see what I did. There will be different group configurations depending on the number of RRs and articulations and stuff like that. I may have integrated the group switching for articulations into the RR handler or I may be using a separate group switcher. There's no one size fits all so each project is tailored to the specific instrument and sample sets.
Ok, I'm trying to understand the logic behind your method of using modules and scripts. The emerald flute uses the same structure as the other flute while I've noticed in the free trumpet you don't use the transitions, is this due to your new version of legato which doesn't require the transition sampler?
-
@d-navarra said in Sofia Woodwinds on github:
is this due to your new version of legato which doesn't require the transition sampler?
The legato system I use doesn't require transition samples at all - it's not "true legato" - however with some instruments that have a little bit of wetness to the samples it sounds better to have a little release sample during the legato and that's what the transition sampler is for.
-
@d-healey said in Sofia Woodwinds on github:
The legato system I use doesn't require transition samples at all - it's not "true legato" - however with some instruments that have a little bit of wetness to the samples it sounds better to have a little release sample during the legato and that's what the transition sampler is for.
Ok, let's start building the samplers first then. I'm testing with the ldk violin and I have sustain, short and release (only one set of samples for each and one velocity).
I don't like key switches and I'd rather focus on a "performance" patch using your legato, getting the realese playing on note off and maybe reinforcing it on retrigger with legato using your transition method. The main point is how to get the staccato when playing short notes?
could you suggest me a structure and maybe some modules or scripts I could use? -
@d-navarra said in Sofia Woodwinds on github:
The main point is how to get the staccato when playing short notes?
Do you mean you want to trigger a different sample set when a "short note" is played? I don't know how you'd do that because you don't know the note is short until after it's been played.