RE: [linux-audio-dev] latest news: the editor taketh shape

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: RE: [linux-audio-dev] latest news: the editor taketh shape
From: Richard W.E. Furse (richard_AT_muse.demon.co.uk)
Date: Tue Oct 24 2000 - 03:05:02 EEST


I personally think the causality issue is a massively underestimated
problem. Solving it (as MN does) leads to a synth engine that handles
feedback loops, network delays, non-real-time audio in a real-time context
etc in a (mostly) transparent fashion.

Back in the real world, people just want to hack music around. And unlike
MN, LADSPA isn't a research tool. The bottom line is that writing a
"reverse" plugin in LADSPA just aint gunnah wurk, however much one tweaks
it. Ironically, I spent quite a bit of time over the past three weeks
writing a "snippet" processing engine for MN to allow MN to take snippets
(generally a few seconds, under strict criteria) of audio from a live audio
stream and pass them through the signal chain as events. Horribly high CPU
costs, but semantically useful and sounds good ;-). Snippets are then
processed further down the event chain before being reconstructed as audio.
The processors have some reasonably thorough rules to constrain their live
use of CPU time (this is all single-threaded to make it quantifiable).

And of course for this I needed a batch-based signal processing API, and I
wanted support for reverse: I simply handed a (float *) and a size. This
approach isn't right for disk-based files (even with mmap() around).
Previous experience working on editors and real-time multi-threaded engines
[don't ask if you're short of time] suggest that something looking like an
FS API is the answer. I'm going to go off and think about this again. I'd
be interested in folk's ideas.

I think the statement that "LADSPA is fundamentally designed around a
different premise than the one most suitable for editing" is misleading.
Though precise, it misses the point. 90% of real-world effects are handled
through LADSPA. Which is a pretty good rating given that almost all LADSPA
plugins will also run live. The only issue that LADSPA does not handle is
manipulation of the time dimension. There are plugins that require this,
such as reverse, timestretch and some granular algorithms. And these, by
definition cannot run live [welllll...]. In the world of effects with a
normal time dimension, LADSPA is laughing. Examples include distortion,
enhance, flange, chorus, delay, noise gating, EQ, noise reduction, pitch
shifts, reverb [including reverse reverb ;-)], other granular algorithms,
vocoders, formant processing, frequency analysis, surroundsound processing,
wave shaping, generic filters of any [causal!] type, physical modelling
(etc).

I'm in 101% agreement with Conrad's model where parameters of effects are
controlled with paths drawn/enveloped by the user. These are set by the
user and mediated by the host - and it is not necessary to feed a plugin
any future [non-causal] information. This allows the user to specify the
attack/decay of a gain envelope as easily as the [1D] vowel movement of a
formant filter. And the plugins this applies to can also run live! This is
an important concept in the way it contrasts with time warping algorithms.
Setting an envelope (be it controlling amplitude or formant resonance or
whatever) can be done at the beginning of an audio input stream as it does
not require future knowledge of that stream.

Incidentally, I've forgotten how VST supports reverse and timestretch
algorithms. Could someone remind me/us?

I appreciate there's a [limited] middle ground here. I'm thinking. Help!

--Richard

-----Original Message-----
From: Paul Barton-Davis [SMTP:pbd_AT_Op.Net]
Sent: Monday, October 23, 2000 8:50 PM
To: linux-audio-dev_AT_ginette.musique.umontreal.ca
Subject: [linux-audio-dev] latest news: the editor taketh shape

[ mostly dup'ed from ardour-dev ]

[...]

**** LADSPA alert ******

I would really like to use a plugin API within the editor. However, as
the discussions here have pointed out, LADSPA is fundamentally
designed around a different premise than the one most suitable for
editing. Ardour is internally capable of doing what David Olofson
mentioned, and hooking up its EDL list to a series of plugins that
would transform the data in real time. But for the most part, this is
inefficient when it comes to things like amplitude envelope shaping
and other fairly "static" edits.

So, I think we need an extension to LADPSA that will allow us to use
any plugins written with it in the context of an editor rather than a
real-time playback engine. If I don't see this as something emerging
soon-ish, I'll just decided to use VST, which will allow such things
via the "batch" model.

--p


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Tue Oct 24 2000 - 03:30:08 EEST