tonalkey
tonalkey(
@numharmonics 4
@pcpsize 36
@profiletype 'bgate'
@slope 0.6
@usemajmin 0
@usepolyphony 1
@usethreechords 1
@mode 0
) -> llll
Generates an audio descriptor to perform tonal key signature estimation on a buffer.
The resulting buffer will be updated with the following keys:
tonalkey
info
tonalkey is a mirror implementation of the same algorithm in the Essentia library.
For more details on the algorithm, please check the Essentia Algorithms reference.
Arguments
@numharmonics[int]: Number of harmonics that should contribute to the polyphonic profile. (default:4).@pcpsize[int]: Pitch class profile size. (default:36).@profiletype[list]: The type of polyphic profile to use for correlation calculation. (default:'bgate').'diatonic': Binary profile with diatonic notes of both modes.'tonic triad': Just the notes of the major and minor chords. exclusively for testing.'krumhansl': Reference key profiles based on cognitive experiments—useful for pop music.'temperley': Key profiles extracted from corpus analysis of euroclassical music, especially in minor keys.'shaath': Profiles based on Krumhansl's specifically tuned to popular and electronic music.'noland': Profiles from Bach's Well Tempered Klavier.'edma': Automatic profiles extracted from corpus analysis of EDM—better than Shaath's'edmm': Same as edma, but manually tweaked according to heuristic observation.'braw': Profiles obtained by calculating the median profile for each mode from a subset of BeatPort dataset.'bgate': Same as braw but zeroing the 4 less relevant elements of each profile.
@slope[int/float]: Value of the slope of the exponential harmonic contribution to the polyphonic profile. (default:0.6).@usemajmin[int]: Use a third profile called 'majmin' for ambiguous tracks. Only avalable for the edma, bgate and braw profiles. (default:0).0: Off1: On
@usepolyphony[int]: Enables the use of polyphonic profiles to define key profiles—this includes the contributions from triads as well as pitch harmonics. (default:1).0: Off1: On
@usethreechords[int]: Consider only the 3 main triad chords of the key—i.e., T, D, SD—to build the polyphonic profiles. (default:1).0: Off1: On
@mode[int]: Analysis mode. (default:0).0: Global1: Time series2: Time-tagged time series
Output
Tonalkey descriptor [llll]
Usage
tonalkey is meant to be used with the analyze function:
$buffer = importaudio('singing.wav'); ## input buffer
$descr = tonalkey(); ## generate tonalkey audio descriptor
$buffer.view('before analysis');
$buffer = $buffer.analyze($descr); ## apply analysis
$buffer.view('after analysis')