Update to VPO Template

I just released an update to the Virtual Playing Orchestra Template.


  • Switched from LinuxSampler VST to LV2, now all plugins are LV2.
  • Created Ardour template, instead of a saved Ardour session.

It is documented here:

Download it here:


1 Like

I just realized, that the format of the sfizz plugin state.ttl seem to have changed.
In the template, I see:

	state:state [
		<http://sfztools.github.io/sfizz:sfzfile> <file:///opt/Virtual-Playing-Orchestra3/Woodwinds/flute-SOLO-PERF.sfz> ;
		<http://sfztools.github.io/sfizz:numvoices> "64"^^xsd:int ;
		<http://sfztools.github.io/sfizz:preload_size> "8192"^^xsd:int ;
		<http://sfztools.github.io/sfizz:oversampling> "1"^^xsd:int
	] .

however, nothing will be loaded in the instrument tracks. When I load the Flute manually, I see:

state:state [
		<http://sfztools.github.io/sfizz:sfzfile> <flute-SOLO-PERF.sfz> ;
		<http://sfztools.github.io/sfizz:tuningfile> <DefaultScale.scl> ;
		<http://sfztools.github.io/sfizz#cc001> "0.50393701"^^xsd:float ;
		<http://sfztools.github.io/sfizz#cc007> "0.78740156"^^xsd:float ;
		<http://sfztools.github.io/sfizz#cc010> "0.50393701"^^xsd:float ;
		<http://sfztools.github.io/sfizz#cc011> "1.0"^^xsd:float
	] .

Has someone updated the template, so that it works with the newest versions of Ardour, sfizz?

Hi Robert! I haven’t touched this template in a while, but it would be good to give it a refresh. I’ll try to carve out some time for it, but I can’t make any promises right now.

I took the time to load all sfz. If you want me to create a pull-request, let me know.

@robertaramar Oh sure, a pull request would be welcome. I’ve been meaning to overhaul this template for quite some time, but you know, multi-year global crisis and all…

@Michael_Willis ,
do you have an Ardour project or a set of MIDI-files that you use to check the template for proper sound?
I would appreciate such file(s). You can contact me on PM via robert.schneider (at) aramar.de

Here you go: Adapted to Ardour 6.9.0, new VPO location by robertaramar · Pull Request #9 · michaelwillis/virtual-playing-orchestra-ardour-template · GitHub

@x42 @paul I’m finally getting back to overhauling this template. I have found that when making a template that uses sfizz, I end up with a plugin state directory under the template, let’s say 232/state1 with a myfile.sfz, which is a symbolic link to ../../externals/myfile.sfz. The file under externals is another symbolic link to the actual file that I picked.

Ideally I would like to publish this template in a way that allows people to put their sfz files and samples just anywhere on their filesystem, and then provide them a reasonable way to select where the files are (without having to open up every instance of sfizz and select each file one by one). I suppose I could make an installer that prompts for the location of the Virtual Playing Orchestra, but maintaining installers for three different operating systems seems like overkill for a fairly lightweight project like this. Do either of you have any suggestions?

That should always have been the case (it’s really liblilv that creates these symlinks). That didn’t change since … ever.

When zipping up a session the intended solution is to dereference symlinks that point outside of the tree. I.e. collect all required files in the externals/ folder (the plugins/id/state/* links can still point to externals/).

I guess another option would be to ship the plugin states as presets. So the shared files would reside in ~/.lv2/

I discussed that very same matter with Robin and Paul on IRC.

I am also not a big friend of distributing stuff with symlinks, however, in this case, the links will always point to ~/opt/… because the template folder is fixed.

So as long as your VPO is at ~/opt/Virtual Playing Orchestra3, which is another symlink to my personal soundfont-folder, all should be good.

Yes, I understand it has always been like this. I remember trying to decide a way to handle this the first time I worked on this template. At that point I decided to standardize on expecting the SFZ instruments under /opt. Now Robert is suggesting that it should be preferred to find them under somebody’s home directory, which is also reasonable.

My comments about symlinks were mostly trying to determine if I correctly understand the template layout, and wondering if there is any other way around the problem. There are no standard expected locations for SFZ files and their corresponding samples, unlike something like ~/.vst3 (but even then I noticed that Ardour allows people to set up custom plug-in locations).

Maybe I should set up a single symlink under external that points to the virtual playing orchestra collection, and then document that the one symlink can be edited if needed.

At first sight, that sounds like a good idea, because only one symlink would have to be updated in order to change the VPO location.
If that works, that would be fine. I’m just afraid, you mess with the structure that libllilv sets up and expects and thus might fail.
Give it a try.
If you want me to change my PR, let me know.

I can use your PR as it is and experiment with a single symlink. I’ll let you know how it goes.