Commit 4b7ead0

Nick Faro committed on
Add hotkey to change instrument for selected notes
commit 4b7ead057618d860d530b8d7157103037cfc328c parent ce24f3a
3 changed files +52−14
Modifiedsrc/tracker.lfm +19−14
@@ -62,10 +62,10 @@ object frmTracker: TfrmTracker
62 Height = 684 62 Height = 684
63 Top = 0 63 Top = 0
64 Width = 1103 64 Width = 1103
65 ActivePage = GeneralTabSheet 65 ActivePage = InstrumentTabSheet
66 Align = alClient 66 Align = alClient
67 ParentFont = False 67 ParentFont = False
68 TabIndex = 0 68 TabIndex = 2
69 TabOrder = 0 69 TabOrder = 0
70 object GeneralTabSheet: TTabSheet 70 object GeneralTabSheet: TTabSheet
71 Caption = 'General' 71 Caption = 'General'
@@ -411,7 +411,7 @@ object frmTracker: TfrmTracker
411 BorderSpacing.Right = 7 411 BorderSpacing.Right = 7
412 BorderSpacing.Bottom = 7 412 BorderSpacing.Bottom = 7
413 Caption = 'Instrument' 413 Caption = 'Instrument'
414 ClientHeight = 269 414 ClientHeight = 254
415 ClientWidth = 276 415 ClientWidth = 276
416 ParentFont = False 416 ParentFont = False
417 TabOrder = 0 417 TabOrder = 0
@@ -633,7 +633,7 @@ object frmTracker: TfrmTracker
633 BorderSpacing.Right = 7 633 BorderSpacing.Right = 7
634 BorderSpacing.Bottom = 7 634 BorderSpacing.Bottom = 7
635 Caption = 'Envelope' 635 Caption = 'Envelope'
636 ClientHeight = 132 636 ClientHeight = 117
637 ClientWidth = 578 637 ClientWidth = 578
638 ParentFont = False 638 ParentFont = False
639 TabOrder = 1 639 TabOrder = 1
@@ -688,16 +688,16 @@ object frmTracker: TfrmTracker
688 Top = 0 688 Top = 0
689 Width = 270 689 Width = 270
690 BevelOuter = bvLowered 690 BevelOuter = bvLowered
691 ClientHeight = 100 691 ClientHeight = 104
692 ClientWidth = 266 692 ClientWidth = 270
693 ParentFont = False 693 ParentFont = False
694 TabOrder = 1 694 TabOrder = 1
695 object EnvelopePaintbox: TPaintBox 695 object EnvelopePaintbox: TPaintBox
696 Left = 1 696 Left = 1
697 Height = 98 697 Height = 102
698 Hint = 'Preview of the volume envelope' 698 Hint = 'Preview of the volume envelope'
699 Top = 1 699 Top = 1
700 Width = 264 700 Width = 268
701 Align = alClient 701 Align = alClient
702 ParentFont = False 702 ParentFont = False
703 OnPaint = EnvelopePaintboxPaint 703 OnPaint = EnvelopePaintboxPaint
@@ -737,7 +737,7 @@ object frmTracker: TfrmTracker
737 BorderSpacing.Right = 7 737 BorderSpacing.Right = 7
738 BorderSpacing.Bottom = 7 738 BorderSpacing.Bottom = 7
739 Caption = 'Square' 739 Caption = 'Square'
740 ClientHeight = 165 740 ClientHeight = 150
741 ClientWidth = 315 741 ClientWidth = 315
742 ParentFont = False 742 ParentFont = False
743 TabOrder = 2 743 TabOrder = 2
@@ -868,7 +868,7 @@ object frmTracker: TfrmTracker
868 BorderSpacing.Right = 7 868 BorderSpacing.Right = 7
869 BorderSpacing.Bottom = 7 869 BorderSpacing.Bottom = 7
870 Caption = 'Wave' 870 Caption = 'Wave'
871 ClientHeight = 165 871 ClientHeight = 150
872 ClientWidth = 293 872 ClientWidth = 293
873 ParentFont = False 873 ParentFont = False
874 TabOrder = 3 874 TabOrder = 3
@@ -928,16 +928,16 @@ object frmTracker: TfrmTracker
928 Top = 80 928 Top = 80
929 Width = 272 929 Width = 272
930 BevelOuter = bvLowered 930 BevelOuter = bvLowered
931 ClientHeight = 55 931 ClientHeight = 59
932 ClientWidth = 268 932 ClientWidth = 272
933 ParentFont = False 933 ParentFont = False
934 TabOrder = 1 934 TabOrder = 1
935 object WavePaintbox: TPaintBox 935 object WavePaintbox: TPaintBox
936 Left = 1 936 Left = 1
937 Height = 53 937 Height = 57
938 Hint = 'Preview of the waveform associated with this instrument' 938 Hint = 'Preview of the waveform associated with this instrument'
939 Top = 1 939 Top = 1
940 Width = 266 940 Width = 270
941 Align = alClient 941 Align = alClient
942 Color = clBlack 942 Color = clBlack
943 ParentColor = False 943 ParentColor = False
@@ -2796,6 +2796,11 @@ object frmTracker: TfrmTracker
2796 ShortCut = 16459 2796 ShortCut = 16459
2797 OnClick = MenuItem31Click 2797 OnClick = MenuItem31Click
2798 end 2798 end
2799 object MenuItem56: TMenuItem
2800 Caption = 'Change Instrument'
2801 ShortCut = 16457
2802 OnClick = MenuItem56Click
2803 end
2799 object MenuItem30: TMenuItem 2804 object MenuItem30: TMenuItem
2800 Caption = '-' 2805 Caption = '-'
2801 end 2806 end
Modifiedsrc/tracker.pas +7−0
@@ -46,6 +46,7 @@ type
46 MenuItem26: TMenuItem; 46 MenuItem26: TMenuItem;
47 MenuItem42: TMenuItem; 47 MenuItem42: TMenuItem;
48 MenuItem55: TMenuItem; 48 MenuItem55: TMenuItem;
49 MenuItem56: TMenuItem;
49 RevertMenuItem: TMenuItem; 50 RevertMenuItem: TMenuItem;
50 Splitter2: TSplitter; 51 Splitter2: TSplitter;
51 TBMOpenDialog: TOpenDialog; 52 TBMOpenDialog: TOpenDialog;
@@ -303,6 +304,7 @@ type
303 procedure MenuItem15Click(Sender: TObject); 304 procedure MenuItem15Click(Sender: TObject);
304 procedure MenuItem26Click(Sender: TObject); 305 procedure MenuItem26Click(Sender: TObject);
305 procedure MenuItem55Click(Sender: TObject); 306 procedure MenuItem55Click(Sender: TObject);
307 procedure MenuItem56Click(Sender: TObject);
306 procedure OrderEditStringGridMouseDown(Sender: TObject; 308 procedure OrderEditStringGridMouseDown(Sender: TObject;
307 Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 309 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
308 procedure RevertMenuItemClick(Sender: TObject); 310 procedure RevertMenuItemClick(Sender: TObject);
@@ -2087,6 +2089,11 @@ begin
2087 end; 2089 end;
2088 end; 2090 end;
2089 2091
2092 procedure TfrmTracker.MenuItem56Click(Sender: TObject);
2093 begin
2094 (ActiveControl as TTrackerGrid).ChangeSelectionInstrument;
2095 end;
2096
2090 procedure TfrmTracker.OrderEditStringGridMouseDown(Sender: TObject; 2097 procedure TfrmTracker.OrderEditStringGridMouseDown(Sender: TObject;
2091 Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 2098 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
2092 begin 2099 begin
Modifiedsrc/trackergrid.pas +26−0
@@ -149,6 +149,7 @@ type
149 procedure TransposeSelection(Semitones: Integer); 149 procedure TransposeSelection(Semitones: Integer);
150 procedure IncrementSelection(Note, Instrument, Volume, EffectCode, EffectParam: Integer); 150 procedure IncrementSelection(Note, Instrument, Volume, EffectCode, EffectParam: Integer);
151 procedure InterpolateSelection; 151 procedure InterpolateSelection;
152 procedure ChangeSelectionInstrument;
152 procedure OpenEffectEditor; 153 procedure OpenEffectEditor;
153 154
154 constructor Create( 155 constructor Create(
@@ -946,6 +947,31 @@ begin
946 EndUndoAction 947 EndUndoAction
947 end; 948 end;
948 949
950 procedure TTrackerGrid.ChangeSelectionInstrument;
951 var
952 Pos: TSelectionPos;
953 R: Integer;
954 begin
955 BeginUndoAction;
956
957 NormalizeCursors;
958
959 for R := Cursor.Y to Other.Y do begin
960 Pos := Cursor;
961 Pos.Y := R;
962 while Pos <= Other do begin
963 with Patterns[Pos.X]^[Pos.Y] do
964 if Note <> NO_NOTE then
965 Instrument := SelectedInstrument;
966
967 IncSelectionPos(Pos);
968 end;
969 end;
970
971 Invalidate;
972 EndUndoAction;
973 end;
974
949 procedure TTrackerGrid.OpenEffectEditor; 975 procedure TTrackerGrid.OpenEffectEditor;
950 begin 976 begin
951 BeginUndoAction; 977 BeginUndoAction;