Hi! On Sun, Jun 11, 2000 at 11:37:56AM -0700, Charles wrote: > There should be a way to control the volume for a stream without accessing the > system mixer. With the system mixer, every stream arts is processing is > controlled. An aRts mixer should only control one. Look at the source of artscontrol - you'll find there is a StereoEffect which controls volume, which you can insert into a StereoEffectStack. So where is the problem, then? The problem is that SimpleSoundServer uses one StereoEffectStack only, which is used for all PlayObjects and all applications currently. So although you can softcontrol the volume by inserting the StereoVolumeControl object into *this* stack (outstack), you can't control different PlayObjects seperately (or Quake seperately from a PlayObject, or anything else). What I think would be the way to go is to create something similar like a window manager for audio. It should decide how to route outputs that audio applications do. Just as the user can resize or minimize an X11 application without the application knowing anything about it, this audio manager should allow that the user changes how the applications sounds like (by inserting effects, changing volume), without the application knowing this. Also, it should be able to somehow remember settings (e.g. I always want my window manager sounds with reverb), and be able to deal with advanced concepts like routing the audio output to a virtual 8 channel studio mixer, or a real multiport soundcard. Currently, I can only encourage anybody to help with a complete specification of such a thing, as it will be one of the most important components of aRts. There is nothing done, yet, and anything over the current "outstack" solution will be an improvement. I suggest reading http://www.arts-project.org/doc/manual/index-3.html (section about busses) http://www.arts-project.org/doc/manual/index-11.html for some overview about how the "old" aRts handled this. Basically, the old solution was to assign any client to a named bus, which then could contain further processing. The assignment was done using an title (i.e. the title of the piece of music playing) and application domain (e.g. mp3), or manually in the case of midi synthesis. Have a look at http://www.arts-project.org/aol/pics/scr-0.3.3.jpg where you see an aRts-0.3.3. In the upper left corner is the virtual mixer, which provides audio01 and audio02 as busses. Then left of it, you see the gui for assigning the clients to channels - as you see the "Empire Strikes Back" thingy is assigned to the bus audio01 (e.g. goes through the left mixer channel). Below, two virtual instruments are assigned to the busses directly (no management in between). I think I'll at least port Synth_BUS_* to the new aRts later this week, so we'll again have dynamic M:N connections on string base, which is a hack (as it circumvents the normal way you connect stuff in a flow system), but practical. Still how the audio manager looks will need to be specified... Any input is very very welcome (this is really one of the most essential components). Cu... Stefan -- -* Stefan Westerfeld, stefan@space.twc.de (PGP!), Hamburg/Germany KDE Developer, project infos at http://space.twc.de/~stefan/kde *- _______________________________________________ Kde-multimedia mailing list Kde-multimedia@master.kde.org http://master.kde.org/mailman/listinfo/kde-multimedia