File Exchange

image thumbnail

SDM Toolbox

version 1.3001 (625 KB) by Sakari Tervo
A toolbox for spatial analysis and synthesis of room acoustic impulse responses.


Updated 22 Apr 2018

View Version History

View License

SDMtoolbox is a collection of matlab functions and scripts for spatial room impulse response analysis and synthesis using Spatial Decomposition method [1]. Visualization of the spatial room impulse response is implemented as in [2]. Other examples of the visualization have been shown for example in [3],[4] and [5]. Synthesis of the spatial room impulse response is implemented as described in [4]. Binaural synthesis follows the method in [6].
The toolbox processes spatial room impulse responses, measured with a microphone array. The microphone array has to be specified as micLocs = microphone locations in Cartesian coordinates [numberOfMics 3] and in the order [x,y,z].
The spatial impulse response should be presented in the same order as the microphone locations IR : [N numberOfMics]

For auralization, a loudspeaker array must be defined with lspLocs = loudspeaker in Spherical coordinates [numberOfLoudSpeaker 3]. The order is Azimuth in degrees, Elevation in degrees, and Radius in meters.

There are several standard default loudspeaker setups, e.g., 5.1, in createSynthesisStruct.m, which you can use directly.

Example use cases for analysis, visualization, synthesis, and reproduction with different loudspeaker arrays or binaurally with headphones are found in:

To run these examples, type
> demoCustomSetups
> demoDefaultSetups
> demoBinauralRendering
> demoBformat
in your Matlab command prompt.

This version has been tested with Matlab R2015b and R2014b. Some functions used in the demos are not available in older versions. For example, parula.m and websave.m are not included before R2014b.

The demos are using examples files, which you can also directly download by copy-pasting these links to your browser

[1] S. Tervo, J. Pätynen, A. Kuusinen, T. Lokki "Spatial decomposition method for room impulse responses", Journal of the Audio Engineering Society, vol. 61, no. 1/2, pp. 16-27, 2013
[2] J. Pätynen, S. Tervo, T. Lokki, "Analysis of concert hall acoustics via visualizations of time-frequency and spatiotemporal responses", In J. Acoustical Society of America, vol. 133, no. 2, pp. 842-857, 2013.
[3] S. Tervo, J. Saarelma, J. Pätynen, P. Laukkanen, I. Huhtakallio, "Spatial analysis of the acoustics of rock clubs and nightclubs", In the IOA Auditorium Acoustics, Paris, France, pp. 551-558, 2015
[4] S. Tervo, J. Pätynen, N. Kaplanis, M. Lydolf, S. Bech, and T. Lokki "Spatial Analysis and Synthesis of Car Audio System and Car Cabin Acoustics with a Compact Microphone Array", Journal of the Audio Engineering Society 63 (11), 914-925, 2014
[5] P. Laukkanen "Evaluation of Studio Control Room Acoustics with Spatial Impulse Responses and Auralization", Master's thesis, Aalto University, 2014
[6] J. Pätynen, S. Tervo, and T. Lokki, "Amplitude panning decreases spectral brightness with concert hall auralizations", In Proc. 55th Audio Eng. Soc. conference Helsinki, Finland, Aug. 27-29 2014.

Cite As

Sakari Tervo (2021). SDM Toolbox (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (8)

Jens Ahrens

My previous comment refers to the file createSynthesisStruct.m ...

Jens Ahrens

Note that there is a typo in line 395. It reads

p.lspLoc(:,1:2) = [A(:)*180/pi, E(:)*180/pi];

It should be reading

p.lspLocs(:,1:2) = [A(:)*180/pi, E(:)*180/pi];

This is only goign to affect renderng with the CIPIC HRTFs.

Jens Ahrens

Excuse my typos...

Tapio Lokki

The post-equalisation in syntheziseSDMCoeff.m is not working properly for all impulse responses. It was originally developed to equalise the late response of a small room (thus short decay) and for that purpose it works well. However, when applied with longer decays (i.e. larger rooms) it might create some audible artefacts and therefore it is not recommended to use with long decays. Indeed, with longer decays the late reverberation seldom needs any EQ.

mimdesa linajes

Tapio Lokki

All data is not anymore available on those links above, but you can find the data here:
Tapio Lokki

jing zhang

Eric Ballestero

MATLAB Release Compatibility
Created with R2016b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!