I implemented a piano resonance plugin that needs to be configurable to specify the IR file on Zynthian, where the UI is not instantiated.
(Note: on Windows and presumably other more typical platforms, the file is specified using a button that launches a file browser, and that works. This issue is just for Zynthian, because it does not instantiate the UI. Instead it reads the TTL and generates a generic UI.)
There is an LV2-native plugin that takes an IR file as a parameter ( GitHub - x42/zconvo.lv2: Zero Config Convolver · GitHub ) that works on Zynthian, and the manifest.ttl contains:
<http://gareus.org/oss/lv2/@LV2NAME@#ir>
a lv2:Parameter;
rdfs:label "Impulse Response";
rdfs:range atom:Path.
I have no idea why it’s in manifest.ttl rather than zeroconvolv.ttl (or why anything should be in one versus the other.)
My plugin is Projucer-based, but I already have to postprocess the plugin.ttl file to get the parameters in the order I want, and I don’t have an issue with having to postprocess the manifest.tll each time it gets regenerated. (If there’s a solution to this, just mention it and I’ll start another thread for that!)
I can’t figure out how to access the parameter from the AudioProcessor code. I’ve asked Google AI a number of questions, and it gives (a) incorrect answers or code referring to things that might but don’t exist, (b) advice not to do this because parameters should be for live control, not setup.
This is my first nontrivial plugin and also my first JUCE plugin. It’s GitHub - jlearman/PianoRes: Resonance plugin for sampled pianos · GitHub if you’re interested: it uses an IR file built from summing every note on a sampled piano, and responds to the sustain pedal to activate/deactivate the effect (plus an ADSR on pedal release.) It adds nice realism to a sampled piano.
I’m a retired software engineer in networking and embedded systems, but new to the world of audio.
