Spectral Peak Analyzer

About

This Javascript app helps with ‘spectral transcription’: that is, determining the most prominent frequencies within an audio extract and converting them into music notation.

It accepts a spectral plot data file exported from Audacity (or a BPF file exported from Audiosculpt), and analyzes the loudest spectral peaks, using an intelligent peak-picking algorithm. It outputs the pitches (and their quartertone tunings), sorted by amplitude. The analysis algorithm includes useful filtering and sanity checks, such as avoiding having more than one peak within a particular interval, having a minimum frequency value, and adding amplitude compensation to bring out higher harmonics.

How to use

  • Open your audio file in Audacity and select a small section you wish to analyse (typically around 150–200 ms).

  • Choose AnalyzePlot Spectrum, then adjust the Frequency Analysis settings — in particular, set Size to at least 4096.

  • When you’re happy with the spectrum, click Export… to save the analysis as a .txt file.

  • Open the Spectral Peak Analyzer and click Open File to load the exported .txt file.

  • Adjust the analysis settings as needed, then click Calculate to analyse the spectral peaks.

  • The resulting data in the Output table can be copied into Excel for further refinement, or exported as a MusicXML file for import into MuseScore or Sibelius*.

Spectral Data
Copy/paste an Audacity .txt or Audiosculpt BPF file, or click 'Import from .txt'.

Data output

(tab-delimited, for pasting into Excel)
Music Notation

* NB: Sibelius does not correctly import quartertones from MusicXML files