svcore
1.9
|
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ 00002 00003 /* 00004 Sonic Visualiser 00005 An audio file viewer and annotation editor. 00006 Centre for Digital Music, Queen Mary, University of London. 00007 This file copyright 2006 Chris Cannam. 00008 00009 This program is free software; you can redistribute it and/or 00010 modify it under the terms of the GNU General Public License as 00011 published by the Free Software Foundation; either version 2 of the 00012 License, or (at your option) any later version. See the file 00013 COPYING included with this distribution for more information. 00014 */ 00015 00016 #ifndef _PITCH_H_ 00017 #define _PITCH_H_ 00018 00019 #include <QString> 00020 00021 class Pitch 00022 { 00023 public: 00033 static float getFrequencyForPitch(int midiPitch, 00034 float centsOffset = 0, 00035 float concertA = 0.0); 00036 00049 static int getPitchForFrequency(float frequency, 00050 float *centsOffsetReturn = 0, 00051 float concertA = 0.0); 00052 00067 static int getPitchForFrequencyDifference(float frequencyA, 00068 float frequencyB, 00069 float *centsOffsetReturn = 0, 00070 float concertA = 0.0); 00071 00085 static QString getPitchLabel(int midiPitch, 00086 float centsOffset = 0, 00087 bool useFlats = false); 00088 00100 static QString getPitchLabelForFrequency(float frequency, 00101 float concertA = 0.0, 00102 bool useFlats = false); 00103 00108 static QString getLabelForPitchRange(int semis, float cents = 0); 00109 00121 static bool isFrequencyInMidiRange(float frequency, 00122 float concertA = 0.0); 00123 }; 00124 00125 00126 #endif