Re: [ecasound] ecs-files

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

Subject: Re: [ecasound] ecs-files
From: Kai Vehmanen (k_AT_eca.cx)
Date: Mon Oct 29 2001 - 23:44:04 EET


On Thu, 18 Oct 2001, janne halttunen wrote:

[effect param hint info]
> I am thinking about extracting this information from the sourcecode
> through ECI. Like extensions to 'cop-register' and 'ladspa-register';
> 'cop-pd-register' and 'ladspa-pd-register'.

One old idea (already mentioned in pre-2.0 ecasound-iam man pages) is to
expose ecasound's object maps to ECI. I just revised the man page a
bit. The commands would be something along:

--cut--
dit(map-aio-list) **not implemented**
Returns a list of all audio object type keywords
registered to the object maps. em([S]).

dit(map-aio-device-list) **not implemented**
Returns a list of all audio object type keywords
registered to the object maps. em([S]).

dit(map-aio-name 'keyword') **not implemented**
Returns the type name that matches 'keyword'. em([s]).

dit(map-aio-regex 'keyword') **not implemented**
Returns the regular expression that is mapped to 'keyword'. em([s]).

dit(map-cop-list) **not implemented**
Returns a list of all chain operator type keywords
registered to the object maps. em([S]).

dit(map-cop-type 'regexp') **not implemented**
Returns the type name handling regular expression 'regexp'. em([s]).

dit(map-cop-description 'keyword') **not implemented**
dit(map-cop-param-names 'keyword') **not implemented**
dit(map-cop-param-defaults 'keyword') **not implemented**
dit(map-cop-param-ubounds 'keyword') **not implemented**
dit(map-cop-param-lbounds 'keyword') **not implemented**
dit(map-cop-param-toggles 'keyword') **not implemented**

dit(map-ctrl-list) **not implemented**
Returns a list of all controller type keywords
registered to the object maps. em([S]).

dit(map-ctrl-type 'regexp') **not implemented**
Returns the type name handling regular expression 'regexp'. em([s]).

dit(map-ctrl-description 'keyword') **not implemented**
dit(map-ctrl-param-names 'keyword') **not implemented**
dit(map-ctrl-param-defaults 'keyword') **not implemented**
dit(map-ctrl-param-ubounds 'keyword') **not implemented**
dit(map-ctrl-param-lbounds 'keyword') **not implemented**
dit(map-ctrl-param-toggles 'keyword') **not implemented**

dit(map-preset-list) **not implemented**
Returns a list of all preset type keywords
registered to the object maps. em([S]).

dit(map-preset-description 'keyword') **not implemented**
dit(map-preset-param-names 'keyword') **not implemented**
dit(map-preset-param-defaults 'keyword') **not implemented**
dit(map-preset-param-ubounds 'keyword') **not implemented**
dit(map-preset-param-lbounds 'keyword') **not implemented**
dit(map-preset-param-toggles 'keyword') **not implemented**

dit(map-ladspa-list) **not implemented**
Returns a list of all LADSPA plugin keywords
registered to the object maps. em([S]).

dit(map-ladspa-description 'keyword') **not implemented**
dit(map-ladspa-param-names 'keyword') **not implemented**
dit(map-ladspa-param-defaults 'keyword') **not implemented**
dit(map-ladspa-param-ubounds 'keyword') **not implemented**
dit(map-ladspa-param-lbounds 'keyword') **not implemented**
dit(map-ladspa-param-toggles 'keyword') **not implemented**
--cut--

... commands would return tuples similar to the preset -ppn, -ppd, etc
options ("map-preset-param-names two_filters" would return
"lowgain,highgain").

This seems like a good approach, but with one major setback: implementing
all the above is one hugely boring&repeative task... :(

Hmm, of course it is possible - although not as elegent - to combine the
various commands to a single list. Ie. "map-preset-list" would return
a tuple of strings where one string would contain all the necassary
information about one preset. Something like:

--cut--
two_filters 2 lowgain highgain 0 0 1000 - 100 100 - -
--cut--

The fields are 'preset_name, number_of_params, par1_name, par2_name,
par1_lbound, par2_lbound, par1_ubound, par2_ubound, par1_default,
par2_default, par1_flags, par2_flags'.

But while this eases the libecasound implementation, ECI-clients will have
to do more parsing (and have knowledge of the exact field structure).

> eiam> cop-pd-register
> -eac:amplify-%,channel
> -pd:"Amplifies signal of channel 'channel' by amplify-% percent."
> -ppu:-,-
> -ppl:0,1
> -ppd:100,1
> -ppd:-,int
[..]
> BTW, how in the above you'd know which parameters can be controlled?

Actually all public parameters are controllable. Params marked with the
'output_param' flag are the only exception, but technically even they can
be controlled. But nothing guarantees that setting a 'output_param' has
any effect.

-- 
 http://www.eca.cx
 Audio software for Linux!

-- To unsubscribe send message 'unsubscribe' in the body of the message to <ecasound-list-request_AT_wakkanet.fi>.


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

This archive was generated by hypermail 2b28 : Mon Oct 29 2001 - 22:41:00 EET