Realtime C# Pitch Tracker

  •        546

Use the PitchTracker class to easily track the pitch of a waveform (typically from vocals). It is fast (~3000 detections/sec) and accurate (within 0.02% of the actual frequency). It is written in C#. A sample app is included.



Related Projects

TarsosDSP - A Real-Time Audio Processing Framework in Java

  •    Java

TarsosDSP is a Java library for audio processing. Its aim is to provide an easy-to-use interface to practical music processing algorithms implemented, as simply as possible, in pure Java and without any other external dependencies. The library tries to hit the sweet spot between being capable enough to get real tasks done but compact and simple enough to serve as a demonstration on how DSP algorithms works. TarsosDSP features an implementation of a percussion onset detector and a number of pitch detection algorithms: YIN, the Mcleod Pitch method and a “Dynamic Wavelet Algorithm Pitch Tracking” algorithm. Also included is a Goertzel DTMF decoding algorithm, a time stretch algorithm (WSOLA), resampling, filters, simple synthesis, some audio effects, and a pitch shifting algorithm. To show the capabilities of the library, TarsosDSP example applications are available. Head over to the TarosDSP release directory for freshly baked binaries and code smell free (that is the goal anyway), oven-fresh sources.



iStudio is an open source audio development platform aiming to become professional audio and signal processing suite with fully functional audio editor.

Audio Pitch & Shift


Audio Pitch & Shift is a complete audio player intended to be useful for musicians who wants to slow down or change the pitch of the music.

Beethoven - :guitar: A maestro of pitch detection.

  •    Swift

Beethoven is an audio processing Swift library that provides an easy-to-use interface to solve an age-old problem of pitch detection of musical signals. You can read more about this subject on Wikipedia. The basic workflow is to get the audio buffer from the input/output source, transform it to a format applicable for processing and apply one of the pitch estimation algorithms to find the fundamental frequency. For the end user it comes down to choosing estimation algorithm and implementation of delegate methods.

The Harmony of the World

  •    Java

A fair attempt at the Keplerian tradition to explore the solar system

Tone.js - A Web Audio framework for making interactive music in the browser.

  •    Javascript

Tone.js is a Web Audio framework for creating interactive music in the browser. The architecture of Tone.js aims to be familiar to both musicians and audio programmers looking to create web-based audio applications. On the high-level, Tone offers common DAW (digital audio workstation) features like a global transport for scheduling events and prebuilt synths and effects. For signal-processing programmers (coming from languages like Max/MSP), Tone provides a wealth of high performance, low latency building blocks and DSP modules to build your own synthesizers, effects, and complex control signals. Full Installation Instruction.

gibberish - Fast, JavaScript DSP library that creates JIT optimized audio callbacks using code generation techniques

  •    Javascript

Gibberish is designed to be a fast audio API for the browser. It takes the low-level building blocks provided by genish.js and uses them to create higher-level synthesizers, effects, and sequencers. Gibberish proceses each sample of each synthesis block one sample at a time, enabling a variety of effects not typically possible in browser-based synthesis systems, most importantly single-sample feedback loops and audio-rate modulation of scheduling. Note that this branch is for version 3 of the library. See the master branch for the pre-June 2017 version that is currently used in Gibber. There is also a tagged release of the older version (2.0.0).

aubio - a library for audio and music analysis

  •    C

aubio is a library to label music and sounds. It listens to audio signals and attempts to detect events. For instance, when a drum is hit, at which frequency is a note, or at what tempo is a rhythmic melody. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio.

PitchDetect - Pitch detection in Web Audio using autocorrelation

  •    Javascript

I whipped this app up to start experimenting with pitch detection, and also to test live audio input. It used to perform a naive (zero-crossing based) pitch detection algorithm; now it uses a naively-implemented auto-correlation algorithm in realtime, so it should work well with most monophonic waveforms (although strong harmonics will throw it off a bit). It works well with whistling (which has a clear, simple waveform); it also works pretty well to tune my guitar. Live instance hosted on

NVDSP - iOS/OSX DSP for audio (with Novocaine)

  •    Objective-C

