Marsyas  0.5.0-beta1
Public Member Functions
Spectrum2ACMChroma Class Reference

Transform an (amplitude) spectrum to a chroma profile. More...

#include <Spectrum2ACMChroma.h>

Inherits MarSystem.

Public Member Functions

void addControls ()
MarSystemclone () const
void myProcess (realvec &inSpectrum, realvec &outChroma)
 Processes data.
void myUpdate (MarControlPtr inSender)
 Updates internal state due to a control change.
 Spectrum2ACMChroma (mrs_string inName)
 Spectrum2ACMChroma (const Spectrum2ACMChroma &inToCopy)
 ~Spectrum2ACMChroma ()

Detailed Description

Transform an (amplitude) spectrum to a chroma profile.

Author:
Matthias Varewyck
Date:
2009 05 18
Todo:
  • Check whether parameters are independent on input sample rate (~= 8kHz)
  • Include check if provided (amplitude) spectrum was correctly computed
  • Include correct error handling (conform Marsyas rules)
  • Let the lowest F0 be higher than the diapason
  • Introduce a highest F0 additional to a lowest F0
  • Add "fan in combinator" to simplify actual chroma profile computation

This class implements the conversion of an (amplitude) spectrum to a chroma profile as described in "a novel chroma representation of polyphonic music based on multiple pitch tracking techniques" which was presented at the 16th ACM International Conference on Multimedia.

The method computes the set of pitches that best explains the salient frequencies present in the (amplitude) spectrum. The method results in (1) a chroma profile and (2) a chord evidence. (1) The chroma profile represents the normalized pitches after they were folded to one octave (2) The chord evidence represents the probability that a chord occurs in the examined frame. For an example, see the function "toy_with_chroma" in the mudbox.

Controls:

Definition at line 57 of file Spectrum2ACMChroma.h.


Constructor & Destructor Documentation

Definition at line 23 of file Spectrum2ACMChroma.cpp.

Spectrum2ACMChroma ( const Spectrum2ACMChroma inToCopy)

Definition at line 117 of file Spectrum2ACMChroma.cpp.

Definition at line 133 of file Spectrum2ACMChroma.cpp.


Member Function Documentation

void addControls ( )

Reimplemented from MarSystem.

Definition at line 144 of file Spectrum2ACMChroma.cpp.

MarSystem * clone ( ) const [virtual]

Implements MarSystem.

Definition at line 138 of file Spectrum2ACMChroma.cpp.

void myProcess ( realvec in,
realvec out 
) [virtual]

Processes data.

Parameters:
inInput data to read.
outOutput data to write.

Implement this method in subclass to define specific data processing.

Implements MarSystem.

Definition at line 224 of file Spectrum2ACMChroma.cpp.

void myUpdate ( MarControlPtr  sender) [virtual]

Updates internal state due to a control change.

Parameters:
senderThe control that triggered the update; more precisely, any control passed to the update() method - could be an invalid one.

Implement this method in subclass to define specific response to control changes.

! should depend on input framesize !!

Reimplemented from MarSystem.

Definition at line 165 of file Spectrum2ACMChroma.cpp.


The documentation for this class was generated from the following files: