mtytel / helm

Helm - a free polyphonic synth with lots of modulation
http://tytel.org/helm
GNU General Public License v3.0
2.38k stars 203 forks source link

Cant Import or save patches in VST #243

Open gnac opened 4 years ago

gnac commented 4 years ago

Running Helm standalone, I can import patches, and create, safe and export my own patches.

However, running Helm inside of DAW (Bitwig 8-track 3.1.2 and Ardour 5.12 in this case) as a VST, I cannot save patches, and selecting a *.helmbank file to load returns me to the patches screen, with no new patches displayed. I also tried LV2 file in Ardour with no luck saving patches.

When I try to save a patch, I can't create bank or folder names prior to attempting to save the patch either. Clicking "save" in the "Save Patch As" dialog is unresponsive. I can only cancel out.

image

I'm using OpenSuse 15.1 and Helm 0.9.0.

I also tried using the Helm VST in Reaper and Carla, but I couldn't actually load the GUI in either of those, related to issue #223.

If I save the project with a modified patch in Helm (unsaved), when I restore the project the patch is maintained, but I'd like to be able to share my patches across DAWs and with other users.

I see that patches are supposed to be saved in ~/.helm/User Patches (per issue #3 ). I noted that a .helm folder did not exist in my home directory, so I created it and the "User Patches" folder, with no change in behavior.

Finally, I have helm "installed" to ~/AudioTools/plugins/Applications/Helm/ It save and imports patches to ~/AudioTools/plugins/Applications/patches I'm not sure why that is, I can't find a setting to select that location.

gnac commented 4 years ago

I cloned the repo and built the VST.

After removing two lines at 714 and 715 from src/common/load_save.cpp, I was able to import, save and export banks.

diff --git a/src/common/load_save.cpp b/src/common/load_save.cpp
index ab32f7b6..517b23a2 100644
--- a/src/common/load_save.cpp
+++ b/src/common/load_save.cpp
@@ -711,9 +711,6 @@ File LoadSave::getFactoryBankDirectory() {
 }

 File LoadSave::getBankDirectory() {
-  if (!isInstalled())
-    return File("../../../patches");
-
   File patch_dir = File("");
 #ifdef LINUX
   patch_dir = File(LINUX_BANK_DIRECTORY);

image

the "../../../patches" explains the location of the patches folder in the standalone, but doesn't really explain why it didn't work in the VST. Its not clear why you would want to default to ../../../patches instead of LINUX_BANK_DIRECTORY (~/.helm/presets). The presets folder in the git repo is 4 folders above the standalone helm application, but only three folders above the VST build location.

It seems this project has been VERY slow lately, but maybe this will help someone else too.

image

Sverik commented 2 years ago

Thanks, that did the trick for me as well! Now I'm sure there was a good reason for checking if is installed, and refusing to load or save when not installed. I'd really like to know what was the reason? I'm tempted to create a Fedora RPM with that check removed, but it feels kind of unsafe, not knowing the background.

6-AND-9 commented 2 years ago

How can I do this with the standalone VST .so? I extracted it from the .deb file as I cannot build on this machine. Can anyone point me where should the patches be located, or at least how to load them through the GUI? Tried loading the default patches and/or renaming them to .helmbank, but nothing happens.

6-AND-9 commented 2 years ago

I'm tempted to create a Fedora RPM with that check removed,...

Oh please do :D