On Thu, 24 Jan 2002, Jan P. wrote:

>> Why not use (and possibly improve) an existing one: 
>>  - http://www.eca.cx/ecasound
> what kind of control do effects in ecasound have over
> their UI? can i write an gtk UI to control an effect,
[...]
> for my looper, i want to create a fluid interface that
> can be played by MIDI keyboard. i was also considering
> using opengl for some 3d.

Ok, this is a bit confusing. In your earlier post you described your goal
as a blackbox processor. I'd say a blackbox with a GUI is not a blackbox
anymore... :)

Anyway, ecasound itself doesn't have a GUI, so the effects have nothing to
do with GUIs. It is possible to create a GUI in the effects constructor,
which would create a new thread. Then all communication with the thread
and the engine-side effect code would be private to the effect. For 
instance ecamegapedal's VU-meter is implemented this way.

Other solutions to this problem:
        1) write your programn as a JACK client; this is actually 
           a very good option; easy to write an independent GUI and
           your app can co-operate with any of the JACK hosts
        2) use LADSPA and the LCP extension for GUIs; search for
           LCP at http://www.eca.cx/lad to get more info

There also one totally different approach - write a new ecasound frontend. 
Have you taken a look at ecamegapedal, http://www.eca.cx/ecamegapedal and 
http://eca.cx/screenshots/ecamegapedal-0.3dev0_cvs.jpg ...?

> and have that control parameters? what benefit would
> there be in integrating my looper into ecasound over
> developing directly with alsa? its an intruiging
> possibility i hadn't considered. i would have to delve
> deeper into what kind of things can be created with
> ecasound. 

For instance with the ECI API, you can control the ecasound engine from a
C++, C, Python or Perl program using a very straightforward and well
documented interface. If this interface is enough for your needs, you can
bypass the engine and engine-GUI separation code and concentrate on the
interface. For instance ecamegapedal (not pure ECI app but close) is only
2400 lines of code. That's not much for a C++ program. The VU-meter alone 

On the other hand, if you want more control, then starting from scratch
might be a better idea. There are also other alternatives available: 
Ardour, Mustajuuri, GDAM, GLAME, etc, etc ... 

> as a developer, can i have realtime control over not
> only my internal parameters, but the whole fx chain?
> ie can my code without pause rearrange the chain
> arbitrarily (ala max/msp)?

You have realtime control. But rearranging the chains is not possible in
realtime. This is a known limitation of current ecasound. You can add and
remove effects on-the-fly, but there will be a short pause in the audio.

If this a serious problem, I'd say your best option is writing your app as
a JACK client. It will be just like writing an independent app, but you
get inter-app connectivity as a bonus feature. How does running your
looper in sync with a drum machine or full-blown MIDI-sequencer sound
like...?

PS Maybe we should continue this on linux-audio-dev, jack-devel or 
   some other list. Are you a member of any of these...? 

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


_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to