1 : <?php
2 :
3 : /**
4 : * \Midi\Util\Note
5 : *
6 : * @package Midi
7 : * @subpackage Util
8 : * @copyright � 2009 Tommy Montgomery <http://phpmidiparser.com/>
9 : * @since 1.0
10 : */
11 :
12 : namespace Midi\Util;
13 :
14 : /**
15 : * Represents each MIDI note
16 : *
17 : * @package Midi
18 : * @subpackage Util
19 : * @since 1.0
20 : */
21 1 : final class Note {
22 : /**
23 : * Describe this variable
24 : *
25 : * @var int
26 : */
27 : const CX = 0;
28 : /**
29 : * Describe this variable
30 : *
31 : * @var int
32 : */
33 : const CSharpX = 1;
34 : /**
35 : * Describe this variable
36 : *
37 : * @var int
38 : */
39 : const DX = 2;
40 : /**
41 : * Describe this variable
42 : *
43 : * @var int
44 : */
45 : const DSharpX = 3;
46 : /**
47 : * Describe this variable
48 : *
49 : * @var int
50 : */
51 : const EX = 4;
52 : /**
53 : * Describe this variable
54 : *
55 : * @var int
56 : */
57 : const FX = 5;
58 : /**
59 : * Describe this variable
60 : *
61 : * @var int
62 : */
63 : const FSharpX = 6;
64 : /**
65 : * Describe this variable
66 : *
67 : * @var int
68 : */
69 : const GX = 7;
70 : /**
71 : * Describe this variable
72 : *
73 : * @var int
74 : */
75 : const GSharpX = 8;
76 : /**
77 : * Describe this variable
78 : *
79 : * @var int
80 : */
81 : const AX = 9;
82 : /**
83 : * Describe this variable
84 : *
85 : * @var int
86 : */
87 : const ASharpX = 10;
88 : /**
89 : * Describe this variable
90 : *
91 : * @var int
92 : */
93 : const BX = 11;
94 : /**
95 : * Describe this variable
96 : *
97 : * @var int
98 : */
99 : const C0 = 12;
100 : /**
101 : * Describe this variable
102 : *
103 : * @var int
104 : */
105 : const CSharp0 = 13;
106 : /**
107 : * Describe this variable
108 : *
109 : * @var int
110 : */
111 : const D0 = 14;
112 : /**
113 : * Describe this variable
114 : *
115 : * @var int
116 : */
117 : const DSharp0 = 15;
118 : /**
119 : * Describe this variable
120 : *
121 : * @var int
122 : */
123 : const E0 = 16;
124 : /**
125 : * Describe this variable
126 : *
127 : * @var int
128 : */
129 : const F0 = 17;
130 : /**
131 : * Describe this variable
132 : *
133 : * @var int
134 : */
135 : const FSharp0 = 18;
136 : /**
137 : * Describe this variable
138 : *
139 : * @var int
140 : */
141 : const G0 = 19;
142 : /**
143 : * Describe this variable
144 : *
145 : * @var int
146 : */
147 : const GSharp0 = 20;
148 : /**
149 : * Describe this variable
150 : *
151 : * @var int
152 : */
153 : const A0 = 21;
154 : /**
155 : * Describe this variable
156 : *
157 : * @var int
158 : */
159 : const ASharp0 = 22;
160 : /**
161 : * Describe this variable
162 : *
163 : * @var int
164 : */
165 : const B0 = 23;
166 : /**
167 : * Describe this variable
168 : *
169 : * @var int
170 : */
171 : const C1 = 24;
172 : /**
173 : * Describe this variable
174 : *
175 : * @var int
176 : */
177 : const CSharp1 = 25;
178 : /**
179 : * Describe this variable
180 : *
181 : * @var int
182 : */
183 : const D1 = 26;
184 : /**
185 : * Describe this variable
186 : *
187 : * @var int
188 : */
189 : const DSharp1 = 27;
190 : /**
191 : * Describe this variable
192 : *
193 : * @var int
194 : */
195 : const E1 = 28;
196 : /**
197 : * Describe this variable
198 : *
199 : * @var int
200 : */
201 : const F1 = 29;
202 : /**
203 : * Describe this variable
204 : *
205 : * @var int
206 : */
207 : const FSharp1 = 30;
208 : /**
209 : * Describe this variable
210 : *
211 : * @var int
212 : */
213 : const G1 = 31;
214 : /**
215 : * Describe this variable
216 : *
217 : * @var int
218 : */
219 : const GSharp1 = 32;
220 : /**
221 : * Describe this variable
222 : *
223 : * @var int
224 : */
225 : const A1 = 33;
226 : /**
227 : * Describe this variable
228 : *
229 : * @var int
230 : */
231 : const ASharp1 = 34;
232 : /**
233 : * Describe this variable
234 : *
235 : * @var int
236 : */
237 : const B1 = 35;
238 : /**
239 : * Describe this variable
240 : *
241 : * @var int
242 : */
243 : const C2 = 36;
244 : /**
245 : * Describe this variable
246 : *
247 : * @var int
248 : */
249 : const CSharp2 = 37;
250 : /**
251 : * Describe this variable
252 : *
253 : * @var int
254 : */
255 : const D2 = 38;
256 : /**
257 : * Describe this variable
258 : *
259 : * @var int
260 : */
261 : const DSharp2 = 39;
262 : /**
263 : * Describe this variable
264 : *
265 : * @var int
266 : */
267 : const E2 = 40;
268 : /**
269 : * Describe this variable
270 : *
271 : * @var int
272 : */
273 : const F2 = 41;
274 : /**
275 : * Describe this variable
276 : *
277 : * @var int
278 : */
279 : const FSharp2 = 42;
280 : /**
281 : * Describe this variable
282 : *
283 : * @var int
284 : */
285 : const G2 = 43;
286 : /**
287 : * Describe this variable
288 : *
289 : * @var int
290 : */
291 : const GSharp2 = 44;
292 : /**
293 : * Describe this variable
294 : *
295 : * @var int
296 : */
297 : const A2 = 45;
298 : /**
299 : * Describe this variable
300 : *
301 : * @var int
302 : */
303 : const ASharp2 = 46;
304 : /**
305 : * Describe this variable
306 : *
307 : * @var int
308 : */
309 : const B2 = 47;
310 : /**
311 : * Describe this variable
312 : *
313 : * @var int
314 : */
315 : const C3 = 48;
316 : /**
317 : * Describe this variable
318 : *
319 : * @var int
320 : */
321 : const CSharp3 = 49;
322 : /**
323 : * Describe this variable
324 : *
325 : * @var int
326 : */
327 : const D3 = 50;
328 : /**
329 : * Describe this variable
330 : *
331 : * @var int
332 : */
333 : const DSharp3 = 51;
334 : /**
335 : * Describe this variable
336 : *
337 : * @var int
338 : */
339 : const E3 = 52;
340 : /**
341 : * Describe this variable
342 : *
343 : * @var int
344 : */
345 : const F3 = 53;
346 : /**
347 : * Describe this variable
348 : *
349 : * @var int
350 : */
351 : const FSharp3 = 54;
352 : /**
353 : * Describe this variable
354 : *
355 : * @var int
356 : */
357 : const G3 = 55;
358 : /**
359 : * Describe this variable
360 : *
361 : * @var int
362 : */
363 : const GSharp3 = 56;
364 : /**
365 : * Describe this variable
366 : *
367 : * @var int
368 : */
369 : const A3 = 57;
370 : /**
371 : * Describe this variable
372 : *
373 : * @var int
374 : */
375 : const ASharp3 = 58;
376 : /**
377 : * Describe this variable
378 : *
379 : * @var int
380 : */
381 : const B3 = 59;
382 : /**
383 : * Describe this variable
384 : *
385 : * @var int
386 : */
387 : const C4 = 60;
388 : /**
389 : * Describe this variable
390 : *
391 : * @var int
392 : */
393 : const CSharp4 = 61;
394 : /**
395 : * Describe this variable
396 : *
397 : * @var int
398 : */
399 : const D4 = 62;
400 : /**
401 : * Describe this variable
402 : *
403 : * @var int
404 : */
405 : const DSharp4 = 63;
406 : /**
407 : * Describe this variable
408 : *
409 : * @var int
410 : */
411 : const E4 = 64;
412 : /**
413 : * Describe this variable
414 : *
415 : * @var int
416 : */
417 : const F4 = 65;
418 : /**
419 : * Describe this variable
420 : *
421 : * @var int
422 : */
423 : const FSharp4 = 66;
424 : /**
425 : * Describe this variable
426 : *
427 : * @var int
428 : */
429 : const G4 = 67;
430 : /**
431 : * Describe this variable
432 : *
433 : * @var int
434 : */
435 : const GSharp4 = 68;
436 : /**
437 : * Describe this variable
438 : *
439 : * @var int
440 : */
441 : const A4 = 69;
442 : /**
443 : * Describe this variable
444 : *
445 : * @var int
446 : */
447 : const ASharp4 = 70;
448 : /**
449 : * Describe this variable
450 : *
451 : * @var int
452 : */
453 : const B4 = 71;
454 : /**
455 : * Describe this variable
456 : *
457 : * @var int
458 : */
459 : const C5 = 72;
460 : /**
461 : * Describe this variable
462 : *
463 : * @var int
464 : */
465 : const CSharp5 = 73;
466 : /**
467 : * Describe this variable
468 : *
469 : * @var int
470 : */
471 : const D5 = 74;
472 : /**
473 : * Describe this variable
474 : *
475 : * @var int
476 : */
477 : const DSharp5 = 75;
478 : /**
479 : * Describe this variable
480 : *
481 : * @var int
482 : */
483 : const E5 = 76;
484 : /**
485 : * Describe this variable
486 : *
487 : * @var int
488 : */
489 : const F5 = 77;
490 : /**
491 : * Describe this variable
492 : *
493 : * @var int
494 : */
495 : const FSharp5 = 78;
496 : /**
497 : * Describe this variable
498 : *
499 : * @var int
500 : */
501 : const G5 = 79;
502 : /**
503 : * Describe this variable
504 : *
505 : * @var int
506 : */
507 : const GSharp5 = 80;
508 : /**
509 : * Describe this variable
510 : *
511 : * @var int
512 : */
513 : const A5 = 81;
514 : /**
515 : * Describe this variable
516 : *
517 : * @var int
518 : */
519 : const ASharp5 = 82;
520 : /**
521 : * Describe this variable
522 : *
523 : * @var int
524 : */
525 : const B5 = 83;
526 : /**
527 : * Describe this variable
528 : *
529 : * @var int
530 : */
531 : const C6 = 84;
532 : /**
533 : * Describe this variable
534 : *
535 : * @var int
536 : */
537 : const CSharp6 = 85;
538 : /**
539 : * Describe this variable
540 : *
541 : * @var int
542 : */
543 : const D6 = 86;
544 : /**
545 : * Describe this variable
546 : *
547 : * @var int
548 : */
549 : const DSharp6 = 87;
550 : /**
551 : * Describe this variable
552 : *
553 : * @var int
554 : */
555 : const E6 = 88;
556 : /**
557 : * Describe this variable
558 : *
559 : * @var int
560 : */
561 : const F6 = 89;
562 : /**
563 : * Describe this variable
564 : *
565 : * @var int
566 : */
567 : const FSharp6 = 90;
568 : /**
569 : * Describe this variable
570 : *
571 : * @var int
572 : */
573 : const G6 = 91;
574 : /**
575 : * Describe this variable
576 : *
577 : * @var int
578 : */
579 : const GSharp6 = 92;
580 : /**
581 : * Describe this variable
582 : *
583 : * @var int
584 : */
585 : const A6 = 93;
586 : /**
587 : * Describe this variable
588 : *
589 : * @var int
590 : */
591 : const ASharp6 = 94;
592 : /**
593 : * Describe this variable
594 : *
595 : * @var int
596 : */
597 : const B6 = 95;
598 : /**
599 : * Describe this variable
600 : *
601 : * @var int
602 : */
603 : const C7 = 96;
604 : /**
605 : * Describe this variable
606 : *
607 : * @var int
608 : */
609 : const CSharp7 = 97;
610 : /**
611 : * Describe this variable
612 : *
613 : * @var int
614 : */
615 : const D7 = 98;
616 : /**
617 : * Describe this variable
618 : *
619 : * @var int
620 : */
621 : const DSharp7 = 99;
622 : /**
623 : * Describe this variable
624 : *
625 : * @var int
626 : */
627 : const E7 = 100;
628 : /**
629 : * Describe this variable
630 : *
631 : * @var int
632 : */
633 : const F7 = 101;
634 : /**
635 : * Describe this variable
636 : *
637 : * @var int
638 : */
639 : const FSharp7 = 102;
640 : /**
641 : * Describe this variable
642 : *
643 : * @var int
644 : */
645 : const G7 = 103;
646 : /**
647 : * Describe this variable
648 : *
649 : * @var int
650 : */
651 : const GSharp7 = 104;
652 : /**
653 : * Describe this variable
654 : *
655 : * @var int
656 : */
657 : const A7 = 105;
658 : /**
659 : * Describe this variable
660 : *
661 : * @var int
662 : */
663 : const ASharp7 = 106;
664 : /**
665 : * Describe this variable
666 : *
667 : * @var int
668 : */
669 : const B7 = 107;
670 : /**
671 : * Describe this variable
672 : *
673 : * @var int
674 : */
675 : const C8 = 108;
676 : /**
677 : * Describe this variable
678 : *
679 : * @var int
680 : */
681 : const CSharp8 = 109;
682 : /**
683 : * Describe this variable
684 : *
685 : * @var int
686 : */
687 : const D8 = 110;
688 : /**
689 : * Describe this variable
690 : *
691 : * @var int
692 : */
693 : const DSharp8 = 111;
694 : /**
695 : * Describe this variable
696 : *
697 : * @var int
698 : */
699 : const E8 = 112;
700 : /**
701 : * Describe this variable
702 : *
703 : * @var int
704 : */
705 : const F8 = 113;
706 : /**
707 : * Describe this variable
708 : *
709 : * @var int
710 : */
711 : const FSharp8 = 114;
712 : /**
713 : * Describe this variable
714 : *
715 : * @var int
716 : */
717 : const G8 = 115;
718 : /**
719 : * Describe this variable
720 : *
721 : * @var int
722 : */
723 : const GSharp8 = 116;
724 : /**
725 : * Describe this variable
726 : *
727 : * @var int
728 : */
729 : const A8 = 117;
730 : /**
731 : * Describe this variable
732 : *
733 : * @var int
734 : */
735 : const ASharp8 = 118;
736 : /**
737 : * Describe this variable
738 : *
739 : * @var int
740 : */
741 : const B8 = 119;
742 : /**
743 : * Describe this variable
744 : *
745 : * @var int
746 : */
747 : const C9 = 120;
748 : /**
749 : * Describe this variable
750 : *
751 : * @var int
752 : */
753 : const CSharp9 = 121;
754 : /**
755 : * Describe this variable
756 : *
757 : * @var int
758 : */
759 : const D9 = 122;
760 : /**
761 : * Describe this variable
762 : *
763 : * @var int
764 : */
765 : const DSharp9 = 123;
766 : /**
767 : * Describe this variable
768 : *
769 : * @var int
770 : */
771 : const E9 = 124;
772 : /**
773 : * Describe this variable
774 : *
775 : * @var int
776 : */
777 : const F9 = 125;
778 : /**
779 : * Describe this variable
780 : *
781 : * @var int
782 : */
783 : const FSharp9 = 126;
784 : /**
785 : * Describe this variable
786 : *
787 : * @var int
788 : */
789 : const G9 = 127;
790 : /**
791 : * Describe this variable
792 : *
793 : * @var int
794 : */
795 : const AcousticBassDrum = 35;
796 : /**
797 : * Describe this variable
798 : *
799 : * @var int
800 : */
801 : const BassDrum1 = 36;
802 : /**
803 : * Describe this variable
804 : *
805 : * @var int
806 : */
807 : const SideStick = 37;
808 : /**
809 : * Describe this variable
810 : *
811 : * @var int
812 : */
813 : const AcousticSnare = 38;
814 : /**
815 : * Describe this variable
816 : *
817 : * @var int
818 : */
819 : const HandClap = 39;
820 : /**
821 : * Describe this variable
822 : *
823 : * @var int
824 : */
825 : const ElectricSnare = 40;
826 : /**
827 : * Describe this variable
828 : *
829 : * @var int
830 : */
831 : const LowFloorTom = 41;
832 : /**
833 : * Describe this variable
834 : *
835 : * @var int
836 : */
837 : const ClosedHiHat = 42;
838 : /**
839 : * Describe this variable
840 : *
841 : * @var int
842 : */
843 : const HighFloorTom = 43;
844 : /**
845 : * Describe this variable
846 : *
847 : * @var int
848 : */
849 : const PedalHiHat = 44;
850 : /**
851 : * Describe this variable
852 : *
853 : * @var int
854 : */
855 : const LowTom = 45;
856 : /**
857 : * Describe this variable
858 : *
859 : * @var int
860 : */
861 : const OpenHiHat = 46;
862 : /**
863 : * Describe this variable
864 : *
865 : * @var int
866 : */
867 : const LowMidTom = 47;
868 : /**
869 : * Describe this variable
870 : *
871 : * @var int
872 : */
873 : const HiMidTom = 48;
874 : /**
875 : * Describe this variable
876 : *
877 : * @var int
878 : */
879 : const CrashCymbal1 = 49;
880 : /**
881 : * Describe this variable
882 : *
883 : * @var int
884 : */
885 : const HighTom = 50;
886 : /**
887 : * Describe this variable
888 : *
889 : * @var int
890 : */
891 : const RideCymbal1 = 51;
892 : /**
893 : * Describe this variable
894 : *
895 : * @var int
896 : */
897 : const ChineseCymbal = 52;
898 : /**
899 : * Describe this variable
900 : *
901 : * @var int
902 : */
903 : const RideBell = 53;
904 : /**
905 : * Describe this variable
906 : *
907 : * @var int
908 : */
909 : const Tambourine = 54;
910 : /**
911 : * Describe this variable
912 : *
913 : * @var int
914 : */
915 : const SplashCymbal = 55;
916 : /**
917 : * Describe this variable
918 : *
919 : * @var int
920 : */
921 : const Cowbell = 56;
922 : /**
923 : * Describe this variable
924 : *
925 : * @var int
926 : */
927 : const CrashCymbal2 = 57;
928 : /**
929 : * Describe this variable
930 : *
931 : * @var int
932 : */
933 : const Vibraslap = 58;
934 : /**
935 : * Describe this variable
936 : *
937 : * @var int
938 : */
939 : const RideCymbal2 = 59;
940 : /**
941 : * Describe this variable
942 : *
943 : * @var int
944 : */
945 : const HiBongo = 60;
946 : /**
947 : * Describe this variable
948 : *
949 : * @var int
950 : */
951 : const LowBongo = 61;
952 : /**
953 : * Describe this variable
954 : *
955 : * @var int
956 : */
957 : const MuteHiConga = 62;
958 : /**
959 : * Describe this variable
960 : *
961 : * @var int
962 : */
963 : const OpenHiConga = 63;
964 : /**
965 : * Describe this variable
966 : *
967 : * @var int
968 : */
969 : const LowConga = 64;
970 : /**
971 : * Describe this variable
972 : *
973 : * @var int
974 : */
975 : const HighTimbale = 65;
976 : /**
977 : * Describe this variable
978 : *
979 : * @var int
980 : */
981 : const LowTimbale = 66;
982 : /**
983 : * Describe this variable
984 : *
985 : * @var int
986 : */
987 : const HighAgogo = 67;
988 : /**
989 : * Describe this variable
990 : *
991 : * @var int
992 : */
993 : const LowAgogo = 68;
994 : /**
995 : * Describe this variable
996 : *
997 : * @var int
998 : */
999 : const Cabasa = 69;
1000 : /**
1001 : * Describe this variable
1002 : *
1003 : * @var int
1004 : */
1005 : const Maracas = 70;
1006 : /**
1007 : * Describe this variable
1008 : *
1009 : * @var int
1010 : */
1011 : const ShortWhistle = 71;
1012 : /**
1013 : * Describe this variable
1014 : *
1015 : * @var int
1016 : */
1017 : const LongWhistle = 72;
1018 : /**
1019 : * Describe this variable
1020 : *
1021 : * @var int
1022 : */
1023 : const ShortGuiro = 73;
1024 : /**
1025 : * Describe this variable
1026 : *
1027 : * @var int
1028 : */
1029 : const LongGuiro = 74;
1030 : /**
1031 : * Describe this variable
1032 : *
1033 : * @var int
1034 : */
1035 : const Claves = 75;
1036 : /**
1037 : * Describe this variable
1038 : *
1039 : * @var int
1040 : */
1041 : const HiWoodBlock = 76;
1042 : /**
1043 : * Describe this variable
1044 : *
1045 : * @var int
1046 : */
1047 : const LowWoodBlock = 77;
1048 : /**
1049 : * Describe this variable
1050 : *
1051 : * @var int
1052 : */
1053 : const MuteCuica = 78;
1054 : /**
1055 : * Describe this variable
1056 : *
1057 : * @var int
1058 : */
1059 : const OpenCuica = 79;
1060 : /**
1061 : * Describe this variable
1062 : *
1063 : * @var int
1064 : */
1065 : const MuteTriangle = 80;
1066 : /**
1067 : * Describe this variable
1068 : *
1069 : * @var int
1070 : */
1071 : const OpenTriangle = 81;
1072 : /**
1073 : * Describe this variable
1074 : *
1075 : * @var int
1076 : */
1077 : const Shaker = 82;
1078 :
1079 : /**
1080 : * Maps note constants to their name
1081 : *
1082 : * @var array
1083 : */
1084 : private static $noteMap = array(
1085 : 0 => 'CX',
1086 : 1 => 'C#X',
1087 : 2 => 'DX',
1088 : 3 => 'D#X',
1089 : 4 => 'EX',
1090 : 5 => 'FX',
1091 : 6 => 'F#X',
1092 : 7 => 'GX',
1093 : 8 => 'G#X',
1094 : 9 => 'AX',
1095 : 10 => 'A#X',
1096 : 11 => 'BX',
1097 : 12 => 'C0',
1098 : 13 => 'C#0',
1099 : 14 => 'D0',
1100 : 15 => 'D#0',
1101 : 16 => 'E0',
1102 : 17 => 'F0',
1103 : 18 => 'F#0',
1104 : 19 => 'G0',
1105 : 20 => 'G#0',
1106 : 21 => 'A0',
1107 : 22 => 'A#0',
1108 : 23 => 'B0',
1109 : 24 => 'C1',
1110 : 25 => 'C#1',
1111 : 26 => 'D1',
1112 : 27 => 'D#1',
1113 : 28 => 'E1',
1114 : 29 => 'F1',
1115 : 30 => 'F#1',
1116 : 31 => 'G1',
1117 : 32 => 'G#1',
1118 : 33 => 'A1',
1119 : 34 => 'A#1',
1120 : 35 => 'B1',
1121 : 36 => 'C2',
1122 : 37 => 'C#2',
1123 : 38 => 'D2',
1124 : 39 => 'D#2',
1125 : 40 => 'E2',
1126 : 41 => 'F2',
1127 : 42 => 'F#2',
1128 : 43 => 'G2',
1129 : 44 => 'G#2',
1130 : 45 => 'A2',
1131 : 46 => 'A#2',
1132 : 47 => 'B2',
1133 : 48 => 'C3',
1134 : 49 => 'C#3',
1135 : 50 => 'D3',
1136 : 51 => 'D#3',
1137 : 52 => 'E3',
1138 : 53 => 'F3',
1139 : 54 => 'F#3',
1140 : 55 => 'G3',
1141 : 56 => 'G#3',
1142 : 57 => 'A3',
1143 : 58 => 'A#3',
1144 : 59 => 'B3',
1145 : 60 => 'C4',
1146 : 61 => 'C#4',
1147 : 62 => 'D4',
1148 : 63 => 'D#4',
1149 : 64 => 'E4',
1150 : 65 => 'F4',
1151 : 66 => 'F#4',
1152 : 67 => 'G4',
1153 : 68 => 'G#4',
1154 : 69 => 'A4',
1155 : 70 => 'A#4',
1156 : 71 => 'B4',
1157 : 72 => 'C5',
1158 : 73 => 'C#5',
1159 : 74 => 'D5',
1160 : 75 => 'D#5',
1161 : 76 => 'E5',
1162 : 77 => 'F5',
1163 : 78 => 'F#5',
1164 : 79 => 'G5',
1165 : 80 => 'G#5',
1166 : 81 => 'A5',
1167 : 82 => 'A#5',
1168 : 83 => 'B5',
1169 : 84 => 'C6',
1170 : 85 => 'C#6',
1171 : 86 => 'D6',
1172 : 87 => 'D#6',
1173 : 88 => 'E6',
1174 : 89 => 'F6',
1175 : 90 => 'F#6',
1176 : 91 => 'G6',
1177 : 92 => 'G#6',
1178 : 93 => 'A6',
1179 : 94 => 'A#6',
1180 : 95 => 'B6',
1181 : 96 => 'C7',
1182 : 97 => 'C#7',
1183 : 98 => 'D7',
1184 : 99 => 'D#7',
1185 : 100 => 'E7',
1186 : 101 => 'F7',
1187 : 102 => 'F#7',
1188 : 103 => 'G7',
1189 : 104 => 'G#7',
1190 : 105 => 'A7',
1191 : 106 => 'A#7',
1192 : 107 => 'B7',
1193 : 108 => 'C8',
1194 : 109 => 'C#8',
1195 : 110 => 'D8',
1196 : 111 => 'D#8',
1197 : 112 => 'E8',
1198 : 113 => 'F8',
1199 : 114 => 'F#8',
1200 : 115 => 'G8',
1201 : 116 => 'G#8',
1202 : 117 => 'A8',
1203 : 118 => 'A#8',
1204 : 119 => 'B8',
1205 : 120 => 'C9',
1206 : 121 => 'C#9',
1207 : 122 => 'D9',
1208 : 123 => 'D#9',
1209 : 124 => 'E9',
1210 : 125 => 'F9',
1211 : 126 => 'F#9',
1212 : 127 => 'G9'
1213 : );
1214 :
1215 : /**
1216 : * Maps drum constants to their name
1217 : *
1218 : * @var array
1219 : */
1220 : public static $drumNoteMap = array(
1221 : 35 => 'AcousticBassDrum',
1222 : 36 => 'BassDrum1',
1223 : 37 => 'SideStick',
1224 : 38 => 'AcousticSnare',
1225 : 39 => 'HandClap',
1226 : 40 => 'ElectricSnare',
1227 : 41 => 'LowFloorTom',
1228 : 42 => 'ClosedHiHat',
1229 : 43 => 'HighFloorTom',
1230 : 44 => 'PedalHiHat',
1231 : 45 => 'LowTom',
1232 : 46 => 'OpenHiHat',
1233 : 47 => 'LowMidTom',
1234 : 48 => 'HiMidTom',
1235 : 49 => 'CrashCymbal1',
1236 : 50 => 'HighTom',
1237 : 51 => 'RideCymbal1',
1238 : 52 => 'ChineseCymbal',
1239 : 53 => 'RideBell',
1240 : 54 => 'Tambourine',
1241 : 55 => 'SplashCymbal',
1242 : 56 => 'Cowbell',
1243 : 57 => 'CrashCymbal2',
1244 : 58 => 'Vibraslap',
1245 : 59 => 'RideCymbal2',
1246 : 60 => 'HiBongo',
1247 : 61 => 'LowBongo',
1248 : 62 => 'MuteHiConga',
1249 : 63 => 'OpenHiConga',
1250 : 64 => 'LowConga',
1251 : 65 => 'HighTimbale',
1252 : 66 => 'LowTimbale',
1253 : 67 => 'HighAgogo',
1254 : 68 => 'LowAgogo',
1255 : 69 => 'Cabasa',
1256 : 70 => 'Maracas',
1257 : 71 => 'ShortWhistle',
1258 : 72 => 'LongWhistle',
1259 : 73 => 'ShortGuiro',
1260 : 74 => 'LongGuiro',
1261 : 75 => 'Claves',
1262 : 76 => 'HiWoodBlock',
1263 : 77 => 'LowWoodBlock',
1264 : 78 => 'MuteCuica',
1265 : 79 => 'OpenCuica',
1266 : 80 => 'MuteTriangle',
1267 : 81 => 'OpenTriangle',
1268 : 82 => 'Shaker'
1269 : );
1270 :
1271 : /**
1272 : * Gets the friendly name of the drum note
1273 : *
1274 : * @since 1.0
1275 : *
1276 : * @param int $note One of the {@link Note} constants
1277 : * @throws InvalidArgumentException
1278 : * @return string
1279 : */
1280 : public static function getDrumNoteName($note) {
1281 2 : if (!isset(self::$drumNoteMap[$note])) {
1282 1 : throw new \InvalidArgumentException('Invalid note name, use one of the \Midi\Util\Note constants');
1283 : }
1284 :
1285 1 : return self::$drumNoteMap[$note];
1286 : }
1287 :
1288 : /**
1289 : * Gets the friendly name of the MIDI note
1290 : *
1291 : * @since 1.0
1292 : *
1293 : * @param int $note One of the {@link Note} constants
1294 : * @throws InvalidArgumentException
1295 : * @return string
1296 : */
1297 : public static function getNoteName($note) {
1298 5 : if (!isset(self::$noteMap[$note])) {
1299 1 : throw new \InvalidArgumentException('Invalid note name, use one of the \Midi\Util\Note constants');
1300 : }
1301 :
1302 4 : return self::$noteMap[$note];
1303 : }
1304 :
1305 : }
1306 :
|