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