]> git.cworth.org Git - scherzo/blobdiff - pitch.c
Fix high octave numbers (8+) to not be interpreted as 0.
[scherzo] / pitch.c
diff --git a/pitch.c b/pitch.c
index 211e68c1aeb1252ff60c62b1d214475ffe5d5ce9..6bb64702936363813ac8ebdfae2d1c1f5ac5f5c0 100644 (file)
--- a/pitch.c
+++ b/pitch.c
@@ -18,6 +18,7 @@
  * along with this program.  If not, see http://www.gnu.org/licenses/ .
  */
 
+#include <stdio.h>
 #include <stdlib.h>
 
 #include "pitch.h"
@@ -254,13 +255,13 @@ pitch_from_midi (unsigned char midi_note)
        return PITCH_LITERAL (C, NATURAL, octave);
        break;
     case 1:
-       return PITCH_LITERAL (C, SHARP, octave);
+       return PITCH_LITERAL (D, FLAT, octave);
        break;
     case 2:
        return PITCH_LITERAL (D, NATURAL, octave);
        break;
     case 3:
-       return PITCH_LITERAL (D, SHARP, octave);
+       return PITCH_LITERAL (E, FLAT, octave);
        break;
     case 4:
        return PITCH_LITERAL (E, NATURAL, octave);
@@ -269,22 +270,28 @@ pitch_from_midi (unsigned char midi_note)
        return PITCH_LITERAL (F, NATURAL, octave);
        break;
     case 6:
-       return PITCH_LITERAL (F, SHARP, octave);
+       return PITCH_LITERAL (G, FLAT, octave);
        break;
     case 7:
        return PITCH_LITERAL (G, NATURAL, octave);
        break;
     case 8:
-       return PITCH_LITERAL (G, SHARP, octave);
+       return PITCH_LITERAL (A, FLAT, octave);
        break;
     case 9:
        return PITCH_LITERAL (A, NATURAL, octave);
        break;
     case 10:
-       return PITCH_LITERAL (A, SHARP, octave);
+       return PITCH_LITERAL (B, FLAT, octave);
        break;
     case 11:
        return PITCH_LITERAL (B, NATURAL, octave);
        break;
     }
 }
+
+int
+pitch_enharmonic_to (pitch_t a, pitch_t b)
+{
+    return pitch_to_midi (a) == pitch_to_midi (b);
+}