iiwusynth-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [iiwusynth-devel] FluidSynth release


From: M. Nentwig
Subject: RE: [iiwusynth-devel] FluidSynth release
Date: Fri, 28 Feb 2003 00:35:41 +0200

Moi,

I keep on wondering, what you are planning with LADSPA and Swami. Here
are some thoughts:
- A fully generic user interface, that allows to connect arbitrary
blocks with the mouse, would be a *huge* amount of work.
- I think that nobody needs it anyway - beginners can stick to pre-made
Fx setups, and advanced users will manage a screenful of 'ladspa_add'
lines with a text editor.
- Then, in my opinion, the idea of generic frontends for any possible
LADSPA plugin doesn't work, more opinion on request.




Here is an idea for a UI design, that is already partly field-tested,
even if only in perl Tk:
- The audio routing between the plugins is kept in an ASCII file.
This corresponds to the 'algorithm' in a hardware Fx processsor, for
example "limiter-chorus-reverb chain".
A stable release could ship with a couple of those, so that people don't
have to reinvent the wheel all over.

- For each parameter (reverb time, width, ...), the audio routing uses a
node with a name, which is documented somewhere. For example REV_TIME,
REV_WIDTH.

- The set of node values, for example REV_TIME=1.0, REV_WIDTH=0.5 etc is
kept in a separate file, call it 'user preset'. Settings for 'stadium'
or 'bathroom' reverb would be different files, which share the same Fx
setup.

- A user interface is made by hand for each Fx setup. This is a little
(actually quite little) extra work, but as I said, generic LADSPA plugin
UIs don't do the job properly. Some might consider it an advantage, that
the user can now spend effort on making the UI look good, instead of
getting the sound straight :)

- This information could be kept together with the Fx routing itself
(because there is one UI for each Fx routing).
The user interface can be described with a small number of directives,
like
"create a front panel 300 x 200 pts in the main window and call it A"
"create a front panel 300 x 50 in A at (0,0), call it B and paint it
black"
"put a dial button at (20,20) in A, range from 10 to 20000, logarithmic
scale, and let it write its value into node EQ_BAND1_FREQ"
"put a text in A at (10,10) that says 'Band 1 freq / Hz'"

The important point is, that there is no 1:1 mapping between user
interface buttons and plugin parameters. For example, a setup for a
stereo equalizer consists of two mono equalizers, but has only one set
of parameters - one button controls both.

As I said, a prototype is available, let me know if you want to 'play'
with it.

Cheers

Markus





reply via email to

[Prev in Thread] Current Thread [Next in Thread]