diff --git a/README.md b/README.md index 65b3c33..da66307 100644 --- a/README.md +++ b/README.md @@ -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 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 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 - 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. +### 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 *Licence: GPLv3* *Author: Louis-Joseph Fournier* -*First release date: 2016-?? +*First release date: 2016-01-19 https://github.com/LouJo/SailTuner diff --git a/images/screenshots/desktop-landscape.png b/images/screenshots/desktop-landscape.png new file mode 100644 index 0000000..f1ddb16 Binary files /dev/null and b/images/screenshots/desktop-landscape.png differ diff --git a/qml/Scene.qml b/qml/Scene.qml index 167bff1..c6946f1 100644 --- a/qml/Scene.qml +++ b/qml/Scene.qml @@ -26,7 +26,7 @@ Image { width: 800 height: 400 - source: "../images/bg_portrait.png" + source: "../images/desktop/bg_portrait.png" DesktopTheme { id: theme @@ -47,10 +47,10 @@ Image { function setNoteOctave(n, o) {} } - PlayerScreen { + TunerScreen { tuner: tuner theme: theme - onTogglePlay: tuner.playing ^= true + //onTogglePlay: tuner.playing ^= true } }