Created
April 18, 2014 19:06
-
-
Save tclamb/11059624 to your computer and use it in GitHub Desktop.
Bach's Invention in C Major, BWV 772
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define C4_ 3821 | |
#define Db4_ 3607 | |
#define D4_ 3404 | |
#define Eb4_ 3213 | |
#define E4_ 3033 | |
#define F4_ 2862 | |
#define Gb4_ 2702 | |
#define G4_ 2550 | |
#define Ab4_ 2407 | |
#define A4_ 2272 | |
#define Bb4_ 2144 | |
#define B4_ 2024 | |
#define C5_ 1910 | |
#define Db5_ 1803 | |
#define D5_ 1702 | |
#define Eb5_ 1606 | |
#define E5_ 1516 | |
#define F5_ 1431 | |
#define Gb5_ 1350 | |
#define G5_ 1275 | |
#define Ab5_ 1203 | |
#define A5_ 1135 | |
#define Bb5_ 1072 | |
#define B5_ 1011 | |
#define C6_ 955 | |
#define Db6_ 901 | |
#define D6_ 850 | |
#define Eb6_ 803 | |
#define E6_ 757 | |
#define F6_ 715 | |
#define Gb6_ 675 | |
#define G6_ 637 | |
#define Ab6_ 601 | |
#define A6_ 567 | |
#define Bb6_ 535 | |
#define B6_ 505 | |
#define C7_ 477 | |
#define bpm (72.) | |
#define dur (1000. * 60. / bpm) | |
#define quarterNote (dur) | |
#define halfNote (2*dur) | |
#define wholeNote (4*dur) | |
#define eighthNote (dur/2) | |
#define sixteenthNote (dur/4) | |
#define thirtySecondNote (dur/8) | |
#define thirtySecondTriplet (dur/12) | |
typedef struct { | |
uint16_t pitch; | |
uint16_t duration; | |
} note; | |
note bachRight[] = { | |
{ 0, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ G5_, eighthNote }, | |
{ C6_, eighthNote }, | |
{ C6_, thirtySecondTriplet }, | |
{ B5_, thirtySecondTriplet }, | |
{ C6_, thirtySecondTriplet }, | |
{ B5_, sixteenthNote }, | |
{ C6_, eighthNote }, | |
{ D6_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ D6_, eighthNote }, | |
{ G6_, eighthNote }, | |
{ G6_, thirtySecondTriplet }, | |
{ F6_, thirtySecondTriplet }, | |
{ G6_, thirtySecondTriplet }, | |
{ F6_, sixteenthNote }, | |
{ G6_, eighthNote }, | |
{ E6_, sixteenthNote }, | |
{ A6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ A6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ Gb5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ A5_, eighthNote }, | |
{ D5_, eighthNote }, | |
{ C6_, thirtySecondNote }, | |
{ B5_, thirtySecondNote }, | |
{ C6_, eighthNote }, | |
{ D6_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ Gb5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ Gb5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ B5_, thirtySecondNote }, | |
{ C6_, thirtySecondNote }, | |
{ D6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ C6_, thirtySecondTriplet }, | |
{ B5_, thirtySecondTriplet }, | |
{ C6_, thirtySecondTriplet }, | |
{ B5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ G5_, eighthNote }, | |
{ 0, eighthNote }, | |
{ 0, quarterNote }, | |
{ 0, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ G5_, thirtySecondTriplet }, | |
{ Gb5_, thirtySecondTriplet }, | |
{ G5_, thirtySecondTriplet }, | |
{ Gb5_, sixteenthNote }, | |
{ 0, eighthNote }, | |
{ 0, quarterNote }, | |
{ 0, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ B5_, eighthNote }, | |
{ 0, eighthNote }, | |
{ 0, quarterNote }, | |
{ 0, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, eighthNote }, | |
{ 0, eighthNote }, | |
{ 0, quarterNote }, | |
{ 0, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ Db6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ D6_, eighthNote }, | |
{ Db6_, eighthNote }, | |
{ D6_, eighthNote }, | |
{ E6_, eighthNote }, | |
{ F6_, eighthNote }, | |
{ A5_, eighthNote }, | |
{ B5_, eighthNote }, | |
{ C6_, eighthNote }, | |
{ D6_, eighthNote }, | |
{ Gb5_, eighthNote }, | |
{ Ab5_, eighthNote }, | |
{ A5_, eighthNote }, | |
{ B5_, eighthNote }, | |
{ C6_, eighthNote }, | |
{ D6_, quarterNote }, | |
{ D6_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ Gb5_, sixteenthNote }, | |
{ Ab5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ Gb5_, sixteenthNote }, | |
{ Ab5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ A6_, sixteenthNote }, | |
{ Ab6_, sixteenthNote }, | |
{ B6_, sixteenthNote }, | |
{ A6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ Ab5_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, eighthNote }, | |
{ B5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ A6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ A6_, sixteenthNote }, | |
{ G6_, halfNote }, | |
{ G6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ A6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ F6_, halfNote }, | |
{ F6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ F6_, halfNote }, | |
{ F6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ E6_, halfNote }, | |
{ E6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ A6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ E6_, sixteenthNote }, | |
{ F6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ A6_, sixteenthNote }, | |
{ B6_, sixteenthNote }, | |
{ C7_, sixteenthNote }, | |
{ A6_, sixteenthNote }, | |
{ B6_, sixteenthNote }, | |
{ G6_, sixteenthNote }, | |
{ C7_, eighthNote }, | |
{ G6_, eighthNote }, | |
{ F6_, thirtySecondTriplet }, | |
{ E6_, thirtySecondTriplet }, | |
{ F6_, thirtySecondTriplet }, | |
{ E6_, sixteenthNote }, | |
{ D6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ Bb5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ Bb5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ C6_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ B5_, sixteenthNote }, | |
{ C6_, halfNote } | |
}; | |
note bachLeft[] = { | |
{ 0, halfNote }, | |
{ 0, sixteenthNote }, | |
{ C4_, sixteenthNote }, | |
{ D4_, sixteenthNote }, | |
{ E4_, sixteenthNote }, | |
{ F4_, sixteenthNote }, | |
{ D4_, sixteenthNote }, | |
{ E4_, sixteenthNote }, | |
{ C4_, sixteenthNote }, | |
{ G4_, quarterNote }, | |
{ 0, quarterNote }, | |
{ 0, sixteenthNote }, | |
{ G4_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ G4_, sixteenthNote }, | |
{ C5_, eighthNote }, | |
{ B4_, eighthNote }, | |
{ C5_, eighthNote }, | |
{ D5_, eighthNote }, | |
{ E5_, eighthNote }, | |
{ G4_, eighthNote }, | |
{ A4_, eighthNote }, | |
{ B4_, eighthNote }, | |
{ C5_, eighthNote }, | |
{ E4_, eighthNote }, | |
{ Gb4_, eighthNote }, | |
{ G4_, eighthNote }, | |
{ A4_, eighthNote }, | |
{ B4_, eighthNote }, | |
{ C5_, quarterNote }, | |
{ C5_, sixteenthNote }, | |
{ D4_, sixteenthNote }, | |
{ E4_, sixteenthNote }, | |
{ Gb4_, sixteenthNote }, | |
{ G4_, sixteenthNote }, | |
{ E4_, sixteenthNote }, | |
{ Gb4_, sixteenthNote }, | |
{ D4_, sixteenthNote }, | |
{ G4_, eighthNote }, | |
{ B4_, eighthNote }, | |
{ C4_, eighthNote }, | |
{ D4_, eighthNote }, | |
{ E4_, eighthNote }, | |
{ Gb4_, eighthNote }, | |
{ G4_, eighthNote }, | |
{ E4_, eighthNote }, | |
{ B4_, eighthNote }, | |
{ B4_, sixteenthNote }, | |
{ C4_, sixteenthNote }, | |
{ D4_, quarterNote }, | |
{ 0, sixteenthNote }, | |
{ G4_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ G4_, sixteenthNote }, | |
{ D4_, eighthNote }, | |
{ G4_, eighthNote }, | |
{ Gb4_, eighthNote }, | |
{ G4_, eighthNote }, | |
{ A4_, sixteenthNote }, | |
{ D4_, sixteenthNote }, | |
{ E4_, sixteenthNote }, | |
{ Gb4_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ E4_, sixteenthNote }, | |
{ Gb4_, sixteenthNote }, | |
{ D4_, sixteenthNote }, | |
{ A4_, eighthNote }, | |
{ D5_, eighthNote }, | |
{ C5_, eighthNote }, | |
{ D5_, eighthNote }, | |
{ G4_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ F5_, eighthNote }, | |
{ E5_, eighthNote }, | |
{ F5_, eighthNote }, | |
{ D5_, eighthNote }, | |
{ E5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, eighthNote }, | |
{ F5_, eighthNote }, | |
{ G5_, eighthNote }, | |
{ E5_, eighthNote }, | |
{ F5_, sixteenthNote }, | |
{ Bb5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ Bb5_, sixteenthNote }, | |
{ A5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ G5_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ Ab4_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ B4_, eighthNote }, | |
{ E4_, eighthNote }, | |
{ D5_, thirtySecondNote }, | |
{ C5_, thirtySecondNote }, | |
{ D5_, eighthNote }, | |
{ E5_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ G4_, sixteenthNote }, | |
{ Gb4_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ Ab4_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ F5_, sixteenthNote }, | |
{ E5_, eighthNote }, | |
{ A4_, eighthNote }, | |
{ E5_, eighthNote }, | |
{ E4_, eighthNote }, | |
{ A4_, quarterNote }, | |
{ 0, quarterNote }, | |
{ 0, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ Db5_, sixteenthNote }, | |
{ E5_, sixteenthNote }, | |
{ D5_, halfNote }, | |
{ D5_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ B4_, halfNote }, | |
{ B4_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ B4_, sixteenthNote }, | |
{ D5_, sixteenthNote }, | |
{ C5_, halfNote }, | |
{ C5_, sixteenthNote }, | |
{ G4_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ Bb4_, sixteenthNote }, | |
{ C5_, sixteenthNote }, | |
{ A4_, sixteenthNote }, | |
{ Bb4_, sixteenthNote }, | |
{ G4_, sixteenthNote }, | |
{ A4_, eighthNote }, | |
{ Bb4_, eighthNote }, | |
{ A4_, eighthNote }, | |
{ G4_, eighthNote }, | |
{ F4_, eighthNote }, | |
{ D5_, eighthNote }, | |
{ C5_, eighthNote }, | |
{ Bb4_, eighthNote }, | |
{ A4_, eighthNote }, | |
{ F5_, eighthNote }, | |
{ E5_, eighthNote }, | |
{ D5_, eighthNote }, | |
{ E5_, sixteenthNote }, | |
{ D4_, sixteenthNote }, | |
{ E4_, sixteenthNote }, | |
{ F4_, sixteenthNote }, | |
{ G4_, sixteenthNote }, | |
{ E4_, sixteenthNote }, | |
{ F4_, sixteenthNote }, | |
{ D4_, sixteenthNote }, | |
{ E4_, eighthNote }, | |
{ C4_, eighthNote }, | |
{ D4_, eighthNote }, | |
{ E4_, eighthNote }, | |
{ F4_, sixteenthNote }, | |
{ D4_, sixteenthNote }, | |
{ E4_, sixteenthNote }, | |
{ F4_, sixteenthNote }, | |
{ G4_, quarterNote }, | |
{ C4_, halfNote } | |
}; | |
const uint16_t bachLeftLength = sizeof(bachLeft)/sizeof(bachLeft[0]); | |
const uint16_t bachRightLength = sizeof(bachRight)/sizeof(bachRight[0]); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment