The TSM toolbox has been developed by Jonathan Driedger and Meinard Müller. It contains MATLAB implementations of various classical time-scale modification (TSM) algorithms like OLA, WSOLA, and the phase vocoder. Furthermore, the toolbox also provides the code for a recently proposed TSM algorithm based on a combination of the classical algorithms as well as harmonic-percussive source separation (HPSS). Finally, it also includes a wrapper function which allows to call the commercial state-of-the-art TSM algorithm élastique by zPlane directly from MATLAB. To show how the algorithms can be applied and to give some demo applications, the toolbox also includes several demo scripts and additional code examples. The MATLAB implementations provided on this website are published under the terms of the MIT License. A general overview of the TSM Toolbox is given in [1].
If you publish results obtained using these implementations, please cite [1]. For technical details of the TSM algorithm based on HPSS please cite [2].
The MATLAB implementations provided on this website are published under the terms of the MIT License. If you publish results obtained using these implementations, please cite the references below.
Download TSM Toolbox - Version 2.03. Last update 2021-25-06 as zip
The following functions for the computation of TSM results are included in the toolbox:
Furthermore, the following auxiliary and visualization functions are included:
Finally, the following demo files are provided. These demo files allow you to try out the code and give you a first overview of the toolbox. The necessary audio files to run the demos are also included in the toolbox.
Name | Original | OLA | WSOLA | Phase Vocoder | Phase Vocoder (phase locking) |
TSM based on HPSS |
élastique |
---|---|---|---|---|---|---|---|
Bongo | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
CastanetsViolin | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
DrumSolo | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Glockenspiel | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Stepdad | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Jazz | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Pop | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
SingingVoice | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
SynthMono | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
SynthPoly | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Name | Original | OLA | WSOLA | Phase Vocoder | Phase Vocoder (phase locking) |
TSM based on HPSS |
élastique |
---|---|---|---|---|---|---|---|
Bongo | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
CastanetsViolin | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
DrumSolo | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Glockenspiel | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Stepdad | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Jazz | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Pop | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
SingingVoice | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
SynthMono | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
SynthPoly | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Name | Original | OLA | WSOLA | Phase Vocoder | Phase Vocoder (phase locking) |
TSM based on HPSS |
élastique |
---|---|---|---|---|---|---|---|
Bongo | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
CastanetsViolin | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
DrumSolo | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Glockenspiel | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Stepdad | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Jazz | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
Pop | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
SingingVoice | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
SynthMono | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
SynthPoly | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] | [wav] |
@article{DriedgerME14_HPTSM_IEEE-SPL, author = {Jonathan Driedger and Meinard M{\"u}ller and Sebastian Ewert}, journal = {{IEEE} Signal Processing Letters}, title = {Improving Time-Scale Modification of Music Signals Using Harmonic-Percussive Separation}, year = {2014}, volume = {21}, number = {1}, pages = {105--109}, }
@inproceedings{DriedgerM14_TSM_DAFx, author = {Jonathan Driedger and Meinard M{\"u}ller}, title = {{TSM} {T}oolbox: {MATLAB} Implementations of Time-Scale Modification Algorithms}, booktitle = {Proceedings of the International Conference on Digital Audio Effects ({DAFx})}, address = {Erlangen, Germany}, year = {2014}, pages = {249--256}, url-pdf = {2014_DriedgerMueller_TSM-Toolbox_DAFX.pdf} }