PitchDetection: configuration for low and high notes
With recorded piano samples, it should go from do1 to mi7
This commit is contained in:
parent
a44bb5841c
commit
27f93603ab
4 changed files with 14 additions and 7 deletions
|
@ -138,7 +138,7 @@ Item {
|
||||||
|
|
||||||
theme: main.theme
|
theme: main.theme
|
||||||
|
|
||||||
marks: [1, 2, 3, 4, 5, 6, 7, 8, 9]
|
marks: [1, 2, 3, 4, 5, 6, 7, 8]
|
||||||
//nb_marks_displayed: is_portrait ? 4 : 3
|
//nb_marks_displayed: is_portrait ? 4 : 3
|
||||||
|
|
||||||
width: parent.width * 0.6
|
width: parent.width * 0.6
|
||||||
|
|
|
@ -141,7 +141,7 @@ Item {
|
||||||
anchors.rightMargin: is_portrait ? (parent.width - width) / 2 : parent.width / 20
|
anchors.rightMargin: is_portrait ? (parent.width - width) / 2 : parent.width / 20
|
||||||
theme: main.theme
|
theme: main.theme
|
||||||
|
|
||||||
marks: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
marks: [1, 2, 3, 4, 5, 6, 7, 8]
|
||||||
nb_marks_displayed: is_portrait ? 4 : 3
|
nb_marks_displayed: is_portrait ? 4 : 3
|
||||||
|
|
||||||
width: is_portrait ? meter.width / 2 : parent.width / 6
|
width: is_portrait ? meter.width / 2 : parent.width / 6
|
||||||
|
|
|
@ -22,6 +22,13 @@
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
/* with scpy:
|
||||||
|
*
|
||||||
|
* nyq=rate/2
|
||||||
|
* norm=cutoff/nyq
|
||||||
|
* b, a = butter(order, norm, btype='high', analog=False)
|
||||||
|
*/
|
||||||
|
|
||||||
// high 10hz / 16k
|
// high 10hz / 16k
|
||||||
static double a10[] = { 1 , -2.99214602, 2.98432286, -0.99217678 };
|
static double a10[] = { 1 , -2.99214602, 2.98432286, -0.99217678 };
|
||||||
static double b10[] = { 0.99608071, -2.98824212, 2.98824212, -0.99608071 };
|
static double b10[] = { 0.99608071, -2.98824212, 2.98824212, -0.99608071 };
|
||||||
|
|
|
@ -46,15 +46,15 @@ class PitchDetection {
|
||||||
static const int rate = 16000;
|
static const int rate = 16000;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const int defaultNbFrame = 1024;
|
static const int defaultNbFrame = 2048;
|
||||||
static const int defaultFreqMin = 50;
|
static const int defaultFreqMin = 30;
|
||||||
static const int defaultFreqMax = 2000;
|
static const int defaultFreqMax = 3000;
|
||||||
/// number of analyses to confirm a note
|
/// number of analyses to confirm a note
|
||||||
static const int nbConfirm = 3;
|
static const int nbConfirm = 3;
|
||||||
/// number of analyses to drop a note
|
/// number of analyses to drop a note
|
||||||
static const int nbDefect = 20;
|
static const int nbDefect = 14;
|
||||||
/// number of deviation values for average
|
/// number of deviation values for average
|
||||||
static const int nbDeviationValues = 8;
|
static const int nbDeviationValues = 4;
|
||||||
|
|
||||||
LinearFilter<int16_t> *high_filter;
|
LinearFilter<int16_t> *high_filter;
|
||||||
ZeroCross<int16_t> *cross;
|
ZeroCross<int16_t> *cross;
|
||||||
|
|
Loading…
Reference in a new issue