Hello, the patch "filter-apply, ladspa-sink, virtual-surround-sink: filter-apply supports ladspa-sink and virtual-surround-sink" by JeongYeon caused some discussion between him, Arun and me on how to handle filters in a more general case. Here is the result: 1) Generally, we have three different classes of filters: a) device based -> all streams that use the master sink/source are filtered b) stream based -> only a single stream is filtered c) stream group based -> groups of streams are filtered 2) For device based filters, all streams that exist on the master sink should be moved to the filter sink when the filter is inserted. The master sink should then effectively be hidden in the sense that any stream that tries to use the master sink will be redirected to the filter sink. 2) The same filter (for example an equalizer sink) might be used in any of the classes described above and there may be multiple instances of the same filter (for example two equalizers for two different groups of streams). This means the filter class must be given as a property when the filter is loaded. If no class is given, device based is assumed. 3) filters loaded from default.pa or manually loaded filters are either device based or stream group based filters. Because they are loaded manually and without an initial stream associated with them they should not be unloaded by module-filter apply. 4) When using the filter.apply property we need further properties to define the class of the filter (device/group/stream) and the initial parameters. If it is a group based filter, a group name/number must also be supplied to distinguish between multiple instances of the same filter. Have we forgotten anything? Any other comments on this approach? Regards Georg