Drawing on the work @Michael_Willishere, I’d like to be able to write a Lua script which, given an input of the root path of the Virtual Playing Orchestra sample library, plus a set of user-selected checkboxes (selecting instrument sections), configures a number of MIDI tracks, using sfizz, each with a given VPO section / articulation.
AFIAK, based on my reading of the (Lua scripting API)[The Ardour Manual - Lua Bindings Class Reference] docs, Ardour does not yet surface the API to Lua to support this use-case: I would need to be able to construct the instrument plugin, and provide it’s configuration details. Based on @Michael_Willis work, I might need to add other plugins to certain tracks, as well as configuring panning and trim.
Can anyone contradict me, or is there a chance that I might be able to help adding the required scripting support?
This is a great idea. I haven’t maintained that template for a long time, and I would make some different decisions if I did it all over again. I never liked that it uses an absolute path in the filesystem, but I didn’t find a way to allow people to specify the path. I also like the idea of customizing sections.
AFAICT, the Lua API offers no way to set the value of any of the string parameters for the sfizz plugin. In particular, my notional script would need to set the sfzfile parameter is the filesystem path to the SFZ file defining the instrument.
I see. Since debian does not package sfizz, I cannot check myself. For LV2 this seems to be available as LV2 Plugin Property (patch:writable), but other variants (VST, AU, etc) do not expose this to the host.
Meanwhile, you could you make a plugin-preset with the path and then load the preset to sidestep this?
Based on the past discussion of this (https://discourse.ardour.org/t/update-to-vpo-template/89288/9), I’m wondering if the best first step would be to make a script which would create appropriate “placeholder” lv2 entries (based on @Michael_Willis setup), which then would be used by any templates or template-making operations.
Is there a way to do that via LUA? The VPO library provides 454 different SFZ instrument definitions: I don’t intend to use all of them, but might use a bunch.