Skip to content

ZynAddSubFX can't edit preset #3886

@tresf

Description

@tresf

A few symptoms are present in ZynAddSubFX when running from .AppImage.

I'm assigning @lukas-w based on my code review below.

There's a chance we are creating this blank zyn bank bug with the new data:/ syntax. Suspected because .zynaddsubfxXML.cfg shows a line in it that says:

<BANKROOT id="0">
   <string name="bank_root">~/banks</string>
  </BANKROOT>
  <BANKROOT id="1">
   <string name="bank_root">./</string>
  </BANKROOT>
  <BANKROOT id="2">
   <string name="bank_root">/usr/share/zynaddsubfx/banks</string>
  </BANKROOT>
  <BANKROOT id="3">
   <string name="bank_root">/usr/local/share/zynaddsubfx/banks</string>
  </BANKROOT>
  <BANKROOT id="4">
   <string name="bank_root">../banks</string>
  </BANKROOT>
  <BANKROOT id="5">
   <string name="bank_root">banks</string>
  </BANKROOT>
  <BANKROOT id="6">
-   <string name="bank_root">data:/presets//ZynAddSubFX</string>
  </BANKROOT>

I can confirm that patching ZynAddSubFX helps. Here's my proof of concept code, which I believe fixes a regression from #1719.

diff --git a/plugins/zynaddsubfx/ZynAddSubFx.cpp b/plugins/zynaddsubfx/ZynAddSubFx.cpp
index 47da514..a4ab71b 100644
--- a/plugins/zynaddsubfx/ZynAddSubFx.cpp
+++ b/plugins/zynaddsubfx/ZynAddSubFx.cpp
@@ -28,6 +28,7 @@
 #include <QDomDocument>
 #include <QTemporaryFile>
 #include <QDropEvent>
+#include <QFileInfo>
 #include <QGridLayout>
 #include <QPushButton>
 
@@ -440,13 +441,13 @@ void ZynAddSubFxInstrument::initPlugin()
                        RemotePlugin::message( IdZasfLmmsWorkingDirectory ).
                                addString(
                                        QSTR_TO_STDSTR(
-                                               QString( ConfigManager::inst()->workingDir() ) ) ) );
+                                               QFileInfo(QString( ConfigManager::inst()->workingDir() ) ).absoluteFilePat
                m_remotePlugin->sendMessage(
                        RemotePlugin::message( IdZasfPresetDirectory ).
                                addString(
                                        QSTR_TO_STDSTR(
-                                               QString( ConfigManager::inst()->factoryPresetsDir() +
-                                                               QDir::separator() + "ZynAddSubFX" ) ) ) );
+                                               QFileInfo(QString( ConfigManager::inst()->factoryPresetsDir() +
+                                                               QDir::separator() + "ZynAddSubFX" ) ).absoluteFilePath() )
 
                m_remotePlugin->updateSampleRate( Engine::mixer()->processingSampleRate() );

The bank selection is still a bit buggy like #1001, but this fixes it so that it works with the checkbox workaround.

screen shot 2017-10-03 at 1 13 14 am

Related: #1001, #3688
Related in description: #3855, #2865, #2662

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions