Commit f08b3b5

Nick committed on
Remove unused usage report stuff
commit f08b3b5c61f8cf542f6af5c1803ed419e45e0e47 parent dee8026
4 changed files +503−629
Modifiedoptions.lfm +72−70
@@ -1,22 +1,21 @@
1 object frmOptions: TfrmOptions 1 object frmOptions: TfrmOptions
2 Left = 2176 2 Left = 2176
3 Height = 1076 3 Height = 615
4 Top = 189 4 Top = 189
5 Width = 533 5 Width = 305
6 BorderStyle = bsDialog 6 BorderStyle = bsDialog
7 Caption = 'Options' 7 Caption = 'Options'
8 ClientHeight = 1076 8 ClientHeight = 615
9 ClientWidth = 533 9 ClientWidth = 305
10 DesignTimePPI = 168
11 OnClose = FormClose 10 OnClose = FormClose
12 OnCreate = FormCreate 11 OnCreate = FormCreate
13 Position = poMainFormCenter 12 Position = poMainFormCenter
14 LCLVersion = '2.0.9.0' 13 LCLVersion = '2.0.9.0'
15 object Label1: TLabel 14 object Label1: TLabel
16 Left = 24 15 Left = 14
17 Height = 30 16 Height = 15
18 Top = 24 17 Top = 14
19 Width = 211 18 Width = 119
20 Caption = 'Pattern editor font size' 19 Caption = 'Pattern editor font size'
21 ParentColor = False 20 ParentColor = False
22 ParentFont = False 21 ParentFont = False
@@ -24,10 +23,10 @@ object frmOptions: TfrmOptions
24 object Button1: TButton 23 object Button1: TButton
25 AnchorSideRight.Side = asrBottom 24 AnchorSideRight.Side = asrBottom
26 AnchorSideBottom.Side = asrBottom 25 AnchorSideBottom.Side = asrBottom
27 Left = 295 26 Left = 169
28 Height = 44 27 Height = 25
29 Top = 1008 28 Top = 576
30 Width = 215 29 Width = 123
31 Anchors = [akRight, akBottom] 30 Anchors = [akRight, akBottom]
32 Caption = 'OK' 31 Caption = 'OK'
33 OnClick = Button1Click 32 OnClick = Button1Click
@@ -35,19 +34,19 @@ object frmOptions: TfrmOptions
35 TabOrder = 0 34 TabOrder = 0
36 end 35 end
37 object FontSizeSpinner: TSpinEdit 36 object FontSizeSpinner: TSpinEdit
38 Left = 271 37 Left = 155
39 Height = 38 38 Height = 23
40 Top = 16 39 Top = 9
41 Width = 215 40 Width = 123
42 ParentFont = False 41 ParentFont = False
43 TabOrder = 1 42 TabOrder = 1
44 Value = 12 43 Value = 12
45 end 44 end
46 object ScopesCheck: TCheckBox 45 object ScopesCheck: TCheckBox
47 Left = 24 46 Left = 14
48 Height = 34 47 Height = 19
49 Top = 70 48 Top = 40
50 Width = 260 49 Width = 149
51 Alignment = taLeftJustify 50 Alignment = taLeftJustify
52 Caption = 'Scopes (Uses More CPU)' 51 Caption = 'Scopes (Uses More CPU)'
53 Checked = True 52 Checked = True
@@ -56,37 +55,37 @@ object frmOptions: TfrmOptions
56 TabOrder = 2 55 TabOrder = 2
57 end 56 end
58 object KeymapGroupBox: TGroupBox 57 object KeymapGroupBox: TGroupBox
59 Left = 24 58 Left = 14
60 Height = 732 59 Height = 418
61 Top = 264 60 Top = 151
62 Width = 488 61 Width = 279
63 Caption = 'Key map' 62 Caption = 'Key map'
64 ClientHeight = 697 63 ClientHeight = 398
65 ClientWidth = 484 64 ClientWidth = 275
66 Enabled = False 65 Enabled = False
67 ParentFont = False 66 ParentFont = False
68 TabOrder = 3 67 TabOrder = 3
69 object KeyMapStringGrid: TStringGrid 68 object KeyMapStringGrid: TStringGrid
70 Left = 9 69 Left = 5
71 Height = 574 70 Height = 328
72 Top = 9 71 Top = 5
73 Width = 466 72 Width = 265
74 Align = alClient 73 Align = alClient
75 BorderSpacing.Bottom = 105 74 BorderSpacing.Bottom = 60
76 BorderSpacing.Around = 9 75 BorderSpacing.Around = 5
77 ColCount = 2 76 ColCount = 2
78 Columns = < 77 Columns = <
79 item 78 item
80 MinSize = 18 79 MinSize = 10
81 MaxSize = 350 80 MaxSize = 200
82 Title.Caption = 'Key' 81 Title.Caption = 'Key'
83 end 82 end
84 item 83 item
85 MinSize = 18 84 MinSize = 10
86 MaxSize = 350 85 MaxSize = 200
87 Title.Caption = 'Note' 86 Title.Caption = 'Note'
88 end> 87 end>
89 DefaultColWidth = 210 88 DefaultColWidth = 120
90 FixedCols = 0 89 FixedCols = 0
91 MouseWheelOption = mwGrid 90 MouseWheelOption = mwGrid
92 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing, goAutoAddRows, goTabs, goSmoothScroll] 91 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing, goAutoAddRows, goTabs, goSmoothScroll]
@@ -95,40 +94,40 @@ object frmOptions: TfrmOptions
95 OnValidateEntry = KeyMapStringGridValidateEntry 94 OnValidateEntry = KeyMapStringGridValidateEntry
96 end 95 end
97 object Button2: TButton 96 object Button2: TButton
98 Left = 14 97 Left = 8
99 Height = 44 98 Height = 25
100 Top = 634 99 Top = 362
101 Width = 229 100 Width = 131
102 Caption = 'Load' 101 Caption = 'Load'
103 OnClick = Button2Click 102 OnClick = Button2Click
104 ParentFont = False 103 ParentFont = False
105 TabOrder = 1 104 TabOrder = 1
106 end 105 end
107 object Button3: TButton 106 object Button3: TButton
108 Left = 252 107 Left = 144
109 Height = 44 108 Height = 25
110 Top = 634 109 Top = 362
111 Width = 220 110 Width = 126
112 Caption = 'Save' 111 Caption = 'Save'
113 OnClick = Button3Click 112 OnClick = Button3Click
114 ParentFont = False 113 ParentFont = False
115 TabOrder = 2 114 TabOrder = 2
116 end 115 end
117 object Button4: TButton 116 object Button4: TButton
118 Left = 420 117 Left = 240
119 Height = 44 118 Height = 25
120 Top = 588 119 Top = 336
121 Width = 52 120 Width = 30
122 Caption = '-' 121 Caption = '-'
123 OnClick = Button4Click 122 OnClick = Button4Click
124 ParentFont = False 123 ParentFont = False
125 TabOrder = 3 124 TabOrder = 3
126 end 125 end
127 object Button5: TButton 126 object Button5: TButton
128 Left = 364 127 Left = 208
129 Height = 44 128 Height = 25
130 Top = 588 129 Top = 336
131 Width = 52 130 Width = 30
132 Caption = '+' 131 Caption = '+'
133 OnClick = Button5Click 132 OnClick = Button5Click
134 ParentFont = False 133 ParentFont = False
@@ -136,10 +135,10 @@ object frmOptions: TfrmOptions
136 end 135 end
137 end 136 end
138 object KeymapCheckbox: TCheckBox 137 object KeymapCheckbox: TCheckBox
139 Left = 24 138 Left = 14
140 Height = 34 139 Height = 19
141 Top = 112 140 Top = 64
142 Width = 220 141 Width = 127
143 Alignment = taLeftJustify 142 Alignment = taLeftJustify
144 Caption = 'Use custom keymap' 143 Caption = 'Use custom keymap'
145 OnChange = KeymapCheckboxChange 144 OnChange = KeymapCheckboxChange
@@ -148,29 +147,32 @@ object frmOptions: TfrmOptions
148 TabOrder = 4 147 TabOrder = 4
149 end 148 end
150 object PreviewWhenPlacingCheck: TCheckBox 149 object PreviewWhenPlacingCheck: TCheckBox
151 Left = 24 150 Left = 14
152 Height = 34 151 Height = 19
153 Top = 160 152 Top = 91
154 Width = 335 153 Width = 192
155 Alignment = taLeftJustify 154 Alignment = taLeftJustify
156 Caption = 'Play preview when placing notes' 155 Caption = 'Play preview when placing notes'
156 ParentFont = False
157 TabOrder = 5 157 TabOrder = 5
158 end 158 end
159 object PreviewWhenBumpingCheck: TCheckBox 159 object PreviewWhenBumpingCheck: TCheckBox
160 Left = 24 160 Left = 14
161 Height = 34 161 Height = 19
162 Top = 208 162 Top = 119
163 Width = 440 163 Width = 254
164 Alignment = taLeftJustify 164 Alignment = taLeftJustify
165 Caption = 'Play preview when bumping notes up/down' 165 Caption = 'Play preview when bumping notes up/down'
166 ParentFont = False
166 TabOrder = 6 167 TabOrder = 6
168 Visible = False
167 end 169 end
168 object SaveDialog1: TSaveDialog 170 object SaveDialog1: TSaveDialog
169 Left = 420 171 Left = 240
170 Top = 84 172 Top = 48
171 end 173 end
172 object OpenDialog1: TOpenDialog 174 object OpenDialog1: TOpenDialog
173 Left = 322 175 Left = 184
174 Top = 84 176 Top = 48
175 end 177 end
176 end 178 end
Modifiedtracker.lfm +429−431
@@ -1,13 +1,12 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 929 2 Left = 1653
3 Height = 1142 3 Height = 653
4 Top = 195 4 Top = 325
5 Width = 2156 5 Width = 1232
6 AllowDropFiles = True 6 AllowDropFiles = True
7 Caption = 'hUGETracker' 7 Caption = 'hUGETracker'
8 ClientHeight = 1108 8 ClientHeight = 633
9 ClientWidth = 2156 9 ClientWidth = 1232
10 DesignTimePPI = 168
11 KeyPreview = True 10 KeyPreview = True
12 Menu = MainMenu1 11 Menu = MainMenu1
13 OnCloseQuery = FormCloseQuery 12 OnCloseQuery = FormCloseQuery
@@ -21,9 +20,9 @@ object frmTracker: TfrmTracker
21 LCLVersion = '2.0.9.0' 20 LCLVersion = '2.0.9.0'
22 object TreeView1: TTreeView 21 object TreeView1: TTreeView
23 Left = 0 22 Left = 0
24 Height = 912 23 Height = 521
25 Top = 153 24 Top = 89
26 Width = 338 25 Width = 193
27 Align = alLeft 26 Align = alLeft
28 ParentFont = False 27 ParentFont = False
29 ReadOnly = True 28 ReadOnly = True
@@ -41,27 +40,27 @@ object frmTracker: TfrmTracker
41 } 40 }
42 end 41 end
43 object Splitter1: TSplitter 42 object Splitter1: TSplitter
44 Left = 338 43 Left = 193
45 Height = 912 44 Height = 521
46 Top = 153 45 Top = 89
47 Width = 9 46 Width = 5
48 end 47 end
49 object Panel1: TPanel 48 object Panel1: TPanel
50 Left = 347 49 Left = 198
51 Height = 912 50 Height = 521
52 Top = 153 51 Top = 89
53 Width = 1809 52 Width = 1034
54 Align = alClient 53 Align = alClient
55 BevelOuter = bvNone 54 BevelOuter = bvNone
56 ClientHeight = 912 55 ClientHeight = 521
57 ClientWidth = 1809 56 ClientWidth = 1034
58 ParentFont = False 57 ParentFont = False
59 TabOrder = 2 58 TabOrder = 2
60 object PageControl1: TPageControl 59 object PageControl1: TPageControl
61 Left = 0 60 Left = 0
62 Height = 912 61 Height = 521
63 Top = 0 62 Top = 0
64 Width = 1809 63 Width = 1034
65 ActivePage = InstrumentTabSheet 64 ActivePage = InstrumentTabSheet
66 Align = alClient 65 Align = alClient
67 ParentFont = False 66 ParentFont = False
@@ -73,68 +72,68 @@ object frmTracker: TfrmTracker
73 ClientWidth = 1063 72 ClientWidth = 1063
74 ParentFont = False 73 ParentFont = False
75 object SongInformationGroupbox: TGroupBox 74 object SongInformationGroupbox: TGroupBox
76 Left = 14 75 Left = 8
77 Height = 238 76 Height = 136
78 Top = 14 77 Top = 8
79 Width = 534 78 Width = 305
80 Caption = 'Song information' 79 Caption = 'Song information'
81 ClientHeight = 203 80 ClientHeight = 116
82 ClientWidth = 530 81 ClientWidth = 301
83 ParentFont = False 82 ParentFont = False
84 TabOrder = 0 83 TabOrder = 0
85 object Label15: TLabel 84 object Label15: TLabel
86 Left = 14 85 Left = 8
87 Height = 15 86 Height = 15
88 Top = 28 87 Top = 16
89 Width = 27 88 Width = 27
90 Caption = 'Song' 89 Caption = 'Song'
91 ParentColor = False 90 ParentColor = False
92 ParentFont = False 91 ParentFont = False
93 end 92 end
94 object Label16: TLabel 93 object Label16: TLabel
95 Left = 12 94 Left = 7
96 Height = 15 95 Height = 15
97 Top = 84 96 Top = 48
98 Width = 28 97 Width = 28
99 Caption = 'Artist' 98 Caption = 'Artist'
100 ParentColor = False 99 ParentColor = False
101 ParentFont = False 100 ParentFont = False
102 end 101 end
103 object SongEdit: TEdit 102 object SongEdit: TEdit
104 Left = 98 103 Left = 56
105 Height = 23 104 Height = 23
106 Hint = 'The name of your composition' 105 Hint = 'The name of your composition'
107 Top = 14 106 Top = 8
108 Width = 378 107 Width = 216
109 OnChange = SongEditChange 108 OnChange = SongEditChange
110 ParentFont = False 109 ParentFont = False
111 TabOrder = 0 110 TabOrder = 0
112 end 111 end
113 object ArtistEdit: TEdit 112 object ArtistEdit: TEdit
114 Left = 98 113 Left = 56
115 Height = 23 114 Height = 23
116 Hint = 'Your name or handle' 115 Hint = 'Your name or handle'
117 Top = 70 116 Top = 40
118 Width = 378 117 Width = 216
119 OnChange = ArtistEditChange 118 OnChange = ArtistEditChange
120 ParentFont = False 119 ParentFont = False
121 TabOrder = 1 120 TabOrder = 1
122 end 121 end
123 object Label21: TLabel 122 object Label21: TLabel
124 Left = 14 123 Left = 8
125 Height = 15 124 Height = 15
126 Top = 136 125 Top = 78
127 Width = 114 126 Width = 114
128 Caption = 'Tempo (ticks per row)' 127 Caption = 'Tempo (ticks per row)'
129 ParentColor = False 128 ParentColor = False
130 ParentFont = False 129 ParentFont = False
131 end 130 end
132 object TicksPerRowSpinEdit: TSpinEdit 131 object TicksPerRowSpinEdit: TSpinEdit
133 Left = 233 132 Left = 133
134 Height = 23 133 Height = 23
135 Hint = 'How many ticks should happen before the row changes. Higher means slower' 134 Hint = 'How many ticks should happen before the row changes. Higher means slower'
136 Top = 128 135 Top = 73
137 Width = 88 136 Width = 50
138 MaxValue = 20 137 MaxValue = 20
139 MinValue = 1 138 MinValue = 1
140 OnChange = TicksPerRowSpinEditChange 139 OnChange = TicksPerRowSpinEditChange
@@ -161,7 +160,7 @@ object frmTracker: TfrmTracker
161 TabOrder = 0 160 TabOrder = 0
162 object HeaderControl1: THeaderControl 161 object HeaderControl1: THeaderControl
163 Left = 1 162 Left = 1
164 Height = 52 163 Height = 30
165 Hint = 'Left click to mute, right click to solo' 164 Hint = 'Left click to mute, right click to solo'
166 Top = 1 165 Top = 1
167 Width = 1407 166 Width = 1407
@@ -170,35 +169,35 @@ object frmTracker: TfrmTracker
170 Sections = < 169 Sections = <
171 item 170 item
172 Alignment = taLeftJustify 171 Alignment = taLeftJustify
173 Width = 56 172 Width = 32
174 Visible = True 173 Visible = True
175 end 174 end
176 item 175 item
177 Alignment = taCenter 176 Alignment = taCenter
178 ImageIndex = 1 177 ImageIndex = 1
179 Text = 'Duty 1' 178 Text = 'Duty 1'
180 Width = 233 179 Width = 133
181 Visible = True 180 Visible = True
182 end 181 end
183 item 182 item
184 Alignment = taCenter 183 Alignment = taCenter
185 ImageIndex = 1 184 ImageIndex = 1
186 Text = 'Duty 2' 185 Text = 'Duty 2'
187 Width = 233 186 Width = 133
188 Visible = True 187 Visible = True
189 end 188 end
190 item 189 item
191 Alignment = taCenter 190 Alignment = taCenter
192 ImageIndex = 1 191 ImageIndex = 1
193 Text = 'Wave' 192 Text = 'Wave'
194 Width = 233 193 Width = 133
195 Visible = True 194 Visible = True
196 end 195 end
197 item 196 item
198 Alignment = taCenter 197 Alignment = taCenter
199 ImageIndex = 1 198 ImageIndex = 1
200 Text = 'Noise' 199 Text = 'Noise'
201 Width = 233 200 Width = 133
202 Visible = True 201 Visible = True
203 end> 202 end>
204 OnSectionClick = HeaderControl1SectionClick 203 OnSectionClick = HeaderControl1SectionClick
@@ -231,11 +230,11 @@ object frmTracker: TfrmTracker
231 Left = 0 230 Left = 0
232 Height = 815 231 Height = 815
233 Top = 0 232 Top = 0
234 Width = 56 233 Width = 32
235 Align = alLeft 234 Align = alLeft
236 BorderStyle = bsNone 235 BorderStyle = bsNone
237 ColCount = 1 236 ColCount = 1
238 DefaultColWidth = 56 237 DefaultColWidth = 32
239 Enabled = False 238 Enabled = False
240 ParentFont = False 239 ParentFont = False
241 RowCount = 64 240 RowCount = 64
@@ -248,41 +247,41 @@ object frmTracker: TfrmTracker
248 Left = 0 247 Left = 0
249 Height = 869 248 Height = 869
250 Top = 0 249 Top = 0
251 Width = 392 250 Width = 224
252 Align = alLeft 251 Align = alLeft
253 AutoEdit = False 252 AutoEdit = False
254 AutoFillColumns = True 253 AutoFillColumns = True
255 Columns = < 254 Columns = <
256 item 255 item
257 Alignment = taCenter 256 Alignment = taCenter
258 MinSize = 58 257 MinSize = 33
259 MaxSize = 58 258 MaxSize = 33
260 Title.Caption = 'Dty1' 259 Title.Caption = 'Dty1'
261 Width = 61 260 Width = 34
262 end 261 end
263 item 262 item
264 Alignment = taCenter 263 Alignment = taCenter
265 MinSize = 58 264 MinSize = 33
266 MaxSize = 58 265 MaxSize = 33
267 Title.Caption = 'Dty2' 266 Title.Caption = 'Dty2'
268 Width = 61 267 Width = 34
269 end 268 end
270 item 269 item
271 Alignment = taCenter 270 Alignment = taCenter
272 MinSize = 58 271 MinSize = 33
273 MaxSize = 58 272 MaxSize = 33
274 Title.Caption = 'Wav' 273 Title.Caption = 'Wav'
275 Width = 61 274 Width = 34
276 end 275 end
277 item 276 item
278 Alignment = taCenter 277 Alignment = taCenter
279 MinSize = 58 278 MinSize = 33
280 MaxSize = 58 279 MaxSize = 33
281 Title.Caption = 'Nse' 280 Title.Caption = 'Nse'
282 Width = 63 281 Width = 37
283 end> 282 end>
284 DefaultColWidth = 30 283 DefaultColWidth = 17
285 DefaultRowHeight = 37 284 DefaultRowHeight = 21
286 ExtendedSelect = False 285 ExtendedSelect = False
287 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goRangeSelect, goRowMoving, goEditing, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight] 286 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goRangeSelect, goRowMoving, goEditing, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight]
288 ParentFont = False 287 ParentFont = False
@@ -302,18 +301,18 @@ object frmTracker: TfrmTracker
302 OnKeyDown = OrderEditStringGridKeyDown 301 OnKeyDown = OrderEditStringGridKeyDown
303 OnValidateEntry = OrderEditStringGridValidateEntry 302 OnValidateEntry = OrderEditStringGridValidateEntry
304 ColWidths = ( 303 ColWidths = (
305 112 304 64
306 61 305 34
307 61 306 34
308 61 307 34
309 63 308 37
310 ) 309 )
311 end 310 end
312 end 311 end
313 object InstrumentTabSheet: TTabSheet 312 object InstrumentTabSheet: TTabSheet
314 Caption = 'Instruments' 313 Caption = 'Instruments'
315 ClientHeight = 869 314 ClientHeight = 493
316 ClientWidth = 1801 315 ClientWidth = 1026
317 ParentFont = False 316 ParentFont = False
318 object PaintBox1: TPaintBox 317 object PaintBox1: TPaintBox
319 AnchorSideTop.Control = FlowPanel1 318 AnchorSideTop.Control = FlowPanel1
@@ -322,8 +321,8 @@ object frmTracker: TfrmTracker
322 Left = 0 321 Left = 0
323 Height = 0 322 Height = 0
324 Hint = 'Preview of how the resulting waveform will look with envelope applied' 323 Hint = 'Preview of how the resulting waveform will look with envelope applied'
325 Top = 869 324 Top = 493
326 Width = 1801 325 Width = 1026
327 Align = alClient 326 Align = alClient
328 Color = clBlack 327 Color = clBlack
329 ParentColor = False 328 ParentColor = False
@@ -333,9 +332,9 @@ object frmTracker: TfrmTracker
333 end 332 end
334 object FlowPanel1: TFlowPanel 333 object FlowPanel1: TFlowPanel
335 Left = 0 334 Left = 0
336 Height = 1180 335 Height = 675
337 Top = 0 336 Top = 0
338 Width = 1801 337 Width = 1026
339 Align = alTop 338 Align = alTop
340 AutoSize = True 339 AutoSize = True
341 BevelOuter = bvNone 340 BevelOuter = bvNone
@@ -370,26 +369,26 @@ object frmTracker: TfrmTracker
370 ParentFont = False 369 ParentFont = False
371 TabOrder = 0 370 TabOrder = 0
372 object InstrumentGroupBox: TGroupBox 371 object InstrumentGroupBox: TGroupBox
373 Left = 12 372 Left = 7
374 Height = 422 373 Height = 241
375 Top = 12 374 Top = 7
376 Width = 474 375 Width = 271
377 Anchors = [] 376 Anchors = []
378 BorderSpacing.Left = 12 377 BorderSpacing.Left = 7
379 BorderSpacing.Top = 12 378 BorderSpacing.Top = 7
380 BorderSpacing.Right = 12 379 BorderSpacing.Right = 7
381 BorderSpacing.Bottom = 12 380 BorderSpacing.Bottom = 7
382 Caption = 'Instrument' 381 Caption = 'Instrument'
383 ClientHeight = 387 382 ClientHeight = 221
384 ClientWidth = 470 383 ClientWidth = 267
385 ParentFont = False 384 ParentFont = False
386 TabOrder = 0 385 TabOrder = 0
387 object InstrumentNumberSpinner: TSpinEdit 386 object InstrumentNumberSpinner: TSpinEdit
388 Left = 140 387 Left = 80
389 Height = 38 388 Height = 23
390 Hint = 'What instrument to edit' 389 Hint = 'What instrument to edit'
391 Top = 66 390 Top = 38
392 Width = 308 391 Width = 176
393 MaxValue = 15 392 MaxValue = 15
394 MinValue = 1 393 MinValue = 1
395 OnChange = InstrumentNumberSpinnerChange 394 OnChange = InstrumentNumberSpinnerChange
@@ -398,50 +397,50 @@ object frmTracker: TfrmTracker
398 Value = 1 397 Value = 1
399 end 398 end
400 object Label1: TLabel 399 object Label1: TLabel
401 Left = 14 400 Left = 8
402 Height = 30 401 Height = 15
403 Top = 80 402 Top = 46
404 Width = 101 403 Width = 58
405 Caption = 'Instrument' 404 Caption = 'Instrument'
406 ParentColor = False 405 ParentColor = False
407 ParentFont = False 406 ParentFont = False
408 end 407 end
409 object Label2: TLabel 408 object Label2: TLabel
410 Left = 14 409 Left = 8
411 Height = 30 410 Height = 15
412 Top = 136 411 Top = 78
413 Width = 56 412 Width = 32
414 Caption = 'Name' 413 Caption = 'Name'
415 ParentColor = False 414 ParentColor = False
416 ParentFont = False 415 ParentFont = False
417 end 416 end
418 object InstrumentNameEdit: TEdit 417 object InstrumentNameEdit: TEdit
419 Left = 140 418 Left = 80
420 Height = 38 419 Height = 23
421 Hint = 'The name of the instrument' 420 Hint = 'The name of the instrument'
422 Top = 122 421 Top = 70
423 Width = 308 422 Width = 176
424 OnChange = InstrumentNameEditChange 423 OnChange = InstrumentNameEditChange
425 ParentFont = False 424 ParentFont = False
426 TabOrder = 1 425 TabOrder = 1
427 end 426 end
428 object Label3: TLabel 427 object Label3: TLabel
429 Left = 14 428 Left = 8
430 Height = 30 429 Height = 15
431 Top = 28 430 Top = 16
432 Width = 80 431 Width = 44
433 Caption = 'Channel' 432 Caption = 'Channel'
434 Font.Style = [fsBold] 433 Font.Style = [fsBold]
435 ParentColor = False 434 ParentColor = False
436 ParentFont = False 435 ParentFont = False
437 end 436 end
438 object InstrumentTypeCombobox: TComboBox 437 object InstrumentTypeCombobox: TComboBox
439 Left = 136 438 Left = 78
440 Height = 38 439 Height = 23
441 Hint = 'What type of channel this instrument will be played on' 440 Hint = 'What type of channel this instrument will be played on'
442 Top = 14 441 Top = 8
443 Width = 312 442 Width = 178
444 ItemHeight = 30 443 ItemHeight = 15
445 ItemIndex = 0 444 ItemIndex = 0
446 Items.Strings = ( 445 Items.Strings = (
447 'Square' 446 'Square'
@@ -455,52 +454,52 @@ object frmTracker: TfrmTracker
455 Text = 'Square' 454 Text = 'Square'
456 end 455 end
457 object LengthEnabledCheckbox: TCheckBox 456 object LengthEnabledCheckbox: TCheckBox
458 Left = 21 457 Left = 12
459 Height = 34 458 Height = 19
460 Hint = 'Cut the sound after a certain length of time' 459 Hint = 'Cut the sound after a certain length of time'
461 Top = 206 460 Top = 118
462 Width = 98 461 Width = 57
463 Caption = 'Length' 462 Caption = 'Length'
464 OnChange = LengthEnabledCheckboxChange 463 OnChange = LengthEnabledCheckboxChange
465 ParentFont = False 464 ParentFont = False
466 TabOrder = 3 465 TabOrder = 3
467 end 466 end
468 object InstrumentImportButton: TButton 467 object InstrumentImportButton: TButton
469 Left = 21 468 Left = 12
470 Height = 44 469 Height = 25
471 Top = 322 470 Top = 184
472 Width = 203 471 Width = 116
473 Caption = 'Import' 472 Caption = 'Import'
474 OnClick = InstrumentImportButtonClick 473 OnClick = InstrumentImportButtonClick
475 ParentFont = False 474 ParentFont = False
476 TabOrder = 4 475 TabOrder = 4
477 end 476 end
478 object InstrumentExportButton: TButton 477 object InstrumentExportButton: TButton
479 Left = 242 478 Left = 138
480 Height = 44 479 Height = 25
481 Top = 322 480 Top = 184
482 Width = 203 481 Width = 116
483 Caption = 'Export' 482 Caption = 'Export'
484 OnClick = InstrumentExportButtonClick 483 OnClick = InstrumentExportButtonClick
485 ParentFont = False 484 ParentFont = False
486 TabOrder = 5 485 TabOrder = 5
487 end 486 end
488 object Button1: TButton 487 object Button1: TButton
489 Left = 21 488 Left = 12
490 Height = 44 489 Height = 25
491 Hint = 'Test out the instrument with a C-5 note' 490 Hint = 'Test out the instrument with a C-5 note'
492 Top = 266 491 Top = 152
493 Width = 424 492 Width = 242
494 Caption = 'Test C-5' 493 Caption = 'Test C-5'
495 OnClick = Button1Click 494 OnClick = Button1Click
496 ParentFont = False 495 ParentFont = False
497 TabOrder = 6 496 TabOrder = 6
498 end 497 end
499 object LengthTrackbar: TTrackBar 498 object LengthTrackbar: TTrackBar
500 Left = 133 499 Left = 76
501 Height = 44 500 Height = 25
502 Top = 196 501 Top = 112
503 Width = 312 502 Width = 178
504 Max = 63 503 Max = 63
505 OnChange = LengthSpinnerChange 504 OnChange = LengthSpinnerChange
506 Position = 0 505 Position = 0
@@ -510,45 +509,45 @@ object frmTracker: TfrmTracker
510 end 509 end
511 end 510 end
512 object EnvelopeGroupBox: TGroupBox 511 object EnvelopeGroupBox: TGroupBox
513 Left = 510 512 Left = 292
514 Height = 238 513 Height = 136
515 Top = 12 514 Top = 7
516 Width = 1018 515 Width = 582
517 Anchors = [] 516 Anchors = []
518 BorderSpacing.Left = 12 517 BorderSpacing.Left = 7
519 BorderSpacing.Top = 12 518 BorderSpacing.Top = 7
520 BorderSpacing.Right = 12 519 BorderSpacing.Right = 7
521 BorderSpacing.Bottom = 12 520 BorderSpacing.Bottom = 7
522 Caption = 'Envelope' 521 Caption = 'Envelope'
523 ClientHeight = 203 522 ClientHeight = 116
524 ClientWidth = 1014 523 ClientWidth = 578
525 ParentFont = False 524 ParentFont = False
526 TabOrder = 1 525 TabOrder = 1
527 object Label4: TLabel 526 object Label4: TLabel
528 Left = 14 527 Left = 8
529 Height = 30 528 Height = 15
530 Top = 16 529 Top = 9
531 Width = 80 530 Width = 46
532 Caption = 'Start vol.' 531 Caption = 'Start vol.'
533 ParentColor = False 532 ParentColor = False
534 ParentFont = False 533 ParentFont = False
535 end 534 end
536 object Label5: TLabel 535 object Label5: TLabel
537 Left = 14 536 Left = 8
538 Height = 30 537 Height = 15
539 Top = 84 538 Top = 48
540 Width = 84 539 Width = 48
541 Caption = 'Direction' 540 Caption = 'Direction'
542 ParentColor = False 541 ParentColor = False
543 ParentFont = False 542 ParentFont = False
544 end 543 end
545 object DirectionComboBox: TComboBox 544 object DirectionComboBox: TComboBox
546 Left = 144 545 Left = 82
547 Height = 38 546 Height = 23
548 Hint = 'Whether to fade the sound in or out' 547 Hint = 'Whether to fade the sound in or out'
549 Top = 80 548 Top = 46
550 Width = 346 549 Width = 198
551 ItemHeight = 30 550 ItemHeight = 15
552 ItemIndex = 1 551 ItemIndex = 1
553 Items.Strings = ( 552 Items.Strings = (
554 'Up' 553 'Up'
@@ -561,40 +560,40 @@ object frmTracker: TfrmTracker
561 Text = 'Down' 560 Text = 'Down'
562 end 561 end
563 object Label6: TLabel 562 object Label6: TLabel
564 Left = 14 563 Left = 8
565 Height = 30 564 Height = 15
566 Top = 150 565 Top = 86
567 Width = 71 566 Width = 41
568 Caption = 'Change' 567 Caption = 'Change'
569 ParentColor = False 568 ParentColor = False
570 ParentFont = False 569 ParentFont = False
571 end 570 end
572 object Panel5: TPanel 571 object Panel5: TPanel
573 Left = 525 572 Left = 300
574 Height = 182 573 Height = 104
575 Top = 0 574 Top = 0
576 Width = 472 575 Width = 270
577 BevelOuter = bvLowered 576 BevelOuter = bvLowered
578 ClientHeight = 182 577 ClientHeight = 104
579 ClientWidth = 472 578 ClientWidth = 270
580 ParentFont = False 579 ParentFont = False
581 TabOrder = 1 580 TabOrder = 1
582 object EnvelopePaintbox: TPaintBox 581 object EnvelopePaintbox: TPaintBox
583 Left = 1 582 Left = 1
584 Height = 180 583 Height = 102
585 Hint = 'Preview of the volume envelope' 584 Hint = 'Preview of the volume envelope'
586 Top = 1 585 Top = 1
587 Width = 470 586 Width = 268
588 Align = alClient 587 Align = alClient
589 ParentFont = False 588 ParentFont = False
590 OnPaint = EnvelopePaintboxPaint 589 OnPaint = EnvelopePaintboxPaint
591 end 590 end
592 end 591 end
593 object StartVolTrackbar: TTrackBar 592 object StartVolTrackbar: TTrackBar
594 Left = 144 593 Left = 82
595 Height = 44 594 Height = 25
596 Top = 14 595 Top = 8
597 Width = 343 596 Width = 196
598 Max = 15 597 Max = 15
599 OnChange = StartVolSpinnerChange 598 OnChange = StartVolSpinnerChange
600 Position = 0 599 Position = 0
@@ -602,10 +601,10 @@ object frmTracker: TfrmTracker
602 TabOrder = 2 601 TabOrder = 2
603 end 602 end
604 object EnvChangeTrackbar: TTrackBar 603 object EnvChangeTrackbar: TTrackBar
605 Left = 144 604 Left = 82
606 Height = 44 605 Height = 25
607 Top = 144 606 Top = 82
608 Width = 343 607 Width = 196
609 Max = 7 608 Max = 7
610 OnChange = EnvChangeSpinnerChange 609 OnChange = EnvChangeSpinnerChange
611 Position = 0 610 Position = 0
@@ -614,36 +613,36 @@ object frmTracker: TfrmTracker
614 end 613 end
615 end 614 end
616 object SquareGroupBox: TGroupBox 615 object SquareGroupBox: TGroupBox
617 Left = 12 616 Left = 7
618 Height = 296 617 Height = 169
619 Top = 458 618 Top = 262
620 Width = 558 619 Width = 319
621 Anchors = [] 620 Anchors = []
622 BorderSpacing.Left = 12 621 BorderSpacing.Left = 7
623 BorderSpacing.Top = 12 622 BorderSpacing.Top = 7
624 BorderSpacing.Right = 12 623 BorderSpacing.Right = 7
625 BorderSpacing.Bottom = 12 624 BorderSpacing.Bottom = 7
626 Caption = 'Square' 625 Caption = 'Square'
627 ClientHeight = 261 626 ClientHeight = 149
628 ClientWidth = 554 627 ClientWidth = 315
629 ParentFont = False 628 ParentFont = False
630 TabOrder = 2 629 TabOrder = 2
631 object Label7: TLabel 630 object Label7: TLabel
632 Left = 14 631 Left = 8
633 Height = 30 632 Height = 15
634 Top = 28 633 Top = 16
635 Width = 107 634 Width = 61
636 Caption = 'Sweep time' 635 Caption = 'Sweep time'
637 ParentColor = False 636 ParentColor = False
638 ParentFont = False 637 ParentFont = False
639 end 638 end
640 object SweepTimeCombobox: TComboBox 639 object SweepTimeCombobox: TComboBox
641 Left = 182 640 Left = 104
642 Height = 38 641 Height = 23
643 Hint = 'How long to sweep' 642 Hint = 'How long to sweep'
644 Top = 14 643 Top = 8
645 Width = 350 644 Width = 200
646 ItemHeight = 30 645 ItemHeight = 15
647 ItemIndex = 0 646 ItemIndex = 0
648 Items.Strings = ( 647 Items.Strings = (
649 'Off - no frequency change' 648 'Off - no frequency change'
@@ -664,12 +663,12 @@ object frmTracker: TfrmTracker
664 Text = 'Off - no frequency change' 663 Text = 'Off - no frequency change'
665 end 664 end
666 object SweepDirectionCombobox: TComboBox 665 object SweepDirectionCombobox: TComboBox
667 Left = 182 666 Left = 104
668 Height = 38 667 Height = 23
669 Hint = 'The direction of the sweep' 668 Hint = 'The direction of the sweep'
670 Top = 70 669 Top = 40
671 Width = 350 670 Width = 200
672 ItemHeight = 30 671 ItemHeight = 15
673 ItemIndex = 1 672 ItemIndex = 1
674 Items.Strings = ( 673 Items.Strings = (
675 'Up' 674 'Up'
@@ -684,39 +683,39 @@ object frmTracker: TfrmTracker
684 Text = 'Down' 683 Text = 'Down'
685 end 684 end
686 object Label8: TLabel 685 object Label8: TLabel
687 Left = 14 686 Left = 8
688 Height = 30 687 Height = 15
689 Top = 84 688 Top = 48
690 Width = 147 689 Width = 84
691 Caption = 'Sweep direction' 690 Caption = 'Sweep direction'
692 ParentColor = False 691 ParentColor = False
693 ParentFont = False 692 ParentFont = False
694 end 693 end
695 object Label9: TLabel 694 object Label9: TLabel
696 Left = 14 695 Left = 8
697 Height = 30 696 Height = 15
698 Top = 147 697 Top = 84
699 Width = 101 698 Width = 56
700 Caption = 'Sweep size' 699 Caption = 'Sweep size'
701 ParentColor = False 700 ParentColor = False
702 ParentFont = False 701 ParentFont = False
703 end 702 end
704 object Label10: TLabel 703 object Label10: TLabel
705 Left = 14 704 Left = 8
706 Height = 30 705 Height = 15
707 Top = 210 706 Top = 120
708 Width = 44 707 Width = 25
709 Caption = 'Duty' 708 Caption = 'Duty'
710 ParentColor = False 709 ParentColor = False
711 ParentFont = False 710 ParentFont = False
712 end 711 end
713 object DutyCombobox: TComboBox 712 object DutyCombobox: TComboBox
714 Left = 182 713 Left = 104
715 Height = 38 714 Height = 23
716 Hint = 'Which duty cycle to use (changes timbre of wave)' 715 Hint = 'Which duty cycle to use (changes timbre of wave)'
717 Top = 196 716 Top = 112
718 Width = 350 717 Width = 200
719 ItemHeight = 30 718 ItemHeight = 15
720 ItemIndex = 2 719 ItemIndex = 2
721 Items.Strings = ( 720 Items.Strings = (
722 '12.5%' 721 '12.5%'
@@ -733,10 +732,10 @@ object frmTracker: TfrmTracker
733 Text = '50% (square)' 732 Text = '50% (square)'
734 end 733 end
735 object SweepSizeTrackbar: TTrackBar 734 object SweepSizeTrackbar: TTrackBar
736 Left = 184 735 Left = 105
737 Height = 44 736 Height = 25
738 Top = 140 737 Top = 80
739 Width = 343 738 Width = 196
740 Max = 7 739 Max = 7
741 OnChange = SweepSizeSpinnerChange 740 OnChange = SweepSizeSpinnerChange
742 Position = 0 741 Position = 0
@@ -745,45 +744,45 @@ object frmTracker: TfrmTracker
745 end 744 end
746 end 745 end
747 object WaveGroupBox: TGroupBox 746 object WaveGroupBox: TGroupBox
748 Left = 594 747 Left = 340
749 Height = 296 748 Height = 169
750 Top = 458 749 Top = 262
751 Width = 520 750 Width = 297
752 Anchors = [] 751 Anchors = []
753 BorderSpacing.Left = 12 752 BorderSpacing.Left = 7
754 BorderSpacing.Top = 12 753 BorderSpacing.Top = 7
755 BorderSpacing.Right = 12 754 BorderSpacing.Right = 7
756 BorderSpacing.Bottom = 12 755 BorderSpacing.Bottom = 7
757 Caption = 'Wave' 756 Caption = 'Wave'
758 ClientHeight = 261 757 ClientHeight = 149
759 ClientWidth = 516 758 ClientWidth = 293
760 ParentFont = False 759 ParentFont = False
761 TabOrder = 3 760 TabOrder = 3
762 object Label11: TLabel 761 object Label11: TLabel
763 Left = 14 762 Left = 8
764 Height = 30 763 Height = 15
765 Top = 28 764 Top = 16
766 Width = 70 765 Width = 40
767 Caption = 'Volume' 766 Caption = 'Volume'
768 ParentColor = False 767 ParentColor = False
769 ParentFont = False 768 ParentFont = False
770 end 769 end
771 object Label12: TLabel 770 object Label12: TLabel
772 Left = 14 771 Left = 8
773 Height = 30 772 Height = 15
774 Top = 84 773 Top = 48
775 Width = 95 774 Width = 55
776 Caption = 'Waveform' 775 Caption = 'Waveform'
777 ParentColor = False 776 ParentColor = False
778 ParentFont = False 777 ParentFont = False
779 end 778 end
780 object WaveformCombobox: TComboBox 779 object WaveformCombobox: TComboBox
781 Left = 182 780 Left = 104
782 Height = 38 781 Height = 23
783 Hint = 'Which waveform is associated with this instrument' 782 Hint = 'Which waveform is associated with this instrument'
784 Top = 70 783 Top = 40
785 Width = 308 784 Width = 176
786 ItemHeight = 30 785 ItemHeight = 15
787 ItemIndex = 0 786 ItemIndex = 0
788 Items.Strings = ( 787 Items.Strings = (
789 'Wave #0' 788 'Wave #0'
@@ -810,21 +809,21 @@ object frmTracker: TfrmTracker
810 Text = 'Wave #0' 809 Text = 'Wave #0'
811 end 810 end
812 object Panel4: TPanel 811 object Panel4: TPanel
813 Left = 14 812 Left = 8
814 Height = 103 813 Height = 59
815 Top = 140 814 Top = 80
816 Width = 476 815 Width = 272
817 BevelOuter = bvLowered 816 BevelOuter = bvLowered
818 ClientHeight = 103 817 ClientHeight = 59
819 ClientWidth = 476 818 ClientWidth = 272
820 ParentFont = False 819 ParentFont = False
821 TabOrder = 1 820 TabOrder = 1
822 object WavePaintbox: TPaintBox 821 object WavePaintbox: TPaintBox
823 Left = 1 822 Left = 1
824 Height = 101 823 Height = 57
825 Hint = 'Preview of the waveform associated with this instrument' 824 Hint = 'Preview of the waveform associated with this instrument'
826 Top = 1 825 Top = 1
827 Width = 474 826 Width = 270
828 Align = alClient 827 Align = alClient
829 Color = clBlack 828 Color = clBlack
830 ParentColor = False 829 ParentColor = False
@@ -833,12 +832,12 @@ object frmTracker: TfrmTracker
833 end 832 end
834 end 833 end
835 object WaveVolumeCombobox: TComboBox 834 object WaveVolumeCombobox: TComboBox
836 Left = 182 835 Left = 104
837 Height = 38 836 Height = 23
838 Hint = 'The initial volume of the wave' 837 Hint = 'The initial volume of the wave'
839 Top = 14 838 Top = 8
840 Width = 308 839 Width = 176
841 ItemHeight = 30 840 ItemHeight = 15
842 ItemIndex = 1 841 ItemIndex = 1
843 Items.Strings = ( 842 Items.Strings = (
844 'Mute (No sound)' 843 'Mute (No sound)'
@@ -854,26 +853,26 @@ object frmTracker: TfrmTracker
854 end 853 end
855 end 854 end
856 object NoiseGroupBox: TGroupBox 855 object NoiseGroupBox: TGroupBox
857 Left = 12 856 Left = 7
858 Height = 390 857 Height = 223
859 Top = 778 858 Top = 445
860 Width = 695 859 Width = 397
861 Anchors = [] 860 Anchors = []
862 BorderSpacing.Left = 12 861 BorderSpacing.Left = 7
863 BorderSpacing.Top = 12 862 BorderSpacing.Top = 7
864 BorderSpacing.Right = 12 863 BorderSpacing.Right = 7
865 BorderSpacing.Bottom = 12 864 BorderSpacing.Bottom = 7
866 Caption = 'Noise' 865 Caption = 'Noise'
867 ClientHeight = 355 866 ClientHeight = 203
868 ClientWidth = 691 867 ClientWidth = 393
869 ParentFont = False 868 ParentFont = False
870 TabOrder = 4 869 TabOrder = 4
871 object SevenBitCounterCheckbox: TCheckBox 870 object SevenBitCounterCheckbox: TCheckBox
872 Left = 14 871 Left = 8
873 Height = 34 872 Height = 19
874 Hint = 'Select LFSR width. When checked, output will sound like a tone rather than noise' 873 Hint = 'Select LFSR width. When checked, output will sound like a tone rather than noise'
875 Top = 14 874 Top = 8
876 Width = 373 875 Width = 215
877 Alignment = taLeftJustify 876 Alignment = taLeftJustify
878 Caption = '7 bit counter (more tone-like output)' 877 Caption = '7 bit counter (more tone-like output)'
879 OnChange = SevenBitCounterCheckboxChange 878 OnChange = SevenBitCounterCheckboxChange
@@ -881,20 +880,20 @@ object frmTracker: TfrmTracker
881 TabOrder = 0 880 TabOrder = 0
882 end 881 end
883 object Panel6: TPanel 882 object Panel6: TPanel
884 Left = 14 883 Left = 8
885 Height = 266 884 Height = 152
886 Top = 70 885 Top = 40
887 Width = 658 886 Width = 376
888 BevelOuter = bvLowered 887 BevelOuter = bvLowered
889 ClientHeight = 266 888 ClientHeight = 152
890 ClientWidth = 658 889 ClientWidth = 376
891 ParentFont = False 890 ParentFont = False
892 TabOrder = 1 891 TabOrder = 1
893 object NoiseMacroPaintbox: TPaintBox 892 object NoiseMacroPaintbox: TPaintBox
894 Left = 1 893 Left = 1
895 Height = 264 894 Height = 150
896 Top = 1 895 Top = 1
897 Width = 656 896 Width = 374
898 Align = alClient 897 Align = alClient
899 ParentFont = False 898 ParentFont = False
900 OnMouseDown = NoiseMacroPaintboxMouseDown 899 OnMouseDown = NoiseMacroPaintboxMouseDown
@@ -920,7 +919,7 @@ object frmTracker: TfrmTracker
920 Width = 1064 919 Width = 1064
921 Align = alBottom 920 Align = alBottom
922 Anchors = [akTop, akLeft, akRight, akBottom] 921 Anchors = [akTop, akLeft, akRight, akBottom]
923 BorderSpacing.Top = 23 922 BorderSpacing.Top = 13
924 ParentFont = False 923 ParentFont = False
925 PopupMenu = WaveEditPopup 924 PopupMenu = WaveEditPopup
926 OnMouseDown = WaveEditPaintBoxMouseDown 925 OnMouseDown = WaveEditPaintBoxMouseDown
@@ -929,61 +928,61 @@ object frmTracker: TfrmTracker
929 OnPaint = WaveEditPaintBoxPaint 928 OnPaint = WaveEditPaintBoxPaint
930 end 929 end
931 object WaveEditGroupBox: TGroupBox 930 object WaveEditGroupBox: TGroupBox
932 Left = 14 931 Left = 8
933 Height = 243 932 Height = 139
934 Top = 14 933 Top = 8
935 Width = 994 934 Width = 568
936 Caption = 'Wave Editor' 935 Caption = 'Wave Editor'
937 ClientHeight = 208 936 ClientHeight = 119
938 ClientWidth = 990 937 ClientWidth = 564
939 ParentFont = False 938 ParentFont = False
940 TabOrder = 0 939 TabOrder = 0
941 object Label20: TLabel 940 object Label20: TLabel
942 Left = 28 941 Left = 16
943 Height = 15 942 Height = 15
944 Top = 28 943 Top = 16
945 Width = 29 944 Width = 29
946 Caption = 'Wave' 945 Caption = 'Wave'
947 ParentColor = False 946 ParentColor = False
948 ParentFont = False 947 ParentFont = False
949 end 948 end
950 object WaveEditNumberSpinner: TSpinEdit 949 object WaveEditNumberSpinner: TSpinEdit
951 Left = 112 950 Left = 64
952 Height = 23 951 Height = 23
953 Top = 14 952 Top = 8
954 Width = 140 953 Width = 80
955 MaxValue = 15 954 MaxValue = 15
956 OnChange = WaveEditNumberSpinnerChange 955 OnChange = WaveEditNumberSpinnerChange
957 ParentFont = False 956 ParentFont = False
958 TabOrder = 0 957 TabOrder = 0
959 end 958 end
960 object ImportWaveButton: TButton 959 object ImportWaveButton: TButton
961 Left = 28 960 Left = 16
962 Height = 44 961 Height = 25
963 Hint = 'Import a wave' 962 Hint = 'Import a wave'
964 Top = 84 963 Top = 48
965 Width = 257 964 Width = 147
966 Caption = 'Import' 965 Caption = 'Import'
967 OnClick = ImportWaveButtonClick 966 OnClick = ImportWaveButtonClick
968 ParentFont = False 967 ParentFont = False
969 TabOrder = 1 968 TabOrder = 1
970 end 969 end
971 object ExportWaveButton: TButton 970 object ExportWaveButton: TButton
972 Left = 28 971 Left = 16
973 Height = 44 972 Height = 25
974 Hint = 'Export a wave' 973 Hint = 'Export a wave'
975 Top = 140 974 Top = 80
976 Width = 257 975 Width = 147
977 Caption = 'Export' 976 Caption = 'Export'
978 OnClick = ExportWaveButtonClick 977 OnClick = ExportWaveButtonClick
979 ParentFont = False 978 ParentFont = False
980 TabOrder = 2 979 TabOrder = 2
981 end 980 end
982 object HexWaveEdit: TEdit 981 object HexWaveEdit: TEdit
983 Left = 504 982 Left = 288
984 Height = 23 983 Height = 23
985 Top = 14 984 Top = 8
986 Width = 462 985 Width = 264
987 MaxLength = 32 986 MaxLength = 32
988 OnChange = HexWaveEditEditingDone 987 OnChange = HexWaveEditEditingDone
989 OnEditingDone = HexWaveEditEditingDone 988 OnEditingDone = HexWaveEditEditingDone
@@ -991,18 +990,18 @@ object frmTracker: TfrmTracker
991 TabOrder = 3 990 TabOrder = 3
992 end 991 end
993 object Label13: TLabel 992 object Label13: TLabel
994 Left = 308 993 Left = 176
995 Height = 15 994 Height = 15
996 Top = 28 995 Top = 16
997 Width = 100 996 Width = 100
998 Caption = 'Hex representation' 997 Caption = 'Hex representation'
999 ParentColor = False 998 ParentColor = False
1000 ParentFont = False 999 ParentFont = False
1001 end 1000 end
1002 object PlayWaveWhileDrawingCheckbox: TCheckBox 1001 object PlayWaveWhileDrawingCheckbox: TCheckBox
1003 Left = 308 1002 Left = 176
1004 Height = 19 1003 Height = 19
1005 Top = 70 1004 Top = 40
1006 Width = 149 1005 Width = 149
1007 Caption = 'Play wave while drawing' 1006 Caption = 'Play wave while drawing'
1008 ParentFont = False 1007 ParentFont = False
@@ -1025,16 +1024,16 @@ object frmTracker: TfrmTracker
1025 Width = 939 1024 Width = 939
1026 Align = alBottom 1025 Align = alBottom
1027 Anchors = [akTop, akLeft, akRight, akBottom] 1026 Anchors = [akTop, akLeft, akRight, akBottom]
1028 BorderSpacing.Top = 23 1027 BorderSpacing.Top = 13
1029 MaxLength = 255 1028 MaxLength = 255
1030 OnChange = CommentMemoChange 1029 OnChange = CommentMemoChange
1031 ParentFont = False 1030 ParentFont = False
1032 TabOrder = 0 1031 TabOrder = 0
1033 end 1032 end
1034 object Label17: TLabel 1033 object Label17: TLabel
1035 Left = 14 1034 Left = 8
1036 Height = 15 1035 Height = 15
1037 Top = 14 1036 Top = 8
1038 Width = 333 1037 Width = 333
1039 Caption = 'This is an area to write comments for anyone editing your tune.' 1038 Caption = 'This is an area to write comments for anyone editing your tune.'
1040 ParentColor = False 1039 ParentColor = False
@@ -1054,16 +1053,16 @@ object frmTracker: TfrmTracker
1054 Top = 128 1053 Top = 128
1055 Width = 1063 1054 Width = 1063
1056 Align = alBottom 1055 Align = alBottom
1057 BorderSpacing.Top = 23 1056 BorderSpacing.Top = 13
1058 Anchors = [akTop, akLeft, akRight, akBottom] 1057 Anchors = [akTop, akLeft, akRight, akBottom]
1059 Font.Height = -23 1058 Font.Height = -13
1060 Font.Name = 'Courier New' 1059 Font.Name = 'Courier New'
1061 Font.Pitch = fpFixed 1060 Font.Pitch = fpFixed
1062 Font.Quality = fqNonAntialiased 1061 Font.Quality = fqNonAntialiased
1063 ParentColor = False 1062 ParentColor = False
1064 ParentFont = False 1063 ParentFont = False
1065 TabOrder = 0 1064 TabOrder = 0
1066 Gutter.Width = 100 1065 Gutter.Width = 57
1067 Gutter.MouseActions = <> 1066 Gutter.MouseActions = <>
1068 RightGutter.Width = 0 1067 RightGutter.Width = 0
1069 RightGutter.MouseActions = <> 1068 RightGutter.MouseActions = <>
@@ -1517,11 +1516,11 @@ object frmTracker: TfrmTracker
1517 OnChange = RoutineSyneditChange 1516 OnChange = RoutineSyneditChange
1518 inline SynLeftGutterPartList1: TSynGutterPartList 1517 inline SynLeftGutterPartList1: TSynGutterPartList
1519 object SynGutterMarks1: TSynGutterMarks 1518 object SynGutterMarks1: TSynGutterMarks
1520 Width = 42 1519 Width = 24
1521 MouseActions = <> 1520 MouseActions = <>
1522 end 1521 end
1523 object SynGutterLineNumber1: TSynGutterLineNumber 1522 object SynGutterLineNumber1: TSynGutterLineNumber
1524 Width = 29 1523 Width = 17
1525 MouseActions = <> 1524 MouseActions = <>
1526 MarkupInfo.Background = clBtnFace 1525 MarkupInfo.Background = clBtnFace
1527 MarkupInfo.Foreground = clNone 1526 MarkupInfo.Foreground = clNone
@@ -1531,19 +1530,18 @@ object frmTracker: TfrmTracker
1531 LeadingZeros = False 1530 LeadingZeros = False
1532 end 1531 end
1533 object SynGutterChanges1: TSynGutterChanges 1532 object SynGutterChanges1: TSynGutterChanges
1534 Width = 7 1533 Width = 4
1535 MouseActions = <> 1534 MouseActions = <>
1536 ModifiedColor = 59900 1535 ModifiedColor = 59900
1537 SavedColor = clGreen 1536 SavedColor = clGreen
1538 end 1537 end
1539 object SynGutterSeparator1: TSynGutterSeparator 1538 object SynGutterSeparator1: TSynGutterSeparator
1540 Width = 4 1539 Width = 2
1541 MouseActions = <> 1540 MouseActions = <>
1542 MarkupInfo.Background = clWhite 1541 MarkupInfo.Background = clWhite
1543 MarkupInfo.Foreground = clGray 1542 MarkupInfo.Foreground = clGray
1544 end 1543 end
1545 object SynGutterCodeFolding1: TSynGutterCodeFolding 1544 object SynGutterCodeFolding1: TSynGutterCodeFolding
1546 Width = 18
1547 MouseActions = <> 1545 MouseActions = <>
1548 MarkupInfo.Background = clNone 1546 MarkupInfo.Background = clNone
1549 MarkupInfo.Foreground = clGray 1547 MarkupInfo.Foreground = clGray
@@ -1553,19 +1551,19 @@ object frmTracker: TfrmTracker
1553 end 1551 end
1554 end 1552 end
1555 object Label18: TLabel 1553 object Label18: TLabel
1556 Left = 14 1554 Left = 8
1557 Height = 15 1555 Height = 15
1558 Top = 28 1556 Top = 16
1559 Width = 41 1557 Width = 41
1560 Caption = 'Routine' 1558 Caption = 'Routine'
1561 ParentColor = False 1559 ParentColor = False
1562 ParentFont = False 1560 ParentFont = False
1563 end 1561 end
1564 object RoutineNumberSpinner: TSpinEdit 1562 object RoutineNumberSpinner: TSpinEdit
1565 Left = 112 1563 Left = 64
1566 Height = 23 1564 Height = 23
1567 Top = 14 1565 Top = 8
1568 Width = 308 1566 Width = 176
1569 MaxValue = 15 1567 MaxValue = 15
1570 OnChange = RoutineNumberSpinnerChange 1568 OnChange = RoutineNumberSpinnerChange
1571 ParentFont = False 1569 ParentFont = False
@@ -1573,9 +1571,9 @@ object frmTracker: TfrmTracker
1573 Value = 1 1571 Value = 1
1574 end 1572 end
1575 object Label19: TLabel 1573 object Label19: TLabel
1576 Left = 14 1574 Left = 8
1577 Height = 75 1575 Height = 75
1578 Top = 70 1576 Top = 40
1579 Width = 506 1577 Width = 506
1580 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!' 1578 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!'
1581 ParentColor = False 1579 ParentColor = False
@@ -1586,21 +1584,21 @@ object frmTracker: TfrmTracker
1586 end 1584 end
1587 object Panel2: TPanel 1585 object Panel2: TPanel
1588 Left = 0 1586 Left = 0
1589 Height = 112 1587 Height = 64
1590 Top = 41 1588 Top = 25
1591 Width = 2156 1589 Width = 1232
1592 Align = alTop 1590 Align = alTop
1593 BevelOuter = bvNone 1591 BevelOuter = bvNone
1594 ClientHeight = 112 1592 ClientHeight = 64
1595 ClientWidth = 2156 1593 ClientWidth = 1232
1596 ParentFont = False 1594 ParentFont = False
1597 TabOrder = 3 1595 TabOrder = 3
1598 object LEDMeter1: TLEDMeter 1596 object LEDMeter1: TLEDMeter
1599 AnchorSideRight.Control = Duty1Visualizer 1597 AnchorSideRight.Control = Duty1Visualizer
1600 Left = 0 1598 Left = 0
1601 Height = 56 1599 Height = 32
1602 Top = 56 1600 Top = 32
1603 Width = 776 1601 Width = 444
1604 Anchors = [akTop, akLeft, akRight] 1602 Anchors = [akTop, akLeft, akRight]
1605 BevelStyle = bvLowered 1603 BevelStyle = bvLowered
1606 Colors.Border = 2168839 1604 Colors.Border = 2168839
@@ -1621,9 +1619,9 @@ object frmTracker: TfrmTracker
1621 object LEDMeter2: TLEDMeter 1619 object LEDMeter2: TLEDMeter
1622 AnchorSideRight.Control = Duty1Visualizer 1620 AnchorSideRight.Control = Duty1Visualizer
1623 Left = 0 1621 Left = 0
1624 Height = 56 1622 Height = 32
1625 Top = 0 1623 Top = 0
1626 Width = 776 1624 Width = 444
1627 Anchors = [akTop, akLeft, akRight] 1625 Anchors = [akTop, akLeft, akRight]
1628 BevelStyle = bvLowered 1626 BevelStyle = bvLowered
1629 Colors.Border = 2168839 1627 Colors.Border = 2168839
@@ -1642,40 +1640,40 @@ object frmTracker: TfrmTracker
1642 Section3Value = 48 1640 Section3Value = 48
1643 end 1641 end
1644 object Duty1Visualizer: TPaintBox 1642 object Duty1Visualizer: TPaintBox
1645 Left = 776 1643 Left = 444
1646 Height = 112 1644 Height = 64
1647 Top = 0 1645 Top = 0
1648 Width = 345 1646 Width = 197
1649 Align = alRight 1647 Align = alRight
1650 ParentFont = False 1648 ParentFont = False
1651 OnClick = Duty1VisualizerClick 1649 OnClick = Duty1VisualizerClick
1652 OnPaint = Duty1VisualizerPaint 1650 OnPaint = Duty1VisualizerPaint
1653 end 1651 end
1654 object Duty2Visualizer: TPaintBox 1652 object Duty2Visualizer: TPaintBox
1655 Left = 1121 1653 Left = 641
1656 Height = 112 1654 Height = 64
1657 Top = 0 1655 Top = 0
1658 Width = 345 1656 Width = 197
1659 Align = alRight 1657 Align = alRight
1660 ParentFont = False 1658 ParentFont = False
1661 OnClick = Duty1VisualizerClick 1659 OnClick = Duty1VisualizerClick
1662 OnPaint = Duty2VisualizerPaint 1660 OnPaint = Duty2VisualizerPaint
1663 end 1661 end
1664 object WaveVisualizer: TPaintBox 1662 object WaveVisualizer: TPaintBox
1665 Left = 1466 1663 Left = 838
1666 Height = 112 1664 Height = 64
1667 Top = 0 1665 Top = 0
1668 Width = 345 1666 Width = 197
1669 Align = alRight 1667 Align = alRight
1670 ParentFont = False 1668 ParentFont = False
1671 OnClick = Duty1VisualizerClick 1669 OnClick = Duty1VisualizerClick
1672 OnPaint = WaveVisualizerPaint 1670 OnPaint = WaveVisualizerPaint
1673 end 1671 end
1674 object NoiseVisualizer: TPaintBox 1672 object NoiseVisualizer: TPaintBox
1675 Left = 1811 1673 Left = 1035
1676 Height = 112 1674 Height = 64
1677 Top = 0 1675 Top = 0
1678 Width = 345 1676 Width = 197
1679 Align = alRight 1677 Align = alRight
1680 ParentFont = False 1678 ParentFont = False
1681 OnClick = Duty1VisualizerClick 1679 OnClick = Duty1VisualizerClick
@@ -1684,19 +1682,19 @@ object frmTracker: TfrmTracker
1684 end 1682 end
1685 object StatusBar1: TStatusBar 1683 object StatusBar1: TStatusBar
1686 Left = 0 1684 Left = 0
1687 Height = 43 1685 Height = 23
1688 Top = 1065 1686 Top = 610
1689 Width = 2156 1687 Width = 1232
1690 AutoHint = True 1688 AutoHint = True
1691 Panels = < 1689 Panels = <
1692 item 1690 item
1693 Width = 817 1691 Width = 467
1694 end 1692 end
1695 item 1693 item
1696 Width = 350 1694 Width = 200
1697 end 1695 end
1698 item 1696 item
1699 Width = 350 1697 Width = 200
1700 end> 1698 end>
1701 ParentFont = False 1699 ParentFont = False
1702 ParentShowHint = False 1700 ParentShowHint = False
@@ -1705,9 +1703,9 @@ object frmTracker: TfrmTracker
1705 end 1703 end
1706 object ToolBar1: TToolBar 1704 object ToolBar1: TToolBar
1707 Left = 0 1705 Left = 0
1708 Height = 41 1706 Height = 25
1709 Top = 0 1707 Top = 0
1710 Width = 2156 1708 Width = 1232
1711 AutoSize = True 1709 AutoSize = True
1712 Caption = 'ToolBar1' 1710 Caption = 'ToolBar1'
1713 EdgeBorders = [ebBottom] 1711 EdgeBorders = [ebBottom]
@@ -1724,7 +1722,7 @@ object frmTracker: TfrmTracker
1724 ParentShowHint = False 1722 ParentShowHint = False
1725 end 1723 end
1726 object PanicToolButton: TToolButton 1724 object PanicToolButton: TToolButton
1727 Left = 851 1725 Left = 551
1728 Hint = 'Stops all sound output' 1726 Hint = 'Stops all sound output'
1729 Top = 0 1727 Top = 0
1730 AutoSize = True 1728 AutoSize = True
@@ -1735,17 +1733,17 @@ object frmTracker: TfrmTracker
1735 ShowHint = True 1733 ShowHint = True
1736 end 1734 end
1737 object ToolButton2: TToolButton 1735 object ToolButton2: TToolButton
1738 Left = 221 1736 Left = 145
1739 Top = 0 1737 Top = 0
1740 Action = PlayCursorAction 1738 Action = PlayCursorAction
1741 end 1739 end
1742 object ToolButton4: TToolButton 1740 object ToolButton4: TToolButton
1743 Left = 331 1741 Left = 219
1744 Top = 0 1742 Top = 0
1745 Action = StopAction 1743 Action = StopAction
1746 end 1744 end
1747 object ExportGBButton: TToolButton 1745 object ExportGBButton: TToolButton
1748 Left = 442 1746 Left = 287
1749 Hint = 'Export the song as a standalone ROM' 1747 Hint = 'Export the song as a standalone ROM'
1750 Top = 0 1748 Top = 0
1751 AutoSize = True 1749 AutoSize = True
@@ -1754,49 +1752,49 @@ object frmTracker: TfrmTracker
1754 OnClick = ExportGBButtonClick 1752 OnClick = ExportGBButtonClick
1755 end 1753 end
1756 object ToolButton8: TToolButton 1754 object ToolButton8: TToolButton
1757 Left = 120 1755 Left = 79
1758 Height = 39 1756 Height = 22
1759 Top = 0 1757 Top = 0
1760 Caption = 'ToolButton8' 1758 Caption = 'ToolButton8'
1761 Style = tbsDivider 1759 Style = tbsDivider
1762 end 1760 end
1763 object ToolButton6: TToolButton 1761 object ToolButton6: TToolButton
1764 Left = 433 1762 Left = 284
1765 Height = 39 1763 Height = 22
1766 Top = 0 1764 Top = 0
1767 Caption = 'ToolButton6' 1765 Caption = 'ToolButton6'
1768 Style = tbsDivider 1766 Style = tbsDivider
1769 end 1767 end
1770 object ToolButton7: TToolButton 1768 object ToolButton7: TToolButton
1771 Left = 1775 1769 Left = 1088
1772 Height = 39 1770 Height = 22
1773 Top = 0 1771 Top = 0
1774 Caption = 'ToolButton7' 1772 Caption = 'ToolButton7'
1775 Style = tbsSeparator 1773 Style = tbsSeparator
1776 end 1774 end
1777 object OctaveSpinEdit: TSpinEdit 1775 object OctaveSpinEdit: TSpinEdit
1778 Left = 1016 1776 Left = 654
1779 Height = 38 1777 Height = 23
1780 Hint = 'The octave offset for entering new notes' 1778 Hint = 'The octave offset for entering new notes'
1781 Top = 0 1779 Top = 0
1782 Width = 114 1780 Width = 65
1783 MaxValue = 5 1781 MaxValue = 5
1784 OnChange = OctaveSpinEditChange 1782 OnChange = OctaveSpinEditChange
1785 ParentFont = False 1783 ParentFont = False
1786 TabOrder = 0 1784 TabOrder = 0
1787 end 1785 end
1788 object ToolButton9: TToolButton 1786 object ToolButton9: TToolButton
1789 Left = 927 1787 Left = 606
1790 Height = 39 1788 Height = 22
1791 Top = 0 1789 Top = 0
1792 Caption = 'ToolButton9' 1790 Caption = 'ToolButton9'
1793 Style = tbsSeparator 1791 Style = tbsSeparator
1794 end 1792 end
1795 object Label22: TLabel 1793 object Label22: TLabel
1796 Left = 941 1794 Left = 611
1797 Height = 39 1795 Height = 22
1798 Top = 0 1796 Top = 0
1799 Width = 75 1797 Width = 43
1800 AutoSize = False 1798 AutoSize = False
1801 Caption = 'Octave ' 1799 Caption = 'Octave '
1802 Layout = tlCenter 1800 Layout = tlCenter
@@ -1804,10 +1802,10 @@ object frmTracker: TfrmTracker
1804 ParentFont = False 1802 ParentFont = False
1805 end 1803 end
1806 object Label23: TLabel 1804 object Label23: TLabel
1807 Left = 1130 1805 Left = 719
1808 Height = 39 1806 Height = 22
1809 Top = 0 1807 Top = 0
1810 Width = 122 1808 Width = 70
1811 AutoSize = False 1809 AutoSize = False
1812 Caption = ' Instrument ' 1810 Caption = ' Instrument '
1813 Layout = tlCenter 1811 Layout = tlCenter
@@ -1815,13 +1813,13 @@ object frmTracker: TfrmTracker
1815 ParentFont = False 1813 ParentFont = False
1816 end 1814 end
1817 object InstrumentComboBox: TComboBox 1815 object InstrumentComboBox: TComboBox
1818 Left = 1252 1816 Left = 789
1819 Height = 38 1817 Height = 23
1820 Hint = 'The selected instrument for new notes' 1818 Hint = 'The selected instrument for new notes'
1821 Top = 0 1819 Top = 0
1822 Width = 374 1820 Width = 214
1823 DropDownCount = 999 1821 DropDownCount = 999
1824 ItemHeight = 30 1822 ItemHeight = 15
1825 ItemIndex = 0 1823 ItemIndex = 0
1826 Items.Strings = ( 1824 Items.Strings = (
1827 '(no instrument)' 1825 '(no instrument)'
@@ -1833,10 +1831,10 @@ object frmTracker: TfrmTracker
1833 Text = '(no instrument)' 1831 Text = '(no instrument)'
1834 end 1832 end
1835 object Label24: TLabel 1833 object Label24: TLabel
1836 Left = 1626 1834 Left = 1003
1837 Height = 39 1835 Height = 22
1838 Top = 0 1836 Top = 0
1839 Width = 61 1837 Width = 35
1840 AutoSize = False 1838 AutoSize = False
1841 Caption = ' Step ' 1839 Caption = ' Step '
1842 Layout = tlCenter 1840 Layout = tlCenter
@@ -1844,23 +1842,23 @@ object frmTracker: TfrmTracker
1844 ParentFont = False 1842 ParentFont = False
1845 end 1843 end
1846 object StepSpinEdit: TSpinEdit 1844 object StepSpinEdit: TSpinEdit
1847 Left = 1687 1845 Left = 1038
1848 Height = 38 1846 Height = 23
1849 Hint = 'How many rows to step down after entering a new note' 1847 Hint = 'How many rows to step down after entering a new note'
1850 Top = 0 1848 Top = 0
1851 Width = 88 1849 Width = 50
1852 MaxValue = 63 1850 MaxValue = 63
1853 OnChange = StepSpinEditChange 1851 OnChange = StepSpinEditChange
1854 ParentFont = False 1852 ParentFont = False
1855 TabOrder = 2 1853 TabOrder = 2
1856 end 1854 end
1857 object ToolButton3: TToolButton 1855 object ToolButton3: TToolButton
1858 Left = 129 1856 Left = 82
1859 Top = 0 1857 Top = 0
1860 Action = PlayStartAction 1858 Action = PlayStartAction
1861 end 1859 end
1862 object ExportGBSButton: TToolButton 1860 object ExportGBSButton: TToolButton
1863 Left = 564 1861 Left = 368
1864 Hint = 'Export the song as a GBS soundtrack' 1862 Hint = 'Export the song as a GBS soundtrack'
1865 Top = 0 1863 Top = 0
1866 Caption = 'Export .GBS' 1864 Caption = 'Export .GBS'
@@ -1868,14 +1866,14 @@ object frmTracker: TfrmTracker
1868 OnClick = ExportGBSButtonClick 1866 OnClick = ExportGBSButtonClick
1869 end 1867 end
1870 object ToolButton5: TToolButton 1868 object ToolButton5: TToolButton
1871 Left = 842 1869 Left = 548
1872 Height = 39 1870 Height = 22
1873 Top = 0 1871 Top = 0
1874 Caption = 'ToolButton5' 1872 Caption = 'ToolButton5'
1875 Style = tbsDivider 1873 Style = tbsDivider
1876 end 1874 end
1877 object ToolButton10: TToolButton 1875 object ToolButton10: TToolButton
1878 Left = 697 1876 Left = 455
1879 Hint = 'Export the song as WAV or MP3' 1877 Hint = 'Export the song as WAV or MP3'
1880 Top = 0 1878 Top = 0
1881 Caption = 'Render Song' 1879 Caption = 'Render Song'
@@ -1885,8 +1883,8 @@ object frmTracker: TfrmTracker
1885 end 1883 end
1886 object MainMenu1: TMainMenu 1884 object MainMenu1: TMainMenu
1887 Images = ImageList1 1885 Images = ImageList1
1888 Left = 70 1886 Left = 40
1889 Top = 56 1887 Top = 32
1890 object MenuItem1: TMenuItem 1888 object MenuItem1: TMenuItem
1891 Caption = 'File' 1889 Caption = 'File'
1892 object MenuItem33: TMenuItem 1890 object MenuItem33: TMenuItem
@@ -2012,9 +2010,9 @@ object frmTracker: TfrmTracker
2012 end 2010 end
2013 object MenuItem16: TMenuItem 2011 object MenuItem16: TMenuItem
2014 Caption = 'Tools' 2012 Caption = 'Tools'
2013 Visible = False
2015 object MenuItem24: TMenuItem 2014 object MenuItem24: TMenuItem
2016 Caption = 'Find unused elements of song' 2015 Caption = 'Find unused elements of song'
2017 OnClick = MenuItem24Click
2018 end 2016 end
2019 object MenuItem23: TMenuItem 2017 object MenuItem23: TMenuItem
2020 Caption = 'Find problems in song' 2018 Caption = 'Find problems in song'
@@ -2032,8 +2030,8 @@ object frmTracker: TfrmTracker
2032 end 2030 end
2033 object MenuBarActionList: TActionList 2031 object MenuBarActionList: TActionList
2034 Images = ImageList1 2032 Images = ImageList1
2035 Left = 182 2033 Left = 104
2036 Top = 126 2034 Top = 72
2037 object FileOpen1: TFileOpen 2035 object FileOpen1: TFileOpen
2038 Category = 'File' 2036 Category = 'File'
2039 Caption = '&Open ...' 2037 Caption = '&Open ...'
@@ -2136,8 +2134,8 @@ object frmTracker: TfrmTracker
2136 end 2134 end
2137 end 2135 end
2138 object ImageList1: TImageList 2136 object ImageList1: TImageList
2139 Left = 266 2137 Left = 152
2140 Top = 56 2138 Top = 32
2141 Bitmap = { 2139 Bitmap = {
2142 4C694E0000001000000010000000000000000000000000000000000000000000 2140 4C694E0000001000000010000000000000000000000000000000000000000000
2143 0000000000000000000000000000000000000000000000000000000000000000 2141 0000000000000000000000000000000000000000000000000000000000000000
@@ -4640,17 +4638,17 @@ object frmTracker: TfrmTracker
4640 end 4638 end
4641 object OpenDialog1: TOpenDialog 4639 object OpenDialog1: TOpenDialog
4642 Filter = 'hUGETracker Instruments|*.ugi' 4640 Filter = 'hUGETracker Instruments|*.ugi'
4643 Left = 140 4641 Left = 80
4644 Top = 98 4642 Top = 56
4645 end 4643 end
4646 object InstrumentSaveDialog: TSaveDialog 4644 object InstrumentSaveDialog: TSaveDialog
4647 Filter = 'hUGETracker Instruments|*.ugi' 4645 Filter = 'hUGETracker Instruments|*.ugi'
4648 Left = 140 4646 Left = 80
4649 Top = 98 4647 Top = 56
4650 end 4648 end
4651 object OrderEditPopup: TPopupMenu 4649 object OrderEditPopup: TPopupMenu
4652 Left = 224 4650 Left = 128
4653 Top = 70 4651 Top = 40
4654 object MenuItem17: TMenuItem 4652 object MenuItem17: TMenuItem
4655 Caption = 'Insert new row' 4653 Caption = 'Insert new row'
4656 Hint = 'Insert a new row filled with brand new patterns' 4654 Hint = 'Insert a new row filled with brand new patterns'
@@ -4681,8 +4679,8 @@ object frmTracker: TfrmTracker
4681 object ImageList2: TImageList 4679 object ImageList2: TImageList
4682 Height = 32 4680 Height = 32
4683 Width = 32 4681 Width = 32
4684 Left = 84 4682 Left = 48
4685 Top = 151 4683 Top = 86
4686 Bitmap = { 4684 Bitmap = {
4687 4C69020000002000000020000000000000000000000000000000000000000000 4685 4C69020000002000000020000000000000000000000000000000000000000000
4688 0000000000000000000000000000000000000000000000000000000000000000 4686 0000000000000000000000000000000000000000000000000000000000000000
@@ -4947,33 +4945,33 @@ object frmTracker: TfrmTracker
4947 Enabled = False 4945 Enabled = False
4948 Interval = 200 4946 Interval = 200
4949 OnTimer = OscilloscopeUpdateTimerTimer 4947 OnTimer = OscilloscopeUpdateTimerTimer
4950 Left = 154 4948 Left = 88
4951 Top = 84 4949 Top = 48
4952 end 4950 end
4953 object GBSSaveDialog: TSaveDialog 4951 object GBSSaveDialog: TSaveDialog
4954 Filter = 'Gameboy Soundtrack|*.gbs' 4952 Filter = 'Gameboy Soundtrack|*.gbs'
4955 Left = 504 4953 Left = 288
4956 Top = 42 4954 Top = 24
4957 end 4955 end
4958 object WaveSaveDialog: TSaveDialog 4956 object WaveSaveDialog: TSaveDialog
4959 Filter = 'hUGETracker Waves|*.ugw' 4957 Filter = 'hUGETracker Waves|*.ugw'
4960 Left = 644 4958 Left = 368
4961 Top = 42 4959 Top = 24
4962 end 4960 end
4963 object GBSaveDialog: TSaveDialog 4961 object GBSaveDialog: TSaveDialog
4964 Filter = 'Gameboy ROM|*.GB' 4962 Filter = 'Gameboy ROM|*.GB'
4965 Left = 574 4963 Left = 328
4966 Top = 42 4964 Top = 24
4967 end 4965 end
4968 object NoteHaltTimer: TTimer 4966 object NoteHaltTimer: TTimer
4969 Enabled = False 4967 Enabled = False
4970 OnTimer = NoteHaltTimerTimer 4968 OnTimer = NoteHaltTimerTimer
4971 Left = 140 4969 Left = 80
4972 Top = 151 4970 Top = 86
4973 end 4971 end
4974 object TrackerGridPopup: TPopupMenu 4972 object TrackerGridPopup: TPopupMenu
4975 Left = 168 4973 Left = 96
4976 Top = 42 4974 Top = 24
4977 object TrackerPopupEditEffect: TMenuItem 4975 object TrackerPopupEditEffect: TMenuItem
4978 Caption = 'Edit effect ...' 4976 Caption = 'Edit effect ...'
4979 OnClick = TrackerPopupEditEffectClick 4977 OnClick = TrackerPopupEditEffectClick
@@ -5120,8 +5118,8 @@ object frmTracker: TfrmTracker
5120 object WavSaveDialog: TSaveDialog 5118 object WavSaveDialog: TSaveDialog
5121 DefaultExt = '.wav' 5119 DefaultExt = '.wav'
5122 Filter = 'Wave files|*.wav' 5120 Filter = 'Wave files|*.wav'
5123 Left = 714 5121 Left = 408
5124 Top = 42 5122 Top = 24
5125 end 5123 end
5126 object SynAnySyn1: TSynAnySyn 5124 object SynAnySyn1: TSynAnySyn
5127 Enabled = False 5125 Enabled = False
@@ -5245,18 +5243,18 @@ object frmTracker: TfrmTracker
5245 Entity = False 5243 Entity = False
5246 DollarVariables = False 5244 DollarVariables = False
5247 ActiveDot = False 5245 ActiveDot = False
5248 Left = 14 5246 Left = 8
5249 Top = 151 5247 Top = 86
5250 end 5248 end
5251 object MODOpenDialog: TOpenDialog 5249 object MODOpenDialog: TOpenDialog
5252 DefaultExt = '.mod' 5250 DefaultExt = '.mod'
5253 Filter = 'GBT Player MOD files|*.mod' 5251 Filter = 'GBT Player MOD files|*.mod'
5254 Left = 784 5252 Left = 448
5255 Top = 56 5253 Top = 32
5256 end 5254 end
5257 object WaveEditPopup: TPopupMenu 5255 object WaveEditPopup: TPopupMenu
5258 Left = 14 5256 Left = 8
5259 Top = 56 5257 Top = 32
5260 object MenuItem37: TMenuItem 5258 object MenuItem37: TMenuItem
5261 Caption = 'Copy' 5259 Caption = 'Copy'
5262 OnClick = MenuItem37Click 5260 OnClick = MenuItem37Click
@@ -5268,8 +5266,8 @@ object frmTracker: TfrmTracker
5268 end 5266 end
5269 object ShortcutsActionList: TActionList 5267 object ShortcutsActionList: TActionList
5270 Images = ImageList1 5268 Images = ImageList1
5271 Left = 364 5269 Left = 208
5272 Top = 56 5270 Top = 32
5273 object PlayStartAction: TAction 5271 object PlayStartAction: TAction
5274 Caption = '▶️ Start' 5272 Caption = '▶️ Start'
5275 DisableIfNoHandler = False 5273 DisableIfNoHandler = False
@@ -5384,17 +5382,17 @@ object frmTracker: TfrmTracker
5384 end 5382 end
5385 object GBDKCSaveDialog: TSaveDialog 5383 object GBDKCSaveDialog: TSaveDialog
5386 Filter = 'GBDK C File|*.c' 5384 Filter = 'GBDK C File|*.c'
5387 Left = 434 5385 Left = 248
5388 Top = 42 5386 Top = 24
5389 end 5387 end
5390 object RGBDSObjSaveDialog: TSaveDialog 5388 object RGBDSObjSaveDialog: TSaveDialog
5391 Filter = 'RGBDS Object|*.obj' 5389 Filter = 'RGBDS Object|*.obj'
5392 Left = 434 5390 Left = 248
5393 Top = 112 5391 Top = 64
5394 end 5392 end
5395 object GBDKObjSaveDialog: TSaveDialog 5393 object GBDKObjSaveDialog: TSaveDialog
5396 Filter = 'GBDK Object|*.o' 5394 Filter = 'GBDK Object|*.o'
5397 Left = 504 5395 Left = 288
5398 Top = 112 5396 Top = 64
5399 end 5397 end
5400 end 5398 end
Modifiedtracker.pas +2−53
@@ -334,7 +334,6 @@ type
334 procedure MenuItem19Click(Sender: TObject); 334 procedure MenuItem19Click(Sender: TObject);
335 procedure MenuItem21Click(Sender: TObject); 335 procedure MenuItem21Click(Sender: TObject);
336 procedure MenuItem22Click(Sender: TObject); 336 procedure MenuItem22Click(Sender: TObject);
337 procedure MenuItem24Click(Sender: TObject);
338 procedure MenuItem26Click(Sender: TObject); 337 procedure MenuItem26Click(Sender: TObject);
339 procedure MenuItem31Click(Sender: TObject); 338 procedure MenuItem31Click(Sender: TObject);
340 procedure MenuItem33Click(Sender: TObject); 339 procedure MenuItem33Click(Sender: TObject);
@@ -2055,56 +2054,6 @@ begin
2055 ReloadPatterns; 2054 ReloadPatterns;
2056 end; 2055 end;
2057 2056
2058 procedure TfrmTracker.MenuItem24Click(Sender: TObject);
2059 var
2060 Report: TSongUsageReport;
2061 SL: TStringList;
2062 Iter: Report.UnusedPatterns.TIterator;
2063 begin
2064 Report := GetUsageReport(Song);
2065 SL := TStringList.Create;
2066 SL.Delimiter := ',';
2067
2068 Iter := Report.UnusedPatterns.Iterator;
2069 if Iter <> nil then
2070 repeat
2071 SL.Add(IntToStr(Iter.GetData))
2072 until not Iter.Next;
2073
2074 Iter.Free;
2075
2076 if SL.Text = '' then
2077 MessageDlg('Usage report',
2078 Format('%d unused instruments'+LineEnding+
2079 '%d unused routines'+LineEnding+
2080 '%d unused patterns'+LineEnding,
2081 [INSTRUMENTS_COUNT - Report.UsedInstruments.Size,
2082 ROUTINES_COUNT - Report.UsedRoutines.size,
2083 Song.Patterns.Count - Report.UsedPatterns.Size]),
2084 mtInformation, [mbOK], 0)
2085 else
2086 if MessageDlg('Usage report',
2087 Format('%d unused instruments'+LineEnding+
2088 '%d unused routines'+LineEnding+
2089 '%d unused patterns'+LineEnding+LineEnding+
2090 'Patterns ' + SL.DelimitedText+' are unused.'+LineEnding+
2091 'Do you want to remove the unused patterns?',
2092 [INSTRUMENTS_COUNT - Report.UsedInstruments.Size,
2093 ROUTINES_COUNT - Report.UsedRoutines.size,
2094 Song.Patterns.Count - Report.UsedPatterns.Size]),
2095 mtInformation, [mbYes, mbNo], 0) = mrYes
2096 then begin
2097 Iter := Report.UnusedPatterns.Iterator;
2098 if Iter <> nil then
2099 repeat
2100 Song.Patterns.DeletePattern(Iter.GetData);
2101 until not Iter.Next;
2102 end;
2103
2104 SL.Free;
2105 FreeUsageReport(Report);
2106 end;
2107
2108 procedure TfrmTracker.MenuItem26Click(Sender: TObject); 2057 procedure TfrmTracker.MenuItem26Click(Sender: TObject);
2109 begin 2058 begin
2110 frmOptions.ShowModal; 2059 frmOptions.ShowModal;
@@ -2385,8 +2334,8 @@ end;
2385 procedure TfrmTracker.TrackerPopupTransposeOctaveDownClick(Sender: TObject); 2334 procedure TfrmTracker.TrackerPopupTransposeOctaveDownClick(Sender: TObject);
2386 begin 2335 begin
2387 TrackerGrid.TransposeSelection(-12) 2336 TrackerGrid.TransposeSelection(-12)
2388 if TrackerSettings.PreviewWhenBumping then 2337 {if TrackerSettings.PreviewWhenBumping then
2389 ; // TODO: preview the note 2338 ; // TODO: preview the note}
2390 end; 2339 end;
2391 2340
2392 procedure TfrmTracker.TrackerPopupTransposeOctaveUpClick(Sender: TObject); 2341 procedure TfrmTracker.TrackerPopupTransposeOctaveUpClick(Sender: TObject);
Modifiedutils.pas +0−75
@@ -15,20 +15,6 @@ type
15 class function hash(I: Integer; N: Integer): Integer; 15 class function hash(I: Integer; N: Integer): Integer;
16 end; 16 end;
17 17
18 TUsedMap = specialize THashSet<Integer, TIntegerHash>;
19
20 { TSongUsageReport }
21
22 TSongUsageReport = record
23 UsedInstruments: TUsedMap;
24 UsedRoutines: TUsedMap;
25 UsedPatterns: TUsedMap;
26
27 {UnusedInstruments: TUsedMap;
28 UnusedRoutines: TUsedMap;}
29 UnusedPatterns: TUsedMap;
30 end;
31
32 function Lerp(v0, v1, t: Double): Double; 18 function Lerp(v0, v1, t: Double): Double;
33 function Snap(Value, Every: Integer): Integer; 19 function Snap(Value, Every: Integer): Integer;
34 function ReMap(Value, Istart, Istop, Ostart, Ostop: Double): Double; 20 function ReMap(Value, Istart, Istop, Ostart, Ostop: Double): Double;
@@ -43,9 +29,6 @@ function ModInst(Inst: Integer): Integer;
43 function UnmodInst(Bank: TInstrumentType; Inst: Integer): Integer; 29 function UnmodInst(Bank: TInstrumentType; Inst: Integer): Integer;
44 function InstBankName(Bank: TInstrumentType): String; 30 function InstBankName(Bank: TInstrumentType): String;
45 31
46 function GetUsageReport(Song: TSong): TSongUsageReport;
47 procedure FreeUsageReport(Report: TSongUsageReport);
48
49 implementation 32 implementation
50 33
51 { TIntegerHash } 34 { TIntegerHash }
@@ -153,63 +136,5 @@ begin
153 end; 136 end;
154 end; 137 end;
155 138
156 function GetUsageReport(Song: TSong): TSongUsageReport;
157 var
158 I, J, X, Y: Integer;
159 Pat: PPattern;
160 begin
161 Result.UsedPatterns := TUsedMap.Create;
162 Result.UsedInstruments := TUsedMap.Create;
163 Result.UsedRoutines := TUsedMap.Create;
164 Result.UnusedPatterns := TUsedMap.Create;
165 {Result.UnusedInstruments := TUsedMap.Create;
166 Result.UnusedRoutines := TUsedMap.Create;}
167
168 for X := Low(Song.OrderMatrix) to High(Song.OrderMatrix) do
169 for Y := Low(Song.OrderMatrix[X]) to High(Song.OrderMatrix[X]) do
170 Result.UsedPatterns.insert(Song.OrderMatrix[X, Y]);
171
172 for I := 0 to Song.Patterns.Count-1 do begin
173 if not Result.UsedPatterns.contains(Song.Patterns.Keys[I])
174 then Continue;
175
176 Pat := Song.Patterns[Song.Patterns.Keys[I]];
177
178 for J := Low(Pat^) to High(Pat^) do
179 with Pat^[J] do begin
180 if Instrument <> 0 then Result.UsedInstruments.insert(Instrument);
181 if EffectCode = $6 then // Call routine
182 Result.UsedRoutines.insert(EffectParams.Value);
183 end;
184 end;
185
186 for X := 0 to Song.Patterns.Count-1 do
187 if not Result.UsedPatterns.contains(Song.Patterns.Keys[X]) then
188 Result.UnusedPatterns.insert(Song.Patterns.Keys[X]);
189
190 {for I := Low(TInstrumentIndex) to High(TInstrumentIndex) do
191 Result.UnusedInstruments.insert(I);
192
193 for I in Result.UsedInstruments.Iterator do
194 Result.UnusedInstruments.delete(I);
195
196 for I := Low(TRoutineIndex) do High(TRoutineIndex) do
197 Result.UnusedRoutines.insert(I);
198
199 for I in Result.UsedRoutines do
200 Result.UnusedRoutines.delete(I);}
201 end;
202
203 procedure FreeUsageReport(Report: TSongUsageReport);
204 begin
205 Report.UsedPatterns.Free;
206 Report.UsedInstruments.Free;
207 Report.UsedRoutines.Free;
208
209 Report.UnusedPatterns.Free;
210 //Report.UnusedInstruments.Free;
211 //Report.UnusedRoutines.Free;
212 end;
213
214 end. 139 end.
215 140