Giter Site home page Giter Site logo

tartina / tuna.lv2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from x42/tuna.lv2

0.0 2.0 0.0 971 KB

Musical Instrument Tuner

Home Page: http://x42-plugins.com/x42/x42-tuner

License: GNU General Public License v2.0

Makefile 11.50% C 74.32% HTML 1.76% JavaScript 4.21% CSS 4.42% C++ 2.07% Roff 1.70%

tuna.lv2's Introduction

Tuna.LV2

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

Install

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

  git clone git://github.com/x42/tuna.lv2.git
  cd tuna.lv2
  make submodules
  make
  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.

Usage

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

Screenshots

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.

tuna.lv2's People

Contributors

x42 avatar trebmuh avatar

Watchers

James Cloos avatar Guido avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.