Re: [ecasound] MISC: Of static & Timidity support & Info from MP3 header? & An idea

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

Subject: Re: [ecasound] MISC: Of static & Timidity support & Info from MP3 header? & An idea
From: Kai Vehmanen (k@eca.cx)
Date: Thu Nov 02 2000 - 23:17:23 EET


On Sat, 28 Oct 2000, S. Massy wrote:

> Here are the two things that I found the most interesting in your todo
> list, in order:
> 1) C-api: that would definitely be great to be able to get programs
> (great or small) to use ecasound's power.

Ok, you've got me convinced. I guess I'll postpone the MIDI subsystem
update to 1.9.x and concentrate on the new buffering system and the
C-API during 1.8.x development.

> 2) interfacing to "interpreted languages" (I'm thinking of PERL here;
> well, that's the one I know and love.) Here again it would be
> thrilling to be able to have scripts talking to ecasound, one could do

Ok, so we'd basicly need (at least) perl and python bindings to the new
C-API. Any volunteers to take the charge of these projects? I'm sure
it'd be best, if the bindings were "officially" supported.

So the next step is to design the C-API. I already posted a quick'n'dirty
draft. It should give a picture of what the API is aiming at. So in other
words, if you could access the functionality provided by libecasound from
your perl/python/xxx app, what services/functions you'd like to
have at your use? All ideas, both good and bad, are welcome.

The obvious features would be:
        - init/destruction
        - functions for issuing ia-mode commands

The next step would be to add function equivalents to the dump
commands. Instead of dumping to the "target stream", C-API functions
would directly return the value, or modify a pointer to struct.
Here's a clip from ecasound-iam man page:

--cut--
DUMP COMMANDS
       The following dump commands are not meant for normal use.
       Their primary purpose is to provide an easy way to get
       internal state information from libecasound. All dump com-
       mands output a single line with syntax "key value" to the
       selected output stream (defaults to stdout).

       dump-target 'filename'
              Set target stream for dumping.

       dump-status
              Dumps engine status - 'running', 'stopped', 'fin-
              ished' or 'notready'.

       dump-position
              Dumps the global position. Printed in seconds using
              a floating-point representation.

       dump-length
              Dumps the overall processing length. Printed in
              seconds using a floating-point representation.

       dump-cs-status
              Dumps status string for the currently selected
              chainsetup - 'connected', 'selected' or an empty
              string.

       dump-c-selected
              Dumps the name of currently selected chain.

       dump-aio-selected
              Dumps label of currently selected audio object. If
              no object is selected, dumps an empty string.

       dump-aio-position
              Dumps position of currently selected audio objects.
              Printed in seconds, using a floating-point repre-
              sentation.

       dump-aio-length
              Dumps length of currently selected audio object.
              Printed in seconds, using a floating-point repre-
              sentation.

       dump-aio-open-state
              Dumps audio object state info. Either 'open' or
              'closed'.

       dump-cop-value 'chainop,param'
              Dumps chain operator parameter value. 'chainop' and
              'param' are operator and parameter index values
              (1...n).
--cut--

-- 
 . http://www.eca.cx ... [ audio software for linux ] /\ . 
 . http://www.eca.cx/sculpscape [ my armchair-tunes mp3/ra/wav ]

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


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

This archive was generated by hypermail 2b28 : Thu Nov 02 2000 - 23:32:51 EET