Video MIDIfier (Teaser)

Have questions? Just saying hello? This is the place.
No explicit, hateful, or hurtful language. Nothing illegal.
Post Reply
thiagolr
Posts: 37

Post by thiagolr »

Hi,

I'm working on an application that will convert a video to a MIDI file. I know there are a few other options available, but I wanted to have more control over the process and add more features.

HOW IT WORKS:
1) Extract the frames from a video file
2) Analyze frame by frame identifying key presses/releases
3) Record the key presses/releases to a MIDI file
4) Fingering analysis and suggestion

You can input additional information in order to have a higher quality MIDI and Sheet, such as:
- Key signature
- Time signature
- Octave shift (left/right hand)
- Initial rest (left/right hand)
- Shortest dotted note
- First note

Here is an example for Bach - Minuet in G:

Bach - Minuet in G.mid
(2.99 KiB) Downloaded 66 times

Bach - Minuet in G.png
Bach - Minuet in G.png (103.97 KiB) Viewed 8431 times

Spoiler:

Code: Select all

TEMPO = 120
KEY SIGNATURE = G MAJOR
TIME SIGNATURE = 3/4
FIRST NOTE = QUARTER
RIGHT HAND OCTAVE SHIFT = +1
FPS = 23.98
LEFT HAND KEYS = 70
RIGHT HAND KEYS = 254
LEFT HAND FINGERING = t1:1343215543231432141134321554323143214143255355343512444325535534351244
RIGHT HAND FINGERING = t0:51234511512345114543234321212313251234511512345114543234321232121512345115123451145432343212123132512345115123451145432343212321215345341231423413231123123432314551215121543213451231234323512153453412314234132311231234323145512151215432134512312343235121
------------------------------------------
FRAME | ACTION  | HAND  | KEY | VL | DUR |
------------------------------------------
0     |  PRESS  | LEFT  | G2  | 43 |     @
0     |  PRESS  | RIGHT | D4  | 62 |     @
10    | RELEASE | RIGHT | D4  | 62 | 11  @ QUARTER
12    |  PRESS  | RIGHT | G3  | 55 |     @
18    | RELEASE | RIGHT | G3  | 55 | 7   @ EIGHTH
19    |  PRESS  | RIGHT | A3  | 57 |     @
23    | RELEASE | RIGHT | A3  | 57 | 5   @ EIGHTH
24    |  PRESS  | RIGHT | B3  | 59 |     @
30    | RELEASE | RIGHT | B3  | 59 | 7   @ EIGHTH
31    |  PRESS  | RIGHT | C4  | 60 |     @
33    | RELEASE | LEFT  | G2  | 43 | 34  @ HALF_DOT
35    | RELEASE | RIGHT | C4  | 60 | 5   @ EIGHTH
36    |  PRESS  | LEFT  | B2  | 47 |     @
36    |  PRESS  | RIGHT | D4  | 62 |     @
46    | RELEASE | RIGHT | D4  | 62 | 11  @ QUARTER
48    |  PRESS  | RIGHT | G3  | 55 |     @
58    | RELEASE | RIGHT | G3  | 55 | 11  @ QUARTER
60    |  PRESS  | RIGHT | G3  | 55 |     @
68    | RELEASE | LEFT  | B2  | 47 | 33  @ HALF_DOT
70    | RELEASE | RIGHT | G3  | 55 | 11  @ QUARTER
72    |  PRESS  | LEFT  | C3  | 48 |     @
72    |  PRESS  | RIGHT | E4  | 64 |     @
82    | RELEASE | RIGHT | E4  | 64 | 11  @ QUARTER
84    |  PRESS  | RIGHT | C4  | 60 |     @
90    | RELEASE | RIGHT | C4  | 60 | 7   @ EIGHTH
91    |  PRESS  | RIGHT | D4  | 62 |     @
95    | RELEASE | RIGHT | D4  | 62 | 5   @ EIGHTH
96    |  PRESS  | RIGHT | E4  | 64 |     @
102   | RELEASE | RIGHT | E4  | 64 | 7   @ EIGHTH
103   |  PRESS  | RIGHT | F#4 | 66 |     @
104   | RELEASE | LEFT  | C3  | 48 | 33  @ HALF_DOT
107   | RELEASE | RIGHT | F#4 | 66 | 5   @ EIGHTH
108   |  PRESS  | LEFT  | B2  | 47 |     @
108   |  PRESS  | RIGHT | G4  | 67 |     @
117   | RELEASE | RIGHT | G4  | 67 | 10  @ QUARTER
120   |  PRESS  | RIGHT | G3  | 55 |     @
129   | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
132   |  PRESS  | RIGHT | G3  | 55 |     @
140   | RELEASE | LEFT  | B2  | 47 | 33  @ HALF_DOT
141   | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
144   |  PRESS  | LEFT  | A2  | 45 |     @
144   |  PRESS  | RIGHT | C4  | 60 |     @
153   | RELEASE | RIGHT | C4  | 60 | 10  @ QUARTER
156   |  PRESS  | RIGHT | D4  | 62 |     @
161   | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
162   |  PRESS  | RIGHT | C4  | 60 |     @
167   | RELEASE | RIGHT | C4  | 60 | 6   @ EIGHTH
168   |  PRESS  | RIGHT | B3  | 59 |     @
173   | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
174   |  PRESS  | RIGHT | A3  | 57 |     @
176   | RELEASE | LEFT  | A2  | 45 | 33  @ HALF_DOT
179   | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
180   |  PRESS  | LEFT  | G2  | 43 |     @
180   |  PRESS  | RIGHT | B3  | 59 |     @
189   | RELEASE | RIGHT | B3  | 59 | 10  @ QUARTER
193   |  PRESS  | RIGHT | C4  | 60 |     @
197   | RELEASE | RIGHT | C4  | 60 | 5   @ EIGHTH
198   |  PRESS  | RIGHT | B3  | 59 |     @
203   | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
205   |  PRESS  | RIGHT | A3  | 57 |     @
209   | RELEASE | RIGHT | A3  | 57 | 5   @ EIGHTH
210   |  PRESS  | RIGHT | G3  | 55 |     @
213   | RELEASE | LEFT  | G2  | 43 | 34  @ HALF_DOT
215   | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
217   |  PRESS  | LEFT  | D3  | 50 |     @
217   |  PRESS  | RIGHT | F#3 | 54 |     @
225   | RELEASE | RIGHT | F#3 | 54 | 9   @ QUARTER
229   |  PRESS  | RIGHT | G3  | 55 |     @
233   | RELEASE | RIGHT | G3  | 55 | 5   @ EIGHTH
234   |  PRESS  | RIGHT | A3  | 57 |     @
239   | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
241   |  PRESS  | RIGHT | B3  | 59 |     @
245   | RELEASE | RIGHT | B3  | 59 | 5   @ EIGHTH
246   |  PRESS  | RIGHT | G3  | 55 |     @
249   | RELEASE | LEFT  | D3  | 50 | 33  @ HALF_DOT
251   | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
253   |  PRESS  | LEFT  | D3  | 50 |     @
253   |  PRESS  | RIGHT | B3  | 59 |     @
261   | RELEASE | RIGHT | B3  | 59 | 9   @ QUARTER
264   |  PRESS  | RIGHT | A3  | 57 |     @
267   | RELEASE | LEFT  | D3  | 50 | 15  @ QUARTER_DOT
270   |  PRESS  | LEFT  | C3  | 48 |     @
275   | RELEASE | LEFT  | C3  | 48 | 6   @ EIGHTH
276   |  PRESS  | LEFT  | B2  | 47 |     @
281   | RELEASE | LEFT  | B2  | 47 | 6   @ EIGHTH
282   |  PRESS  | LEFT  | A2  | 45 |     @
285   | RELEASE | RIGHT | A3  | 57 | 22  @ HALF
287   | RELEASE | LEFT  | A2  | 45 | 6   @ EIGHTH
288   |  PRESS  | LEFT  | B2  | 47 |     @
288   |  PRESS  | RIGHT | D4  | 62 |     @
297   | RELEASE | RIGHT | D4  | 62 | 10  @ QUARTER
300   |  PRESS  | RIGHT | G3  | 55 |     @
305   | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
306   |  PRESS  | RIGHT | A3  | 57 |     @
311   | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
312   |  PRESS  | RIGHT | B3  | 59 |     @
317   | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
318   |  PRESS  | RIGHT | C4  | 60 |     @
320   | RELEASE | LEFT  | B2  | 47 | 33  @ HALF_DOT
323   | RELEASE | RIGHT | C4  | 60 | 6   @ EIGHTH
324   |  PRESS  | LEFT  | G2  | 43 |     @
324   |  PRESS  | RIGHT | D4  | 62 |     @
333   | RELEASE | RIGHT | D4  | 62 | 10  @ QUARTER
336   |  PRESS  | RIGHT | G3  | 55 |     @
345   | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
348   |  PRESS  | RIGHT | G3  | 55 |     @
356   | RELEASE | LEFT  | G2  | 43 | 33  @ HALF_DOT
357   | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
360   |  PRESS  | LEFT  | C3  | 48 |     @
360   |  PRESS  | RIGHT | E4  | 64 |     @
369   | RELEASE | RIGHT | E4  | 64 | 10  @ QUARTER
372   |  PRESS  | RIGHT | C4  | 60 |     @
377   | RELEASE | RIGHT | C4  | 60 | 6   @ EIGHTH
378   |  PRESS  | RIGHT | D4  | 62 |     @
383   | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
384   |  PRESS  | RIGHT | E4  | 64 |     @
389   | RELEASE | RIGHT | E4  | 64 | 6   @ EIGHTH
390   |  PRESS  | RIGHT | F#4 | 66 |     @
392   | RELEASE | LEFT  | C3  | 48 | 33  @ HALF_DOT
395   | RELEASE | RIGHT | F#4 | 66 | 6   @ EIGHTH
396   |  PRESS  | LEFT  | B2  | 47 |     @
396   |  PRESS  | RIGHT | G4  | 67 |     @
405   | RELEASE | RIGHT | G4  | 67 | 10  @ QUARTER
408   |  PRESS  | RIGHT | G3  | 55 |     @
417   | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
420   |  PRESS  | RIGHT | G3  | 55 |     @
428   | RELEASE | LEFT  | B2  | 47 | 33  @ HALF_DOT
429   | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
432   |  PRESS  | LEFT  | A2  | 45 |     @
432   |  PRESS  | RIGHT | C4  | 60 |     @
441   | RELEASE | RIGHT | C4  | 60 | 10  @ QUARTER
444   |  PRESS  | RIGHT | D4  | 62 |     @
449   | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
450   |  PRESS  | RIGHT | C4  | 60 |     @
455   | RELEASE | RIGHT | C4  | 60 | 6   @ EIGHTH
456   |  PRESS  | RIGHT | B3  | 59 |     @
461   | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
462   |  PRESS  | RIGHT | A3  | 57 |     @
464   | RELEASE | LEFT  | A2  | 45 | 33  @ HALF_DOT
467   | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
468   |  PRESS  | LEFT  | G2  | 43 |     @
468   |  PRESS  | RIGHT | B3  | 59 |     @
477   | RELEASE | RIGHT | B3  | 59 | 10  @ QUARTER
480   |  PRESS  | RIGHT | C4  | 60 |     @
485   | RELEASE | RIGHT | C4  | 60 | 6   @ EIGHTH
486   |  PRESS  | RIGHT | B3  | 59 |     @
491   | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
492   |  PRESS  | RIGHT | A3  | 57 |     @
497   | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
498   |  PRESS  | RIGHT | G3  | 55 |     @
500   | RELEASE | LEFT  | G2  | 43 | 33  @ HALF_DOT
503   | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
504   |  PRESS  | LEFT  | C3  | 48 |     @
504   |  PRESS  | RIGHT | A3  | 57 |     @
513   | RELEASE | RIGHT | A3  | 57 | 10  @ QUARTER
516   |  PRESS  | RIGHT | B3  | 59 |     @
521   | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
522   |  PRESS  | RIGHT | A3  | 57 |     @
527   | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
528   |  PRESS  | RIGHT | G3  | 55 |     @
533   | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
534   |  PRESS  | RIGHT | F#3 | 54 |     @
535   | RELEASE | LEFT  | C3  | 48 | 32  @ HALF_DOT
539   | RELEASE | RIGHT | F#3 | 54 | 6   @ EIGHTH
540   |  PRESS  | LEFT  | G2  | 43 |     @
540   |  PRESS  | RIGHT | G3  | 55 |     @
571   | RELEASE | LEFT  | G2  | 43 | 32  @ HALF_DOT
571   | RELEASE | RIGHT | G3  | 55 | 32  @ HALF_DOT
576   |  PRESS  | LEFT  | G2  | 43 |     @
576   |  PRESS  | RIGHT | D4  | 62 |     @
585   | RELEASE | RIGHT | D4  | 62 | 10  @ QUARTER
588   |  PRESS  | RIGHT | G3  | 55 |     @
592   | RELEASE | RIGHT | G3  | 55 | 5   @ EIGHTH
594   |  PRESS  | RIGHT | A3  | 57 |     @
599   | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
600   |  PRESS  | RIGHT | B3  | 59 |     @
605   | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
606   |  PRESS  | RIGHT | C4  | 60 |     @
608   | RELEASE | LEFT  | G2  | 43 | 33  @ HALF_DOT
611   | RELEASE | RIGHT | C4  | 60 | 6   @ EIGHTH
612   |  PRESS  | LEFT  | B2  | 47 |     @
612   |  PRESS  | RIGHT | D4  | 62 |     @
621   | RELEASE | RIGHT | D4  | 62 | 10  @ QUARTER
624   |  PRESS  | RIGHT | G3  | 55 |     @
633   | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
636   |  PRESS  | RIGHT | G3  | 55 |     @
644   | RELEASE | LEFT  | B2  | 47 | 33  @ HALF_DOT
645   | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
648   |  PRESS  | LEFT  | C3  | 48 |     @
648   |  PRESS  | RIGHT | E4  | 64 |     @
657   | RELEASE | RIGHT | E4  | 64 | 10  @ QUARTER
660   |  PRESS  | RIGHT | C4  | 60 |     @
665   | RELEASE | RIGHT | C4  | 60 | 6   @ EIGHTH
666   |  PRESS  | RIGHT | D4  | 62 |     @
671   | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
672   |  PRESS  | RIGHT | E4  | 64 |     @
677   | RELEASE | RIGHT | E4  | 64 | 6   @ EIGHTH
678   |  PRESS  | RIGHT | F#4 | 66 |     @
680   | RELEASE | LEFT  | C3  | 48 | 33  @ HALF_DOT
683   | RELEASE | RIGHT | F#4 | 66 | 6   @ EIGHTH
684   |  PRESS  | LEFT  | B2  | 47 |     @
684   |  PRESS  | RIGHT | G4  | 67 |     @
693   | RELEASE | RIGHT | G4  | 67 | 10  @ QUARTER
696   |  PRESS  | RIGHT | G3  | 55 |     @
705   | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
707   |  PRESS  | RIGHT | G3  | 55 |     @
716   | RELEASE | LEFT  | B2  | 47 | 33  @ HALF_DOT
717   | RELEASE | RIGHT | G3  | 55 | 11  @ QUARTER
719   |  PRESS  | LEFT  | A2  | 45 |     @
719   |  PRESS  | RIGHT | C4  | 60 |     @
729   | RELEASE | RIGHT | C4  | 60 | 11  @ QUARTER
731   |  PRESS  | RIGHT | D4  | 62 |     @
737   | RELEASE | RIGHT | D4  | 62 | 7   @ EIGHTH
738   |  PRESS  | RIGHT | C4  | 60 |     @
742   | RELEASE | RIGHT | C4  | 60 | 5   @ EIGHTH
743   |  PRESS  | RIGHT | B3  | 59 |     @
749   | RELEASE | RIGHT | B3  | 59 | 7   @ EIGHTH
750   |  PRESS  | RIGHT | A3  | 57 |     @
752   | RELEASE | LEFT  | A2  | 45 | 34  @ HALF_DOT
754   | RELEASE | RIGHT | A3  | 57 | 5   @ EIGHTH
755   |  PRESS  | LEFT  | G2  | 43 |     @
755   |  PRESS  | RIGHT | B3  | 59 |     @
765   | RELEASE | RIGHT | B3  | 59 | 11  @ QUARTER
767   |  PRESS  | RIGHT | C4  | 60 |     @
773   | RELEASE | RIGHT | C4  | 60 | 7   @ EIGHTH
774   |  PRESS  | RIGHT | B3  | 59 |     @
778   | RELEASE | RIGHT | B3  | 59 | 5   @ EIGHTH
779   |  PRESS  | RIGHT | A3  | 57 |     @
785   | RELEASE | RIGHT | A3  | 57 | 7   @ EIGHTH
786   |  PRESS  | RIGHT | G3  | 55 |     @
788   | RELEASE | LEFT  | G2  | 43 | 34  @ HALF_DOT
790   | RELEASE | RIGHT | G3  | 55 | 5   @ EIGHTH
791   |  PRESS  | LEFT  | D3  | 50 |     @
791   |  PRESS  | RIGHT | F#3 | 54 |     @
801   | RELEASE | RIGHT | F#3 | 54 | 11  @ QUARTER
803   |  PRESS  | RIGHT | G3  | 55 |     @
809   | RELEASE | RIGHT | G3  | 55 | 7   @ EIGHTH
810   |  PRESS  | RIGHT | A3  | 57 |     @
814   | RELEASE | RIGHT | A3  | 57 | 5   @ EIGHTH
815   |  PRESS  | RIGHT | B3  | 59 |     @
821   | RELEASE | RIGHT | B3  | 59 | 7   @ EIGHTH
822   |  PRESS  | RIGHT | G3  | 55 |     @
824   | RELEASE | LEFT  | D3  | 50 | 34  @ HALF_DOT
826   | RELEASE | RIGHT | G3  | 55 | 5   @ EIGHTH
827   |  PRESS  | LEFT  | D3  | 50 |     @
827   |  PRESS  | RIGHT | B3  | 59 |     @
837   | RELEASE | RIGHT | B3  | 59 | 11  @ QUARTER
839   |  PRESS  | RIGHT | A3  | 57 |     @
842   | RELEASE | LEFT  | D3  | 50 | 16  @ QUARTER_DOT
846   |  PRESS  | LEFT  | C3  | 48 |     @
850   | RELEASE | LEFT  | C3  | 48 | 5   @ EIGHTH
851   |  PRESS  | LEFT  | B2  | 47 |     @
857   | RELEASE | LEFT  | B2  | 47 | 7   @ EIGHTH
858   |  PRESS  | LEFT  | A2  | 45 |     @
859   | RELEASE | RIGHT | A3  | 57 | 21  @ HALF
862   | RELEASE | LEFT  | A2  | 45 | 5   @ EIGHTH
863   |  PRESS  | LEFT  | B2  | 47 |     @
863   |  PRESS  | RIGHT | D4  | 62 |     @
873   | RELEASE | RIGHT | D4  | 62 | 11  @ QUARTER
875   |  PRESS  | RIGHT | G3  | 55 |     @
881   | RELEASE | RIGHT | G3  | 55 | 7   @ EIGHTH
882   |  PRESS  | RIGHT | A3  | 57 |     @
886   | RELEASE | RIGHT | A3  | 57 | 5   @ EIGHTH
887   |  PRESS  | RIGHT | B3  | 59 |     @
893   | RELEASE | RIGHT | B3  | 59 | 7   @ EIGHTH
894   |  PRESS  | RIGHT | C4  | 60 |     @
895   | RELEASE | LEFT  | B2  | 47 | 33  @ HALF_DOT
898   | RELEASE | RIGHT | C4  | 60 | 5   @ EIGHTH
899   |  PRESS  | LEFT  | G2  | 43 |     @
899   |  PRESS  | RIGHT | D4  | 62 |     @
909   | RELEASE | RIGHT | D4  | 62 | 11  @ QUARTER
911   |  PRESS  | RIGHT | G3  | 55 |     @
921   | RELEASE | RIGHT | G3  | 55 | 11  @ QUARTER
923   |  PRESS  | RIGHT | G3  | 55 |     @
931   | RELEASE | LEFT  | G2  | 43 | 33  @ HALF_DOT
933   | RELEASE | RIGHT | G3  | 55 | 11  @ QUARTER
935   |  PRESS  | LEFT  | C3  | 48 |     @
935   |  PRESS  | RIGHT | E4  | 64 |     @
945   | RELEASE | RIGHT | E4  | 64 | 11  @ QUARTER
947   |  PRESS  | RIGHT | C4  | 60 |     @
952   | RELEASE | RIGHT | C4  | 60 | 6   @ EIGHTH
954   |  PRESS  | RIGHT | D4  | 62 |     @
958   | RELEASE | RIGHT | D4  | 62 | 5   @ EIGHTH
959   |  PRESS  | RIGHT | E4  | 64 |     @
964   | RELEASE | RIGHT | E4  | 64 | 6   @ EIGHTH
966   |  PRESS  | RIGHT | F#4 | 66 |     @
967   | RELEASE | LEFT  | C3  | 48 | 33  @ HALF_DOT
970   | RELEASE | RIGHT | F#4 | 66 | 5   @ EIGHTH
971   |  PRESS  | LEFT  | B2  | 47 |     @
971   |  PRESS  | RIGHT | G4  | 67 |     @
981   | RELEASE | RIGHT | G4  | 67 | 11  @ QUARTER
983   |  PRESS  | RIGHT | G3  | 55 |     @
993   | RELEASE | RIGHT | G3  | 55 | 11  @ QUARTER
996   |  PRESS  | RIGHT | G3  | 55 |     @
1004  | RELEASE | LEFT  | B2  | 47 | 34  @ HALF_DOT
1005  | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
1008  |  PRESS  | LEFT  | A2  | 45 |     @
1008  |  PRESS  | RIGHT | C4  | 60 |     @
1017  | RELEASE | RIGHT | C4  | 60 | 10  @ QUARTER
1020  |  PRESS  | RIGHT | D4  | 62 |     @
1025  | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
1026  |  PRESS  | RIGHT | C4  | 60 |     @
1030  | RELEASE | RIGHT | C4  | 60 | 5   @ EIGHTH
1032  |  PRESS  | RIGHT | B3  | 59 |     @
1037  | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
1038  |  PRESS  | RIGHT | A3  | 57 |     @
1040  | RELEASE | LEFT  | A2  | 45 | 33  @ HALF_DOT
1042  | RELEASE | RIGHT | A3  | 57 | 5   @ EIGHTH
1044  |  PRESS  | LEFT  | G2  | 43 |     @
1044  |  PRESS  | RIGHT | B3  | 59 |     @
1053  | RELEASE | RIGHT | B3  | 59 | 10  @ QUARTER
1056  |  PRESS  | RIGHT | C4  | 60 |     @
1061  | RELEASE | RIGHT | C4  | 60 | 6   @ EIGHTH
1062  |  PRESS  | RIGHT | B3  | 59 |     @
1066  | RELEASE | RIGHT | B3  | 59 | 5   @ EIGHTH
1067  |  PRESS  | RIGHT | A3  | 57 |     @
1073  | RELEASE | RIGHT | A3  | 57 | 7   @ EIGHTH
1074  |  PRESS  | RIGHT | G3  | 55 |     @
1076  | RELEASE | LEFT  | G2  | 43 | 33  @ HALF_DOT
1078  | RELEASE | RIGHT | G3  | 55 | 5   @ EIGHTH
1079  |  PRESS  | LEFT  | C3  | 48 |     @
1079  |  PRESS  | RIGHT | A3  | 57 |     @
1089  | RELEASE | RIGHT | A3  | 57 | 11  @ QUARTER
1091  |  PRESS  | RIGHT | B3  | 59 |     @
1097  | RELEASE | RIGHT | B3  | 59 | 7   @ EIGHTH
1098  |  PRESS  | RIGHT | A3  | 57 |     @
1102  | RELEASE | RIGHT | A3  | 57 | 5   @ EIGHTH
1103  |  PRESS  | RIGHT | G3  | 55 |     @
1108  | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
1109  |  PRESS  | RIGHT | F#3 | 54 |     @
1112  | RELEASE | LEFT  | C3  | 48 | 34  @ HALF_DOT
1114  | RELEASE | RIGHT | F#3 | 54 | 6   @ EIGHTH
1115  |  PRESS  | LEFT  | G2  | 43 |     @
1115  |  PRESS  | RIGHT | G3  | 55 |     @
1148  | RELEASE | LEFT  | G2  | 43 | 34  @ HALF_DOT
1148  | RELEASE | RIGHT | G3  | 55 | 34  @ HALF_DOT
1151  |  PRESS  | LEFT  | G2  | 43 |     @
1151  |  PRESS  | RIGHT | B4  | 71 |     @
1160  | RELEASE | RIGHT | B4  | 71 | 10  @ QUARTER
1163  |  PRESS  | RIGHT | G4  | 67 |     @
1168  | RELEASE | RIGHT | G4  | 67 | 6   @ EIGHTH
1169  |  PRESS  | RIGHT | A4  | 69 |     @
1174  | RELEASE | RIGHT | A4  | 69 | 6   @ EIGHTH
1175  |  PRESS  | RIGHT | B4  | 71 |     @
1180  | RELEASE | RIGHT | B4  | 71 | 6   @ EIGHTH
1181  |  PRESS  | RIGHT | G4  | 67 |     @
1184  | RELEASE | LEFT  | G2  | 43 | 34  @ HALF_DOT
1186  | RELEASE | RIGHT | G4  | 67 | 6   @ EIGHTH
1187  |  PRESS  | LEFT  | F#2 | 42 |     @
1187  |  PRESS  | RIGHT | A4  | 69 |     @
1196  | RELEASE | RIGHT | A4  | 69 | 10  @ QUARTER
1199  |  PRESS  | RIGHT | D4  | 62 |     @
1204  | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
1205  |  PRESS  | RIGHT | E4  | 64 |     @
1210  | RELEASE | RIGHT | E4  | 64 | 6   @ EIGHTH
1211  |  PRESS  | RIGHT | F#4 | 66 |     @
1216  | RELEASE | RIGHT | F#4 | 66 | 6   @ EIGHTH
1217  |  PRESS  | RIGHT | D4  | 62 |     @
1220  | RELEASE | LEFT  | F#2 | 42 | 34  @ HALF_DOT
1222  | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
1223  |  PRESS  | LEFT  | E2  | 40 |     @
1223  |  PRESS  | RIGHT | G4  | 67 |     @
1232  | RELEASE | RIGHT | G4  | 67 | 10  @ QUARTER
1235  |  PRESS  | RIGHT | E4  | 64 |     @
1240  | RELEASE | RIGHT | E4  | 64 | 6   @ EIGHTH
1241  |  PRESS  | RIGHT | F#4 | 66 |     @
1246  | RELEASE | RIGHT | F#4 | 66 | 6   @ EIGHTH
1247  |  PRESS  | RIGHT | G4  | 67 |     @
1252  | RELEASE | RIGHT | G4  | 67 | 6   @ EIGHTH
1253  |  PRESS  | RIGHT | D4  | 62 |     @
1256  | RELEASE | LEFT  | E2  | 40 | 34  @ HALF_DOT
1258  | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
1259  |  PRESS  | LEFT  | A2  | 45 |     @
1259  |  PRESS  | RIGHT | C#4 | 61 |     @
1268  | RELEASE | RIGHT | C#4 | 61 | 10  @ QUARTER
1271  |  PRESS  | RIGHT | B3  | 59 |     @
1276  | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
1277  |  PRESS  | RIGHT | C#4 | 61 |     @
1282  | RELEASE | RIGHT | C#4 | 61 | 6   @ EIGHTH
1283  |  PRESS  | RIGHT | A3  | 57 |     @
1291  | RELEASE | LEFT  | A2  | 45 | 33  @ HALF_DOT
1292  | RELEASE | RIGHT | A3  | 57 | 10  @ QUARTER
1295  |  PRESS  | LEFT  | A2  | 45 |     @
1295  |  PRESS  | RIGHT | A3  | 57 |     @
1300  | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
1301  |  PRESS  | RIGHT | B3  | 59 |     @
1306  | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
1307  |  PRESS  | RIGHT | C#4 | 61 |     @
1312  | RELEASE | RIGHT | C#4 | 61 | 6   @ EIGHTH
1313  |  PRESS  | RIGHT | D4  | 62 |     @
1318  | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
1319  |  PRESS  | RIGHT | E4  | 64 |     @
1324  | RELEASE | RIGHT | E4  | 64 | 6   @ EIGHTH
1325  |  PRESS  | RIGHT | F#4 | 66 |     @
1327  | RELEASE | LEFT  | A2  | 45 | 33  @ HALF_DOT
1330  | RELEASE | RIGHT | F#4 | 66 | 6   @ EIGHTH
1331  |  PRESS  | LEFT  | B2  | 47 |     @
1331  |  PRESS  | RIGHT | G4  | 67 |     @
1340  | RELEASE | RIGHT | G4  | 67 | 10  @ QUARTER
1343  |  PRESS  | RIGHT | F#4 | 66 |     @
1352  | RELEASE | RIGHT | F#4 | 66 | 10  @ QUARTER
1355  |  PRESS  | RIGHT | E4  | 64 |     @
1363  | RELEASE | LEFT  | B2  | 47 | 33  @ HALF_DOT
1364  | RELEASE | RIGHT | E4  | 64 | 10  @ QUARTER
1367  |  PRESS  | LEFT  | D3  | 50 |     @
1367  |  PRESS  | RIGHT | F#4 | 66 |     @
1376  | RELEASE | RIGHT | F#4 | 66 | 10  @ QUARTER
1379  |  PRESS  | RIGHT | A3  | 57 |     @
1388  | RELEASE | RIGHT | A3  | 57 | 10  @ QUARTER
1391  |  PRESS  | RIGHT | C#4 | 61 |     @
1399  | RELEASE | LEFT  | D3  | 50 | 33  @ HALF_DOT
1400  | RELEASE | RIGHT | C#4 | 61 | 10  @ QUARTER
1404  |  PRESS  | LEFT  | D3  | 50 |     @
1404  |  PRESS  | RIGHT | D4  | 62 |     @
1435  | RELEASE | LEFT  | D3  | 50 | 32  @ HALF_DOT
1435  | RELEASE | RIGHT | D4  | 62 | 32  @ HALF_DOT
1440  |  PRESS  | LEFT  | B2  | 47 |     @
1440  |  PRESS  | RIGHT | D4  | 62 |     @
1448  | RELEASE | RIGHT | D4  | 62 | 9   @ QUARTER
1452  |  PRESS  | RIGHT | G3  | 55 |     @
1456  | RELEASE | RIGHT | G3  | 55 | 5   @ EIGHTH
1457  |  PRESS  | RIGHT | F#3 | 54 |     @
1462  | RELEASE | RIGHT | F#3 | 54 | 6   @ EIGHTH
1463  |  PRESS  | RIGHT | G3  | 55 |     @
1471  | RELEASE | LEFT  | B2  | 47 | 32  @ HALF_DOT
1472  | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
1475  |  PRESS  | LEFT  | C3  | 48 |     @
1475  |  PRESS  | RIGHT | E4  | 64 |     @
1484  | RELEASE | RIGHT | E4  | 64 | 10  @ QUARTER
1487  |  PRESS  | RIGHT | G3  | 55 |     @
1492  | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
1493  |  PRESS  | RIGHT | F#3 | 54 |     @
1498  | RELEASE | RIGHT | F#3 | 54 | 6   @ EIGHTH
1499  |  PRESS  | RIGHT | G3  | 55 |     @
1507  | RELEASE | LEFT  | C3  | 48 | 33  @ HALF_DOT
1508  | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
1511  |  PRESS  | LEFT  | B2  | 47 |     @
1511  |  PRESS  | RIGHT | D4  | 62 |     @
1520  | RELEASE | RIGHT | D4  | 62 | 10  @ QUARTER
1523  |  PRESS  | RIGHT | C4  | 60 |     @
1532  | RELEASE | RIGHT | C4  | 60 | 10  @ QUARTER
1535  |  PRESS  | RIGHT | B3  | 59 |     @
1543  | RELEASE | LEFT  | B2  | 47 | 33  @ HALF_DOT
1544  | RELEASE | RIGHT | B3  | 59 | 10  @ QUARTER
1547  |  PRESS  | LEFT  | D3  | 50 |     @
1547  |  PRESS  | RIGHT | A3  | 57 |     @
1552  | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
1553  |  PRESS  | RIGHT | G3  | 55 |     @
1558  | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
1559  |  PRESS  | RIGHT | F#3 | 54 |     @
1564  | RELEASE | RIGHT | F#3 | 54 | 6   @ EIGHTH
1565  |  PRESS  | RIGHT | G3  | 55 |     @
1570  | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
1571  |  PRESS  | RIGHT | A3  | 57 |     @
1579  | RELEASE | LEFT  | D3  | 50 | 33  @ HALF_DOT
1580  | RELEASE | RIGHT | A3  | 57 | 10  @ QUARTER
1583  |  PRESS  | LEFT  | D2  | 38 |     @
1583  |  PRESS  | RIGHT | D3  | 50 |     @
1588  | RELEASE | RIGHT | D3  | 50 | 6   @ EIGHTH
1589  |  PRESS  | RIGHT | E3  | 52 |     @
1594  | RELEASE | RIGHT | E3  | 52 | 6   @ EIGHTH
1595  |  PRESS  | RIGHT | F#3 | 54 |     @
1600  | RELEASE | RIGHT | F#3 | 54 | 6   @ EIGHTH
1601  |  PRESS  | RIGHT | G3  | 55 |     @
1606  | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
1607  |  PRESS  | RIGHT | A3  | 57 |     @
1612  | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
1613  |  PRESS  | RIGHT | B3  | 59 |     @
1615  | RELEASE | LEFT  | D2  | 38 | 33  @ HALF_DOT
1618  | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
1619  |  PRESS  | LEFT  | E2  | 40 |     @
1619  |  PRESS  | RIGHT | C4  | 60 |     @
1628  | RELEASE | RIGHT | C4  | 60 | 10  @ QUARTER
1631  |  PRESS  | RIGHT | B3  | 59 |     @
1640  | RELEASE | RIGHT | B3  | 59 | 10  @ QUARTER
1643  |  PRESS  | RIGHT | A3  | 57 |     @
1651  | RELEASE | LEFT  | E2  | 40 | 33  @ HALF_DOT
1652  | RELEASE | RIGHT | A3  | 57 | 10  @ QUARTER
1655  |  PRESS  | LEFT  | G2  | 43 |     @
1655  |  PRESS  | RIGHT | B3  | 59 |     @
1660  | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
1661  |  PRESS  | RIGHT | D4  | 62 |     @
1666  | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
1667  |  PRESS  | RIGHT | G3  | 55 |     @
1676  | RELEASE | RIGHT | G3  | 55 | 10  @ QUARTER
1679  |  PRESS  | RIGHT | F#3 | 54 |     @
1686  | RELEASE | LEFT  | G2  | 43 | 32  @ HALF_DOT
1688  | RELEASE | RIGHT | F#3 | 54 | 10  @ QUARTER
1691  |  PRESS  | LEFT  | G2  | 43 |     @
1691  |  PRESS  | RIGHT | G3  | 55 |     @
1722  | RELEASE | LEFT  | G2  | 43 | 32  @ HALF_DOT
1722  | RELEASE | RIGHT | G3  | 55 | 32  @ HALF_DOT
1726  |  PRESS  | LEFT  | G2  | 43 |     @
1726  |  PRESS  | RIGHT | B4  | 71 |     @
1736  | RELEASE | RIGHT | B4  | 71 | 11  @ QUARTER
1738  |  PRESS  | RIGHT | G4  | 67 |     @
1743  | RELEASE | RIGHT | G4  | 67 | 6   @ EIGHTH
1745  |  PRESS  | RIGHT | A4  | 69 |     @
1749  | RELEASE | RIGHT | A4  | 69 | 5   @ EIGHTH
1750  |  PRESS  | RIGHT | B4  | 71 |     @
1755  | RELEASE | RIGHT | B4  | 71 | 6   @ EIGHTH
1757  |  PRESS  | RIGHT | G4  | 67 |     @
1758  | RELEASE | LEFT  | G2  | 43 | 33  @ HALF_DOT
1761  | RELEASE | RIGHT | G4  | 67 | 5   @ EIGHTH
1762  |  PRESS  | LEFT  | F#2 | 42 |     @
1762  |  PRESS  | RIGHT | A4  | 69 |     @
1772  | RELEASE | RIGHT | A4  | 69 | 11  @ QUARTER
1774  |  PRESS  | RIGHT | D4  | 62 |     @
1779  | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
1781  |  PRESS  | RIGHT | E4  | 64 |     @
1785  | RELEASE | RIGHT | E4  | 64 | 5   @ EIGHTH
1786  |  PRESS  | RIGHT | F#4 | 66 |     @
1791  | RELEASE | RIGHT | F#4 | 66 | 6   @ EIGHTH
1793  |  PRESS  | RIGHT | D4  | 62 |     @
1794  | RELEASE | LEFT  | F#2 | 42 | 33  @ HALF_DOT
1797  | RELEASE | RIGHT | D4  | 62 | 5   @ EIGHTH
1799  |  PRESS  | LEFT  | E2  | 40 |     @
1799  |  PRESS  | RIGHT | G4  | 67 |     @
1808  | RELEASE | RIGHT | G4  | 67 | 10  @ QUARTER
1811  |  PRESS  | RIGHT | E4  | 64 |     @
1816  | RELEASE | RIGHT | E4  | 64 | 6   @ EIGHTH
1817  |  PRESS  | RIGHT | F#4 | 66 |     @
1821  | RELEASE | RIGHT | F#4 | 66 | 5   @ EIGHTH
1823  |  PRESS  | RIGHT | G4  | 67 |     @
1828  | RELEASE | RIGHT | G4  | 67 | 6   @ EIGHTH
1829  |  PRESS  | RIGHT | D4  | 62 |     @
1831  | RELEASE | LEFT  | E2  | 40 | 33  @ HALF_DOT
1833  | RELEASE | RIGHT | D4  | 62 | 5   @ EIGHTH
1835  |  PRESS  | LEFT  | A2  | 45 |     @
1835  |  PRESS  | RIGHT | C#4 | 61 |     @
1844  | RELEASE | RIGHT | C#4 | 61 | 10  @ QUARTER
1847  |  PRESS  | RIGHT | B3  | 59 |     @
1852  | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
1853  |  PRESS  | RIGHT | C#4 | 61 |     @
1857  | RELEASE | RIGHT | C#4 | 61 | 5   @ EIGHTH
1859  |  PRESS  | RIGHT | A3  | 57 |     @
1867  | RELEASE | LEFT  | A2  | 45 | 33  @ HALF_DOT
1868  | RELEASE | RIGHT | A3  | 57 | 10  @ QUARTER
1870  |  PRESS  | LEFT  | A2  | 45 |     @
1870  |  PRESS  | RIGHT | A3  | 57 |     @
1876  | RELEASE | RIGHT | A3  | 57 | 7   @ EIGHTH
1877  |  PRESS  | RIGHT | B3  | 59 |     @
1881  | RELEASE | RIGHT | B3  | 59 | 5   @ EIGHTH
1882  |  PRESS  | RIGHT | C#4 | 61 |     @
1888  | RELEASE | RIGHT | C#4 | 61 | 7   @ EIGHTH
1889  |  PRESS  | RIGHT | D4  | 62 |     @
1893  | RELEASE | RIGHT | D4  | 62 | 5   @ EIGHTH
1894  |  PRESS  | RIGHT | E4  | 64 |     @
1900  | RELEASE | RIGHT | E4  | 64 | 7   @ EIGHTH
1901  |  PRESS  | RIGHT | F#4 | 66 |     @
1903  | RELEASE | LEFT  | A2  | 45 | 34  @ HALF_DOT
1905  | RELEASE | RIGHT | F#4 | 66 | 5   @ EIGHTH
1906  |  PRESS  | LEFT  | B2  | 47 |     @
1906  |  PRESS  | RIGHT | G4  | 67 |     @
1916  | RELEASE | RIGHT | G4  | 67 | 11  @ QUARTER
1918  |  PRESS  | RIGHT | F#4 | 66 |     @
1928  | RELEASE | RIGHT | F#4 | 66 | 11  @ QUARTER
1930  |  PRESS  | RIGHT | E4  | 64 |     @
1939  | RELEASE | LEFT  | B2  | 47 | 34  @ HALF_DOT
1940  | RELEASE | RIGHT | E4  | 64 | 11  @ QUARTER
1942  |  PRESS  | LEFT  | D3  | 50 |     @
1942  |  PRESS  | RIGHT | F#4 | 66 |     @
1952  | RELEASE | RIGHT | F#4 | 66 | 11  @ QUARTER
1954  |  PRESS  | RIGHT | A3  | 57 |     @
1964  | RELEASE | RIGHT | A3  | 57 | 11  @ QUARTER
1966  |  PRESS  | RIGHT | C#4 | 61 |     @
1975  | RELEASE | LEFT  | D3  | 50 | 34  @ HALF_DOT
1976  | RELEASE | RIGHT | C#4 | 61 | 11  @ QUARTER
1978  |  PRESS  | LEFT  | D3  | 50 |     @
1978  |  PRESS  | RIGHT | D4  | 62 |     @
2011  | RELEASE | LEFT  | D3  | 50 | 34  @ HALF_DOT
2011  | RELEASE | RIGHT | D4  | 62 | 34  @ HALF_DOT
2014  |  PRESS  | LEFT  | B2  | 47 |     @
2014  |  PRESS  | RIGHT | D4  | 62 |     @
2024  | RELEASE | RIGHT | D4  | 62 | 11  @ QUARTER
2026  |  PRESS  | RIGHT | G3  | 55 |     @
2032  | RELEASE | RIGHT | G3  | 55 | 7   @ EIGHTH
2033  |  PRESS  | RIGHT | F#3 | 54 |     @
2037  | RELEASE | RIGHT | F#3 | 54 | 5   @ EIGHTH
2038  |  PRESS  | RIGHT | G3  | 55 |     @
2047  | RELEASE | LEFT  | B2  | 47 | 34  @ HALF_DOT
2048  | RELEASE | RIGHT | G3  | 55 | 11  @ QUARTER
2050  |  PRESS  | LEFT  | C3  | 48 |     @
2050  |  PRESS  | RIGHT | E4  | 64 |     @
2060  | RELEASE | RIGHT | E4  | 64 | 11  @ QUARTER
2062  |  PRESS  | RIGHT | G3  | 55 |     @
2068  | RELEASE | RIGHT | G3  | 55 | 7   @ EIGHTH
2069  |  PRESS  | RIGHT | F#3 | 54 |     @
2073  | RELEASE | RIGHT | F#3 | 54 | 5   @ EIGHTH
2074  |  PRESS  | RIGHT | G3  | 55 |     @
2082  | RELEASE | LEFT  | C3  | 48 | 33  @ HALF_DOT
2084  | RELEASE | RIGHT | G3  | 55 | 11  @ QUARTER
2086  |  PRESS  | LEFT  | B2  | 47 |     @
2086  |  PRESS  | RIGHT | D4  | 62 |     @
2096  | RELEASE | RIGHT | D4  | 62 | 11  @ QUARTER
2098  |  PRESS  | RIGHT | C4  | 60 |     @
2107  | RELEASE | RIGHT | C4  | 60 | 10  @ QUARTER
2110  |  PRESS  | RIGHT | B3  | 59 |     @
2118  | RELEASE | LEFT  | B2  | 47 | 33  @ HALF_DOT
2119  | RELEASE | RIGHT | B3  | 59 | 10  @ QUARTER
2122  |  PRESS  | LEFT  | D3  | 50 |     @
2122  |  PRESS  | RIGHT | A3  | 57 |     @
2127  | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
2128  |  PRESS  | RIGHT | G3  | 55 |     @
2133  | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
2134  |  PRESS  | RIGHT | F#3 | 54 |     @
2139  | RELEASE | RIGHT | F#3 | 54 | 6   @ EIGHTH
2140  |  PRESS  | RIGHT | G3  | 55 |     @
2145  | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
2146  |  PRESS  | RIGHT | A3  | 57 |     @
2154  | RELEASE | LEFT  | D3  | 50 | 33  @ HALF_DOT
2155  | RELEASE | RIGHT | A3  | 57 | 10  @ QUARTER
2158  |  PRESS  | LEFT  | D2  | 38 |     @
2158  |  PRESS  | RIGHT | D3  | 50 |     @
2163  | RELEASE | RIGHT | D3  | 50 | 6   @ EIGHTH
2164  |  PRESS  | RIGHT | E3  | 52 |     @
2169  | RELEASE | RIGHT | E3  | 52 | 6   @ EIGHTH
2170  |  PRESS  | RIGHT | F#3 | 54 |     @
2175  | RELEASE | RIGHT | F#3 | 54 | 6   @ EIGHTH
2176  |  PRESS  | RIGHT | G3  | 55 |     @
2181  | RELEASE | RIGHT | G3  | 55 | 6   @ EIGHTH
2182  |  PRESS  | RIGHT | A3  | 57 |     @
2187  | RELEASE | RIGHT | A3  | 57 | 6   @ EIGHTH
2188  |  PRESS  | RIGHT | B3  | 59 |     @
2190  | RELEASE | LEFT  | D2  | 38 | 33  @ HALF_DOT
2193  | RELEASE | RIGHT | B3  | 59 | 6   @ EIGHTH
2195  |  PRESS  | LEFT  | E2  | 40 |     @
2195  |  PRESS  | RIGHT | C4  | 60 |     @
2203  | RELEASE | RIGHT | C4  | 60 | 9   @ QUARTER
2207  |  PRESS  | RIGHT | B3  | 59 |     @
2215  | RELEASE | RIGHT | B3  | 59 | 9   @ QUARTER
2219  |  PRESS  | RIGHT | A3  | 57 |     @
2227  | RELEASE | LEFT  | E2  | 40 | 33  @ HALF_DOT
2227  | RELEASE | RIGHT | A3  | 57 | 9   @ QUARTER
2231  |  PRESS  | LEFT  | G2  | 43 |     @
2231  |  PRESS  | RIGHT | B3  | 59 |     @
2235  | RELEASE | RIGHT | B3  | 59 | 5   @ EIGHTH
2236  |  PRESS  | RIGHT | D4  | 62 |     @
2241  | RELEASE | RIGHT | D4  | 62 | 6   @ EIGHTH
2243  |  PRESS  | RIGHT | G3  | 55 |     @
2251  | RELEASE | RIGHT | G3  | 55 | 9   @ QUARTER
2255  |  PRESS  | RIGHT | F#3 | 54 |     @
2263  | RELEASE | LEFT  | G2  | 43 | 33  @ HALF_DOT
2263  | RELEASE | RIGHT | F#3 | 54 | 9   @ QUARTER
2266  |  PRESS  | LEFT  | G2  | 43 |     @
2266  |  PRESS  | RIGHT | G3  | 55 |     @
2299  | RELEASE | LEFT  | G2  | 43 | 34  @ HALF_DOT
2299  | RELEASE | RIGHT | G3  | 55 | 34  @ HALF_DOT

I'm still working on it and I will release it for free once it is ready!

Any comments or suggestions?
Gregor
Posts: 43

Post by Gregor »

I think it's a fantastic idea. Right now I can't think of a suggestion. Thank you very much for the effort and dedication ;)
Slash0mega
Posts: 2

Post by Slash0mega »

wait, so you are making a program that turns Synthesia videos BACK into midi?
thiagolr
Posts: 37

Post by thiagolr »

Yes, exactly! =D
Westie
Posts: 9

Post by Westie »

How are things looking with this? I was planning to write a similar tool but my programming skill is likely not good enough.

Are you looking at the keyboard or picking a line in the video to look at the note lines? The reason I ask is that some videos show a real keyboard rather than the inbuilt one from Synthesia.
thiagolr
Posts: 37

Post by thiagolr »

It is working well, not generic enough to handle any song perfectly, but I would say it extracts >95% of the notes correctly of any song.

The following songs that I tested are extracted perfectly:
- Bach - Minuet in G
- Disturbed - The Sound of Silence
- Happy Birthday
- Jurassic Park - Main Theme
- Pachelbel - Canon in D
- Silent Night
- Star Wars - The Force Theme

And some of them even has a perfect/clean sheet when some additional input parameters are added (such as time signature, key signature, etc).

It is reading the keyboard, but not sure how it would handle a real recorded keyboard, maybe if the video quality and framing is good it might work.
Westie
Posts: 9

Post by Westie »

That's great news. I've attached a zip with two examples created from a commandline tool that is hard to use and needs a bit of special care taken for each video. It also doesn't create clean sheets, they are a complete mess as there is no consideration for key signature or timing.

The file name of the items in the zip file have their Youtube video id so you can compare them to the original.
Midi.zip
(12.02 KiB) Downloaded 63 times
thiagolr
Posts: 37

Post by thiagolr »

I'm currently working on my RGB led strip, when I get back to the Video MIDIfier I will test these songs and then we can compare the generated MIDIs!

Which command line tool are you using?
Westie
Posts: 9

Post by Westie »

It's an open source tool called syn2midi written in C++, it's on Github. It's the best I have found for note detection accuracy.

Custom masks aren't hard to make but it's an extra step, however the timing isn't as good as it could be and it can't do quantization.
Westie
Posts: 9

Post by Westie »

I should also add that for that tool, you need to make sure you get the RGB values for the colors used in the video also as the defaults that are hard coded in the tool are rarely used.

It does work well but several manual steps need to be done first.
thiagolr
Posts: 37

Post by thiagolr »

Oh, I saw that when I was searching for alternatives before implementing my own. I didn't try it because it seemed complicated!
Westie
Posts: 9

Post by Westie »

I was going to try and make a GUI front-end for it but I just don't have the programming skill to do anything but a crude hack that likely wouldn't be reliable. Then I found your post so I thought it would be cool to follow along with your progress, looks like you are really thinking about how do to this the right way.
thiagolr
Posts: 37

Post by thiagolr »

Hi Westie,

Take a look at the result of the "Test2" song:
Test2.zip
(5 KiB) Downloaded 58 times

I can see only one issue around 3:14 when it missed a few very fast notes. The sound is not as good as the video because the recording uses a sustain pedal, which cannot be captured by this process.

By the way, one of the notes don't even appear on the extracted frames and the others appear during only one frame.

What do you think?
thiagolr
Posts: 37

Post by thiagolr »

After analyzing the "Test1" song, it didn't work very well because the piano at the bottom is not very black and white. If you have another video source for this song, please let me know!
Westie
Posts: 9

Post by Westie »

That is an excellent result, congrats! Very well done and I understand about the sustain pedal, we are always going to have that same issue with this technique.

I also played your midi file back with Pianoteq and turned on the sustain pedal manually, sounds exactly like the video.

Sorry it took me a while to respond, sometimes I am out in the sticks with no internet access for a while.

Seriously impressive work, you're one great programmer.
thiagolr
Posts: 37

Post by thiagolr »

Thanks! =D
Post Reply