Getting ZynAdSubFX files from PC to Zynthian


Hi. Have been using Zynthian for a bit, and have re-discovered ZynAdSubFX (which I tried back in 2008!). Now I have it on my PC for sound programming and want to move my patches (.xmz files) to my Zynthian for perfomance… how is this done?

Have just read this thread… ZynAddSubFX: loading .xmz files possible?
… and would still like to know what to do. :slight_smile:


i remember a webconf section (presets)… but perhaps i 'm wrong…i tried but it does not work. (@jofemodo, it’s just temporary or there is an issue? i don’t see existing presets :open_mouth: )

instead you could use sftp (filezilla) to put xmz inside /zynthian/zynthian-my-data/presets/zynaddsubfx/XMZ … then you will find them inside presets page on zynthian.


Didn’t you delete your data? It only works if the symbolic links exist.


uhm…i don’t know…time ago i just deleted and regenerated zynthian directory with normal setup…
should be everything back in order. To me everything works fine. I find MY/ folder inside zynthian preset page.


It seems to me that the webconf page is accessing the preset folder, rather than the user data… so I can’t upload my files… Grr… :wink:


Soundfonts are getting across okay.


if i am right, you should upload xmz there…but i remember a xmz/xiz/xlz folder viewable in that zone…i don’t see them anymore…


Are you sure that the physical directoried are symbolically linked into the preset folder?


By design. Just create a symbolic link in the preset folder. Maybe the name has to be the file extension…not sure anymore, wether the UI is checking it as well.


But you are right, it doesn’t work anymore.
the preset folder needs a strict format.
The parent has to be the extension of the files like lv2.
you only have a depth of 2.
1 level file extension, 2 the name of the symbolic link.
it mustn’t be

but xlz/zynaddsubfx

same for puredata., which can’t work at all.

Maybe we need a second preset folder additionally to your format.


OK! We have a problem here. Let’s solve it :wink:

IMHO, first level should be the engine. Users shouldn’t need to know the extension used by every engine. Some engines have different types of presets (like ZynAddSubFX) and in such a case, a second level is needed for the different types/extensions.

But things are more complex yet … jejeje! Some presets are simple files, but some others are folders, like LV2 or PD patches.

So … we need a flexible format for preset folders. It depends of the engine …


Let’s do the webconf tool calls the zyngine classes (here we are getting closer of the core API approach :wink: )

Currently, each zyngine class implements functions for listing bank and presets. This is half the task.
We would need to add functions for deleting/renaming banks and presets, getting preset info and finally, creating a preset from a “bundle” (uploading presets).

In such a way, the webconf tool don’t need to worry about the implementation details of preset folders for every engine. Additionally, we can easily implement some kind of “preset info” feature, etc.

Finally, following this path we are getting closer to the core API approach.

What do you think?



I like the idea that the engine provides the information.
Hence we need a liblo based API? Is it possible to implement osc server with liblo as well? Not only clients?
Maybe you could create the OSC Server skeleton and I can help when we have a common picture.

When the OSC API is available, I can change the webconf implementation


I mean calling directly to the class methods, importing zyngine into webconf tool.
It’s a middle step before the OSC API. It’s already done in some places of webconf tool, like the pianoteq tab.


If you define the API objects then you are looking at:
CRUD for engines, banks, presets, folders, bundles ?

Do we do different authorities for CRUD & list?
Would it be useful to separate listing (Read Only) from CRUD’ing ?
It might be nice in a network.


Yes, I was thinking about security as well…i don’t know if osc has a security layer.

Fernando, I think we should use this task to make the first osc steps.



Error in WEB config: “Only select zynaddsubfx files” when i am trying upload .xmz saved in my PC.

Placing the files into /zynthian/zynthian-my-data/presets/zynaddsubfx/XMZ works.


We are aware, that it doesn’t work yet. But I need an OSC interface before I can write the web interface.


Thaks. And volume level does not works. It is normal, for now, too?


XMZ files are not fully supported by Zynthian-UI and currently it’s not a priority. I strongly recommend to use XIZ (instrument) files instead XMZ (session) files. If you really need to use XMZ files, please, tell me the reason. Perhaps you convince to me for improving the XMZ integration … or i could give you some tip for getting what you want without using XMZ files :wink:

Some trouble with single layer and ZASFX layered presets

2nd thanks (13.16.19. character in this post).