aboutsummaryrefslogtreecommitdiffhomepage
path: root/ladspa.lua
AgeCommit message (Collapse)AuthorFilesLines
2016-09-26LADSPAStream: Special optimization for constant input port mappingsRobin Haberkorn1-26/+52
* Constants were converted to infinite streams. This allows them to be handled specially. They are stored in their own input buffer now, initialized and connected once but need no ticking. * In contrast to the Applause primitives, this can be done centrally and for all possible LADSPA plugins. * This gives a speed increase of up to 20% if all input ports are mapped to constants (measured with the "sine" plugin).
2016-09-26added LADSPA plugin host (LADSPAStream and Stream:LADSPA())Robin Haberkorn1-0/+371
* E.g. LADSPAStream("sine", 880):play(). The sine plugin is currently twice as fast as the native Applause implementation even though a block size of 1 sample is used (ie. compared to Stream.SinOsc). * all LADSPA features should be supported * Takes arbitrary Streams as input and produces a normal Applause stream. * multi-channel output plugins supported * LADSPA port mapping is possible by array, by name and by argument list. * Even though LADSPAStream is not muxable (it is more like SndfileStream), every input stream or default value is currently converted to a Stream. This can be optimized by storing scalars in their own arrays. They don't have to be ticked.