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,f3
are 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 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: Is there a way to measure the consonance or dissonance of a chord? and i wanted to extend the search implementing the other algorithms mentioned in the various papers.