Readme file updated with screenshot

This commit is contained in:
Louis-Joseph Fournier 2016-01-19 16:05:33 +01:00
parent 4f261763ed
commit c87d135666
3 changed files with 25 additions and 5 deletions

View file

@ -4,6 +4,10 @@ SailTuner is a chromatic multi-temperament instrument tuner for [Sailfish OS](ht
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. 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.
It can also play a note, choosed with a scale flickable by user.
![](https://raw.githubusercontent.com/LouJo/SailTuner/master/images/screenshots/desktop-landscape.png)
### Pitch detection algorithm ### Pitch detection algorithm
The algorithm for fundamental frequency detection: The algorithm for fundamental frequency detection:
@ -14,16 +18,32 @@ The algorithm for fundamental frequency detection:
- octave filtering: drop a frequency if already a higher octave for same note in some conditions - 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 - 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 audio input rate is 16KHz ; audio frames are analysed every 2048 samples (128ms) and a note is confirmed after 3 chunks (384ms).
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. 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.
### Temperaments
The temperaments are stored in .csv files. At beginning, the programm scans every .csv file in the data/ dir and makes temperament list.
Every line in a file is a temperament: the first column is the temperament name, and columns 2 to 13 are the notes frequencies from C-4 to B-4
### Note player
A frequency player module makes the signal at given frequency. There are 3 waveforms in the code:
- Sinus
- Triangle (ie pair harmonics)
- Sinus + harmonics (1/n x f(n))
Since the speaker of Jolla phone have very low intensity for low frequencies, the third solution is used, and the intensity is higher for lower notes.
====== ======
### Copyright ### Copyright
*Licence: GPLv3* *Licence: GPLv3*
*Author: Louis-Joseph Fournier* *Author: Louis-Joseph Fournier*
*First release date: 2016-?? *First release date: 2016-01-19
https://github.com/LouJo/SailTuner https://github.com/LouJo/SailTuner

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

View file

@ -26,7 +26,7 @@ Image {
width: 800 width: 800
height: 400 height: 400
source: "../images/bg_portrait.png" source: "../images/desktop/bg_portrait.png"
DesktopTheme { DesktopTheme {
id: theme id: theme
@ -47,10 +47,10 @@ Image {
function setNoteOctave(n, o) {} function setNoteOctave(n, o) {}
} }
PlayerScreen { TunerScreen {
tuner: tuner tuner: tuner
theme: theme theme: theme
onTogglePlay: tuner.playing ^= true //onTogglePlay: tuner.playing ^= true
} }
} }