> Here is my first draft of a filter module to automatically load > equalizer and/or echo-cancel modules if automagically and in a manual > but convenient way. Thanks for these patches, this is interesting, Arun and I were talking last week about better support for effects, after we realized how apps such as banshee/rhythmbox handle effects and volume ramps with awful hard-coded gstreamer pipelines. All this PCM processing should move to PulseAudio really. Your approach makes sense with the existing solution based on virtual sinks/sources, but with the current implementation, the effects are really global, post-mix. If you want to add an effect on a specific stream, you need to create a new sink and move the sink-input. That really doesn't scale. Ideally we would want to use a linked list of effects, so that the effects can be added/enabled/disabled/removed quickly and their order modified, and we should be able to handle - local/per-stream effects. - global/post-mix effects - aux effects (such as reverb) We would also need a standard way for apps to set/get the parameters needed by effects. This isn't new, this is what Android/AudioFlinger/OpenSL ES implement. In most cases, users really care about global effects only, but you may want to have a specific filter on a stream (ReplayGain or some volume ramp for example). I also don't think using a 10s timer is really great to check if the effect is actually needed. If you had a linked list you wouldn't need to do this type of things. let me know if I am making any sense, it's been a long week... -Pierre