Re: [ecasound] future of qtecasound?

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

Subject: Re: [ecasound] future of qtecasound?
From: Kai Vehmanen (
Date: Fri May 05 2000 - 18:11:57 EEST

On Thu, 4 May 2000, Jeremy Hall wrote:

> How difficult would it be to write two new interfaces, 1: make a socket in
> /var/run/ecasound.$$
> 2: bind at a port if the -p or some such option exists.

This is quite easy. And actually, you can already do this:

ecasound stream tcp nowait root /usr/sbin/tcpd /usr/local/bin/ecasound -c

ecasound 500/tcp

Then I can use ecasound from my other machine:

`--> ~ # telnet ecabase 500
Connected to ecabase.
Escape character is '^]'.
* ecasound v1.7.8d12 (C) 1997-2000 Kai Vehmanen *
(eca-session) Interactive mode enabled.
ecasound ('h' for help)> aio-add-input /empty1/track04.wav
aio-add-input /empty1/track04.wav
(eca-controller) Added audio input "/empty1/track04.wav".
ecasound ('h' for help)>
ecasound ('h' for help)> aio-add-output
(eca-controller) Added audio output "/dev/dsp".
(eca-controller) Added default output to selected chains.
ecasound ('h' for help)>
ecasound ('h' for help)> q
- [ Engine/Exiting ]
Connection closed by foreign host.

Isn't UNIX great? :) However, for local use, it's just as easy to
fork ecasound on the background (using interactive-mode) and redirect
ecasound input and output streams. This way you get two normal
file descriptors. One for sending ia-mode commands, and one for
parsing ecasound's output. 1.7.x version of ecasound also supports
additional dump-commands, that are really useful for these purposes.

> 1: a client can connect to a socket on a local machine with standard unix
> socket would not be created. This allows a front-end program to drive
> ecasound easily by sending/receiving on a pipe, rather than having to
> launch a new one.

Hmm, what I described above (fork + dup()), is just as easy. I'm
not sure how various scripting languages (Python, Perl, Guile, others)
handle these...?

> 2: bind to a port: If a cli program is running on a remote machine, it may
> wish to talk to an ecasound running on this machine. Make it use
> hosts.allow/hosts.deny or some such. I'll write up the RFC describing the

How about my inetd solution? I admit it's a bit of a hack, but it does
just what you describe.

> protocol. In this way, interactive mode might be able to be removed
> completely from ecasound and moved to ecacli, ecasound becomes ecasoundd

Btw; ecasound's ia-mode is implemented on the library
level. Due to this, console-mode ecasound is very, very simple. It
reads user input using GNU readline (which provides the
command-line history) and sends everything to the library. This means,
that ia-mode can be used in all ecasound-based apps.

Kai Vehmanen <> ---------------- CS, University of Turku .
 . audio software for linux .. 		 .
 . armchair-tunes mp3/wav/ra . .

-- To unsubscribe send message 'unsubscribe' in the body of the message to <>.

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

This archive was generated by hypermail 2b28 : Fri May 05 2000 - 18:31:13 EEST