DBAP Spatialization Plugin

Finally getting around to releasing this thing: DBAP for SuperCollider


I built a plugin that implements Trond Lossius, Pascal Baltazar, and Théo de la Hogue’s Distance-based Amplitude Panning (DBAP) paper with some changes described in the README on the repo. The approach as a whole is finicky and subject to distortion but with tweaking it works as intended… for the most part. The approach for sources outside the convex hull proposed by Lossius and company is pretty much useless except in particular cases and my changes fix the major problems but it’s still not as sharp as VBAP (in which sources are always outside the hull).

Regardless, please download, use, and report back! I’m very interested in trying to improve the algorithm in general and having it be used as widely as possible.


Thanks for this. I am interested to know the finicky-ness you found with the algorithm. Have you compared this with with Scott’s VBAP stuff in a subjective way?

Also, has anyone made an MDAP encoder?



@Sam_Pluta I just find it a bit hard to tune, especially since speakers do not radiate sound evenly around themselves (even harder if one is using different kinds of speakers). It’s easier the more equidistant the speakers are from each other. I’ve found it to work fairly decently with a speaker grid.

The speaker weighting parameter certainly helps but starts to distort the field; if there are large gaps in the speaker arrangement, it’s particularly difficult. These guys talked about doing a version of DBAP that doesn’t do equal power and just gets gains directly from distance (so clusters of speakers will actually be much louder) but they seem to think it works better. I’ll probably include a switch for that in a future version.

As for VBAP comparison, I’ve only done it in a room with quad speakers in a single layer. VBAP is by far better when the source is outside the convex hull of speakers but DBAP exceeds when the sources come inside. Arbitrary speaker arrangements in an X-Y grid can only be done using DBAP since VBAP is designed for sources on the surface of a sphere (or ring). I’ve definitely “funked” with VBAP parameters to get somewhat convincing movement inside the ring but the speakers still must be at a constant radius which is not always ideal in an installation environment.

I don’t know of anyone who has made a MDAP encoder for SC. I’ve been interested in making an MDAP plugin but none of my projects would have use for it at the moment… Maybe in the near future while I still have facilities in which to test.

excited to test - this looks like it could be quite helpful for my current project!

@semiquaver Please do and let me know about any issues and/or thoughts for improvement. Very open.