Commit fab29aa

Nick Faro committed on
WIP find/replace dialog, better right clicking channel headers
commit fab29aaef1c96c69c13171baeb4f83e2e414b73f parent 8dabfbd
7 changed files +2134−564
Addedfindreplace.lfm +1387−0
@@ -0,0 +1,1387 @@
1 object frmFindReplace: TfrmFindReplace
2 Left = 1706
3 Height = 639
4 Top = 205
5 Width = 665
6 BorderStyle = bsDialog
7 Caption = 'Find/Replace'
8 ClientHeight = 639
9 ClientWidth = 665
10 DesignTimePPI = 168
11 OnCreate = FormCreate
12 LCLVersion = '2.2.3.0'
13 object GroupBox1: TGroupBox
14 Left = 28
15 Height = 266
16 Top = 14
17 Width = 604
18 Caption = 'Find'
19 ClientHeight = 231
20 ClientWidth = 600
21 TabOrder = 0
22 object FindNoteLow: TComboBox
23 Left = 180
24 Height = 38
25 Top = 7
26 Width = 175
27 ItemHeight = 30
28 ItemIndex = 0
29 Items.Strings = (
30 'C-3'
31 'C#3'
32 'D-3'
33 'D#3'
34 'E-3'
35 'F-3'
36 'F#3'
37 'G-3'
38 'G#3'
39 'A-3'
40 'A#3'
41 'B-3'
42 'C-4'
43 'C#4'
44 'D-4'
45 'D#4'
46 'E-4'
47 'F-4'
48 'F#4'
49 'G-4'
50 'G#4'
51 'A-4'
52 'A#4'
53 'B-4'
54 'C-5'
55 'C#5'
56 'D-5'
57 'D#5'
58 'E-5'
59 'F-5'
60 'F#5'
61 'G-5'
62 'G#5'
63 'A-5'
64 'A#5'
65 'B-5'
66 'C-6'
67 'C#6'
68 'D-6'
69 'D#6'
70 'E-6'
71 'F-6'
72 'F#6'
73 'G-6'
74 'G#6'
75 'A-6'
76 'A#6'
77 'B-6'
78 'C-7'
79 'C#7'
80 'D-7'
81 'D#7'
82 'E-7'
83 'F-7'
84 'F#7'
85 'G-7'
86 'G#7'
87 'A-7'
88 'A#7'
89 'B-7'
90 'C-8'
91 'C#8'
92 'D-8'
93 'D#8'
94 'E-8'
95 'F-8'
96 'F#8'
97 'G-8'
98 'G#8'
99 'A-8'
100 'A#8'
101 'B-8'
102 )
103 Style = csDropDownList
104 TabOrder = 0
105 Text = 'C-3'
106 end
107 object FindNoteCheckbox: TCheckBox
108 Left = 14
109 Height = 34
110 Top = 14
111 Width = 80
112 Caption = 'Note'
113 TabOrder = 1
114 end
115 object FindInstrCheckbox: TCheckBox
116 Left = 14
117 Height = 34
118 Top = 70
119 Width = 135
120 Caption = 'Instrument'
121 TabOrder = 2
122 end
123 object FindInstrLow: TSpinEdit
124 Left = 180
125 Height = 38
126 Top = 63
127 Width = 175
128 MaxValue = 15
129 MinValue = 1
130 TabOrder = 3
131 Value = 1
132 end
133 object Label1: TLabel
134 Left = 364
135 Height = 30
136 Top = 70
137 Width = 19
138 Caption = 'to'
139 ParentColor = False
140 end
141 object FindInstrHigh: TSpinEdit
142 Left = 392
143 Height = 38
144 Top = 63
145 Width = 175
146 MaxValue = 15
147 MinValue = 1
148 TabOrder = 4
149 Value = 1
150 end
151 object FindFXCodeCheckbox: TCheckBox
152 Left = 14
153 Height = 34
154 Top = 126
155 Width = 138
156 Caption = 'Effect code'
157 TabOrder = 5
158 end
159 object FindFXParamCheckbox: TCheckBox
160 Left = 14
161 Height = 34
162 Top = 182
163 Width = 161
164 Caption = 'Effect params'
165 TabOrder = 6
166 end
167 object FindFXCodeLow: TComboBox
168 Left = 180
169 Height = 38
170 Top = 119
171 Width = 175
172 ItemHeight = 30
173 ItemIndex = 0
174 Items.Strings = (
175 '0'
176 '1'
177 '2'
178 '3'
179 '4'
180 '5'
181 '6'
182 '7'
183 '8'
184 '9'
185 'A'
186 'B'
187 'C'
188 'D'
189 'E'
190 'F'
191 )
192 Style = csDropDownList
193 TabOrder = 7
194 Text = '0'
195 end
196 object Label2: TLabel
197 Left = 364
198 Height = 30
199 Top = 126
200 Width = 19
201 Caption = 'to'
202 ParentColor = False
203 end
204 object FindFXCodeHigh: TComboBox
205 Left = 392
206 Height = 38
207 Top = 119
208 Width = 175
209 ItemHeight = 30
210 ItemIndex = 0
211 Items.Strings = (
212 '0'
213 '1'
214 '2'
215 '3'
216 '4'
217 '5'
218 '6'
219 '7'
220 '8'
221 '9'
222 'A'
223 'B'
224 'C'
225 'D'
226 'E'
227 'F'
228 )
229 Style = csDropDownList
230 TabOrder = 8
231 Text = '0'
232 end
233 object FindFXParamLow: TComboBox
234 Left = 180
235 Height = 38
236 Top = 175
237 Width = 175
238 ItemHeight = 30
239 ItemIndex = 0
240 Items.Strings = (
241 '00'
242 '01'
243 '02'
244 '03'
245 '04'
246 '05'
247 '06'
248 '07'
249 '08'
250 '09'
251 '0A'
252 '0B'
253 '0C'
254 '0D'
255 '0E'
256 '0F'
257 '10'
258 '11'
259 '12'
260 '13'
261 '14'
262 '15'
263 '16'
264 '17'
265 '18'
266 '19'
267 '1A'
268 '1B'
269 '1C'
270 '1D'
271 '1E'
272 '1F'
273 '20'
274 '21'
275 '22'
276 '23'
277 '24'
278 '25'
279 '26'
280 '27'
281 '28'
282 '29'
283 '2A'
284 '2B'
285 '2C'
286 '2D'
287 '2E'
288 '2F'
289 '30'
290 '31'
291 '32'
292 '33'
293 '34'
294 '35'
295 '36'
296 '37'
297 '38'
298 '39'
299 '3A'
300 '3B'
301 '3C'
302 '3D'
303 '3E'
304 '3F'
305 '40'
306 '41'
307 '42'
308 '43'
309 '44'
310 '45'
311 '46'
312 '47'
313 '48'
314 '49'
315 '4A'
316 '4B'
317 '4C'
318 '4D'
319 '4E'
320 '4F'
321 '50'
322 '51'
323 '52'
324 '53'
325 '54'
326 '55'
327 '56'
328 '57'
329 '58'
330 '59'
331 '5A'
332 '5B'
333 '5C'
334 '5D'
335 '5E'
336 '5F'
337 '60'
338 '61'
339 '62'
340 '63'
341 '64'
342 '65'
343 '66'
344 '67'
345 '68'
346 '69'
347 '6A'
348 '6B'
349 '6C'
350 '6D'
351 '6E'
352 '6F'
353 '70'
354 '71'
355 '72'
356 '73'
357 '74'
358 '75'
359 '76'
360 '77'
361 '78'
362 '79'
363 '7A'
364 '7B'
365 '7C'
366 '7D'
367 '7E'
368 '7F'
369 '80'
370 '81'
371 '82'
372 '83'
373 '84'
374 '85'
375 '86'
376 '87'
377 '88'
378 '89'
379 '8A'
380 '8B'
381 '8C'
382 '8D'
383 '8E'
384 '8F'
385 '90'
386 '91'
387 '92'
388 '93'
389 '94'
390 '95'
391 '96'
392 '97'
393 '98'
394 '99'
395 '9A'
396 '9B'
397 '9C'
398 '9D'
399 '9E'
400 '9F'
401 'A0'
402 'A1'
403 'A2'
404 'A3'
405 'A4'
406 'A5'
407 'A6'
408 'A7'
409 'A8'
410 'A9'
411 'AA'
412 'AB'
413 'AC'
414 'AD'
415 'AE'
416 'AF'
417 'B0'
418 'B1'
419 'B2'
420 'B3'
421 'B4'
422 'B5'
423 'B6'
424 'B7'
425 'B8'
426 'B9'
427 'BA'
428 'BB'
429 'BC'
430 'BD'
431 'BE'
432 'BF'
433 'C0'
434 'C1'
435 'C2'
436 'C3'
437 'C4'
438 'C5'
439 'C6'
440 'C7'
441 'C8'
442 'C9'
443 'CA'
444 'CB'
445 'CC'
446 'CD'
447 'CE'
448 'CF'
449 'D0'
450 'D1'
451 'D2'
452 'D3'
453 'D4'
454 'D5'
455 'D6'
456 'D7'
457 'D8'
458 'D9'
459 'DA'
460 'DB'
461 'DC'
462 'DD'
463 'DE'
464 'DF'
465 'E0'
466 'E1'
467 'E2'
468 'E3'
469 'E4'
470 'E5'
471 'E6'
472 'E7'
473 'E8'
474 'E9'
475 'EA'
476 'EB'
477 'EC'
478 'ED'
479 'EE'
480 'EF'
481 'F0'
482 'F1'
483 'F2'
484 'F3'
485 'F4'
486 'F5'
487 'F6'
488 'F7'
489 'F8'
490 'F9'
491 'FA'
492 'FB'
493 'FC'
494 'FD'
495 'FE'
496 'FF'
497 )
498 TabOrder = 9
499 Text = '00'
500 end
501 object Label3: TLabel
502 Left = 364
503 Height = 30
504 Top = 182
505 Width = 19
506 Caption = 'to'
507 ParentColor = False
508 end
509 object FindFXParamHigh: TComboBox
510 Left = 392
511 Height = 38
512 Top = 175
513 Width = 175
514 ItemHeight = 30
515 ItemIndex = 0
516 Items.Strings = (
517 '00'
518 '01'
519 '02'
520 '03'
521 '04'
522 '05'
523 '06'
524 '07'
525 '08'
526 '09'
527 '0A'
528 '0B'
529 '0C'
530 '0D'
531 '0E'
532 '0F'
533 '10'
534 '11'
535 '12'
536 '13'
537 '14'
538 '15'
539 '16'
540 '17'
541 '18'
542 '19'
543 '1A'
544 '1B'
545 '1C'
546 '1D'
547 '1E'
548 '1F'
549 '20'
550 '21'
551 '22'
552 '23'
553 '24'
554 '25'
555 '26'
556 '27'
557 '28'
558 '29'
559 '2A'
560 '2B'
561 '2C'
562 '2D'
563 '2E'
564 '2F'
565 '30'
566 '31'
567 '32'
568 '33'
569 '34'
570 '35'
571 '36'
572 '37'
573 '38'
574 '39'
575 '3A'
576 '3B'
577 '3C'
578 '3D'
579 '3E'
580 '3F'
581 '40'
582 '41'
583 '42'
584 '43'
585 '44'
586 '45'
587 '46'
588 '47'
589 '48'
590 '49'
591 '4A'
592 '4B'
593 '4C'
594 '4D'
595 '4E'
596 '4F'
597 '50'
598 '51'
599 '52'
600 '53'
601 '54'
602 '55'
603 '56'
604 '57'
605 '58'
606 '59'
607 '5A'
608 '5B'
609 '5C'
610 '5D'
611 '5E'
612 '5F'
613 '60'
614 '61'
615 '62'
616 '63'
617 '64'
618 '65'
619 '66'
620 '67'
621 '68'
622 '69'
623 '6A'
624 '6B'
625 '6C'
626 '6D'
627 '6E'
628 '6F'
629 '70'
630 '71'
631 '72'
632 '73'
633 '74'
634 '75'
635 '76'
636 '77'
637 '78'
638 '79'
639 '7A'
640 '7B'
641 '7C'
642 '7D'
643 '7E'
644 '7F'
645 '80'
646 '81'
647 '82'
648 '83'
649 '84'
650 '85'
651 '86'
652 '87'
653 '88'
654 '89'
655 '8A'
656 '8B'
657 '8C'
658 '8D'
659 '8E'
660 '8F'
661 '90'
662 '91'
663 '92'
664 '93'
665 '94'
666 '95'
667 '96'
668 '97'
669 '98'
670 '99'
671 '9A'
672 '9B'
673 '9C'
674 '9D'
675 '9E'
676 '9F'
677 'A0'
678 'A1'
679 'A2'
680 'A3'
681 'A4'
682 'A5'
683 'A6'
684 'A7'
685 'A8'
686 'A9'
687 'AA'
688 'AB'
689 'AC'
690 'AD'
691 'AE'
692 'AF'
693 'B0'
694 'B1'
695 'B2'
696 'B3'
697 'B4'
698 'B5'
699 'B6'
700 'B7'
701 'B8'
702 'B9'
703 'BA'
704 'BB'
705 'BC'
706 'BD'
707 'BE'
708 'BF'
709 'C0'
710 'C1'
711 'C2'
712 'C3'
713 'C4'
714 'C5'
715 'C6'
716 'C7'
717 'C8'
718 'C9'
719 'CA'
720 'CB'
721 'CC'
722 'CD'
723 'CE'
724 'CF'
725 'D0'
726 'D1'
727 'D2'
728 'D3'
729 'D4'
730 'D5'
731 'D6'
732 'D7'
733 'D8'
734 'D9'
735 'DA'
736 'DB'
737 'DC'
738 'DD'
739 'DE'
740 'DF'
741 'E0'
742 'E1'
743 'E2'
744 'E3'
745 'E4'
746 'E5'
747 'E6'
748 'E7'
749 'E8'
750 'E9'
751 'EA'
752 'EB'
753 'EC'
754 'ED'
755 'EE'
756 'EF'
757 'F0'
758 'F1'
759 'F2'
760 'F3'
761 'F4'
762 'F5'
763 'F6'
764 'F7'
765 'F8'
766 'F9'
767 'FA'
768 'FB'
769 'FC'
770 'FD'
771 'FE'
772 'FF'
773 )
774 TabOrder = 10
775 Text = '00'
776 end
777 object Label4: TLabel
778 Left = 364
779 Height = 30
780 Top = 14
781 Width = 19
782 Caption = 'to'
783 ParentColor = False
784 end
785 object FindNoteHigh: TComboBox
786 Left = 392
787 Height = 38
788 Top = 7
789 Width = 175
790 ItemHeight = 30
791 ItemIndex = 0
792 Items.Strings = (
793 'C-3'
794 'C#3'
795 'D-3'
796 'D#3'
797 'E-3'
798 'F-3'
799 'F#3'
800 'G-3'
801 'G#3'
802 'A-3'
803 'A#3'
804 'B-3'
805 'C-4'
806 'C#4'
807 'D-4'
808 'D#4'
809 'E-4'
810 'F-4'
811 'F#4'
812 'G-4'
813 'G#4'
814 'A-4'
815 'A#4'
816 'B-4'
817 'C-5'
818 'C#5'
819 'D-5'
820 'D#5'
821 'E-5'
822 'F-5'
823 'F#5'
824 'G-5'
825 'G#5'
826 'A-5'
827 'A#5'
828 'B-5'
829 'C-6'
830 'C#6'
831 'D-6'
832 'D#6'
833 'E-6'
834 'F-6'
835 'F#6'
836 'G-6'
837 'G#6'
838 'A-6'
839 'A#6'
840 'B-6'
841 'C-7'
842 'C#7'
843 'D-7'
844 'D#7'
845 'E-7'
846 'F-7'
847 'F#7'
848 'G-7'
849 'G#7'
850 'A-7'
851 'A#7'
852 'B-7'
853 'C-8'
854 'C#8'
855 'D-8'
856 'D#8'
857 'E-8'
858 'F-8'
859 'F#8'
860 'G-8'
861 'G#8'
862 'A-8'
863 'A#8'
864 'B-8'
865 )
866 Style = csDropDownList
867 TabOrder = 11
868 Text = 'C-3'
869 end
870 end
871 object Button1: TButton
872 Left = 28
873 Height = 44
874 Top = 574
875 Width = 131
876 Caption = 'Replace'
877 OnClick = Button1Click
878 TabOrder = 1
879 end
880 object GroupBox2: TGroupBox
881 Left = 28
882 Height = 266
883 Top = 294
884 Width = 604
885 Caption = 'Replace'
886 ClientHeight = 231
887 ClientWidth = 600
888 TabOrder = 2
889 object ReplaceNoteCheckbox: TCheckBox
890 Left = 14
891 Height = 34
892 Top = 14
893 Width = 80
894 Caption = 'Note'
895 TabOrder = 0
896 end
897 object ReplaceInstrCheckbox: TCheckBox
898 Left = 14
899 Height = 34
900 Top = 70
901 Width = 135
902 Caption = 'Instrument'
903 TabOrder = 1
904 end
905 object InstrReplaceValue: TSpinEdit
906 Left = 392
907 Height = 38
908 Top = 63
909 Width = 175
910 MaxValue = 15
911 MinValue = 1
912 TabOrder = 2
913 Value = 1
914 end
915 object ReplaceFXCodeCheckbox: TCheckBox
916 Left = 14
917 Height = 34
918 Top = 126
919 Width = 138
920 Caption = 'Effect code'
921 TabOrder = 3
922 end
923 object ReplaceFXParamCheckbox: TCheckBox
924 Left = 14
925 Height = 34
926 Top = 182
927 Width = 161
928 Caption = 'Effect params'
929 TabOrder = 4
930 end
931 object FXCodeReplaceValue: TComboBox
932 Left = 392
933 Height = 38
934 Top = 119
935 Width = 175
936 ItemHeight = 30
937 ItemIndex = 0
938 Items.Strings = (
939 '0'
940 '1'
941 '2'
942 '3'
943 '4'
944 '5'
945 '6'
946 '7'
947 '8'
948 '9'
949 'A'
950 'B'
951 'C'
952 'D'
953 'E'
954 'F'
955 )
956 Style = csDropDownList
957 TabOrder = 5
958 Text = '0'
959 end
960 object FXParamReplaceValue: TComboBox
961 Left = 392
962 Height = 38
963 Top = 175
964 Width = 175
965 ItemHeight = 30
966 ItemIndex = 0
967 Items.Strings = (
968 '00'
969 '01'
970 '02'
971 '03'
972 '04'
973 '05'
974 '06'
975 '07'
976 '08'
977 '09'
978 '0A'
979 '0B'
980 '0C'
981 '0D'
982 '0E'
983 '0F'
984 '10'
985 '11'
986 '12'
987 '13'
988 '14'
989 '15'
990 '16'
991 '17'
992 '18'
993 '19'
994 '1A'
995 '1B'
996 '1C'
997 '1D'
998 '1E'
999 '1F'
1000 '20'
1001 '21'
1002 '22'
1003 '23'
1004 '24'
1005 '25'
1006 '26'
1007 '27'
1008 '28'
1009 '29'
1010 '2A'
1011 '2B'
1012 '2C'
1013 '2D'
1014 '2E'
1015 '2F'
1016 '30'
1017 '31'
1018 '32'
1019 '33'
1020 '34'
1021 '35'
1022 '36'
1023 '37'
1024 '38'
1025 '39'
1026 '3A'
1027 '3B'
1028 '3C'
1029 '3D'
1030 '3E'
1031 '3F'
1032 '40'
1033 '41'
1034 '42'
1035 '43'
1036 '44'
1037 '45'
1038 '46'
1039 '47'
1040 '48'
1041 '49'
1042 '4A'
1043 '4B'
1044 '4C'
1045 '4D'
1046 '4E'
1047 '4F'
1048 '50'
1049 '51'
1050 '52'
1051 '53'
1052 '54'
1053 '55'
1054 '56'
1055 '57'
1056 '58'
1057 '59'
1058 '5A'
1059 '5B'
1060 '5C'
1061 '5D'
1062 '5E'
1063 '5F'
1064 '60'
1065 '61'
1066 '62'
1067 '63'
1068 '64'
1069 '65'
1070 '66'
1071 '67'
1072 '68'
1073 '69'
1074 '6A'
1075 '6B'
1076 '6C'
1077 '6D'
1078 '6E'
1079 '6F'
1080 '70'
1081 '71'
1082 '72'
1083 '73'
1084 '74'
1085 '75'
1086 '76'
1087 '77'
1088 '78'
1089 '79'
1090 '7A'
1091 '7B'
1092 '7C'
1093 '7D'
1094 '7E'
1095 '7F'
1096 '80'
1097 '81'
1098 '82'
1099 '83'
1100 '84'
1101 '85'
1102 '86'
1103 '87'
1104 '88'
1105 '89'
1106 '8A'
1107 '8B'
1108 '8C'
1109 '8D'
1110 '8E'
1111 '8F'
1112 '90'
1113 '91'
1114 '92'
1115 '93'
1116 '94'
1117 '95'
1118 '96'
1119 '97'
1120 '98'
1121 '99'
1122 '9A'
1123 '9B'
1124 '9C'
1125 '9D'
1126 '9E'
1127 '9F'
1128 'A0'
1129 'A1'
1130 'A2'
1131 'A3'
1132 'A4'
1133 'A5'
1134 'A6'
1135 'A7'
1136 'A8'
1137 'A9'
1138 'AA'
1139 'AB'
1140 'AC'
1141 'AD'
1142 'AE'
1143 'AF'
1144 'B0'
1145 'B1'
1146 'B2'
1147 'B3'
1148 'B4'
1149 'B5'
1150 'B6'
1151 'B7'
1152 'B8'
1153 'B9'
1154 'BA'
1155 'BB'
1156 'BC'
1157 'BD'
1158 'BE'
1159 'BF'
1160 'C0'
1161 'C1'
1162 'C2'
1163 'C3'
1164 'C4'
1165 'C5'
1166 'C6'
1167 'C7'
1168 'C8'
1169 'C9'
1170 'CA'
1171 'CB'
1172 'CC'
1173 'CD'
1174 'CE'
1175 'CF'
1176 'D0'
1177 'D1'
1178 'D2'
1179 'D3'
1180 'D4'
1181 'D5'
1182 'D6'
1183 'D7'
1184 'D8'
1185 'D9'
1186 'DA'
1187 'DB'
1188 'DC'
1189 'DD'
1190 'DE'
1191 'DF'
1192 'E0'
1193 'E1'
1194 'E2'
1195 'E3'
1196 'E4'
1197 'E5'
1198 'E6'
1199 'E7'
1200 'E8'
1201 'E9'
1202 'EA'
1203 'EB'
1204 'EC'
1205 'ED'
1206 'EE'
1207 'EF'
1208 'F0'
1209 'F1'
1210 'F2'
1211 'F3'
1212 'F4'
1213 'F5'
1214 'F6'
1215 'F7'
1216 'F8'
1217 'F9'
1218 'FA'
1219 'FB'
1220 'FC'
1221 'FD'
1222 'FE'
1223 'FF'
1224 )
1225 TabOrder = 6
1226 Text = '00'
1227 end
1228 object NoteReplaceValue: TComboBox
1229 Left = 392
1230 Height = 38
1231 Top = 7
1232 Width = 175
1233 ItemHeight = 30
1234 ItemIndex = 0
1235 Items.Strings = (
1236 'C-3'
1237 'C#3'
1238 'D-3'
1239 'D#3'
1240 'E-3'
1241 'F-3'
1242 'F#3'
1243 'G-3'
1244 'G#3'
1245 'A-3'
1246 'A#3'
1247 'B-3'
1248 'C-4'
1249 'C#4'
1250 'D-4'
1251 'D#4'
1252 'E-4'
1253 'F-4'
1254 'F#4'
1255 'G-4'
1256 'G#4'
1257 'A-4'
1258 'A#4'
1259 'B-4'
1260 'C-5'
1261 'C#5'
1262 'D-5'
1263 'D#5'
1264 'E-5'
1265 'F-5'
1266 'F#5'
1267 'G-5'
1268 'G#5'
1269 'A-5'
1270 'A#5'
1271 'B-5'
1272 'C-6'
1273 'C#6'
1274 'D-6'
1275 'D#6'
1276 'E-6'
1277 'F-6'
1278 'F#6'
1279 'G-6'
1280 'G#6'
1281 'A-6'
1282 'A#6'
1283 'B-6'
1284 'C-7'
1285 'C#7'
1286 'D-7'
1287 'D#7'
1288 'E-7'
1289 'F-7'
1290 'F#7'
1291 'G-7'
1292 'G#7'
1293 'A-7'
1294 'A#7'
1295 'B-7'
1296 'C-8'
1297 'C#8'
1298 'D-8'
1299 'D#8'
1300 'E-8'
1301 'F-8'
1302 'F#8'
1303 'G-8'
1304 'G#8'
1305 'A-8'
1306 'A#8'
1307 'B-8'
1308 )
1309 Style = csDropDownList
1310 TabOrder = 7
1311 Text = 'C-3'
1312 end
1313 object NoteReplaceOp: TComboBox
1314 Left = 180
1315 Height = 38
1316 Top = 7
1317 Width = 184
1318 ItemHeight = 30
1319 ItemIndex = 0
1320 Items.Strings = (
1321 'Set to'
1322 'Add'
1323 'Subtract'
1324 )
1325 Style = csDropDownList
1326 TabOrder = 8
1327 Text = 'Set to'
1328 end
1329 object InstrReplaceOp: TComboBox
1330 Left = 180
1331 Height = 38
1332 Top = 63
1333 Width = 184
1334 ItemHeight = 30
1335 ItemIndex = 0
1336 Items.Strings = (
1337 'Set to'
1338 'Add'
1339 'Subtract'
1340 )
1341 Style = csDropDownList
1342 TabOrder = 9
1343 Text = 'Set to'
1344 end
1345 object FXCodeReplaceOp: TComboBox
1346 Left = 180
1347 Height = 38
1348 Top = 119
1349 Width = 184
1350 ItemHeight = 30
1351 ItemIndex = 0
1352 Items.Strings = (
1353 'Set to'
1354 'Add'
1355 'Subtract'
1356 )
1357 Style = csDropDownList
1358 TabOrder = 10
1359 Text = 'Set to'
1360 end
1361 object FXParamReplaceOp: TComboBox
1362 Left = 180
1363 Height = 38
1364 Top = 175
1365 Width = 184
1366 ItemHeight = 30
1367 ItemIndex = 0
1368 Items.Strings = (
1369 'Set to'
1370 'Add'
1371 'Subtract'
1372 )
1373 Style = csDropDownList
1374 TabOrder = 11
1375 Text = 'Set to'
1376 end
1377 end
1378 object Button2: TButton
1379 Left = 168
1380 Height = 44
1381 Top = 574
1382 Width = 131
1383 Caption = 'Cancel'
1384 OnClick = Button2Click
1385 TabOrder = 3
1386 end
1387 end
Addedfindreplace.pas +149−0
@@ -0,0 +1,149 @@
1 unit findreplace;
2
3 {$mode ObjFPC}{$H+}
4
5 interface
6
7 uses
8 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin,
9 ExtCtrls, hugedatatypes, math, constants;
10
11 type
12
13 { TfrmFindReplace }
14
15 TfrmFindReplace = class(TForm)
16 Button1: TButton;
17 Button2: TButton;
18 FindNoteCheckbox: TCheckBox;
19 FindInstrCheckbox: TCheckBox;
20 FindFXCodeCheckbox: TCheckBox;
21 FindFXParamCheckbox: TCheckBox;
22 ReplaceNoteCheckbox: TCheckBox;
23 ReplaceInstrCheckbox: TCheckBox;
24 ReplaceFXCodeCheckbox: TCheckBox;
25 ReplaceFXParamCheckbox: TCheckBox;
26 FindNoteLow: TComboBox;
27 InstrReplaceOp: TComboBox;
28 FXParamReplaceValue: TComboBox;
29 NoteReplaceValue: TComboBox;
30 FXCodeReplaceOp: TComboBox;
31 FXParamReplaceOp: TComboBox;
32 FindFXCodeLow: TComboBox;
33 FindFXCodeHigh: TComboBox;
34 FindFXParamLow: TComboBox;
35 FindFXParamHigh: TComboBox;
36 FindNoteHigh: TComboBox;
37 NoteReplaceOp: TComboBox;
38 FXCodeReplaceValue: TComboBox;
39 GroupBox1: TGroupBox;
40 GroupBox2: TGroupBox;
41 Label1: TLabel;
42 Label2: TLabel;
43 Label3: TLabel;
44 Label4: TLabel;
45 FindInstrLow: TSpinEdit;
46 FindInstrHigh: TSpinEdit;
47 InstrReplaceValue: TSpinEdit;
48 procedure Button1Click(Sender: TObject);
49 procedure Button2Click(Sender: TObject);
50 procedure FormCreate(Sender: TObject);
51 private
52
53 public
54 Patterns: ^TPatternMap;
55 end;
56
57 var
58 frmFindReplace: TfrmFindReplace;
59
60 implementation
61
62 {$R *.lfm}
63
64 { TfrmFindReplace }
65
66 procedure TfrmFindReplace.Button2Click(Sender: TObject);
67 begin
68 Close;
69 end;
70
71 procedure TfrmFindReplace.FormCreate(Sender: TObject);
72 begin
73 if not Assigned(Patterns) then Close;
74 end;
75
76 procedure TfrmFindReplace.Button1Click(Sender: TObject);
77 var
78 I, J: Integer;
79 PPat: PPattern;
80 DoReplace: Boolean;
81
82 procedure ReplaceOp(Op: Integer; var Data: Integer; Operand: Integer);
83 begin
84 case Op of
85 0: begin
86 Data := Operand;
87 end;
88 1: begin
89 Inc(Data, Operand);
90 end;
91 2: begin
92 Dec(Data, Operand);
93 end;
94 end;
95 end;
96
97 procedure ReplaceOp(Op: Integer; var Data: Byte; Operand: Integer);
98 begin
99 case Op of
100 0: begin
101 Data := Operand;
102 end;
103 1: begin
104 Inc(Data, Operand);
105 end;
106 2: begin
107 Dec(Data, Operand);
108 end;
109 end;
110 end;
111
112 begin
113 for I := 0 to Patterns^.Count do begin
114 PPat := Patterns^.Data[I];
115
116 for J := Low(TPattern) to High(TPattern) do begin
117 DoReplace := True;
118
119 if FindNoteCheckbox.Checked then
120 DoReplace := DoReplace and InRange(PPat^[J].Note, 0, 0);
121
122 if FindInstrCheckbox.Checked then
123 DoReplace := DoReplace and InRange(PPat^[J].Instrument, 0, 0);
124
125 if FindFXCodeCheckbox.Checked then
126 DoReplace := DoReplace and InRange(PPat^[J].EffectCode, 0, 0);
127
128 if FindFXParamCheckbox.Checked then
129 DoReplace := DoReplace and InRange(PPat^[J].EffectParams.Value, 0, 0);
130
131 if DoReplace then begin
132 if ReplaceNoteCheckbox.Checked then
133 ReplaceOp(NoteReplaceOp.ItemIndex, PPat^[J].Note, 0);
134
135 if ReplaceInstrCheckbox.Checked then
136 ReplaceOp(InstrReplaceOp.ItemIndex, PPat^[J].Instrument, 0);
137
138 if ReplaceFXCodeCheckbox.Checked then
139 ReplaceOp(FXCodeReplaceOp.ItemIndex, PPat^[J].EffectCode, 0);
140
141 if ReplaceFXParamCheckbox.Checked then
142 ReplaceOp(FXParamReplaceOp.ItemIndex, PPat^[J].EffectParams.Value, 0);
143 end;
144 end;
145 end;
146 end;
147
148 end.
149
ModifiedhUGEDriver +1−1
@@ -1 +1 @@
1 Subproject commit 468790c81de3086f668b51b584de781c88d8b6f3 1 Subproject commit 5e4c77d2abbfeb75e80b4d0da1ddc370053e1c88
ModifiedhUGETracker.lpi +8−1
@@ -208,7 +208,7 @@
208 <PackageName Value="LCL"/> 208 <PackageName Value="LCL"/>
209 </Item5> 209 </Item5>
210 </RequiredPackages> 210 </RequiredPackages>
211 <Units Count="27"> 211 <Units Count="28">
212 <Unit0> 212 <Unit0>
213 <Filename Value="hUGETracker.lpr"/> 213 <Filename Value="hUGETracker.lpr"/>
214 <IsPartOfProject Value="True"/> 214 <IsPartOfProject Value="True"/>
@@ -350,6 +350,13 @@
350 <IsPartOfProject Value="True"/> 350 <IsPartOfProject Value="True"/>
351 <UnitName Value="InstrumentPreview"/> 351 <UnitName Value="InstrumentPreview"/>
352 </Unit26> 352 </Unit26>
353 <Unit27>
354 <Filename Value="findreplace.pas"/>
355 <IsPartOfProject Value="True"/>
356 <ComponentName Value="frmFindReplace"/>
357 <HasResources Value="True"/>
358 <ResourceBaseClass Value="Form"/>
359 </Unit27>
353 </Units> 360 </Units>
354 </ProjectOptions> 361 </ProjectOptions>
355 <CompilerOptions> 362 <CompilerOptions>
ModifiedhUGETracker.lpr +2−1
@@ -24,7 +24,7 @@ uses
24 EffectEditor in 'effecteditor.pas', 24 EffectEditor in 'effecteditor.pas',
25 options in 'options.pas', 25 options in 'options.pas',
26 about_hugetracker in 'about_hugetracker.pas', 26 about_hugetracker in 'about_hugetracker.pas',
27 rendertowave in 'rendertowave.pas'; 27 rendertowave in 'rendertowave.pas', findreplace;
28 28
29 {$R *.res} 29 {$R *.res}
30 30
@@ -84,5 +84,6 @@ begin
84 Application.CreateForm(TfrmEffectEditor, frmEffectEditor); 84 Application.CreateForm(TfrmEffectEditor, frmEffectEditor);
85 Application.CreateForm(TfrmRenderToWave, frmRenderToWave); 85 Application.CreateForm(TfrmRenderToWave, frmRenderToWave);
86 Application.CreateForm(TfrmOptions, frmOptions); 86 Application.CreateForm(TfrmOptions, frmOptions);
87 Application.CreateForm(TfrmFindReplace, frmFindReplace);
87 Application.Run; 88 Application.Run;
88 end. 89 end.
Modifiedtracker.lfm +554−549
@@ -1,12 +1,13 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 1581 2 Left = 1507
3 Height = 857 3 Height = 1171
4 Top = 205 4 Top = 295
5 Width = 1318 5 Width = 1878
6 AllowDropFiles = True 6 AllowDropFiles = True
7 Caption = 'hUGETracker' 7 Caption = 'hUGETracker'
8 ClientHeight = 837 8 ClientHeight = 1137
9 ClientWidth = 1318 9 ClientWidth = 1878
10 DesignTimePPI = 168
10 KeyPreview = True 11 KeyPreview = True
11 Menu = MainMenu1 12 Menu = MainMenu1
12 OnCloseQuery = FormCloseQuery 13 OnCloseQuery = FormCloseQuery
@@ -20,9 +21,9 @@ object frmTracker: TfrmTracker
20 LCLVersion = '2.2.3.0' 21 LCLVersion = '2.2.3.0'
21 object TreeView1: TTreeView 22 object TreeView1: TTreeView
22 Left = 0 23 Left = 0
23 Height = 725 24 Height = 941
24 Top = 89 25 Top = 153
25 Width = 193 26 Width = 338
26 Align = alLeft 27 Align = alLeft
27 ParentFont = False 28 ParentFont = False
28 ReadOnly = True 29 ReadOnly = True
@@ -41,102 +42,102 @@ object frmTracker: TfrmTracker
41 } 42 }
42 end 43 end
43 object Splitter1: TSplitter 44 object Splitter1: TSplitter
44 Left = 193 45 Left = 338
45 Height = 725 46 Height = 941
46 Top = 89 47 Top = 153
47 Width = 5 48 Width = 9
48 end 49 end
49 object Panel1: TPanel 50 object Panel1: TPanel
50 Left = 198 51 Left = 347
51 Height = 725 52 Height = 941
52 Top = 89 53 Top = 153
53 Width = 1120 54 Width = 1531
54 Align = alClient 55 Align = alClient
55 BevelOuter = bvNone 56 BevelOuter = bvNone
56 ClientHeight = 725 57 ClientHeight = 941
57 ClientWidth = 1120 58 ClientWidth = 1531
58 ParentFont = False 59 ParentFont = False
59 TabOrder = 2 60 TabOrder = 2
60 object PageControl1: TPageControl 61 object PageControl1: TPageControl
61 Left = 0 62 Left = 0
62 Height = 725 63 Height = 941
63 Top = 0 64 Top = 0
64 Width = 1120 65 Width = 1531
65 ActivePage = InstrumentTabSheet 66 ActivePage = PatternTabSheet
66 Align = alClient 67 Align = alClient
67 ParentFont = False 68 ParentFont = False
68 TabIndex = 2 69 TabIndex = 1
69 TabOrder = 0 70 TabOrder = 0
70 object GeneralTabSheet: TTabSheet 71 object GeneralTabSheet: TTabSheet
71 Caption = 'General' 72 Caption = 'General'
72 ClientHeight = 697 73 ClientHeight = 898
73 ClientWidth = 1112 74 ClientWidth = 1523
74 ParentFont = False 75 ParentFont = False
75 object SongInformationGroupbox: TGroupBox 76 object SongInformationGroupbox: TGroupBox
76 Left = 8 77 Left = 14
77 Height = 192 78 Height = 336
78 Top = 8 79 Top = 14
79 Width = 297 80 Width = 520
80 Caption = 'Song information' 81 Caption = 'Song information'
81 ClientHeight = 172 82 ClientHeight = 301
82 ClientWidth = 293 83 ClientWidth = 516
83 ParentFont = False 84 ParentFont = False
84 TabOrder = 0 85 TabOrder = 0
85 object Label15: TLabel 86 object Label15: TLabel
86 Left = 8 87 Left = 14
87 Height = 15 88 Height = 30
88 Top = 16 89 Top = 28
89 Width = 27 90 Width = 47
90 Caption = 'Song' 91 Caption = 'Song'
91 ParentColor = False 92 ParentColor = False
92 ParentFont = False 93 ParentFont = False
93 end 94 end
94 object Label16: TLabel 95 object Label16: TLabel
95 Left = 7 96 Left = 12
96 Height = 15 97 Height = 30
97 Top = 48 98 Top = 84
98 Width = 28 99 Width = 49
99 Caption = 'Artist' 100 Caption = 'Artist'
100 ParentColor = False 101 ParentColor = False
101 ParentFont = False 102 ParentFont = False
102 end 103 end
103 object SongEdit: TEdit 104 object SongEdit: TEdit
104 Left = 56 105 Left = 98
105 Height = 23 106 Height = 38
106 Hint = 'The name of your composition' 107 Hint = 'The name of your composition'
107 Top = 8 108 Top = 14
108 Width = 216 109 Width = 378
109 MaxLength = 255 110 MaxLength = 255
110 OnChange = SongEditChange 111 OnChange = SongEditChange
111 ParentFont = False 112 ParentFont = False
112 TabOrder = 0 113 TabOrder = 0
113 end 114 end
114 object ArtistEdit: TEdit 115 object ArtistEdit: TEdit
115 Left = 56 116 Left = 98
116 Height = 23 117 Height = 38
117 Hint = 'Your name or handle' 118 Hint = 'Your name or handle'
118 Top = 40 119 Top = 70
119 Width = 216 120 Width = 378
120 MaxLength = 255 121 MaxLength = 255
121 OnChange = ArtistEditChange 122 OnChange = ArtistEditChange
122 ParentFont = False 123 ParentFont = False
123 TabOrder = 1 124 TabOrder = 1
124 end 125 end
125 object Label21: TLabel 126 object Label21: TLabel
126 Left = 8 127 Left = 14
127 Height = 15 128 Height = 30
128 Top = 78 129 Top = 136
129 Width = 114 130 Width = 197
130 Caption = 'Tempo (ticks per row)' 131 Caption = 'Tempo (ticks per row)'
131 ParentColor = False 132 ParentColor = False
132 ParentFont = False 133 ParentFont = False
133 end 134 end
134 object TicksPerRowSpinEdit: TSpinEdit 135 object TicksPerRowSpinEdit: TSpinEdit
135 Left = 133 136 Left = 233
136 Height = 23 137 Height = 38
137 Hint = 'How many ticks should happen before the row changes. Higher means slower.' 138 Hint = 'How many ticks should happen before the row changes. Higher means slower.'
138 Top = 72 139 Top = 126
139 Width = 50 140 Width = 88
140 MaxValue = 20 141 MaxValue = 20
141 MinValue = 1 142 MinValue = 1
142 OnChange = TicksPerRowSpinEditChange 143 OnChange = TicksPerRowSpinEditChange
@@ -145,40 +146,40 @@ object frmTracker: TfrmTracker
145 Value = 7 146 Value = 7
146 end 147 end
147 object TimerEnabledCheckBox: TCheckBox 148 object TimerEnabledCheckBox: TCheckBox
148 Left = 7 149 Left = 12
149 Height = 19 150 Height = 34
150 Hint = 'Enable the GB hardware timer. This allows for more fine-grained tempo control.' 151 Hint = 'Enable the GB hardware timer. This allows for more fine-grained tempo control.'
151 Top = 144 152 Top = 252
152 Width = 160 153 Width = 279
153 Caption = 'Enable timer-based tempo' 154 Caption = 'Enable timer-based tempo'
154 OnChange = TimerEnabledCheckBoxChange 155 OnChange = TimerEnabledCheckBoxChange
155 TabOrder = 3 156 TabOrder = 3
156 end 157 end
157 object TimerTempoLabel: TLabel 158 object TimerTempoLabel: TLabel
158 Left = 8 159 Left = 14
159 Height = 15 160 Height = 30
160 Top = 112 161 Top = 196
161 Width = 114 162 Width = 196
162 Caption = 'Tempo (timer divider)' 163 Caption = 'Tempo (timer divider)'
163 Enabled = False 164 Enabled = False
164 ParentColor = False 165 ParentColor = False
165 end 166 end
166 object TimerDividerSpinEdit: TSpinEdit 167 object TimerDividerSpinEdit: TSpinEdit
167 Left = 133 168 Left = 233
168 Height = 23 169 Height = 38
169 Hint = 'The "modulo" value for the GB hardware timer. Higher means faster.' 170 Hint = 'The "modulo" value for the GB hardware timer. Higher means faster.'
170 Top = 108 171 Top = 189
171 Width = 50 172 Width = 88
172 Enabled = False 173 Enabled = False
173 MaxValue = 255 174 MaxValue = 255
174 OnChange = TimerDividerSpinEditChange 175 OnChange = TimerDividerSpinEditChange
175 TabOrder = 4 176 TabOrder = 4
176 end 177 end
177 object TempoBPMLabel: TLabel 178 object TempoBPMLabel: TLabel
178 Left = 192 179 Left = 336
179 Height = 15 180 Height = 30
180 Top = 96 181 Top = 168
181 Width = 89 182 Width = 154
182 Caption = 'TempoBPMLabel' 183 Caption = 'TempoBPMLabel'
183 ParentColor = False 184 ParentColor = False
184 end 185 end
@@ -186,97 +187,96 @@ object frmTracker: TfrmTracker
186 end 187 end
187 object PatternTabSheet: TTabSheet 188 object PatternTabSheet: TTabSheet
188 Caption = 'Patterns' 189 Caption = 'Patterns'
189 ClientHeight = 697 190 ClientHeight = 898
190 ClientWidth = 1112 191 ClientWidth = 1523
191 ParentFont = False 192 ParentFont = False
192 object Panel3: TPanel 193 object Panel3: TPanel
193 Left = 224 194 Left = 392
194 Height = 697 195 Height = 898
195 Top = 0 196 Top = 0
196 Width = 888 197 Width = 1131
197 Align = alClient 198 Align = alClient
198 ClientHeight = 697 199 ClientHeight = 898
199 ClientWidth = 888 200 ClientWidth = 1131
200 ParentFont = False 201 ParentFont = False
201 TabOrder = 0 202 TabOrder = 0
202 object HeaderControl1: THeaderControl 203 object HeaderControl1: THeaderControl
203 Left = 1 204 Left = 1
204 Height = 30 205 Height = 52
205 Hint = 'Left click to mute, right click to solo' 206 Hint = 'Left click to mute, right click to solo'
206 Top = 1 207 Top = 1
207 Width = 886 208 Width = 1129
208 DragReorder = False 209 DragReorder = False
209 Images = ImageList2 210 Images = ImageList2
210 Sections = < 211 Sections = <
211 item 212 item
212 Alignment = taLeftJustify 213 Alignment = taLeftJustify
213 Width = 32 214 Width = 56
214 Visible = True 215 Visible = True
215 end 216 end
216 item 217 item
217 Alignment = taCenter 218 Alignment = taCenter
218 ImageIndex = 1 219 ImageIndex = 1
219 Text = 'Duty 1' 220 Text = 'Duty 1'
220 Width = 133 221 Width = 233
221 Visible = True 222 Visible = True
222 end 223 end
223 item 224 item
224 Alignment = taCenter 225 Alignment = taCenter
225 ImageIndex = 1 226 ImageIndex = 1
226 Text = 'Duty 2' 227 Text = 'Duty 2'
227 Width = 133 228 Width = 233
228 Visible = True 229 Visible = True
229 end 230 end
230 item 231 item
231 Alignment = taCenter 232 Alignment = taCenter
232 ImageIndex = 1 233 ImageIndex = 1
233 Text = 'Wave' 234 Text = 'Wave'
234 Width = 133 235 Width = 233
235 Visible = True 236 Visible = True
236 end 237 end
237 item 238 item
238 Alignment = taCenter 239 Alignment = taCenter
239 ImageIndex = 1 240 ImageIndex = 1
240 Text = 'Noise' 241 Text = 'Noise'
241 Width = 133 242 Width = 233
242 Visible = True 243 Visible = True
243 end> 244 end>
244 OnSectionClick = HeaderControl1SectionClick 245 OnSectionClick = HeaderControl1SectionClick
245 OnSectionResize = HeaderControl1SectionResize 246 OnSectionResize = HeaderControl1SectionResize
246 Align = alTop 247 Align = alTop
247 ParentFont = False 248 ParentFont = False
248 OnMouseDown = HeaderControl1MouseDown 249 OnMouseUp = HeaderControl1MouseUp
249 end 250 end
250 object ScrollBox1: TScrollBox 251 object ScrollBox1: TScrollBox
251 Left = 1 252 Left = 1
252 Height = 665 253 Height = 844
253 Top = 31 254 Top = 53
254 Width = 886 255 Width = 1129
255 HorzScrollBar.Increment = 3 256 HorzScrollBar.Increment = 5
256 HorzScrollBar.Page = 32 257 HorzScrollBar.Page = 56
257 HorzScrollBar.Smooth = True 258 HorzScrollBar.Smooth = True
258 HorzScrollBar.Tracking = True 259 HorzScrollBar.Tracking = True
259 VertScrollBar.Increment = 5 260 VertScrollBar.Page = 88
260 VertScrollBar.Page = 50
261 VertScrollBar.Smooth = True 261 VertScrollBar.Smooth = True
262 VertScrollBar.Tracking = True 262 VertScrollBar.Tracking = True
263 Align = alClient 263 Align = alClient
264 BorderStyle = bsNone 264 BorderStyle = bsNone
265 ClientHeight = 665 265 ClientHeight = 844
266 ClientWidth = 886 266 ClientWidth = 1129
267 ParentFont = False 267 ParentFont = False
268 TabOrder = 1 268 TabOrder = 1
269 OnMouseWheelDown = ScrollBox1MouseWheelDown 269 OnMouseWheelDown = ScrollBox1MouseWheelDown
270 OnMouseWheelUp = ScrollBox1MouseWheelUp 270 OnMouseWheelUp = ScrollBox1MouseWheelUp
271 object RowNumberStringGrid: TStringGrid 271 object RowNumberStringGrid: TStringGrid
272 Left = 0 272 Left = 0
273 Height = 665 273 Height = 844
274 Top = 0 274 Top = 0
275 Width = 32 275 Width = 56
276 Align = alLeft 276 Align = alLeft
277 BorderStyle = bsNone 277 BorderStyle = bsNone
278 ColCount = 1 278 ColCount = 1
279 DefaultColWidth = 32 279 DefaultColWidth = 56
280 Enabled = False 280 Enabled = False
281 ParentFont = False 281 ParentFont = False
282 RowCount = 64 282 RowCount = 64
@@ -287,43 +287,43 @@ object frmTracker: TfrmTracker
287 end 287 end
288 object OrderEditStringGrid: TStringGrid 288 object OrderEditStringGrid: TStringGrid
289 Left = 0 289 Left = 0
290 Height = 697 290 Height = 898
291 Top = 0 291 Top = 0
292 Width = 224 292 Width = 392
293 Align = alLeft 293 Align = alLeft
294 AutoEdit = False 294 AutoEdit = False
295 AutoFillColumns = True 295 AutoFillColumns = True
296 Columns = < 296 Columns = <
297 item 297 item
298 Alignment = taCenter 298 Alignment = taCenter
299 MinSize = 33 299 MinSize = 58
300 MaxSize = 33 300 MaxSize = 58
301 Title.Caption = 'Dty1' 301 Title.Caption = 'Dty1'
302 Width = 34 302 Width = 61
303 end 303 end
304 item 304 item
305 Alignment = taCenter 305 Alignment = taCenter
306 MinSize = 33 306 MinSize = 58
307 MaxSize = 33 307 MaxSize = 58
308 Title.Caption = 'Dty2' 308 Title.Caption = 'Dty2'
309 Width = 34 309 Width = 61
310 end 310 end
311 item 311 item
312 Alignment = taCenter 312 Alignment = taCenter
313 MinSize = 33 313 MinSize = 58
314 MaxSize = 33 314 MaxSize = 58
315 Title.Caption = 'Wav' 315 Title.Caption = 'Wav'
316 Width = 34 316 Width = 61
317 end 317 end
318 item 318 item
319 Alignment = taCenter 319 Alignment = taCenter
320 MinSize = 33 320 MinSize = 58
321 MaxSize = 33 321 MaxSize = 58
322 Title.Caption = 'Nse' 322 Title.Caption = 'Nse'
323 Width = 37 323 Width = 63
324 end> 324 end>
325 DefaultColWidth = 17 325 DefaultColWidth = 30
326 DefaultRowHeight = 21 326 DefaultRowHeight = 37
327 ExtendedSelect = False 327 ExtendedSelect = False
328 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goRangeSelect, goRowMoving, goEditing, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight] 328 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goRangeSelect, goRowMoving, goEditing, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight]
329 ParentFont = False 329 ParentFont = False
@@ -342,24 +342,24 @@ object frmTracker: TfrmTracker
342 OnKeyDown = OrderEditStringGridKeyDown 342 OnKeyDown = OrderEditStringGridKeyDown
343 OnValidateEntry = OrderEditStringGridValidateEntry 343 OnValidateEntry = OrderEditStringGridValidateEntry
344 ColWidths = ( 344 ColWidths = (
345 64 345 112
346 34 346 61
347 34 347 61
348 34 348 61
349 37 349 63
350 ) 350 )
351 end 351 end
352 end 352 end
353 object InstrumentTabSheet: TTabSheet 353 object InstrumentTabSheet: TTabSheet
354 Caption = 'Instruments' 354 Caption = 'Instruments'
355 ClientHeight = 697 355 ClientHeight = 898
356 ClientWidth = 1112 356 ClientWidth = 1523
357 ParentFont = False 357 ParentFont = False
358 object FlowPanel1: TFlowPanel 358 object FlowPanel1: TFlowPanel
359 Left = 0 359 Left = 0
360 Height = 697 360 Height = 898
361 Top = 0 361 Top = 0
362 Width = 952 362 Width = 1243
363 Align = alClient 363 Align = alClient
364 AutoSize = True 364 AutoSize = True
365 BevelOuter = bvNone 365 BevelOuter = bvNone
@@ -394,26 +394,26 @@ object frmTracker: TfrmTracker
394 ParentFont = False 394 ParentFont = False
395 TabOrder = 0 395 TabOrder = 0
396 object InstrumentGroupBox: TGroupBox 396 object InstrumentGroupBox: TGroupBox
397 Left = 7 397 Left = 12
398 Height = 273 398 Height = 478
399 Top = 7 399 Top = 12
400 Width = 280 400 Width = 490
401 Anchors = [] 401 Anchors = []
402 BorderSpacing.Left = 7 402 BorderSpacing.Left = 12
403 BorderSpacing.Top = 7 403 BorderSpacing.Top = 12
404 BorderSpacing.Right = 7 404 BorderSpacing.Right = 12
405 BorderSpacing.Bottom = 7 405 BorderSpacing.Bottom = 12
406 Caption = 'Instrument' 406 Caption = 'Instrument'
407 ClientHeight = 253 407 ClientHeight = 443
408 ClientWidth = 276 408 ClientWidth = 486
409 ParentFont = False 409 ParentFont = False
410 TabOrder = 0 410 TabOrder = 0
411 object InstrumentNumberSpinner: TSpinEdit 411 object InstrumentNumberSpinner: TSpinEdit
412 Left = 80 412 Left = 140
413 Height = 23 413 Height = 38
414 Hint = 'What instrument to edit' 414 Hint = 'What instrument to edit'
415 Top = 38 415 Top = 66
416 Width = 187 416 Width = 327
417 MaxValue = 15 417 MaxValue = 15
418 MinValue = 1 418 MinValue = 1
419 OnChange = InstrumentNumberSpinnerChange 419 OnChange = InstrumentNumberSpinnerChange
@@ -422,51 +422,51 @@ object frmTracker: TfrmTracker
422 Value = 1 422 Value = 1
423 end 423 end
424 object Label1: TLabel 424 object Label1: TLabel
425 Left = 8 425 Left = 14
426 Height = 15 426 Height = 30
427 Top = 46 427 Top = 80
428 Width = 58 428 Width = 101
429 Caption = 'Instrument' 429 Caption = 'Instrument'
430 ParentColor = False 430 ParentColor = False
431 ParentFont = False 431 ParentFont = False
432 end 432 end
433 object Label2: TLabel 433 object Label2: TLabel
434 Left = 8 434 Left = 14
435 Height = 15 435 Height = 30
436 Top = 78 436 Top = 136
437 Width = 32 437 Width = 56
438 Caption = 'Name' 438 Caption = 'Name'
439 ParentColor = False 439 ParentColor = False
440 ParentFont = False 440 ParentFont = False
441 end 441 end
442 object InstrumentNameEdit: TEdit 442 object InstrumentNameEdit: TEdit
443 Left = 80 443 Left = 140
444 Height = 23 444 Height = 38
445 Hint = 'The name of the instrument' 445 Hint = 'The name of the instrument'
446 Top = 70 446 Top = 122
447 Width = 187 447 Width = 327
448 MaxLength = 255 448 MaxLength = 255
449 OnChange = InstrumentNameEditChange 449 OnChange = InstrumentNameEditChange
450 ParentFont = False 450 ParentFont = False
451 TabOrder = 1 451 TabOrder = 1
452 end 452 end
453 object Label3: TLabel 453 object Label3: TLabel
454 Left = 8 454 Left = 14
455 Height = 15 455 Height = 30
456 Top = 16 456 Top = 28
457 Width = 44 457 Width = 80
458 Caption = 'Channel' 458 Caption = 'Channel'
459 Font.Style = [fsBold] 459 Font.Style = [fsBold]
460 ParentColor = False 460 ParentColor = False
461 ParentFont = False 461 ParentFont = False
462 end 462 end
463 object InstrumentTypeCombobox: TComboBox 463 object InstrumentTypeCombobox: TComboBox
464 Left = 80 464 Left = 140
465 Height = 23 465 Height = 38
466 Hint = 'What type of channel this instrument will be played on' 466 Hint = 'What type of channel this instrument will be played on'
467 Top = 8 467 Top = 14
468 Width = 185 468 Width = 324
469 ItemHeight = 15 469 ItemHeight = 30
470 ItemIndex = 0 470 ItemIndex = 0
471 Items.Strings = ( 471 Items.Strings = (
472 'Square' 472 'Square'
@@ -480,33 +480,33 @@ object frmTracker: TfrmTracker
480 Text = 'Square' 480 Text = 'Square'
481 end 481 end
482 object LengthEnabledCheckbox: TCheckBox 482 object LengthEnabledCheckbox: TCheckBox
483 Left = 12 483 Left = 21
484 Height = 19 484 Height = 34
485 Hint = 'Cut the sound after a certain length of time' 485 Hint = 'Cut the sound after a certain length of time'
486 Top = 118 486 Top = 206
487 Width = 57 487 Width = 98
488 Caption = 'Length' 488 Caption = 'Length'
489 OnChange = LengthEnabledCheckboxChange 489 OnChange = LengthEnabledCheckboxChange
490 ParentFont = False 490 ParentFont = False
491 TabOrder = 3 491 TabOrder = 3
492 end 492 end
493 object InstrumentImportButton: TButton 493 object InstrumentImportButton: TButton
494 Left = 12 494 Left = 21
495 Height = 25 495 Height = 44
496 Hint = 'Import an instrument' 496 Hint = 'Import an instrument'
497 Top = 216 497 Top = 378
498 Width = 116 498 Width = 203
499 Caption = 'Import' 499 Caption = 'Import'
500 OnClick = InstrumentImportButtonClick 500 OnClick = InstrumentImportButtonClick
501 ParentFont = False 501 ParentFont = False
502 TabOrder = 4 502 TabOrder = 4
503 end 503 end
504 object InstrumentExportButton: TButton 504 object InstrumentExportButton: TButton
505 Left = 149 505 Left = 261
506 Height = 25 506 Height = 44
507 Hint = 'Export an instrument' 507 Hint = 'Export an instrument'
508 Top = 216 508 Top = 378
509 Width = 116 509 Width = 203
510 Caption = 'Export' 510 Caption = 'Export'
511 OnClick = InstrumentExportButtonClick 511 OnClick = InstrumentExportButtonClick
512 ParentFont = False 512 ParentFont = False
@@ -514,21 +514,21 @@ object frmTracker: TfrmTracker
514 end 514 end
515 object TestOctave5Button: TButton 515 object TestOctave5Button: TButton
516 Tag = 5 516 Tag = 5
517 Left = 142 517 Left = 248
518 Height = 25 518 Height = 44
519 Hint = 'Test out the instrument with a C-5 note' 519 Hint = 'Test out the instrument with a C-5 note'
520 Top = 146 520 Top = 256
521 Width = 27 521 Width = 47
522 Caption = '5' 522 Caption = '5'
523 OnClick = TestOctaveButtonClick 523 OnClick = TestOctaveButtonClick
524 ParentFont = False 524 ParentFont = False
525 TabOrder = 6 525 TabOrder = 6
526 end 526 end
527 object LengthTrackbar: TTrackBar 527 object LengthTrackbar: TTrackBar
528 Left = 76 528 Left = 133
529 Height = 25 529 Height = 44
530 Top = 112 530 Top = 196
531 Width = 189 531 Width = 331
532 Max = 63 532 Max = 63
533 OnChange = LengthSpinnerChange 533 OnChange = LengthSpinnerChange
534 Position = 0 534 Position = 0
@@ -537,21 +537,21 @@ object frmTracker: TfrmTracker
537 TabOrder = 7 537 TabOrder = 7
538 end 538 end
539 object Label14: TLabel 539 object Label14: TLabel
540 Left = 12 540 Left = 21
541 Height = 15 541 Height = 30
542 Top = 152 542 Top = 266
543 Width = 61 543 Width = 108
544 Caption = 'Test octave:' 544 Caption = 'Test octave:'
545 ParentColor = False 545 ParentColor = False
546 ParentFont = False 546 ParentFont = False
547 end 547 end
548 object TestOctave5Button1: TButton 548 object TestOctave5Button1: TButton
549 Tag = 4 549 Tag = 4
550 Left = 110 550 Left = 192
551 Height = 25 551 Height = 44
552 Hint = 'Test out the instrument with a C-4 note' 552 Hint = 'Test out the instrument with a C-4 note'
553 Top = 146 553 Top = 256
554 Width = 27 554 Width = 47
555 Caption = '4' 555 Caption = '4'
556 OnClick = TestOctaveButtonClick 556 OnClick = TestOctaveButtonClick
557 ParentFont = False 557 ParentFont = False
@@ -559,11 +559,11 @@ object frmTracker: TfrmTracker
559 end 559 end
560 object TestOctave5Button2: TButton 560 object TestOctave5Button2: TButton
561 Tag = 3 561 Tag = 3
562 Left = 78 562 Left = 136
563 Height = 25 563 Height = 44
564 Hint = 'Test out the instrument with a C-3 note' 564 Hint = 'Test out the instrument with a C-3 note'
565 Top = 146 565 Top = 256
566 Width = 27 566 Width = 47
567 Caption = '3' 567 Caption = '3'
568 OnClick = TestOctaveButtonClick 568 OnClick = TestOctaveButtonClick
569 ParentFont = False 569 ParentFont = False
@@ -571,11 +571,11 @@ object frmTracker: TfrmTracker
571 end 571 end
572 object TestOctave5Button3: TButton 572 object TestOctave5Button3: TButton
573 Tag = 6 573 Tag = 6
574 Left = 174 574 Left = 304
575 Height = 25 575 Height = 44
576 Hint = 'Test out the instrument with a C-6 note' 576 Hint = 'Test out the instrument with a C-6 note'
577 Top = 146 577 Top = 256
578 Width = 27 578 Width = 47
579 Caption = '6' 579 Caption = '6'
580 OnClick = TestOctaveButtonClick 580 OnClick = TestOctaveButtonClick
581 ParentFont = False 581 ParentFont = False
@@ -583,11 +583,11 @@ object frmTracker: TfrmTracker
583 end 583 end
584 object TestOctave5Button4: TButton 584 object TestOctave5Button4: TButton
585 Tag = 7 585 Tag = 7
586 Left = 206 586 Left = 360
587 Height = 25 587 Height = 44
588 Hint = 'Test out the instrument with a C-7 note' 588 Hint = 'Test out the instrument with a C-7 note'
589 Top = 146 589 Top = 256
590 Width = 27 590 Width = 47
591 Caption = '7' 591 Caption = '7'
592 OnClick = TestOctaveButtonClick 592 OnClick = TestOctaveButtonClick
593 ParentFont = False 593 ParentFont = False
@@ -595,66 +595,66 @@ object frmTracker: TfrmTracker
595 end 595 end
596 object TestOctave5Button5: TButton 596 object TestOctave5Button5: TButton
597 Tag = 8 597 Tag = 8
598 Left = 238 598 Left = 416
599 Height = 25 599 Height = 44
600 Hint = 'Test out the instrument with a C-8 note' 600 Hint = 'Test out the instrument with a C-8 note'
601 Top = 146 601 Top = 256
602 Width = 27 602 Width = 47
603 Caption = '8' 603 Caption = '8'
604 OnClick = TestOctaveButtonClick 604 OnClick = TestOctaveButtonClick
605 ParentFont = False 605 ParentFont = False
606 TabOrder = 12 606 TabOrder = 12
607 end 607 end
608 object EnableSubpatternCheckbox: TCheckBox 608 object EnableSubpatternCheckbox: TCheckBox
609 Left = 12 609 Left = 21
610 Height = 19 610 Height = 34
611 Top = 184 611 Top = 322
612 Width = 115 612 Width = 202
613 Caption = 'Enable subpattern' 613 Caption = 'Enable subpattern'
614 OnChange = EnableSubpatternCheckboxChange 614 OnChange = EnableSubpatternCheckboxChange
615 TabOrder = 13 615 TabOrder = 13
616 end 616 end
617 end 617 end
618 object EnvelopeGroupBox: TGroupBox 618 object EnvelopeGroupBox: TGroupBox
619 Left = 301 619 Left = 12
620 Height = 136 620 Height = 238
621 Top = 7 621 Top = 514
622 Width = 582 622 Width = 1018
623 Anchors = [] 623 Anchors = []
624 BorderSpacing.Left = 7 624 BorderSpacing.Left = 12
625 BorderSpacing.Top = 7 625 BorderSpacing.Top = 12
626 BorderSpacing.Right = 7 626 BorderSpacing.Right = 12
627 BorderSpacing.Bottom = 7 627 BorderSpacing.Bottom = 12
628 Caption = 'Envelope' 628 Caption = 'Envelope'
629 ClientHeight = 116 629 ClientHeight = 203
630 ClientWidth = 578 630 ClientWidth = 1014
631 ParentFont = False 631 ParentFont = False
632 TabOrder = 1 632 TabOrder = 1
633 object Label4: TLabel 633 object Label4: TLabel
634 Left = 8 634 Left = 14
635 Height = 15 635 Height = 30
636 Top = 16 636 Top = 28
637 Width = 46 637 Width = 80
638 Caption = 'Start vol.' 638 Caption = 'Start vol.'
639 ParentColor = False 639 ParentColor = False
640 ParentFont = False 640 ParentFont = False
641 end 641 end
642 object Label5: TLabel 642 object Label5: TLabel
643 Left = 8 643 Left = 14
644 Height = 15 644 Height = 30
645 Top = 54 645 Top = 94
646 Width = 48 646 Width = 84
647 Caption = 'Direction' 647 Caption = 'Direction'
648 ParentColor = False 648 ParentColor = False
649 ParentFont = False 649 ParentFont = False
650 end 650 end
651 object DirectionComboBox: TComboBox 651 object DirectionComboBox: TComboBox
652 Left = 82 652 Left = 144
653 Height = 23 653 Height = 38
654 Hint = 'Whether to fade the sound in or out' 654 Hint = 'Whether to fade the sound in or out'
655 Top = 46 655 Top = 80
656 Width = 198 656 Width = 346
657 ItemHeight = 15 657 ItemHeight = 30
658 ItemIndex = 1 658 ItemIndex = 1
659 Items.Strings = ( 659 Items.Strings = (
660 'Up' 660 'Up'
@@ -667,40 +667,40 @@ object frmTracker: TfrmTracker
667 Text = 'Down' 667 Text = 'Down'
668 end 668 end
669 object Label6: TLabel 669 object Label6: TLabel
670 Left = 8 670 Left = 14
671 Height = 15 671 Height = 30
672 Top = 90 672 Top = 158
673 Width = 41 673 Width = 71
674 Caption = 'Change' 674 Caption = 'Change'
675 ParentColor = False 675 ParentColor = False
676 ParentFont = False 676 ParentFont = False
677 end 677 end
678 object Panel5: TPanel 678 object Panel5: TPanel
679 Left = 300 679 Left = 525
680 Height = 104 680 Height = 182
681 Top = 0 681 Top = 0
682 Width = 270 682 Width = 472
683 BevelOuter = bvLowered 683 BevelOuter = bvLowered
684 ClientHeight = 104 684 ClientHeight = 182
685 ClientWidth = 270 685 ClientWidth = 472
686 ParentFont = False 686 ParentFont = False
687 TabOrder = 1 687 TabOrder = 1
688 object EnvelopePaintbox: TPaintBox 688 object EnvelopePaintbox: TPaintBox
689 Left = 1 689 Left = 1
690 Height = 102 690 Height = 180
691 Hint = 'Preview of the volume envelope' 691 Hint = 'Preview of the volume envelope'
692 Top = 1 692 Top = 1
693 Width = 268 693 Width = 470
694 Align = alClient 694 Align = alClient
695 ParentFont = False 695 ParentFont = False
696 OnPaint = EnvelopePaintboxPaint 696 OnPaint = EnvelopePaintboxPaint
697 end 697 end
698 end 698 end
699 object StartVolTrackbar: TTrackBar 699 object StartVolTrackbar: TTrackBar
700 Left = 82 700 Left = 144
701 Height = 25 701 Height = 44
702 Top = 8 702 Top = 14
703 Width = 196 703 Width = 343
704 Max = 15 704 Max = 15
705 OnChange = StartVolSpinnerChange 705 OnChange = StartVolSpinnerChange
706 Position = 0 706 Position = 0
@@ -708,10 +708,10 @@ object frmTracker: TfrmTracker
708 TabOrder = 2 708 TabOrder = 2
709 end 709 end
710 object EnvChangeTrackbar: TTrackBar 710 object EnvChangeTrackbar: TTrackBar
711 Left = 82 711 Left = 144
712 Height = 25 712 Height = 44
713 Top = 82 713 Top = 144
714 Width = 196 714 Width = 343
715 Max = 7 715 Max = 7
716 OnChange = EnvChangeSpinnerChange 716 OnChange = EnvChangeSpinnerChange
717 Position = 0 717 Position = 0
@@ -720,36 +720,36 @@ object frmTracker: TfrmTracker
720 end 720 end
721 end 721 end
722 object SquareGroupBox: TGroupBox 722 object SquareGroupBox: TGroupBox
723 Left = 7 723 Left = 12
724 Height = 169 724 Height = 296
725 Top = 294 725 Top = 776
726 Width = 319 726 Width = 558
727 Anchors = [] 727 Anchors = []
728 BorderSpacing.Left = 7 728 BorderSpacing.Left = 12
729 BorderSpacing.Top = 7 729 BorderSpacing.Top = 12
730 BorderSpacing.Right = 7 730 BorderSpacing.Right = 12
731 BorderSpacing.Bottom = 7 731 BorderSpacing.Bottom = 12
732 Caption = 'Square' 732 Caption = 'Square'
733 ClientHeight = 149 733 ClientHeight = 261
734 ClientWidth = 315 734 ClientWidth = 554
735 ParentFont = False 735 ParentFont = False
736 TabOrder = 2 736 TabOrder = 2
737 object Label7: TLabel 737 object Label7: TLabel
738 Left = 8 738 Left = 14
739 Height = 15 739 Height = 30
740 Top = 16 740 Top = 28
741 Width = 61 741 Width = 107
742 Caption = 'Sweep time' 742 Caption = 'Sweep time'
743 ParentColor = False 743 ParentColor = False
744 ParentFont = False 744 ParentFont = False
745 end 745 end
746 object SweepTimeCombobox: TComboBox 746 object SweepTimeCombobox: TComboBox
747 Left = 104 747 Left = 182
748 Height = 23 748 Height = 38
749 Hint = 'How long to sweep' 749 Hint = 'How long to sweep'
750 Top = 8 750 Top = 14
751 Width = 200 751 Width = 350
752 ItemHeight = 15 752 ItemHeight = 30
753 ItemIndex = 0 753 ItemIndex = 0
754 Items.Strings = ( 754 Items.Strings = (
755 'Off - no frequency change' 755 'Off - no frequency change'
@@ -770,12 +770,12 @@ object frmTracker: TfrmTracker
770 Text = 'Off - no frequency change' 770 Text = 'Off - no frequency change'
771 end 771 end
772 object SweepDirectionCombobox: TComboBox 772 object SweepDirectionCombobox: TComboBox
773 Left = 104 773 Left = 182
774 Height = 23 774 Height = 38
775 Hint = 'The direction of the sweep' 775 Hint = 'The direction of the sweep'
776 Top = 40 776 Top = 70
777 Width = 200 777 Width = 350
778 ItemHeight = 15 778 ItemHeight = 30
779 ItemIndex = 1 779 ItemIndex = 1
780 Items.Strings = ( 780 Items.Strings = (
781 'Up' 781 'Up'
@@ -790,39 +790,39 @@ object frmTracker: TfrmTracker
790 Text = 'Down' 790 Text = 'Down'
791 end 791 end
792 object Label8: TLabel 792 object Label8: TLabel
793 Left = 8 793 Left = 14
794 Height = 15 794 Height = 30
795 Top = 48 795 Top = 84
796 Width = 84 796 Width = 147
797 Caption = 'Sweep direction' 797 Caption = 'Sweep direction'
798 ParentColor = False 798 ParentColor = False
799 ParentFont = False 799 ParentFont = False
800 end 800 end
801 object Label9: TLabel 801 object Label9: TLabel
802 Left = 8 802 Left = 14
803 Height = 15 803 Height = 30
804 Top = 88 804 Top = 154
805 Width = 56 805 Width = 101
806 Caption = 'Sweep size' 806 Caption = 'Sweep size'
807 ParentColor = False 807 ParentColor = False
808 ParentFont = False 808 ParentFont = False
809 end 809 end
810 object Label10: TLabel 810 object Label10: TLabel
811 Left = 8 811 Left = 14
812 Height = 15 812 Height = 30
813 Top = 120 813 Top = 210
814 Width = 25 814 Width = 44
815 Caption = 'Duty' 815 Caption = 'Duty'
816 ParentColor = False 816 ParentColor = False
817 ParentFont = False 817 ParentFont = False
818 end 818 end
819 object DutyCombobox: TComboBox 819 object DutyCombobox: TComboBox
820 Left = 104 820 Left = 182
821 Height = 23 821 Height = 38
822 Hint = 'Which duty cycle to use (changes timbre of wave)' 822 Hint = 'Which duty cycle to use (changes timbre of wave)'
823 Top = 112 823 Top = 196
824 Width = 200 824 Width = 350
825 ItemHeight = 15 825 ItemHeight = 30
826 ItemIndex = 2 826 ItemIndex = 2
827 Items.Strings = ( 827 Items.Strings = (
828 '12.5%' 828 '12.5%'
@@ -839,10 +839,10 @@ object frmTracker: TfrmTracker
839 Text = '50% (square)' 839 Text = '50% (square)'
840 end 840 end
841 object SweepSizeTrackbar: TTrackBar 841 object SweepSizeTrackbar: TTrackBar
842 Left = 105 842 Left = 184
843 Height = 25 843 Height = 44
844 Top = 80 844 Top = 140
845 Width = 196 845 Width = 343
846 Max = 7 846 Max = 7
847 OnChange = SweepSizeSpinnerChange 847 OnChange = SweepSizeSpinnerChange
848 Position = 0 848 Position = 0
@@ -851,45 +851,45 @@ object frmTracker: TfrmTracker
851 end 851 end
852 end 852 end
853 object WaveGroupBox: TGroupBox 853 object WaveGroupBox: TGroupBox
854 Left = 340 854 Left = 594
855 Height = 169 855 Height = 296
856 Top = 294 856 Top = 776
857 Width = 297 857 Width = 520
858 Anchors = [] 858 Anchors = []
859 BorderSpacing.Left = 7 859 BorderSpacing.Left = 12
860 BorderSpacing.Top = 7 860 BorderSpacing.Top = 12
861 BorderSpacing.Right = 7 861 BorderSpacing.Right = 12
862 BorderSpacing.Bottom = 7 862 BorderSpacing.Bottom = 12
863 Caption = 'Wave' 863 Caption = 'Wave'
864 ClientHeight = 149 864 ClientHeight = 261
865 ClientWidth = 293 865 ClientWidth = 516
866 ParentFont = False 866 ParentFont = False
867 TabOrder = 3 867 TabOrder = 3
868 object Label11: TLabel 868 object Label11: TLabel
869 Left = 8 869 Left = 14
870 Height = 15 870 Height = 30
871 Top = 16 871 Top = 28
872 Width = 40 872 Width = 70
873 Caption = 'Volume' 873 Caption = 'Volume'
874 ParentColor = False 874 ParentColor = False
875 ParentFont = False 875 ParentFont = False
876 end 876 end
877 object Label12: TLabel 877 object Label12: TLabel
878 Left = 8 878 Left = 14
879 Height = 15 879 Height = 30
880 Top = 48 880 Top = 84
881 Width = 55 881 Width = 95
882 Caption = 'Waveform' 882 Caption = 'Waveform'
883 ParentColor = False 883 ParentColor = False
884 ParentFont = False 884 ParentFont = False
885 end 885 end
886 object WaveformCombobox: TComboBox 886 object WaveformCombobox: TComboBox
887 Left = 104 887 Left = 182
888 Height = 23 888 Height = 38
889 Hint = 'Which waveform is associated with this instrument' 889 Hint = 'Which waveform is associated with this instrument'
890 Top = 40 890 Top = 70
891 Width = 176 891 Width = 308
892 ItemHeight = 15 892 ItemHeight = 30
893 ItemIndex = 0 893 ItemIndex = 0
894 Items.Strings = ( 894 Items.Strings = (
895 'Wave #0' 895 'Wave #0'
@@ -916,21 +916,21 @@ object frmTracker: TfrmTracker
916 Text = 'Wave #0' 916 Text = 'Wave #0'
917 end 917 end
918 object Panel4: TPanel 918 object Panel4: TPanel
919 Left = 8 919 Left = 14
920 Height = 59 920 Height = 103
921 Top = 80 921 Top = 140
922 Width = 272 922 Width = 476
923 BevelOuter = bvLowered 923 BevelOuter = bvLowered
924 ClientHeight = 59 924 ClientHeight = 103
925 ClientWidth = 272 925 ClientWidth = 476
926 ParentFont = False 926 ParentFont = False
927 TabOrder = 1 927 TabOrder = 1
928 object WavePaintbox: TPaintBox 928 object WavePaintbox: TPaintBox
929 Left = 1 929 Left = 1
930 Height = 57 930 Height = 101
931 Hint = 'Preview of the waveform associated with this instrument' 931 Hint = 'Preview of the waveform associated with this instrument'
932 Top = 1 932 Top = 1
933 Width = 270 933 Width = 474
934 Align = alClient 934 Align = alClient
935 Color = clBlack 935 Color = clBlack
936 ParentColor = False 936 ParentColor = False
@@ -939,12 +939,12 @@ object frmTracker: TfrmTracker
939 end 939 end
940 end 940 end
941 object WaveVolumeCombobox: TComboBox 941 object WaveVolumeCombobox: TComboBox
942 Left = 104 942 Left = 182
943 Height = 23 943 Height = 38
944 Hint = 'The initial volume of the wave' 944 Hint = 'The initial volume of the wave'
945 Top = 8 945 Top = 14
946 Width = 176 946 Width = 308
947 ItemHeight = 15 947 ItemHeight = 30
948 ItemIndex = 1 948 ItemIndex = 1
949 Items.Strings = ( 949 Items.Strings = (
950 'Mute (No sound)' 950 'Mute (No sound)'
@@ -960,26 +960,26 @@ object frmTracker: TfrmTracker
960 end 960 end
961 end 961 end
962 object NoiseGroupBox: TGroupBox 962 object NoiseGroupBox: TGroupBox
963 Left = 651 963 Left = 12
964 Height = 59 964 Height = 103
965 Top = 294 965 Top = 1096
966 Width = 237 966 Width = 415
967 Anchors = [] 967 Anchors = []
968 BorderSpacing.Left = 7 968 BorderSpacing.Left = 12
969 BorderSpacing.Top = 7 969 BorderSpacing.Top = 12
970 BorderSpacing.Right = 7 970 BorderSpacing.Right = 12
971 BorderSpacing.Bottom = 7 971 BorderSpacing.Bottom = 12
972 Caption = 'Noise' 972 Caption = 'Noise'
973 ClientHeight = 39 973 ClientHeight = 68
974 ClientWidth = 233 974 ClientWidth = 411
975 ParentFont = False 975 ParentFont = False
976 TabOrder = 4 976 TabOrder = 4
977 object SevenBitCounterCheckbox: TCheckBox 977 object SevenBitCounterCheckbox: TCheckBox
978 Left = 8 978 Left = 14
979 Height = 19 979 Height = 34
980 Hint = 'Select LFSR width. When checked, output will sound like a tone rather than noise' 980 Hint = 'Select LFSR width. When checked, output will sound like a tone rather than noise'
981 Top = 8 981 Top = 14
982 Width = 215 982 Width = 373
983 Alignment = taLeftJustify 983 Alignment = taLeftJustify
984 Caption = '7 bit counter (more tone-like output)' 984 Caption = '7 bit counter (more tone-like output)'
985 OnChange = SevenBitCounterCheckboxChange 985 OnChange = SevenBitCounterCheckboxChange
@@ -989,46 +989,45 @@ object frmTracker: TfrmTracker
989 end 989 end
990 end 990 end
991 object SubpatternGroupBox: TGroupBox 991 object SubpatternGroupBox: TGroupBox
992 Left = 952 992 Left = 1243
993 Height = 690 993 Height = 886
994 Top = 7 994 Top = 12
995 Width = 160 995 Width = 280
996 Align = alRight 996 Align = alRight
997 Anchors = [] 997 Anchors = []
998 BorderSpacing.Top = 7 998 BorderSpacing.Top = 12
999 Caption = 'Subpattern' 999 Caption = 'Subpattern'
1000 ClientHeight = 670 1000 ClientHeight = 851
1001 ClientWidth = 156 1001 ClientWidth = 276
1002 TabOrder = 1 1002 TabOrder = 1
1003 object ScrollBox2: TScrollBox 1003 object ScrollBox2: TScrollBox
1004 Left = 0 1004 Left = 0
1005 Height = 670 1005 Height = 851
1006 Top = 0 1006 Top = 0
1007 Width = 156 1007 Width = 276
1008 HorzScrollBar.Increment = 3 1008 HorzScrollBar.Increment = 5
1009 HorzScrollBar.Page = 32 1009 HorzScrollBar.Page = 56
1010 HorzScrollBar.Smooth = True 1010 HorzScrollBar.Smooth = True
1011 HorzScrollBar.Tracking = True 1011 HorzScrollBar.Tracking = True
1012 VertScrollBar.Increment = 5 1012 VertScrollBar.Page = 88
1013 VertScrollBar.Page = 50
1014 VertScrollBar.Smooth = True 1013 VertScrollBar.Smooth = True
1015 VertScrollBar.Tracking = True 1014 VertScrollBar.Tracking = True
1016 Align = alClient 1015 Align = alClient
1017 BorderStyle = bsNone 1016 BorderStyle = bsNone
1018 ClientHeight = 670 1017 ClientHeight = 851
1019 ClientWidth = 156 1018 ClientWidth = 276
1020 TabOrder = 0 1019 TabOrder = 0
1021 OnMouseWheelDown = ScrollBox1MouseWheelDown 1020 OnMouseWheelDown = ScrollBox1MouseWheelDown
1022 OnMouseWheelUp = ScrollBox1MouseWheelUp 1021 OnMouseWheelUp = ScrollBox1MouseWheelUp
1023 object RowNumberStringGrid1: TStringGrid 1022 object RowNumberStringGrid1: TStringGrid
1024 Left = 124 1023 Left = 220
1025 Height = 670 1024 Height = 851
1026 Top = 0 1025 Top = 0
1027 Width = 32 1026 Width = 56
1028 Align = alRight 1027 Align = alRight
1029 BorderStyle = bsNone 1028 BorderStyle = bsNone
1030 ColCount = 1 1029 ColCount = 1
1031 DefaultColWidth = 32 1030 DefaultColWidth = 56
1032 Enabled = False 1031 Enabled = False
1033 ParentFont = False 1032 ParentFont = False
1034 RowCount = 32 1033 RowCount = 32
@@ -1040,19 +1039,19 @@ object frmTracker: TfrmTracker
1040 end 1039 end
1041 object WavesTabSheet: TTabSheet 1040 object WavesTabSheet: TTabSheet
1042 Caption = 'Waves' 1041 Caption = 'Waves'
1043 ClientHeight = 697 1042 ClientHeight = 898
1044 ClientWidth = 1112 1043 ClientWidth = 1523
1045 ParentFont = False 1044 ParentFont = False
1046 object WaveEditPaintBox: TPaintBox 1045 object WaveEditPaintBox: TPaintBox
1047 AnchorSideTop.Control = WaveEditGroupBox 1046 AnchorSideTop.Control = WaveEditGroupBox
1048 AnchorSideTop.Side = asrBottom 1047 AnchorSideTop.Side = asrBottom
1049 Left = 0 1048 Left = 0
1050 Height = 537 1049 Height = 618
1051 Top = 160 1050 Top = 280
1052 Width = 1112 1051 Width = 1523
1053 Align = alBottom 1052 Align = alBottom
1054 Anchors = [akTop, akLeft, akRight, akBottom] 1053 Anchors = [akTop, akLeft, akRight, akBottom]
1055 BorderSpacing.Top = 13 1054 BorderSpacing.Top = 23
1056 ParentFont = False 1055 ParentFont = False
1057 PopupMenu = WaveEditPopup 1056 PopupMenu = WaveEditPopup
1058 OnMouseDown = WaveEditPaintBoxMouseDown 1057 OnMouseDown = WaveEditPaintBoxMouseDown
@@ -1061,61 +1060,61 @@ object frmTracker: TfrmTracker
1061 OnPaint = WaveEditPaintBoxPaint 1060 OnPaint = WaveEditPaintBoxPaint
1062 end 1061 end
1063 object WaveEditGroupBox: TGroupBox 1062 object WaveEditGroupBox: TGroupBox
1064 Left = 8 1063 Left = 14
1065 Height = 139 1064 Height = 243
1066 Top = 8 1065 Top = 14
1067 Width = 568 1066 Width = 994
1068 Caption = 'Wave Editor' 1067 Caption = 'Wave Editor'
1069 ClientHeight = 119 1068 ClientHeight = 208
1070 ClientWidth = 564 1069 ClientWidth = 990
1071 ParentFont = False 1070 ParentFont = False
1072 TabOrder = 0 1071 TabOrder = 0
1073 object Label20: TLabel 1072 object Label20: TLabel
1074 Left = 16 1073 Left = 28
1075 Height = 15 1074 Height = 30
1076 Top = 16 1075 Top = 28
1077 Width = 29 1076 Width = 51
1078 Caption = 'Wave' 1077 Caption = 'Wave'
1079 ParentColor = False 1078 ParentColor = False
1080 ParentFont = False 1079 ParentFont = False
1081 end 1080 end
1082 object WaveEditNumberSpinner: TSpinEdit 1081 object WaveEditNumberSpinner: TSpinEdit
1083 Left = 64 1082 Left = 112
1084 Height = 23 1083 Height = 38
1085 Top = 8 1084 Top = 14
1086 Width = 80 1085 Width = 140
1087 MaxValue = 15 1086 MaxValue = 15
1088 OnChange = WaveEditNumberSpinnerChange 1087 OnChange = WaveEditNumberSpinnerChange
1089 ParentFont = False 1088 ParentFont = False
1090 TabOrder = 0 1089 TabOrder = 0
1091 end 1090 end
1092 object ImportWaveButton: TButton 1091 object ImportWaveButton: TButton
1093 Left = 16 1092 Left = 28
1094 Height = 25 1093 Height = 44
1095 Hint = 'Import a wave' 1094 Hint = 'Import a wave'
1096 Top = 48 1095 Top = 84
1097 Width = 147 1096 Width = 257
1098 Caption = 'Import' 1097 Caption = 'Import'
1099 OnClick = ImportWaveButtonClick 1098 OnClick = ImportWaveButtonClick
1100 ParentFont = False 1099 ParentFont = False
1101 TabOrder = 1 1100 TabOrder = 1
1102 end 1101 end
1103 object ExportWaveButton: TButton 1102 object ExportWaveButton: TButton
1104 Left = 16 1103 Left = 28
1105 Height = 25 1104 Height = 44
1106 Hint = 'Export a wave' 1105 Hint = 'Export a wave'
1107 Top = 80 1106 Top = 140
1108 Width = 147 1107 Width = 257
1109 Caption = 'Export' 1108 Caption = 'Export'
1110 OnClick = ExportWaveButtonClick 1109 OnClick = ExportWaveButtonClick
1111 ParentFont = False 1110 ParentFont = False
1112 TabOrder = 2 1111 TabOrder = 2
1113 end 1112 end
1114 object HexWaveEdit: TEdit 1113 object HexWaveEdit: TEdit
1115 Left = 288 1114 Left = 504
1116 Height = 23 1115 Height = 38
1117 Top = 8 1116 Top = 14
1118 Width = 264 1117 Width = 462
1119 MaxLength = 32 1118 MaxLength = 32
1120 OnChange = HexWaveEditEditingDone 1119 OnChange = HexWaveEditEditingDone
1121 OnEditingDone = HexWaveEditEditingDone 1120 OnEditingDone = HexWaveEditEditingDone
@@ -1123,19 +1122,19 @@ object frmTracker: TfrmTracker
1123 TabOrder = 3 1122 TabOrder = 3
1124 end 1123 end
1125 object Label13: TLabel 1124 object Label13: TLabel
1126 Left = 176 1125 Left = 308
1127 Height = 15 1126 Height = 30
1128 Top = 16 1127 Top = 28
1129 Width = 100 1128 Width = 176
1130 Caption = 'Hex representation' 1129 Caption = 'Hex representation'
1131 ParentColor = False 1130 ParentColor = False
1132 ParentFont = False 1131 ParentFont = False
1133 end 1132 end
1134 object PlayWaveWhileDrawingCheckbox: TCheckBox 1133 object PlayWaveWhileDrawingCheckbox: TCheckBox
1135 Left = 176 1134 Left = 308
1136 Height = 19 1135 Height = 34
1137 Top = 40 1136 Top = 70
1138 Width = 149 1137 Width = 259
1139 Caption = 'Play wave while drawing' 1138 Caption = 'Play wave while drawing'
1140 ParentFont = False 1139 ParentFont = False
1141 TabOrder = 4 1140 TabOrder = 4
@@ -1144,30 +1143,30 @@ object frmTracker: TfrmTracker
1144 end 1143 end
1145 object CommentsTabSheet: TTabSheet 1144 object CommentsTabSheet: TTabSheet
1146 Caption = 'Comments' 1145 Caption = 'Comments'
1147 ClientHeight = 697 1146 ClientHeight = 898
1148 ClientWidth = 1112 1147 ClientWidth = 1523
1149 ParentFont = False 1148 ParentFont = False
1150 object CommentMemo: TMemo 1149 object CommentMemo: TMemo
1151 AnchorSideTop.Control = Label17 1150 AnchorSideTop.Control = Label17
1152 AnchorSideTop.Side = asrBottom 1151 AnchorSideTop.Side = asrBottom
1153 Left = 0 1152 Left = 0
1154 Height = 661 1153 Height = 831
1155 Hint = 'The comments section for your song. Greetings/links/etc' 1154 Hint = 'The comments section for your song. Greetings/links/etc'
1156 Top = 36 1155 Top = 67
1157 Width = 1112 1156 Width = 1523
1158 Align = alBottom 1157 Align = alBottom
1159 Anchors = [akTop, akLeft, akRight, akBottom] 1158 Anchors = [akTop, akLeft, akRight, akBottom]
1160 BorderSpacing.Top = 13 1159 BorderSpacing.Top = 23
1161 MaxLength = 255 1160 MaxLength = 255
1162 OnChange = CommentMemoChange 1161 OnChange = CommentMemoChange
1163 ParentFont = False 1162 ParentFont = False
1164 TabOrder = 0 1163 TabOrder = 0
1165 end 1164 end
1166 object Label17: TLabel 1165 object Label17: TLabel
1167 Left = 8 1166 Left = 14
1168 Height = 15 1167 Height = 30
1169 Top = 8 1168 Top = 14
1170 Width = 333 1169 Width = 587
1171 Caption = 'This is an area to write comments for anyone editing your tune.' 1170 Caption = 'This is an area to write comments for anyone editing your tune.'
1172 ParentColor = False 1171 ParentColor = False
1173 ParentFont = False 1172 ParentFont = False
@@ -1175,27 +1174,27 @@ object frmTracker: TfrmTracker
1175 end 1174 end
1176 object RoutinesTabSheet: TTabSheet 1175 object RoutinesTabSheet: TTabSheet
1177 Caption = 'Routines' 1176 Caption = 'Routines'
1178 ClientHeight = 697 1177 ClientHeight = 898
1179 ClientWidth = 1112 1178 ClientWidth = 1523
1180 ParentFont = False 1179 ParentFont = False
1181 inline RoutineSynedit: TSynEdit 1180 inline RoutineSynedit: TSynEdit
1182 AnchorSideTop.Control = Label19 1181 AnchorSideTop.Control = Label19
1183 AnchorSideTop.Side = asrBottom 1182 AnchorSideTop.Side = asrBottom
1184 Left = 0 1183 Left = 0
1185 Height = 569 1184 Height = 655
1186 Top = 128 1185 Top = 243
1187 Width = 1112 1186 Width = 1523
1188 Align = alBottom 1187 Align = alBottom
1189 BorderSpacing.Top = 13 1188 BorderSpacing.Top = 23
1190 Anchors = [akTop, akLeft, akRight, akBottom] 1189 Anchors = [akTop, akLeft, akRight, akBottom]
1191 Font.Height = -13 1190 Font.Height = -23
1192 Font.Name = 'Courier New' 1191 Font.Name = 'Courier New'
1193 Font.Pitch = fpFixed 1192 Font.Pitch = fpFixed
1194 Font.Quality = fqNonAntialiased 1193 Font.Quality = fqNonAntialiased
1195 ParentColor = False 1194 ParentColor = False
1196 ParentFont = False 1195 ParentFont = False
1197 TabOrder = 0 1196 TabOrder = 0
1198 Gutter.Width = 57 1197 Gutter.Width = 100
1199 Gutter.MouseActions = <> 1198 Gutter.MouseActions = <>
1200 RightGutter.Width = 0 1199 RightGutter.Width = 0
1201 RightGutter.MouseActions = <> 1200 RightGutter.MouseActions = <>
@@ -1649,11 +1648,11 @@ object frmTracker: TfrmTracker
1649 OnChange = RoutineSyneditChange 1648 OnChange = RoutineSyneditChange
1650 inline SynLeftGutterPartList1: TSynGutterPartList 1649 inline SynLeftGutterPartList1: TSynGutterPartList
1651 object SynGutterMarks1: TSynGutterMarks 1650 object SynGutterMarks1: TSynGutterMarks
1652 Width = 24 1651 Width = 42
1653 MouseActions = <> 1652 MouseActions = <>
1654 end 1653 end
1655 object SynGutterLineNumber1: TSynGutterLineNumber 1654 object SynGutterLineNumber1: TSynGutterLineNumber
1656 Width = 17 1655 Width = 29
1657 MouseActions = <> 1656 MouseActions = <>
1658 MarkupInfo.Background = clBtnFace 1657 MarkupInfo.Background = clBtnFace
1659 MarkupInfo.Foreground = clNone 1658 MarkupInfo.Foreground = clNone
@@ -1663,18 +1662,19 @@ object frmTracker: TfrmTracker
1663 LeadingZeros = False 1662 LeadingZeros = False
1664 end 1663 end
1665 object SynGutterChanges1: TSynGutterChanges 1664 object SynGutterChanges1: TSynGutterChanges
1666 Width = 4 1665 Width = 7
1667 MouseActions = <> 1666 MouseActions = <>
1668 ModifiedColor = 59900 1667 ModifiedColor = 59900
1669 SavedColor = clGreen 1668 SavedColor = clGreen
1670 end 1669 end
1671 object SynGutterSeparator1: TSynGutterSeparator 1670 object SynGutterSeparator1: TSynGutterSeparator
1672 Width = 2 1671 Width = 4
1673 MouseActions = <> 1672 MouseActions = <>
1674 MarkupInfo.Background = clWhite 1673 MarkupInfo.Background = clWhite
1675 MarkupInfo.Foreground = clGray 1674 MarkupInfo.Foreground = clGray
1676 end 1675 end
1677 object SynGutterCodeFolding1: TSynGutterCodeFolding 1676 object SynGutterCodeFolding1: TSynGutterCodeFolding
1677 Width = 18
1678 MouseActions = <> 1678 MouseActions = <>
1679 MarkupInfo.Background = clNone 1679 MarkupInfo.Background = clNone
1680 MarkupInfo.Foreground = clGray 1680 MarkupInfo.Foreground = clGray
@@ -1684,19 +1684,19 @@ object frmTracker: TfrmTracker
1684 end 1684 end
1685 end 1685 end
1686 object Label18: TLabel 1686 object Label18: TLabel
1687 Left = 8 1687 Left = 14
1688 Height = 15 1688 Height = 30
1689 Top = 16 1689 Top = 28
1690 Width = 41 1690 Width = 71
1691 Caption = 'Routine' 1691 Caption = 'Routine'
1692 ParentColor = False 1692 ParentColor = False
1693 ParentFont = False 1693 ParentFont = False
1694 end 1694 end
1695 object RoutineNumberSpinner: TSpinEdit 1695 object RoutineNumberSpinner: TSpinEdit
1696 Left = 64 1696 Left = 112
1697 Height = 23 1697 Height = 38
1698 Top = 8 1698 Top = 14
1699 Width = 176 1699 Width = 308
1700 MaxValue = 15 1700 MaxValue = 15
1701 OnChange = RoutineNumberSpinnerChange 1701 OnChange = RoutineNumberSpinnerChange
1702 ParentFont = False 1702 ParentFont = False
@@ -1704,10 +1704,10 @@ object frmTracker: TfrmTracker
1704 Value = 1 1704 Value = 1
1705 end 1705 end
1706 object Label19: TLabel 1706 object Label19: TLabel
1707 Left = 8 1707 Left = 14
1708 Height = 75 1708 Height = 150
1709 Top = 40 1709 Top = 70
1710 Width = 506 1710 Width = 891
1711 Caption = 'Routines are an advanced feature of hUGETracker, and you likely won''t need them at all'#13#10'if you are only interested in composing music. If you want to create a custom effect, or interface'#13#10'with game code that you''re writing a soundtrack for, then routines will come in handy.'#13#10#13#10'Refer to the user manual for more information!' 1711 Caption = 'Routines are an advanced feature of hUGETracker, and you likely won''t need them at all'#13#10'if you are only interested in composing music. If you want to create a custom effect, or interface'#13#10'with game code that you''re writing a soundtrack for, then routines will come in handy.'#13#10#13#10'Refer to the user manual for more information!'
1712 ParentColor = False 1712 ParentColor = False
1713 ParentFont = False 1713 ParentFont = False
@@ -1717,21 +1717,21 @@ object frmTracker: TfrmTracker
1717 end 1717 end
1718 object ScopesPanel: TPanel 1718 object ScopesPanel: TPanel
1719 Left = 0 1719 Left = 0
1720 Height = 64 1720 Height = 112
1721 Top = 25 1721 Top = 41
1722 Width = 1318 1722 Width = 1878
1723 Align = alTop 1723 Align = alTop
1724 BevelOuter = bvNone 1724 BevelOuter = bvNone
1725 ClientHeight = 64 1725 ClientHeight = 112
1726 ClientWidth = 1318 1726 ClientWidth = 1878
1727 ParentFont = False 1727 ParentFont = False
1728 TabOrder = 3 1728 TabOrder = 3
1729 object LEDMeter1: TLEDMeter 1729 object LEDMeter1: TLEDMeter
1730 AnchorSideRight.Control = Duty1Visualizer 1730 AnchorSideRight.Control = Duty1Visualizer
1731 Left = 0 1731 Left = 0
1732 Height = 32 1732 Height = 56
1733 Top = 32 1733 Top = 56
1734 Width = 530 1734 Width = 498
1735 Anchors = [akTop, akLeft, akRight] 1735 Anchors = [akTop, akLeft, akRight]
1736 BevelStyle = bvLowered 1736 BevelStyle = bvLowered
1737 Colors.Border = 2168839 1737 Colors.Border = 2168839
@@ -1752,9 +1752,9 @@ object frmTracker: TfrmTracker
1752 object LEDMeter2: TLEDMeter 1752 object LEDMeter2: TLEDMeter
1753 AnchorSideRight.Control = Duty1Visualizer 1753 AnchorSideRight.Control = Duty1Visualizer
1754 Left = 0 1754 Left = 0
1755 Height = 32 1755 Height = 56
1756 Top = 0 1756 Top = 0
1757 Width = 530 1757 Width = 498
1758 Anchors = [akTop, akLeft, akRight] 1758 Anchors = [akTop, akLeft, akRight]
1759 BevelStyle = bvLowered 1759 BevelStyle = bvLowered
1760 Colors.Border = 2168839 1760 Colors.Border = 2168839
@@ -1773,40 +1773,40 @@ object frmTracker: TfrmTracker
1773 Section3Value = 48 1773 Section3Value = 48
1774 end 1774 end
1775 object Duty1Visualizer: TPaintBox 1775 object Duty1Visualizer: TPaintBox
1776 Left = 530 1776 Left = 498
1777 Height = 64 1777 Height = 112
1778 Top = 0 1778 Top = 0
1779 Width = 197 1779 Width = 345
1780 Align = alRight 1780 Align = alRight
1781 ParentFont = False 1781 ParentFont = False
1782 OnClick = Duty1VisualizerClick 1782 OnClick = Duty1VisualizerClick
1783 OnPaint = Duty1VisualizerPaint 1783 OnPaint = Duty1VisualizerPaint
1784 end 1784 end
1785 object Duty2Visualizer: TPaintBox 1785 object Duty2Visualizer: TPaintBox
1786 Left = 727 1786 Left = 843
1787 Height = 64 1787 Height = 112
1788 Top = 0 1788 Top = 0
1789 Width = 197 1789 Width = 345
1790 Align = alRight 1790 Align = alRight
1791 ParentFont = False 1791 ParentFont = False
1792 OnClick = Duty1VisualizerClick 1792 OnClick = Duty1VisualizerClick
1793 OnPaint = Duty2VisualizerPaint 1793 OnPaint = Duty2VisualizerPaint
1794 end 1794 end
1795 object WaveVisualizer: TPaintBox 1795 object WaveVisualizer: TPaintBox
1796 Left = 924 1796 Left = 1188
1797 Height = 64 1797 Height = 112
1798 Top = 0 1798 Top = 0
1799 Width = 197 1799 Width = 345
1800 Align = alRight 1800 Align = alRight
1801 ParentFont = False 1801 ParentFont = False
1802 OnClick = Duty1VisualizerClick 1802 OnClick = Duty1VisualizerClick
1803 OnPaint = WaveVisualizerPaint 1803 OnPaint = WaveVisualizerPaint
1804 end 1804 end
1805 object NoiseVisualizer: TPaintBox 1805 object NoiseVisualizer: TPaintBox
1806 Left = 1121 1806 Left = 1533
1807 Height = 64 1807 Height = 112
1808 Top = 0 1808 Top = 0
1809 Width = 197 1809 Width = 345
1810 Align = alRight 1810 Align = alRight
1811 ParentFont = False 1811 ParentFont = False
1812 OnClick = Duty1VisualizerClick 1812 OnClick = Duty1VisualizerClick
@@ -1815,19 +1815,19 @@ object frmTracker: TfrmTracker
1815 end 1815 end
1816 object StatusBar1: TStatusBar 1816 object StatusBar1: TStatusBar
1817 Left = 0 1817 Left = 0
1818 Height = 23 1818 Height = 43
1819 Top = 814 1819 Top = 1094
1820 Width = 1318 1820 Width = 1878
1821 AutoHint = True 1821 AutoHint = True
1822 Panels = < 1822 Panels = <
1823 item 1823 item
1824 Width = 467 1824 Width = 817
1825 end 1825 end
1826 item 1826 item
1827 Width = 200 1827 Width = 350
1828 end 1828 end
1829 item 1829 item
1830 Width = 200 1830 Width = 350
1831 end> 1831 end>
1832 ParentFont = False 1832 ParentFont = False
1833 ParentShowHint = False 1833 ParentShowHint = False
@@ -1836,9 +1836,9 @@ object frmTracker: TfrmTracker
1836 end 1836 end
1837 object ToolBar1: TToolBar 1837 object ToolBar1: TToolBar
1838 Left = 0 1838 Left = 0
1839 Height = 25 1839 Height = 41
1840 Top = 0 1840 Top = 0
1841 Width = 1318 1841 Width = 1878
1842 AutoSize = True 1842 AutoSize = True
1843 Caption = 'ToolBar1' 1843 Caption = 'ToolBar1'
1844 EdgeBorders = [ebBottom] 1844 EdgeBorders = [ebBottom]
@@ -1855,7 +1855,7 @@ object frmTracker: TfrmTracker
1855 ParentShowHint = False 1855 ParentShowHint = False
1856 end 1856 end
1857 object PanicToolButton: TToolButton 1857 object PanicToolButton: TToolButton
1858 Left = 458 1858 Left = 706
1859 Hint = 'Stops all sound output' 1859 Hint = 'Stops all sound output'
1860 Top = 0 1860 Top = 0
1861 AutoSize = True 1861 AutoSize = True
@@ -1866,17 +1866,17 @@ object frmTracker: TfrmTracker
1866 ShowHint = True 1866 ShowHint = True
1867 end 1867 end
1868 object ToolButton2: TToolButton 1868 object ToolButton2: TToolButton
1869 Left = 110 1869 Left = 169
1870 Top = 0 1870 Top = 0
1871 Action = PlayCursorAction 1871 Action = PlayCursorAction
1872 end 1872 end
1873 object ToolButton4: TToolButton 1873 object ToolButton4: TToolButton
1874 Left = 136 1874 Left = 209
1875 Top = 0 1875 Top = 0
1876 Action = StopAction 1876 Action = StopAction
1877 end 1877 end
1878 object ExportGBButton: TToolButton 1878 object ExportGBButton: TToolButton
1879 Left = 198 1879 Left = 307
1880 Hint = 'Export the song as a standalone ROM' 1880 Hint = 'Export the song as a standalone ROM'
1881 Top = 0 1881 Top = 0
1882 AutoSize = True 1882 AutoSize = True
@@ -1885,49 +1885,49 @@ object frmTracker: TfrmTracker
1885 OnClick = ExportGBButtonClick 1885 OnClick = ExportGBButtonClick
1886 end 1886 end
1887 object ToolButton8: TToolButton 1887 object ToolButton8: TToolButton
1888 Left = 79 1888 Left = 120
1889 Height = 22 1889 Height = 39
1890 Top = 0 1890 Top = 0
1891 Caption = 'ToolButton8' 1891 Caption = 'ToolButton8'
1892 Style = tbsDivider 1892 Style = tbsDivider
1893 end 1893 end
1894 object ToolButton6: TToolButton 1894 object ToolButton6: TToolButton
1895 Left = 162 1895 Left = 249
1896 Height = 22 1896 Height = 39
1897 Top = 0 1897 Top = 0
1898 Caption = 'ToolButton6' 1898 Caption = 'ToolButton6'
1899 Style = tbsDivider 1899 Style = tbsDivider
1900 end 1900 end
1901 object ToolButton7: TToolButton 1901 object ToolButton7: TToolButton
1902 Left = 998 1902 Left = 1630
1903 Height = 22 1903 Height = 39
1904 Top = 0 1904 Top = 0
1905 Caption = 'ToolButton7' 1905 Caption = 'ToolButton7'
1906 Style = tbsSeparator 1906 Style = tbsSeparator
1907 end 1907 end
1908 object OctaveSpinEdit: TSpinEdit 1908 object OctaveSpinEdit: TSpinEdit
1909 Left = 564 1909 Left = 871
1910 Height = 23 1910 Height = 38
1911 Hint = 'The octave offset for entering new notes' 1911 Hint = 'The octave offset for entering new notes'
1912 Top = 0 1912 Top = 0
1913 Width = 65 1913 Width = 114
1914 MaxValue = 5 1914 MaxValue = 5
1915 OnChange = OctaveSpinEditChange 1915 OnChange = OctaveSpinEditChange
1916 ParentFont = False 1916 ParentFont = False
1917 TabOrder = 0 1917 TabOrder = 0
1918 end 1918 end
1919 object ToolButton9: TToolButton 1919 object ToolButton9: TToolButton
1920 Left = 513 1920 Left = 782
1921 Height = 22 1921 Height = 39
1922 Top = 0 1922 Top = 0
1923 Caption = 'ToolButton9' 1923 Caption = 'ToolButton9'
1924 Style = tbsSeparator 1924 Style = tbsSeparator
1925 end 1925 end
1926 object Label22: TLabel 1926 object Label22: TLabel
1927 Left = 521 1927 Left = 796
1928 Height = 22 1928 Height = 39
1929 Top = 0 1929 Top = 0
1930 Width = 43 1930 Width = 75
1931 AutoSize = False 1931 AutoSize = False
1932 Caption = 'Octave ' 1932 Caption = 'Octave '
1933 Layout = tlCenter 1933 Layout = tlCenter
@@ -1935,10 +1935,10 @@ object frmTracker: TfrmTracker
1935 ParentFont = False 1935 ParentFont = False
1936 end 1936 end
1937 object Label23: TLabel 1937 object Label23: TLabel
1938 Left = 629 1938 Left = 985
1939 Height = 22 1939 Height = 39
1940 Top = 0 1940 Top = 0
1941 Width = 70 1941 Width = 122
1942 AutoSize = False 1942 AutoSize = False
1943 Caption = ' Instrument ' 1943 Caption = ' Instrument '
1944 Layout = tlCenter 1944 Layout = tlCenter
@@ -1946,13 +1946,13 @@ object frmTracker: TfrmTracker
1946 ParentFont = False 1946 ParentFont = False
1947 end 1947 end
1948 object InstrumentComboBox: TComboBox 1948 object InstrumentComboBox: TComboBox
1949 Left = 699 1949 Left = 1107
1950 Height = 23 1950 Height = 38
1951 Hint = 'The selected instrument for new notes' 1951 Hint = 'The selected instrument for new notes'
1952 Top = 0 1952 Top = 0
1953 Width = 214 1953 Width = 374
1954 DropDownCount = 999 1954 DropDownCount = 999
1955 ItemHeight = 15 1955 ItemHeight = 30
1956 ItemIndex = 0 1956 ItemIndex = 0
1957 Items.Strings = ( 1957 Items.Strings = (
1958 '(no instrument)' 1958 '(no instrument)'
@@ -1964,10 +1964,10 @@ object frmTracker: TfrmTracker
1964 Text = '(no instrument)' 1964 Text = '(no instrument)'
1965 end 1965 end
1966 object Label24: TLabel 1966 object Label24: TLabel
1967 Left = 913 1967 Left = 1481
1968 Height = 22 1968 Height = 39
1969 Top = 0 1969 Top = 0
1970 Width = 35 1970 Width = 61
1971 AutoSize = False 1971 AutoSize = False
1972 Caption = ' Step ' 1972 Caption = ' Step '
1973 Layout = tlCenter 1973 Layout = tlCenter
@@ -1975,23 +1975,23 @@ object frmTracker: TfrmTracker
1975 ParentFont = False 1975 ParentFont = False
1976 end 1976 end
1977 object StepSpinEdit: TSpinEdit 1977 object StepSpinEdit: TSpinEdit
1978 Left = 948 1978 Left = 1542
1979 Height = 23 1979 Height = 38
1980 Hint = 'How many rows to step down after entering a new note' 1980 Hint = 'How many rows to step down after entering a new note'
1981 Top = 0 1981 Top = 0
1982 Width = 50 1982 Width = 88
1983 MaxValue = 63 1983 MaxValue = 63
1984 OnChange = StepSpinEditChange 1984 OnChange = StepSpinEditChange
1985 ParentFont = False 1985 ParentFont = False
1986 TabOrder = 2 1986 TabOrder = 2
1987 end 1987 end
1988 object ToolButton3: TToolButton 1988 object ToolButton3: TToolButton
1989 Left = 84 1989 Left = 129
1990 Top = 0 1990 Top = 0
1991 Action = PlayStartAction 1991 Action = PlayStartAction
1992 end 1992 end
1993 object ExportGBSButton: TToolButton 1993 object ExportGBSButton: TToolButton
1994 Left = 276 1994 Left = 424
1995 Hint = 'Export the song as a GBS soundtrack' 1995 Hint = 'Export the song as a GBS soundtrack'
1996 Top = 0 1996 Top = 0
1997 Caption = 'Export GBS' 1997 Caption = 'Export GBS'
@@ -1999,14 +1999,14 @@ object frmTracker: TfrmTracker
1999 OnClick = ExportGBSButtonClick 1999 OnClick = ExportGBSButtonClick
2000 end 2000 end
2001 object ToolButton5: TToolButton 2001 object ToolButton5: TToolButton
2002 Left = 453 2002 Left = 697
2003 Height = 22 2003 Height = 39
2004 Top = 0 2004 Top = 0
2005 Caption = 'ToolButton5' 2005 Caption = 'ToolButton5'
2006 Style = tbsDivider 2006 Style = tbsDivider
2007 end 2007 end
2008 object ToolButton10: TToolButton 2008 object ToolButton10: TToolButton
2009 Left = 360 2009 Left = 552
2010 Hint = 'Export the song as WAV or MP3' 2010 Hint = 'Export the song as WAV or MP3'
2011 Top = 0 2011 Top = 0
2012 Caption = 'Render Song' 2012 Caption = 'Render Song'
@@ -2014,14 +2014,14 @@ object frmTracker: TfrmTracker
2014 OnClick = ToolButton10Click 2014 OnClick = ToolButton10Click
2015 end 2015 end
2016 object ToolButton11: TToolButton 2016 object ToolButton11: TToolButton
2017 Left = 193 2017 Left = 298
2018 Height = 22 2018 Height = 39
2019 Top = 0 2019 Top = 0
2020 Caption = 'ToolButton11' 2020 Caption = 'ToolButton11'
2021 Style = tbsDivider 2021 Style = tbsDivider
2022 end 2022 end
2023 object LoopSongToolButton: TToolButton 2023 object LoopSongToolButton: TToolButton
2024 Left = 167 2024 Left = 258
2025 Top = 0 2025 Top = 0
2026 ImageIndex = 87 2026 ImageIndex = 87
2027 OnClick = LoopSongToolButtonClick 2027 OnClick = LoopSongToolButtonClick
@@ -2030,8 +2030,8 @@ object frmTracker: TfrmTracker
2030 end 2030 end
2031 object MainMenu1: TMainMenu 2031 object MainMenu1: TMainMenu
2032 Images = ImageList1 2032 Images = ImageList1
2033 Left = 40 2033 Left = 70
2034 Top = 32 2034 Top = 56
2035 object MenuItem1: TMenuItem 2035 object MenuItem1: TMenuItem
2036 Caption = 'File' 2036 Caption = 'File'
2037 object MenuItem33: TMenuItem 2037 object MenuItem33: TMenuItem
@@ -2146,6 +2146,11 @@ object frmTracker: TfrmTracker
2146 object MenuItem25: TMenuItem 2146 object MenuItem25: TMenuItem
2147 Caption = '-' 2147 Caption = '-'
2148 end 2148 end
2149 object MenuItem26: TMenuItem
2150 Caption = 'Find/Replace'
2151 ShortCut = 16454
2152 OnClick = MenuItem26Click
2153 end
2149 object OptionsMenuItem: TMenuItem 2154 object OptionsMenuItem: TMenuItem
2150 Caption = 'Options ...' 2155 Caption = 'Options ...'
2151 OnClick = OptionsMenuItemClick 2156 OnClick = OptionsMenuItemClick
@@ -2187,8 +2192,8 @@ object frmTracker: TfrmTracker
2187 end 2192 end
2188 object MenuBarActionList: TActionList 2193 object MenuBarActionList: TActionList
2189 Images = ImageList1 2194 Images = ImageList1
2190 Left = 104 2195 Left = 182
2191 Top = 72 2196 Top = 126
2192 object FileOpen1: TFileOpen 2197 object FileOpen1: TFileOpen
2193 Category = 'File' 2198 Category = 'File'
2194 Caption = '&Open ...' 2199 Caption = '&Open ...'
@@ -2298,8 +2303,8 @@ object frmTracker: TfrmTracker
2298 end 2303 end
2299 end 2304 end
2300 object ImageList1: TImageList 2305 object ImageList1: TImageList
2301 Left = 152 2306 Left = 266
2302 Top = 32 2307 Top = 56
2303 Bitmap = { 2308 Bitmap = {
2304 4C7A5C0000001000000010000000132900000000000078DAED5D077C1545FE9F 2309 4C7A5C0000001000000010000000132900000000000078DAED5D077C1545FE9F
2305 24A89CA2A814B1DC5FEE3C3D15C1029E200A51BA078228081A44AAC22145448A 2310 24A89CA2A814B1DC5FEE3C3D15C1029E200A51BA078228081A44AAC22145448A
@@ -2635,17 +2640,17 @@ object frmTracker: TfrmTracker
2635 end 2640 end
2636 object OpenDialog1: TOpenDialog 2641 object OpenDialog1: TOpenDialog
2637 Filter = 'hUGETracker Instruments|*.ugi' 2642 Filter = 'hUGETracker Instruments|*.ugi'
2638 Left = 80 2643 Left = 140
2639 Top = 56 2644 Top = 98
2640 end 2645 end
2641 object InstrumentSaveDialog: TSaveDialog 2646 object InstrumentSaveDialog: TSaveDialog
2642 Filter = 'hUGETracker Instruments|*.ugi' 2647 Filter = 'hUGETracker Instruments|*.ugi'
2643 Left = 80 2648 Left = 140
2644 Top = 56 2649 Top = 98
2645 end 2650 end
2646 object OrderEditPopup: TPopupMenu 2651 object OrderEditPopup: TPopupMenu
2647 Left = 128 2652 Left = 224
2648 Top = 40 2653 Top = 70
2649 object MenuItem17: TMenuItem 2654 object MenuItem17: TMenuItem
2650 Caption = 'Insert new row' 2655 Caption = 'Insert new row'
2651 Hint = 'Insert a new row filled with brand new patterns' 2656 Hint = 'Insert a new row filled with brand new patterns'
@@ -2676,8 +2681,8 @@ object frmTracker: TfrmTracker
2676 object ImageList2: TImageList 2681 object ImageList2: TImageList
2677 Height = 32 2682 Height = 32
2678 Width = 32 2683 Width = 32
2679 Left = 48 2684 Left = 84
2680 Top = 86 2685 Top = 151
2681 Bitmap = { 2686 Bitmap = {
2682 4C7A020000002000000020000000400200000000000078DAED98818EC3200886 2687 4C7A020000002000000020000000400200000000000078DAED98818EC3200886
2683 7DF4BED9F666DE6CA54504048BBDE572246659B7F503A4C8BF94662CE77EAD34 2688 7DF4BED9F666DE6CA54504048BBDE572246659B7F503A4C8BF94662CE77EAD34
@@ -2704,33 +2709,33 @@ object frmTracker: TfrmTracker
2704 Enabled = False 2709 Enabled = False
2705 Interval = 200 2710 Interval = 200
2706 OnTimer = OscilloscopeUpdateTimerTimer 2711 OnTimer = OscilloscopeUpdateTimerTimer
2707 Left = 88 2712 Left = 154
2708 Top = 48 2713 Top = 84
2709 end 2714 end
2710 object GBSSaveDialog: TSaveDialog 2715 object GBSSaveDialog: TSaveDialog
2711 Filter = 'Gameboy Soundtrack|*.gbs' 2716 Filter = 'Gameboy Soundtrack|*.gbs'
2712 Left = 288 2717 Left = 504
2713 Top = 24 2718 Top = 42
2714 end 2719 end
2715 object WaveSaveDialog: TSaveDialog 2720 object WaveSaveDialog: TSaveDialog
2716 Filter = 'hUGETracker Waves|*.ugw' 2721 Filter = 'hUGETracker Waves|*.ugw'
2717 Left = 368 2722 Left = 644
2718 Top = 24 2723 Top = 42
2719 end 2724 end
2720 object GBSaveDialog: TSaveDialog 2725 object GBSaveDialog: TSaveDialog
2721 Filter = 'Gameboy ROM|*.gb' 2726 Filter = 'Gameboy ROM|*.gb'
2722 Left = 328 2727 Left = 574
2723 Top = 24 2728 Top = 42
2724 end 2729 end
2725 object NoteHaltTimer: TTimer 2730 object NoteHaltTimer: TTimer
2726 Enabled = False 2731 Enabled = False
2727 OnTimer = NoteHaltTimerTimer 2732 OnTimer = NoteHaltTimerTimer
2728 Left = 80 2733 Left = 140
2729 Top = 86 2734 Top = 151
2730 end 2735 end
2731 object TrackerGridPopup: TPopupMenu 2736 object TrackerGridPopup: TPopupMenu
2732 Left = 96 2737 Left = 168
2733 Top = 24 2738 Top = 42
2734 object TrackerPopupEditEffect: TMenuItem 2739 object TrackerPopupEditEffect: TMenuItem
2735 Caption = 'Edit effect ...' 2740 Caption = 'Edit effect ...'
2736 OnClick = TrackerPopupEditEffectClick 2741 OnClick = TrackerPopupEditEffectClick
@@ -2882,8 +2887,8 @@ object frmTracker: TfrmTracker
2882 object WavSaveDialog: TSaveDialog 2887 object WavSaveDialog: TSaveDialog
2883 DefaultExt = '.wav' 2888 DefaultExt = '.wav'
2884 Filter = 'Wave files|*.wav' 2889 Filter = 'Wave files|*.wav'
2885 Left = 408 2890 Left = 714
2886 Top = 24 2891 Top = 42
2887 end 2892 end
2888 object SynAnySyn1: TSynAnySyn 2893 object SynAnySyn1: TSynAnySyn
2889 Enabled = False 2894 Enabled = False
@@ -3007,18 +3012,18 @@ object frmTracker: TfrmTracker
3007 Entity = False 3012 Entity = False
3008 DollarVariables = False 3013 DollarVariables = False
3009 ActiveDot = False 3014 ActiveDot = False
3010 Left = 8 3015 Left = 14
3011 Top = 86 3016 Top = 151
3012 end 3017 end
3013 object MODOpenDialog: TOpenDialog 3018 object MODOpenDialog: TOpenDialog
3014 DefaultExt = '.mod' 3019 DefaultExt = '.mod'
3015 Filter = 'GBT Player MOD files|*.mod' 3020 Filter = 'GBT Player MOD files|*.mod'
3016 Left = 472 3021 Left = 826
3017 Top = 24 3022 Top = 42
3018 end 3023 end
3019 object WaveEditPopup: TPopupMenu 3024 object WaveEditPopup: TPopupMenu
3020 Left = 8 3025 Left = 14
3021 Top = 32 3026 Top = 56
3022 object MenuItem37: TMenuItem 3027 object MenuItem37: TMenuItem
3023 Caption = 'Copy' 3028 Caption = 'Copy'
3024 OnClick = MenuItem37Click 3029 OnClick = MenuItem37Click
@@ -3030,8 +3035,8 @@ object frmTracker: TfrmTracker
3030 end 3035 end
3031 object ShortcutsActionList: TActionList 3036 object ShortcutsActionList: TActionList
3032 Images = ImageList1 3037 Images = ImageList1
3033 Left = 208 3038 Left = 364
3034 Top = 32 3039 Top = 56
3035 object PlayStartAction: TAction 3040 object PlayStartAction: TAction
3036 DisableIfNoHandler = False 3041 DisableIfNoHandler = False
3037 Hint = 'Play song from start' 3042 Hint = 'Play song from start'
@@ -3156,23 +3161,23 @@ object frmTracker: TfrmTracker
3156 end 3161 end
3157 object GBDKCSaveDialog: TSaveDialog 3162 object GBDKCSaveDialog: TSaveDialog
3158 Filter = 'GBDK C File|*.c' 3163 Filter = 'GBDK C File|*.c'
3159 Left = 248 3164 Left = 434
3160 Top = 24 3165 Top = 42
3161 end 3166 end
3162 object RGBDSAsmSaveDialog: TSaveDialog 3167 object RGBDSAsmSaveDialog: TSaveDialog
3163 Filter = 'RGBDS Assembly|*.asm' 3168 Filter = 'RGBDS Assembly|*.asm'
3164 Left = 272 3169 Left = 476
3165 Top = 48 3170 Top = 84
3166 end 3171 end
3167 object VGMSaveDialog: TSaveDialog 3172 object VGMSaveDialog: TSaveDialog
3168 Filter = 'VGM Rip|*.vgm' 3173 Filter = 'VGM Rip|*.vgm'
3169 Left = 356 3174 Left = 623
3170 Top = 52 3175 Top = 91
3171 end 3176 end
3172 object TBMOpenDialog: TOpenDialog 3177 object TBMOpenDialog: TOpenDialog
3173 DefaultExt = '.tbm' 3178 DefaultExt = '.tbm'
3174 Filter = 'TrackerBoy TBM files|*.tbm' 3179 Filter = 'TrackerBoy TBM files|*.tbm'
3175 Left = 472 3180 Left = 826
3176 Top = 64 3181 Top = 112
3177 end 3182 end
3178 end 3183 end
Modifiedtracker.pas +33−12
@@ -10,7 +10,7 @@ uses
10 about_hugetracker, TrackerGrid, lclintf, lmessages, Buttons, Grids, DBCtrls, 10 about_hugetracker, TrackerGrid, lclintf, lmessages, Buttons, Grids, DBCtrls,
11 HugeDatatypes, LCLType, Clipbrd, RackCtls, Codegen, SymParser, options, 11 HugeDatatypes, LCLType, Clipbrd, RackCtls, Codegen, SymParser, options,
12 bgrabitmap, effecteditor, RenderToWave, modimport, mainloop, strutils, Rtti, 12 bgrabitmap, effecteditor, RenderToWave, modimport, mainloop, strutils, Rtti,
13 Types, Keymap, hUGESettings, vgm, TBMImport, InstrumentPreview; 13 Types, Keymap, hUGESettings, vgm, TBMImport, InstrumentPreview, findreplace;
14 14
15 // TODO: Move to config file? 15 // TODO: Move to config file?
16 const 16 const
@@ -43,6 +43,7 @@ type
43 43
44 TfrmTracker = class(TForm) 44 TfrmTracker = class(TForm)
45 FileSave1: TAction; 45 FileSave1: TAction;
46 MenuItem26: TMenuItem;
46 MenuItem42: TMenuItem; 47 MenuItem42: TMenuItem;
47 MenuItem55: TMenuItem; 48 MenuItem55: TMenuItem;
48 TBMOpenDialog: TOpenDialog; 49 TBMOpenDialog: TOpenDialog;
@@ -297,6 +298,7 @@ type
297 TableGrid: TTableGrid; 298 TableGrid: TTableGrid;
298 procedure FileSave1Execute(Sender: TObject); 299 procedure FileSave1Execute(Sender: TObject);
299 procedure MenuItem10Click(Sender: TObject); 300 procedure MenuItem10Click(Sender: TObject);
301 procedure MenuItem26Click(Sender: TObject);
300 procedure MenuItem55Click(Sender: TObject); 302 procedure MenuItem55Click(Sender: TObject);
301 procedure TimerDividerSpinEditChange(Sender: TObject); 303 procedure TimerDividerSpinEditChange(Sender: TObject);
302 procedure TimerEnabledCheckBoxChange(Sender: TObject); 304 procedure TimerEnabledCheckBoxChange(Sender: TObject);
@@ -355,7 +357,7 @@ type
355 procedure Duty2VisualizerPaint(Sender: TObject); 357 procedure Duty2VisualizerPaint(Sender: TObject);
356 procedure FileOpen1Accept(Sender: TObject); 358 procedure FileOpen1Accept(Sender: TObject);
357 procedure FileSaveAs1Accept(Sender: TObject); 359 procedure FileSaveAs1Accept(Sender: TObject);
358 procedure HeaderControl1MouseDown(Sender: TObject; Button: TMouseButton; 360 procedure HeaderControl1MouseUp(Sender: TObject; Button: TMouseButton;
359 Shift: TShiftState; X, Y: Integer); 361 Shift: TShiftState; X, Y: Integer);
360 procedure HeaderControl1SectionClick(HeaderControl: TCustomHeaderControl; 362 procedure HeaderControl1SectionClick(HeaderControl: TCustomHeaderControl;
361 Section: THeaderSection); 363 Section: THeaderSection);
@@ -1677,31 +1679,45 @@ begin
1677 LoadSong(FileOpen1.Dialog.FileName); 1679 LoadSong(FileOpen1.Dialog.FileName);
1678 end; 1680 end;
1679 1681
1680 procedure TfrmTracker.HeaderControl1MouseDown(Sender: TObject; 1682 procedure TfrmTracker.HeaderControl1MouseUp(Sender: TObject;
1681 Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 1683 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
1682 var 1684 var
1683 SelectedSection: THeaderSection; 1685 SelectedSection: THeaderSection;
1684 P: TPoint; 1686 P: TPoint;
1685 I: Integer; 1687 I: Integer;
1688
1689 function OnlyOneSelected(Sct: Integer): Boolean;
1690 var
1691 J: Integer;
1692 begin
1693 for J := 1 to 4 do
1694 if (HeaderControl1.Sections[J].ImageIndex = 1) and (J <> Sct) then
1695 Exit(False);
1696
1697 Result := (HeaderControl1.Sections[Sct].ImageIndex = 1);
1698 end;
1686 begin 1699 begin
1687 // Hack 1700 if Button <> mbRight then Exit;
1688 1701
1689 if Button = mbRight then begin 1702 P.X := X;
1690 P.X := X; 1703 P.Y := Y;
1691 P.Y := Y;
1692 1704
1693 if HeaderControl1.GetSectionAt(P) = 0 then 1705 if HeaderControl1.GetSectionAt(P) = 0 then
1694 Exit; 1706 Exit;
1695 1707
1708 if OnlyOneSelected(HeaderControl1.GetSectionAt(P)) then begin
1709 for I := 1 to 4 do
1710 HeaderControl1.Sections[I].ImageIndex := 1;
1711 end else begin
1696 for I := 1 to 4 do 1712 for I := 1 to 4 do
1697 HeaderControl1.Sections[I].ImageIndex := 0; 1713 HeaderControl1.Sections[I].ImageIndex := 0;
1698 1714
1699 SelectedSection := HeaderControl1.Sections[HeaderControl1.GetSectionAt(P)]; 1715 SelectedSection := HeaderControl1.Sections[HeaderControl1.GetSectionAt(P)];
1700 SelectedSection.ImageIndex := 1; 1716 SelectedSection.ImageIndex := 1;
1701
1702 for I := 1 to 4 do
1703 snd[I].ChannelOFF := HeaderControl1.Sections[I].ImageIndex = 0;
1704 end; 1717 end;
1718
1719 for I := 1 to 4 do
1720 snd[I].ChannelOFF := HeaderControl1.Sections[I].ImageIndex = 0;
1705 end; 1721 end;
1706 1722
1707 procedure TfrmTracker.HeaderControl1SectionClick( 1723 procedure TfrmTracker.HeaderControl1SectionClick(
@@ -2000,6 +2016,11 @@ begin
2000 end; 2016 end;
2001 end; 2017 end;
2002 2018
2019 procedure TfrmTracker.MenuItem26Click(Sender: TObject);
2020 begin
2021 frmFindReplace.ShowModal;
2022 end;
2023
2003 procedure TfrmTracker.MenuItem55Click(Sender: TObject); 2024 procedure TfrmTracker.MenuItem55Click(Sender: TObject);
2004 var 2025 var
2005 Stream: TStream; 2026 Stream: TStream;