There is nice solution for having access to most of Pianoteq GUI controls from the Zynthian UI:
Using the Pianoteq LV2 plugin instead of the standalone engine!!
This plugin is disabled by default because of the lack of LV2 presets, but since we have now, with the VNC Server, an easy way of generating LV2 presets, i’ve thought we could fill the gap and generate the presets for the Pianoteq LV2-plugin.
I made a little test and generated the presets for the Wurli (W1). It tooks about 1 hour, so if we collaborate we could have the full collection with little effort.
For having the Pianoteq W1 presets with full FX control on your zynthian, follow these simple steps:
- Update your zynthian
- From “Webconf->LV2 Plugins”:
- Click the “Search for new plugins & presets” button
- Enable the Pianoteq plugin and click the “Save” button
- Restart your zynthian UI (or reboot your zynthian)
- Create a Synth Layer with LV2->Pianoteq6Stage
- Enjoy!!
The presets are generated for the version 6, so i doubt they work on the version 7.
This is the W1 bank that i just committed to the data repository:
https://github.com/zynthian/zynthian-data/tree/master/presets/lv2/Pianoteq6STAGE-W1
If some of you are interested on helping with the preset generation, these are the steps i followed:
- Enable the VNC Server
- Create a synth layer with the Pianoteq LV2 plugin (not the standalone engine!!!)
- From the VNC Viewer, select the first preset of the bank (instrument) you want to generate.
- On the top menu bar, click “Presets->Save Preset”
- Use this format for the file name:
Bank Name-Preset Name
where the bank name is the instrument name (i.e. W1, MKII, Steinwey D, etc.). - Click “>” button on the preset bar for loading the next preset
- Repeat from 4 until you saved all the presets for this bank (instrument).
Once you have all the presets for an instrument, you have to combine them on a single bank.
Each LV2 preset is a folder ended with “.lv2” and inside it there is 2 files:
- manifest.ttl
- #PresetName#.ttl
FIrst, create an empty folder for the bank, using this naming convention:
Pianoteq6STAGE-#BankName#.lv2
where #BankName# is the instrument’s name (W1, MKII, Steinwey D, etc.).
Depending on your product and version you should adapt the directory name too. The variants are:
- Pianoteq6STAGE
- Pianoteq6STANDARD
- Pianoteq6PRO
- Pianoteq7STAGE
- Pianoteq7STANDARD
- Pianoteq7PRO
After that, copy all the preset TTL files to this folder, but not the manifests.ttl files!!!
Next, combine all the manifests.ttl in a single manifest.ttl and save it to the bank folder.
Then, add this lines to the manifest.ttl you have created, just after the header:
<#BankName#>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Bank ;
rdfs:label "#BankName#" .
where #BankName# is the instrument’s name (W1, MKII, Steinwey D, etc.).
Don’t forget to adapt the plugin URI for matching your product/version
Then add this line to every preset on the manifest.ttl:
pset:bank <#BankName#> ;
Your manifest.ttl should look like this:
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix pset: <http://lv2plug.in/ns/ext/presets#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<W1>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Bank ;
rdfs:label "W1" .
<W1_Basic_Mono.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Basic_Mono.ttl> .
<W1_Basic_Stereo.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Basic_Stereo.ttl> .
<W1_Bright.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Bright.ttl> .
<W1_Comp.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Comp.ttl> .
<W1_Flange.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Flange.ttl> .
<W1_Logical.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Logical.ttl> .
<W1_Octave.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Octave.ttl> .
<W1_Overdriven.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Overdriven.ttl> .
<W1_Roomy.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Roomy.ttl> .
<W1_Soft.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Soft.ttl> .
<W1_Tremo.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Tremo.ttl> .
<W1_Wah.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Wah.ttl> .
<W1_Warm.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Warm.ttl> .
<W1_Where_it_is_at.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_Where_it_is_at.ttl> .
<W1_You_are_my_best_friend.ttl>
lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq6STAGE> ;
a pset:Preset ;
pset:bank <W1> ;
rdfs:seeAlso <W1_You_are_my_best_friend.ttl> .
And that’s all. Copy your LV2 bank folder to this directory on your zynthian:
/zynthian/zynthian-my-data/presets/lv2
and follow the steps for refresing the LV2 preset cache:
- From “webconf->LV2 Plugins”, click the “Search for new plugins & presets” button
- Restart your zynthian UI (or reboot your zynthian)
After testing the bank on your zynthian with you Pianoteq product & version, please, fork and send a Pull Request to zynthian-data repository:
Enjoy!!