Implement high quality audio filters with just a few lines of code and Novocaine, or your own audio library of choice. To start out I recommend you to get a fresh copy of Novocaine and open Novocaine's excellent example project. Then import NVDSP and the Filters folder and start your filtering journey.

pyo - Python DSP module -

  •    C

pyo is a Python module written in C to help digital signal processing script creation. pyo is a Python module containing classes for a wide variety of audio signal processing types. With pyo, user will be able to include signal processing chains directly in Python scripts or projects, and to manipulate them in real time through the interpreter. Tools in pyo module offer primitives, like mathematical operations on audio signal, basic signal processing (filters, delays, synthesis generators, etc.), but also complex algorithms to create sound granulation and others creative audio manipulations. pyo supports OSC protocol (Open Sound Control), to ease communications between softwares, and MIDI protocol, for generating sound events and controlling process parameters. pyo allows creation of sophisticated signal processing chains with all the benefits of a mature, and widely used, general programming language.

DSPdap - DSP based Digital Audio Player

  •    C

Hardware and firmware for a DSP based digital audio MP3 player with USB pen drive funtionality, using a 16-bit fixed point Texas Instruments TMS320 C55x DSP and CompactFlash card. This is an open source and open hardware MP3 player project.

Maximilian - C++ Audio and Music DSP Library

  •    C++

C++ Audio and Music DSP Library

web-audio-api - Node.js implementation of Web audio API

  •    Javascript

This library implements the Web Audio API specification (also know as WAA) on Node.js. By default, web-audio-api doesn't play back the sound it generates. In fact, an AudioContext has no default output, and you need to give it a writable node stream to which it can write raw PCM audio. After creating an AudioContext, set its output stream like this : audioContext.outStream = writableStream.

essentia - C++ library for audio and music analysis, description and synthesis, including Python bindings

  •    Jupyter

Essentia is an open-source C++ library for audio analysis and audio-based music information retrieval released under the Affero GPL license. It contains an extensive collection of reusable algorithms which implement audio input/output functionality, standard digital signal processing blocks, statistical characterization of data, and a large set of spectral, temporal, tonal and high-level music descriptors. The library is also wrapped in Python and includes a number of predefined executable extractors for the available music descriptors, which facilitates its use for fast prototyping and allows setting up research experiments very rapidly. Furthermore, it includes a Vamp plugin to be used with Sonic Visualiser for visualization purposes. Essentia is designed with a focus on the robustness of the provided music descriptors and is optimized in terms of the computational cost of the algorithms. The provided functionality, specifically the music descriptors included in-the-box and signal processing algorithms, is easily expandable and allows for both research experiments and development of large-scale industrial applications. If you use example extractors (located in src/examples), or your own code employing Essentia algorithms to compute descriptors, you should be aware of possible incompatibilities when using different versions of Essentia.

Evolutif Audio Engine

  •    C++

Cross-platform audio engine that implements features necessary for basic audio processing such as file loading/saving, audio mixing, sample/bit rate conversion, audio mixing/chaining, effects processing and some simple DSP operations. Still under develo

DeaDBeeF - The Ultimate Music Player

  •    C++

DeaDBeeF is an audio player which supports mp3, ogg vorbis, flac, ape, wv/iso.wv, wav, m4a/mp3 (aac and alac), mpc, tta, cd audio, and many more formats. It has no no GNOME or KDE dependencies. Its feature include GUI using GTK2 and GTK3, 18-band graphical equalizer and other DSP plugins, Gapless playback, Radio streaming, Transcode files to other formats, OSD notifications about current playing songs and lot more.

Mixxx - DJ software

  •    C++

Mixxx is Free DJ software that gives you everything you need to perform live DJ mixes. It integrates the tools DJs need to perform creative live mixes with digital music files.

DBMix Digital Audio Mixing System

  •    C

DBMix is a DJ mixer for digital audio. Current features: combines multiple streams into one output stream, pitch control, cueing, audio format conversion. DJ Mixer style gui (crossfader), xmms output plugin, command line client.