[ecasound] user/library-interface proposal

New Message Reply Date view Thread view Subject view Author view Other groups

Subject: [ecasound] user/library-interface proposal
From: Kai Vehmanen (kaiv@wakkanet.fi)
Date: Tue Oct 05 1999 - 13:15:21 EEST

Although ecasound's internal design is quite flexible, the
user-interface is still rather limited. Because of this,
I've planned to make some changes in 1.6.x. My aim is to combine
command-line, interactive-mode and library interfaces.

For example, command-line arguments could be used anywhere:

c-line:	-efl:400 	Add a lowpass filter (command-line
			chainsetup, to the end of active chains)

ia-mode: -efl:400 -- " -- (active/selected chainsetup, to end of act./sel. chains) ECA_PROCESSOR:: -- " -- command("-efl:400") --

In all cases, some chainsetup is always active. I once called chainsetups sessions, but I think chainsetup is a better name (although Freshmeat moderators like to rename "chainsetup" to "chain setup" :)) Anyway, chainsetup contains chains and i/o devices. It knows how they are connected. When processing ecasound's (text-mode version) command-line, chainsetup "command-line setup" is automatically created and set active.

If selected/active chainsetup has chains, some of them are active. Chain object is always connected to 1 input and 1 output. It can contain chain operators (and their controllers). My idea is, that all operations that deal with chains (adding/removing effects, etc) would use the active chain(s). This will simplify things a _lot_.

If selected/active chain has chain operators (=effects), one of them is always active. Now all chainop operations (changing effect parameters, adding controllers, etc) would use the active chain operator.

Notice! Whether chainsetup, chain or chain operator is active or not doesn't affect processing. This information is only used for configuration and user-interface purposes.


And more examples:

"setpos" command would only affect active chains. "c_disable" would disable (=mute) active chains



This design has some problems (what happens if a input file is connected to 2 chains and you rewind/forward both chains...?), but all in all this seems to be the best solution.

What do you think?

-- Kai Vehmanen <kaiv@wakkanet.fi> -------- CS, University of Turku, Finland . http://www.wakkanet.fi/ecasound/ - linux audio processing . http://www.wakkanet.fi/sculpscape/ - ambient-idm-rock-... mp3/ra/wav

New Message Reply Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2a24 : Thu Oct 07 1999 - 10:25:24 EEST