From: Carl Worth Date: Tue, 1 Oct 2013 19:20:06 +0000 (-0700) Subject: Prefer flats rather than sharps when converting from MIDI X-Git-Url: https://git.cworth.org/git?p=scherzo;a=commitdiff_plain;h=a53d70ed61f87a5a49426b1e3066dbba09907199;hp=ff7437e171dab5bc3868ce65ecacf8e77c6e8df3 Prefer flats rather than sharps when converting from MIDI It's ambiguous before we look at the key, (which often tells us what to do). But when the key doesn't indicate, we can really say flat from above or sharp from below. The preference for choosing flat here is so that if we input a scale such as Db major, we get that key signature (with 5 flats) rather than the rather unlikely key of C# with 7 sharps. --- diff --git a/pitch.c b/pitch.c index 03eb481..6bb6470 100644 --- a/pitch.c +++ b/pitch.c @@ -255,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); @@ -270,19 +270,19 @@ 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);