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 hidden or 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