Roughness analysis

Dear developers,
During the last FluCoMa presentation in Oslo, I was talking about the roughness evaluation as a descriptor with Pierre Alexandre. After a study phase and experimentations, I made for myself a Bash command line using Praat analysis and Common Lisp (SBCL) computation in very minimalist and simplistic terms but it works in some situations.
To know more about my approach, please consult my LaTex book Journal of Generative Sonic Art in section 1.8 and the code of the “command line” enkode.
For now, in practice, I call enkode from SuperCollider in order to write a CSV file in my case, but you can make a Dictionary or what-you-want.

~roughness="~/".standardizePath+/+"/bin/enkode";
~roughnessArray=(~roughness+"-re"+~recpath+"|xargs").unixCmdGetStdOut.asString.split($ );
//~recpath is the path of the sample to analyze.

It will be interesting I think to integrate this analysis into the FluCoMa toolbox.
In that case, I suggest adding a parameter in order to set an analysis window as a number of frames or as a duration in second (inducing inevitably delay for a real time analysis but still exploitable), knowing that about one second is needed to start to have a relatively good estimation. As mentioned in my writings, the analysis should return the “emergent frequency”, its reliability, the relative loudness of this frequency and its reliability.
Thanks for any feedback about this work, and I will be pleased to be part of it if you intend to implement it in FluCoMa unless you prefer to implement the formulas of Eberhard Zwicker described in Psychoacoustics: Facts and Models – which will be even more relevant or interesting to implement…
:slight_smile:

3 Likes