Centre for Digital Music

Seminar Videos
Conferences & Events
PhD Study
PhD Graduates

Reverse Engineering the Mix

Daniele Barchiesi and Joshua D. Reiss

News: Listen to a short discussion of our work on the AES Journal Podcast.

We show how to reverse engineer the parameters that, starting from a multi-track recording, can produce a given mix. We consider linear effects and dynamic processors, which comprise all the effects commonly used in the mixing and mastering stages. Two different techniques based on least-squares optimization are described. Starting from a multi-track recording and a target mix which is obtained applying effects to each of its channels, we calculate impulse responses and gain envelopes that can be used respectively to estimate gains, delays, filters, panning settings (and combinations of the above processors); or to estimate time-varying gain envelopes produced by dynamic effects such as compressors and expanders. Theoretical and experimental results show that, given some assumptions about the nature of the processing originally applied, the proposed techniques are able to precisely and efficiently retrieve the mixing parameters.

Interface image


The reverse engineering prototype contains a Matlab GUI for finding the parameters of effects employed during the mixing of a multi-track recording. Starting from the raw recordings of each channel, you can either create a custom mix adding effects such as equalisation filters, compressors, gains and delays, or load a mix from an external file. Once the final or “target” mix has been created, two different optimisation algorithms can be used to estimate either the parameters of linear effects (gain, delays and filters) or dynamic effects (compressors, expanders, etc.).

Notes for the installation: Please follow the instructions contained in the "Readme" file. If you don't have Matlab installed in your system, install the Matlab Compiler Runtime provided in the package.

- Windows users: run the demo.exe application
- Mac users: from terminal, run the shell script "run_reverseDemo.sh" using the following command

sh run_reverseDemo.sh path_to_MCR

where path_to_MCR contains the path to the installed Matlab Compiler Runtime (for example /Applications/MATLAB/MATLAB_Compiler_Runtime/V78/).

Instructions on use of the prototypes are included in the demonstration video.


D. Barchiesi and J. D. Reiss, "Reverse Engineering the Mix", Journal of the Audio Engineering Society, Volume 58 Issue 7/8 pp. 563-576, July 2010.

D. Barchiesi and J. D. Reiss, "Automatic target mixing using least-squares optimization of gains and equalization settings", Proc. of the 12th Int. Conference on Digital Audio Effects (DAFx-09), Como, Italy, Sept 1-4, 2009

D. Barchiesi and J. D. Reiss, "Automatic target mixing using genetic optimization of gain and equalization settings", Digital Music Research Network One-day Workshop (DMRN+3), Dec. 16, 2008