From 46e9a2072aecb33f37aadf36ad783639b3877ce8 Mon Sep 17 00:00:00 2001 From: "sgunderson@bigfoot.com" <> Date: Mon, 19 Jul 2010 23:18:03 +0200 Subject: [PATCH] #define away the 440 constant, in case you want to tune with a capo. --- pitch.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pitch.cpp b/pitch.cpp index 12cf6d8..39e20ce 100644 --- a/pitch.cpp +++ b/pitch.cpp @@ -12,6 +12,7 @@ #include "pitchdetector.h" +#define BASE_PITCH 440.0 #define SAMPLE_RATE 22050 #define FFT_LENGTH 4096 /* in samples */ #define PAD_FACTOR 2 /* 1/pf of the FFT samples are real samples, the rest are padding */ @@ -127,7 +128,7 @@ void write_sine(int dsp_fd, double freq, unsigned num_samples) std::string freq_to_tonename(double freq) { std::string notenames[] = { "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B" }; - double half_notes_away = 12.0 * log2(freq / 440.0) - 3.0; + double half_notes_away = 12.0 * log2(freq / BASE_PITCH) - 3.0; int hnai = int(floor(half_notes_away + 0.5)); int octave = (hnai + 48) / 12; @@ -140,7 +141,7 @@ std::string freq_to_tonename(double freq) void print_spectrogram(double freq, double amp) { std::string notenames[] = { "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B" }; - double half_notes_away = 12.0 * log2(freq / 440.0) - 3.0; + double half_notes_away = 12.0 * log2(freq / BASE_PITCH) - 3.0; int hnai = int(floor(half_notes_away + 0.5)); int octave = (hnai + 48) / 12; @@ -174,12 +175,12 @@ struct note { double freq; }; static note notes[] = { - { "E-3", 110.0 * (3.0/4.0) }, - { "A-3", 110.0 }, - { "D-4", 110.0 * (4.0/3.0) }, - { "G-4", 110.0 * (4.0/3.0)*(4.0/3.0) }, - { "B-4", 440.0 * (3.0/4.0)*(3.0/4.0) }, - { "E-5", 440.0 * (3.0/4.0) } + { "E-3", BASE_PITCH/4.0 * (3.0/4.0) }, + { "A-3", BASE_PITCH/4.0 }, + { "D-4", BASE_PITCH/4.0 * (4.0/3.0) }, + { "G-4", BASE_PITCH/4.0 * (4.0/3.0)*(4.0/3.0) }, + { "B-4", BASE_PITCH * (3.0/4.0)*(3.0/4.0) }, + { "E-5", BASE_PITCH * (3.0/4.0) } }; void print_spectrogram(double freq, double amp) -- 2.39.2