title: What is the meaning of the EchoNest API's getTimbre vector?
body: <p>The <a href="https://web.archive.org/web/20160528174915/http://developer.echonest.com/docs/v4/_static/AnalyzeDocumentation.pdf" rel="nofollow noreferrer">EchoNest
   Analyzer Documentation</a> states the following regarding timbre:</p>
  
  <blockquote>
    <p><em>timbre</em> is the quality of a musical note or sound that distinguishes
    different types of musical instruments, or voices. It is a complex
    notion also referred to as sound color, texture, or tone quality, and
    is derived from the shape of a segment’s spectro-temporal surface,
    independently of pitch and loudness. The Echo Nest Analyzer’s timbre
    feature is a vector that includes 12 unbounded values roughly centered
    around 0. Those values are high level abstractions of the spectral
    surface, ordered by degree of importance. For completeness however,
    the first dimension represents the average loudness of the segment;
    second emphasizes brightness; third is more closely correlated to the
    flatness of a sound; fourth to sounds with a stronger attack; etc. See
    an image below representing the 12 basis functions (i.e. template
    segments). The actual timbre of the segment is best described as a
    linear combination of these 12 basis functions weighted by the
    coefficient values: timbre = c1 x b1 + c2 x b2 + ... + c12 x b12,
    where c1 to c12 represent the 12 coefficients and b1 to b12 the 12
    basis functions as displayed below. Timbre vectors are best used in
    comparison with each other.
    <a href="https://i.stack.imgur.com/5kWJw.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/5kWJw.png" alt="enter image description here"></a></p>
  </blockquote>
  
  <p>My understanding is that the <code>b</code> vector (<code>{b1...b12}</code>) is what is being returned by your API's <code>getTimbre</code> method. But then where are the <code>{c1...c12}</code> coefficients coming from? I don't understand how to acquire a scalar timbre from a vector timbre (primarily because your analysis API is closed source). Can you help me out with this?</p>