View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004688 | ardour | bugs | public | 2012-02-06 16:37 | 2012-02-06 18:27 |
Reporter | nettings | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | no change required | ||
Summary | 0004688: Ardour does not respect lv2:inPlaceBroken and fails silently | ||||
Description | Any plugin that assumes its input buffer(s) will remain intact for the duration of the run() callback, and which has set the lv2:inPlaceBroken property accordingly, will fail silently as its input buffer is overwritten by the output it generates, creating corrupt output. instead, ardour should either provide intact buffers, or, if that is too intrusive, refuse to load the plugin with an appropriate error message. | ||||
Steps To Reproduce | the attached plugin is a first-order ambisonic panner, which defines lv2:inPlaceBroken. install it into a track with one input and four outputs, and feed it a test signal. now check the "focus" slider. it should crossfade between "all output in the first channel" and "all output in the other three channels". first channel only works, but when you fade to other three channels, they are moving towards zero as the input buffer gets overwritten by the first output buffer. | ||||
Additional Information | i don't have a LADSPA testcase right now, but i remember very clearly that the same applies to the LADSPA_PROPERTY_INPLACE_BROKEN flag. | ||||
Tags | No tags attached. | ||||
|
turns out this is due to a bug in the lv2 example plugin eg-amp.lv2, which i used as a template. it uses the non-existing lv2:property. the correct way for plugins to specify they are not inplace-safe is @prefix lv2: <http://lv2plug.in/ns/lv2core#>. lv2:requiredFeature lv2:inPlaceBroken; if the ttl includes this line, ardour3 will fail to load the plugin with an appropriate error message. |