1
$\begingroup$

I'm trying to implement and calculate the tonal tension of a triad (and its harmonics) following the definition given here: https://pdfs.semanticscholar.org/f05e/56c9548fa18c64efeed248742e3a6afb0c02.pdf

The tension of a single triad is given by: t=v*exp[-((y-x)/alpha)^2], where y=log(f3/f2) and x=log(f2/f1) and f3>f2>f1 where f1,f2,f3are the frequencies of the 3 components of the triad.

So far i've implemented this Matlab code:

function [tension] = tension(f1,f2,f3)
   Fdif1 = log(f2/f1);
   Fdif2 = log(f3/f2);
   alpha = 0.60;
   tension = exp(-(((Fdif2 - Fdif1)/alpha))^2);
end

Which seems right to me, but following the experimental data in the paper mentioned above (for example the tension for a single triad of 3 notes without overtones, so 3 simple sinusoids) I don't get at all the value mentioned in the graph (figure 6 of the paper).

What am i doing wrong? I thought it could be a mismatch of co-domain: the definition of tension works over a pure frequency difference, while (in figure 5 of the paper) the gaussian function of the tension works over semitones difference.

Could it be the problem?

PS: I took inspiration from this answer: https://music.stackexchange.com/questions/4439/is-there-a-way-to-measure-the-consonance-or-dissonance-of-a-chord/6556#6556?newreg=b8a315477e404f34984a65b7d96f2f49 and i wanted to extend the research implementing the other algorithms mentioned in the various papers.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.