LMMS / lmms

Cross-platform music production software
https://lmms.io
GNU General Public License v2.0
8.08k stars 1.01k forks source link

Feature request: Tunefish 4 compatibility #2446

Closed FLamparski closed 8 years ago

FLamparski commented 8 years ago

Tunefish is a free (as in beer, so far I don't think they are sharing source in any form) synthesiser for Linux with a very cool UI concept - it visualises ADSR envelopes on knobs themselves as you play the synth in real time, and has a unique sound generator that easily creates more EDM-y and demoscene-type sounds one has to spend hours on in Zyn to achieve. It uses a weird Linux VST format that Carla picks up but Vestige cannot load by default. I'll try bypassing Vestige's file filter to load the file anyway and update you, but if it does work, you may want to add an ".so files" or "all files" option to the filter in case there are plugins that work like that.

tresf commented 8 years ago

you may want to add an ".so files" or "all files" option to the filter in case there are plugins that work like that.

It may be a Linux VST, which LMMS doesn't currently support via #416. Is there a chance this is just a limitation of not supporting Linux VSTs?

Adding the .so to the list of file filters shouldn't work since we currently only support Windows VSTs through Wine, so I wouldn't expect wine to work properly with an ELF binary.

grejppi commented 8 years ago

@FLamparski There is a Windows native version of Tunefish. Have you tried that?

FLamparski commented 8 years ago

I will try that, however first I noticed there was an error with how LMMS loads the RemoteVstPlugin:

diff --git a/plugins/vst_base/VstPlugin.cpp b/plugins/vst_base/VstPlugin.cpp
index 954b619..e9fa0d9 100644
--- a/plugins/vst_base/VstPlugin.cpp
+++ b/plugins/vst_base/VstPlugin.cpp
@@ -99,7 +99,7 @@ VstPlugin::VstPlugin( const QString & _plugin ) :
 {
        setSplittedChannels( true );

-       tryLoad( "RemoteVstPlugin" );
+       tryLoad( "vst_base/RemoteVstPlugin" );
 #ifdef LMMS_BUILD_WIN64
        if( m_badDllFormat )
        {

Because vst_base was missed off, RemotePlugin could not start the executable and all we got was the "remote plugin died!" message. I don't know what to do about the 32/RemoteVstPlugin version. Now I have the following to worry about (when loading another VST, Synth1):

RemotePluginClient::shmget: No such file or directory

After which LMMS becomes unresponsive. I'll do a full thread backtrace later. It may also be worthwhile to split this into a VST-related bug.

musikBear commented 8 years ago

@FLamparski I did a test on tunefish 32 bit windows on xp (Master as of 14. juli) LMMS does not preserve users setting changes on the vst-ui, when the project is saved eg in this enviroment, Tunefish4.0 fails the vst sanity test : https://lmms.io/wiki/index.php?title=Working_with_VSTs#VST_related_problems pkt 2. @tresf I know that there is a bug report for exactly that, but i cant find it :(

tresf commented 8 years ago

I know that there is a bug report for exactly that, but i cant find it :(

Well, you authored one of them #493 #1183 #1389 #260 #328 forums/#1609

Because vst_base was missed off, RemotePlugin could not start the executable and all we got was the "remote plugin died!" message.

Thanks for the detailed information. Are you on stable-1.1 or master branch?

I'll do a full thread backtrace later. It may also be worthwhile to split this into a VST-related bug.

Agreed.

For now, I think this issue can be closed as we have plenty of other bug reports which address VST-related bugs, but you seem qualified to do the troubleshooting on your own, so I'll leave it open for a while.

FLamparski commented 8 years ago

I'm going to close this one for now. I have emailed one of the Tunefish devs and they are discussing open-sourcing the synth which means someone (probably not me any time soon, I'm not that good with C/C++) can fix it to work better with LMMS. For the VST-related hang, see the issue referenced just above.

musikBear commented 8 years ago

Well, you authored one of them #493 #1183 #1389 #260 #328 forums/#1609

No, that is the hang. What i has searched for is the issue where user-changes in the vst UI is ignored when the project is saved. Eg (as i wrote)

vst sanity test : https://lmms.io/wiki/index.php?title=Working_with_VSTs#VST_related_problems pkt 2.

I know there is topic for that, but i cant find it @tresf should a new topic be created on that

FLamparski commented 8 years ago

Tunefish 4 is now open-source: https://github.com/paynebc/tunefish

I don't have much time to work on this right now but would like to re-visit once I do. Can anyone point me to some resources on Juce and VST development? I'd like to try and make it possible for LMMS to save settings (pending resolution of #2448).