Skip to content
Musical Instrument Tuner
C Makefile CSS JavaScript C++ Roff HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
gui s/MTR_/RTK_/ Mar 3, 2016
img windows packaging Nov 9, 2014
lv2ttl Add brand-name to plugin-name Jul 31, 2019
modgui fix modgui enable button May 14, 2017
robtk @ 6e0faaf Update robtk submodule Oct 13, 2019
src Rate-limit MTS events Aug 13, 2019
.gitattributes Exclude MOD-GUI from dist Apr 13, 2019
.gitignore standalone jack tuner Nov 5, 2014
.gitmodules GUI preparations Nov 30, 2013
COPYING add readme and screenshots Dec 5, 2013
Makefile Improve x-builds (pkg-config variable) Jan 5, 2019
Makefile.git GUI preparations Nov 30, 2013 Update Jul 12, 2015 lv2 version Jun 20, 2015
x42-tuna.1 update man page for v0.5.1 Oct 13, 2019


An musical instrument tuner with strobe characteristics in LV2 plugin format.


Compiling this plugin requires the LV2 SDK, gnu-make, a c-compiler, libpango, libcairo and openGL (sometimes called: glu, glx, mesa).

  git clone git://
  cd tuna.lv2
  make submodules
  sudo make install PREFIX=/usr

Note to packagers: The Makefile honors PREFIX and DESTDIR variables as well as CFLAGS, LDFLAGS and OPTIMIZATIONS (additions to CFLAGS), also see the first 10 lines of the Makefile. You really want to package the superset of x42-plugins.


# Just run the stand-alone app
# Some info
man x42-tuna


screenshot screenshot

Operation Principle

The idea behind tuna.lv2 is to rely on the same principle as strobe-tuners and track a signal's phase. The advantage of this is that it is very reliable, accurate and works even at very low frequencies. While many FFT-based tuners use overtones to increase accuracy and speed. tuna.lv2 always tracks the fundamental of the note and can be used for accurate stretch-tuning.

The principle of mechanical strobe tuners is to simply spin a wheel which has regular markings painted on it. Then shine a stroboscope-light on the wheel which flashes at the frequency of the input signal.

If the signal is 'in-tune' the light-flashes match the frequency of the marks on the wheel and every time the marks are illuminated they will appear on the same position despite that the wheel is moving.

Tuna.lv2 models this behaviour using a delay-line and a delay-locked loop to track the changes of the phase. The phase-change corresponds to what appears as moving-pattern on the mechanical tuner and is visualized in the GUI of the plugin.

Tuna takes a two step approach:

First a rough DFT is used to determine the octave and rough frequency of the signal, this corresponds to setting the speed of the wheel in the mechanical version.

The detected frequency is rounded to the nearest note on the given scale (by default 440Hz tempered) and used to initialize the PLL.

This is only done for convenience of providing an 'auto-tuner'. Tuna.lv2 can be set to 'manual' in which case the user will have to choose which Note or frequency to tune to.

The input signal is band-pass filtered around the target-frequency in order to reliably extract the phase of the signal. The PLL is used to keep track of phase-changes and calculate the actual frequency of the input signal.

You can’t perform that action at this time.