There would also be a Pianoteq7 folder, etc. and below each of these would be:
Acoutstic_Pianos
Electric_Pianos
Chromatic_Percussion
Piano_Predecessors
Historical_Pianos
Within each of these would be a manifest.ttl and associated preset.ttl files. We could combine all presets for an instrument pack, e.g. all the historical pianos could be listed in the same manifest file. We may wish to add an extra folder layer for instrument packs to keep the files in manageable groups. All historical pianos fit nicely together as a set of 27 files. Steinway D may have many more files so may be best to divide into its own subfolder below Acoustic Pianos.
@sisko I am not sure. We seem to require different files for 6 & 7 so may need different files for stage, standard and pro.
@jofemodo If this is the case then maybe add an extra folder layer for stage, standard, pro? It doesn’t particularly matter where the files are but will be easier to maintain and track missing presets if we have a consistent and logical file structure.
[Edit] I was wrong. The files need to be within a folder with the extension .lv2. I did have all the historical pianos in different banks but I don’t think that looks good so put them all in the same bank. Maybe it is a judgement call on each set to see what looks right.
in my case the lv2 synth name is Pianoteq7, not Pianoteq7STAGE, so I cannot see the generated STAGE preset files in the Pianoteq7 (Pro) lv2 when it is running.
I can do presets for Pianoteq 7 Pro for
Chromatic Percussion:
Vibraphone V-B
Vibraphone V-M
Acoustic Pianos:
Grand K2
Grand YC5
Grand Grotrian
Grand Steingraeber
Grand C. Bechstein DG
Electric Pianos
Hohner Collection
Maybe someone else, too.
Can I shorten names as there is not much space on the zynthian display? Vibes V-M and Vibes V-B?
Also some Pianos can be short named like C. Bechstein DG aka BechDG 282 or Steingraeber aka Stein E-272?
This will add extra complexity as LV2 search path have to be re-configured. Also, it’s not well aligned with the “LV2 way”.
All the preset/bank bundles should be in the same directory:
/zynthian-data/presets/lv2
just as it’s currently.
Although this is possible, I don’t agree. Webconf’s preset manager only supports 1 bank per bundle.
Please, keep using a bank per bundle (and 1 bank per instrument!!). It’s a very reasonable way of organizing presets.
I’m not sure of this. Perhaps STAGE presets could be patched for working on STANDARD and PRO. We should test it.
In a first round, i would prefer full names. Let’s keep the official names and after that we will think about ways of shorting them. Perhaps we could add short aliases. LV2 is very flexible. In fact the shorting layer could be added separately, in a global way, covering all plugins, etc.
Removing all manifest files, moving all the remaining preset files to a common directory then creating a new manifest file:
#!/bin/bash
# Run within lv2 preset folder passing bank as only parameter
bank=$1
echo "@prefix atom: <http://lv2plug.in/ns/ext/atom#> ."
echo "@prefix lv2: <http://lv2plug.in/ns/lv2core#> ."
echo "@prefix pset: <http://lv2plug.in/ns/ext/presets#> ."
echo "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ."
echo "@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> ."
echo "@prefix state: <http://lv2plug.in/ns/ext/state#> ."
echo "@prefix xsd: <http://www.w3.org/2001/XMLSchema#> ."
echo ""
echo "<$bank>"
echo " lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq7STAGE> ;"
echo " a pset:Bank ;"
echo " rdfs:label \"$bank\" ."
echo ""
for file in *
do
if [ $file != "manifest.ttl" ]
then
echo "<$file>"
echo " lv2:appliesTo <http://pianoteq.com/lv2/Pianoteq7STAGE> ;"
echo " a pset:Preset ;"
echo " pset:bank <$bank> ;"
echo " rdfs:seeAlso <$file> ."
fi
done
I used PT7-bank_name for the bank then manually changed its label, removing PT7 prefix and replacing underscore with space. This could have been scripted but it was a quick manual one-line edit.
I have done Steinway D (Hamburg and New York), Electric Pianos (W1, MKI, MKII), the free (included with license) historical pianos (A. Walter, C. Graf, D. Schoffstoss, J.E. Schmidt, J. Schantz), the free (included with license) acoustic pianos (CP-80, Erard, Pleyel) and the free chromatic percussion (church bells and tubular bells). I have grouped them as I have listed them here to avoid too many banks with few presets in them, e.g. the acoustic pianos have each have the same 5 variations of each piano so I created 1 bank with 15 presets rather than 3 banks each with 5 presets.
One issue occured to me this morning: how do we identify which presets are actually available to users based on their instrument pack purchases?
@riban Brian:
How would I start your script within the zynthian in an xterm from my mac? @jofemodo Can I generate LV2 presets for instruments I do not own?
I have put the script in my home folder /root and enabled execute bit:
chmod u+x /root/create_manifest.sh
I then copy the ttl files to /zynthian/zynthian-data/presets/lv2/Pianoteq7STAGE-instrument_name.lv2.
I change to this directory then run the script, passing the bank as a parameter and redirecting output to the manifest.ttl file:
cd /zynthian/zynthian-data/presets/lv2/Pianoteq7STAGE-instrument_name.lv2
~/create_manifest.sh > manifest.ttl
I then manually edit the manifest.ttl file to adjust the label of the bank: rdfs:label.
I notice that the order of instruments may end up a bit odd due to alphabetical sorting of list. I have prefixed all electric pianos with “Vintage Tines” which is how they appear in the list in Pianoteq UI but not when selected by name. This keeps them together. PT UI adds catagories to order instruments. This would be a good feature if possible.
I’ve done a load more today. Once you are into a run it is addictive and you don’t want to stop. I can carry on with the PT7 STAGE devices. I would like to consider how we tag them and deduce which are purchased. I haven’t investigated this yet and don’t know if it is presented to Zynthian in a form it can check but I think we do see this information in the full application presentation so imagine it may be possible. If so then we may wish to tag presets / banks to allow presentation of purchased and trial instruments. I don’t want to forget half way through a performance and select a trial piano that stops and embarasses me .
In the current standalone engine we simply put the licensed and the free ones on top of the list. There is no separator, although we could add one.
In the LV2 plugin i’ve not thought too much about it, but as we have the list of licensed ones from the config file, we can create a specific Jalv class for Pianoteq and add some specific features like this. It shouldn’t be too complex.
I opened a pull request for all Pianoteq7 Pro patches.
They can be read by Pianoteq Standard, but Standard might not change all parameters available in PRO.
I don’t forget your PR. I simply would like to test it before merging, but i’m having problems while upgrading my Pianoteq License to v7. I’ve contacted with Moddart …
As soon as i can, i will test your PR …
BTW, have you tested if @riban 's presets for v7 Stage work for you? There is a good bunch of them …
I looked into @riban’s and your presets for a starting point with regard to naming consistency between PT/Stage and PT7Pro presets.
This was especially helpful with Steinway D, Acoustic Pianos or Piano predecessors grouping instruments together.
I adapted his script in the
lv2:appliesTo http://pianoteq.com/lv2/Pianoteq7 ;
portion of the automatically generated manifest file after copying the presets to the zynthian data lv2 folder.