dyedgreen / chords

The (web) app for people without perfect pitch

Home Page:https://dyedgreen.github.io/chords

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

logo

Chords

Chords recognizes musical notes present in played audio. It runs on most modern desktop and mobile browsers.

Algorithm

To recognize notes, the following process is used:

  • The audio input is split into 4096 sample wide chunks.
  • Every 1/10 second, this buffer is transformed to a power spectrum in frequency space using fast Fourier Transform. Frequencies that do not correspond to musical notes are discarded.
  • A new analysis series is started whenever the total power in the spectrum more than doubles between consecutive spectra.
  • Whenever an analysis series is started, a Bayes Filter is used consecutively to determine which of the notes in the spectrum are being played and which are overtones or noise. (See here for a Jupyter Notebook with examples.)

example spectrum

Example Spectrum showing a C4 major. The chord is highlighted in red.

Credits

Chords is made by Tilman Roeder for the SWE Project Competition. Icons based on the In The Studio icon-set.

About

The (web) app for people without perfect pitch

https://dyedgreen.github.io/chords


Languages

Language:JavaScript 79.0%Language:HTML 12.2%Language:CSS 8.8%