Call for Pianoteq LV2-presets

That’s a shame.

How about we arrange the files thus:

zynthian-data/presets/lv2/Pianoteq6/Stage/Acoustic_Pianos/manifest.ttl

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.

Hello @sisko Chris,

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.

Greetings and God bless, Marius

Hello @jofemodo and @riban Brian,

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?

Greeetings and God bless, Marius

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.

Thanks!

1 Like

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.

1 Like

Hi @zynthianers!
I just added “Steinwey D” for Pianoteq_6_STAGE.

And here is the very basic script i used for doing the task:

#!/bin/bash

PTQ_PRODUCT="STAGE"
PTQ_VERSION="6"

PREFIX="Pianoteq_"$PTQ_VERSION"_"$PTQ_PRODUCT
PLUGIN_NAME="Pianoteq$PTQ_VERSION$PTQ_PRODUCT"
BANK_NAME=$1
DEST_DIR="$PLUGIN_NAME-$BANK_NAME.lv2"

# Create Bundle directory
rm -rf "$DEST_DIR"
mkdir "$DEST_DIR"

# Copy Preset files
cp $PREFIX*/$BANK_NAME*.ttl "$DEST_DIR"

# Copy manifest header
cd $(ls -d $PREFIX*/|head -n 1)
sed -n '/^@/p' manifest.ttl > "../$DEST_DIR/manifest.ttl"
cd ..

# Add Bank definition to manifest
echo -e "" >> "$DEST_DIR/manifest.ttl"
echo -e "<$BANK_NAME>" >> "$DEST_DIR/manifest.ttl"
echo -e "\tlv2:appliesTo <http://pianoteq.com/lv2/$PLUGIN_NAME> ;" >> "$DEST_DIR/manifest.ttl"
echo -e "\ta pset:Bank ;" >> "$DEST_DIR/manifest.ttl"
echo -e "\trdfs:label \"${BANK_NAME//_/ }\" ." >> "$DEST_DIR/manifest.ttl"

# Combine manifest bodies
for f in $PREFIX*/manifest.ttl; do
	sed '/^@/d' "$f" >> "$DEST_DIR/manifest.ttl"
done

# Add Bank to Presets
sed -i "s/a pset:Preset ;/a pset:Preset ;\n\tpset:bank <$BANK_NAME> ;/g" "$DEST_DIR/manifest.ttl" 

# Remove Bank Name from Preset Label
cd "$DEST_DIR"
for f in $BANK_NAME*.ttl; do
	sed -i "s/$BANK_NAME-//g" $f
done
cd ..

Feel free to use & improve it.

Regards,

He he I did it slightly differently by:

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?

2 Likes

Hello @riban Brian and @jofemodo,

I made LV2 banks for the 2 Vibraphones and left out a blank space in front of the name intentionally:
Pianoteq7-VibraphoneV-B
Pianoteq7-VibraphoneV-M

PTQ7Pro_Vibes_vibraphones_V-M_V-B.zip (71.3 KB)

@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?

Greetings and God bless, Marius

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.

1 Like

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 :wink: .

2 Likes

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.

Cheers,

1 Like

I have created a pull request for the Steinway B and the Bluethner, I could look into the Electric Pianos next.

1 Like

Fantastic!

I just updated the list with your Steinway B, and my last one, Clavinet D6.

Go!

1 Like

Hi @sisko!

Remember to remove the redundant bank name in the preset label, inside every preset ttl file.
You can do it with a simple “sed” command like this:

sed -i "s/Steinway B-//g" Steinway_B*.ttl

or

sed -i "s/Bluethner-//g" Bluethner_*.ttl

inside the bank’s directory.

Also, you can use the @riban’s script, or mine, that will save some of your time (i mean, you can process more banks in the same time :wink: ).

Regards,

1 Like

Hello @jofemodo, @sisko Chris and @riban Brian,

am I a bit late for the party…

Anyway, I am ready completing all Pianoteq 7 Pro instrument presets I wrote above.

Please have a look and confirm they are usable for you as well.

Pianoteq7-Celesta.lv2.zip (27.7 KB)
Pianoteq7-Glockenspiel.lv2.zip (36.3 KB)
Pianoteq7-Grand_C._Bechstein_DG.lv2.zip (165.7 KB)
Pianoteq7-Grand_Grotrian.lv2.zip (94.1 KB)
Pianoteq7-Grand_K2.lv2.zip (173.4 KB)
Pianoteq7-Grand_Steingraeber.lv2.zip (170.6 KB)
Pianoteq7-Grand_YC5.lv2.zip (57.7 KB)
Pianoteq7-Kalimba.lv2.zip (13.4 KB)
Pianoteq7-Toy_Piano.lv2.zip (22.7 KB)
Pianoteq7-Vibraphone_V-B.lv2.zip (31.1 KB)
Pianoteq7-Vibraphone_V-M.lv2.zip (31.1 KB)

Shall I continue with Pro versions of the Electric Pianos and Hohner Collection?

Greetings and God bless, Marius

1 Like

Hi crew!

I just added the rest of electric pianos for STAGE v6:

  • Vintage Tines MKI
  • Hohnner Collection Pianet N
  • Hohnner Collection Pianet T
  • Hohnner Collection Pianet Electra

Regards,

Hi @mj_prod !

Please, follow this procedure:

  • generate the banks
  • check the banks on your zynthian
  • fix any problem
  • recheck again
  • once the banks are working perfectly, fork and send a Pull Request to the zynthian-data repository, as described above

Thanks!

1 Like

Hello @jofemodo,

EDIT: I posted a link to the repository.

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.

https://github.com/mj-prod/zynthian-data/tree/mj-prod-lv2-presets-Pianoteq7PRO

Greetings and God bless, Marius

1 Like

Hi @mj_prod !

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 …

Thanks!

Hello @jofemodo,

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.

Greetings and God. bless, Marius