roughness_seth: Spectral roughness (Sethares)

roughness_sethR Documentation

Spectral roughness (Sethares)

Description

Gets the roughness of a sonority according to the model of Sethares (1993). By default, the algorithm is modified according to \insertCiteSethares2005;textualincon and \insertCiteWeisser2013;textualincon: roughness is proportional to the minimum amplitude of each pair of partials, not the product of their amplitudes. This behaviour can be disabled by setting min_amplitude = FALSE.

Usage

roughness_seth(x, min_amplitude = TRUE, ...)

## Default S3 method:
roughness_seth(x, min_amplitude = TRUE, ...)

## S3 method for class 'sparse_fr_spectrum'
roughness_seth(x, min_amplitude = TRUE, ...)

Arguments

x

Object to analyse, which is coerced to the class sparse_fr_spectrum.

  • Numeric vectors will be treated as vectors of MIDI note numbers, and expanded into their implied harmonics.

  • Two-element lists will be treated as finalised spectra, with the first element being a numeric vector of frequencies, and the second element being a numeric vector of amplitudes.

min_amplitude

See dyad_roughness_seth.

...

Further arguments to pass to sparse_fr_spectrum.

Value

Estimated roughness, as a numeric scalar.

Note

\insertCite

Sethares2005;textualincon suggests using loudnesses instead of amplitudes. However, he acknowledges that loudness is difficult to calculate for arbitrary timbres. Furthermore, if we replace amplitude with roughness, we lose the original model's invariance to multiplicative scaling of the original signal. In this implementation, we therefore stay with amplitude, consistent with \insertCiteSethares1993;textualincon.

References

\insertAllCited

pmcharrison/incon documentation built on Feb. 12, 2024, 3:18 a.m.