Chromatic tuner for SailfishOS with multi-temperament support
Find a file
Louis-Joseph Fournier e45423edde Player: be smooth when play stops
- free pulseaudio playback after a delay, to permit buffered sound to play

- do zero crossing in playing signal to detect the right moment to stop or
  update frequency
2016-01-14 15:46:36 +01:00
data Temperaments: load from csv file in qrc ressources 2016-01-03 22:35:08 +01:00
images PlayerScreen: gui for player 2016-01-11 12:38:05 +01:00
qml Player: works on Sailfish emulator. 2016-01-13 12:30:17 +01:00
rpm Playing works on Jolla device 2016-01-13 15:20:35 +01:00
src Player: be smooth when play stops 2016-01-14 15:46:36 +01:00
.gitignore First commit for SailTuner 2015-12-26 20:46:02 +01:00
harbour-sailtuner.desktop Sailfish: build integration, display frequencie 2015-12-27 10:57:37 +01:00
harbour-sailtuner.png Sailfish: build integration, display frequencie 2015-12-27 10:57:37 +01:00
harbour-sailtuner.pro Playing works on Jolla device 2016-01-13 15:20:35 +01:00
LICENSE Licence to GPLv3 and Readme file 2016-01-03 17:32:36 +01:00
README.md Licence to GPLv3 and Readme file 2016-01-03 17:32:36 +01:00
Tuner.pro Player: implementation complete 2016-01-11 12:37:25 +01:00

SailTuner

SailTuner is a chromatic multi-temperament instrument tuner for Sailfish OS.

It gets audio data from microphone, find the fundamental frequency, and then display the note, the octave and the deviation according to note reference and temperament.

Pitch detection algorithm

The algorithm for fundamental frequency detection:

  • high-pass filter (10Hz)
  • zero-crossing detection with linear interpolation
  • pattern recognition from regions, with time based standart deviation
  • octave filtering: drop a frequency if already a higher octave for same note in some conditions
  • post filter: wait few analyses to confirm or defect a note, and make a turning average for note deviation

The audio input rate is 16KHz ; audio frames are analysed every 1024 samples (64ms) and a note is confirmed after 4 chunks (256ms).

The note is found compared to an array of frequencies modulo one octave. The comparison array is built from a temperament and a 'A4' reference, default to 440Hz and equal temperament.

======

Licence: GPLv3
Author: Louis-Joseph Fournier
*First release date: 2016-??

https://github.com/LouJo/SailTuner