Commit ce24f3a

Nick Faro committed on
Reject importing instruments that are of the wrong type
commit ce24f3ab58720344d277e0c5c78bd5584139b25e parent 657229f
3 changed files +555−547
Modifiedsrc/hUGEDriver +1−1
@@ -1 +1 @@
1 Subproject commit 13a26513498637baee9997bd3cad9476224db723 1 Subproject commit f879bf3f755a68aec6729c481a80c648e1753c40
Modifiedsrc/tracker.lfm +543−545
@@ -1,13 +1,12 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 571 2 Left = 1826
3 Height = 1049 3 Height = 819
4 Top = 149 4 Top = 188
5 Width = 1667 5 Width = 1301
6 AllowDropFiles = True 6 AllowDropFiles = True
7 Caption = 'hUGETracker' 7 Caption = 'hUGETracker'
8 ClientHeight = 1023 8 ClientHeight = 798
9 ClientWidth = 1667 9 ClientWidth = 1301
10 DesignTimePPI = 123
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.2.7.0' 20 LCLVersion = '2.2.7.0'
22 object TreeView1: TTreeView 21 object TreeView1: TTreeView
23 Left = 0 22 Left = 0
24 Height = 881 23 Height = 684
25 Top = 116 24 Top = 93
26 Width = 247 25 Width = 193
27 Align = alLeft 26 Align = alLeft
28 ParentFont = False 27 ParentFont = False
29 ReadOnly = True 28 ReadOnly = True
@@ -42,102 +41,102 @@ object frmTracker: TfrmTracker
42 } 41 }
43 end 42 end
44 object Splitter1: TSplitter 43 object Splitter1: TSplitter
45 Left = 247 44 Left = 193
46 Height = 881 45 Height = 684
47 Top = 116 46 Top = 93
48 Width = 6 47 Width = 5
49 end 48 end
50 object Panel1: TPanel 49 object Panel1: TPanel
51 Left = 253 50 Left = 198
52 Height = 881 51 Height = 684
53 Top = 116 52 Top = 93
54 Width = 1414 53 Width = 1103
55 Align = alClient 54 Align = alClient
56 BevelOuter = bvNone 55 BevelOuter = bvNone
57 ClientHeight = 881 56 ClientHeight = 684
58 ClientWidth = 1414 57 ClientWidth = 1103
59 ParentFont = False 58 ParentFont = False
60 TabOrder = 2 59 TabOrder = 2
61 object PageControl1: TPageControl 60 object PageControl1: TPageControl
62 Left = 0 61 Left = 0
63 Height = 881 62 Height = 684
64 Top = 0 63 Top = 0
65 Width = 1414 64 Width = 1103
66 ActivePage = PatternTabSheet 65 ActivePage = GeneralTabSheet
67 Align = alClient 66 Align = alClient
68 ParentFont = False 67 ParentFont = False
69 TabIndex = 1 68 TabIndex = 0
70 TabOrder = 0 69 TabOrder = 0
71 object GeneralTabSheet: TTabSheet 70 object GeneralTabSheet: TTabSheet
72 Caption = 'General' 71 Caption = 'General'
73 ClientHeight = 841 72 ClientHeight = 649
74 ClientWidth = 1408 73 ClientWidth = 1097
75 ParentFont = False 74 ParentFont = False
76 object SongInformationGroupbox: TGroupBox 75 object SongInformationGroupbox: TGroupBox
77 Left = 10 76 Left = 8
78 Height = 246 77 Height = 192
79 Top = 10 78 Top = 8
80 Width = 381 79 Width = 297
81 Caption = 'Song information' 80 Caption = 'Song information'
82 ClientHeight = 242 81 ClientHeight = 173
83 ClientWidth = 377 82 ClientWidth = 293
84 ParentFont = False 83 ParentFont = False
85 TabOrder = 0 84 TabOrder = 0
86 object Label15: TLabel 85 object Label15: TLabel
87 Left = 10 86 Left = 8
88 Height = 22 87 Height = 17
89 Top = 20 88 Top = 16
90 Width = 36 89 Width = 28
91 Caption = 'Song' 90 Caption = 'Song'
92 ParentColor = False 91 ParentColor = False
93 ParentFont = False 92 ParentFont = False
94 end 93 end
95 object Label16: TLabel 94 object Label16: TLabel
96 Left = 9 95 Left = 7
97 Height = 22 96 Height = 17
98 Top = 62 97 Top = 48
99 Width = 39 98 Width = 30
100 Caption = 'Artist' 99 Caption = 'Artist'
101 ParentColor = False 100 ParentColor = False
102 ParentFont = False 101 ParentFont = False
103 end 102 end
104 object SongEdit: TEdit 103 object SongEdit: TEdit
105 Left = 72 104 Left = 56
106 Height = 32 105 Height = 27
107 Hint = 'The name of your composition' 106 Hint = 'The name of your composition'
108 Top = 10 107 Top = 8
109 Width = 277 108 Width = 216
110 MaxLength = 255 109 MaxLength = 255
111 OnChange = SongEditChange 110 OnChange = SongEditChange
112 ParentFont = False 111 ParentFont = False
113 TabOrder = 0 112 TabOrder = 0
114 end 113 end
115 object ArtistEdit: TEdit 114 object ArtistEdit: TEdit
116 Left = 72 115 Left = 56
117 Height = 32 116 Height = 27
118 Hint = 'Your name or handle' 117 Hint = 'Your name or handle'
119 Top = 51 118 Top = 40
120 Width = 277 119 Width = 216
121 MaxLength = 255 120 MaxLength = 255
122 OnChange = ArtistEditChange 121 OnChange = ArtistEditChange
123 ParentFont = False 122 ParentFont = False
124 TabOrder = 1 123 TabOrder = 1
125 end 124 end
126 object Label21: TLabel 125 object Label21: TLabel
127 Left = 10 126 Left = 8
128 Height = 22 127 Height = 17
129 Top = 100 128 Top = 78
130 Width = 153 129 Width = 120
131 Caption = 'Tempo (ticks per row)' 130 Caption = 'Tempo (ticks per row)'
132 ParentColor = False 131 ParentColor = False
133 ParentFont = False 132 ParentFont = False
134 end 133 end
135 object TicksPerRowSpinEdit: TSpinEdit 134 object TicksPerRowSpinEdit: TSpinEdit
136 Left = 170 135 Left = 133
137 Height = 32 136 Height = 27
138 Hint = 'How many ticks should happen before the row changes. Higher means slower.' 137 Hint = 'How many ticks should happen before the row changes. Higher means slower.'
139 Top = 92 138 Top = 72
140 Width = 64 139 Width = 50
141 MaxValue = 20 140 MaxValue = 20
142 MinValue = 1 141 MinValue = 1
143 OnChange = TicksPerRowSpinEditChange 142 OnChange = TicksPerRowSpinEditChange
@@ -146,40 +145,40 @@ object frmTracker: TfrmTracker
146 Value = 7 145 Value = 7
147 end 146 end
148 object TimerEnabledCheckBox: TCheckBox 147 object TimerEnabledCheckBox: TCheckBox
149 Left = 9 148 Left = 7
150 Height = 24 149 Height = 21
151 Hint = 'Enable the GB hardware timer. This allows for more fine-grained tempo control.' 150 Hint = 'Enable the GB hardware timer. This allows for more fine-grained tempo control.'
152 Top = 184 151 Top = 144
153 Width = 215 152 Width = 171
154 Caption = 'Enable timer-based tempo' 153 Caption = 'Enable timer-based tempo'
155 OnChange = TimerEnabledCheckBoxChange 154 OnChange = TimerEnabledCheckBoxChange
156 TabOrder = 3 155 TabOrder = 3
157 end 156 end
158 object TimerTempoLabel: TLabel 157 object TimerTempoLabel: TLabel
159 Left = 10 158 Left = 8
160 Height = 22 159 Height = 17
161 Top = 144 160 Top = 112
162 Width = 154 161 Width = 120
163 Caption = 'Tempo (timer divider)' 162 Caption = 'Tempo (timer divider)'
164 Enabled = False 163 Enabled = False
165 ParentColor = False 164 ParentColor = False
166 end 165 end
167 object TimerDividerSpinEdit: TSpinEdit 166 object TimerDividerSpinEdit: TSpinEdit
168 Left = 170 167 Left = 133
169 Height = 32 168 Height = 27
170 Hint = 'The "modulo" value for the GB hardware timer. Higher means faster.' 169 Hint = 'The "modulo" value for the GB hardware timer. Higher means faster.'
171 Top = 138 170 Top = 108
172 Width = 64 171 Width = 50
173 Enabled = False 172 Enabled = False
174 MaxValue = 255 173 MaxValue = 255
175 OnChange = TimerDividerSpinEditChange 174 OnChange = TimerDividerSpinEditChange
176 TabOrder = 4 175 TabOrder = 4
177 end 176 end
178 object TempoBPMLabel: TLabel 177 object TempoBPMLabel: TLabel
179 Left = 246 178 Left = 192
180 Height = 22 179 Height = 17
181 Top = 123 180 Top = 96
182 Width = 120 181 Width = 94
183 Caption = 'TempoBPMLabel' 182 Caption = 'TempoBPMLabel'
184 ParentColor = False 183 ParentColor = False
185 end 184 end
@@ -187,59 +186,59 @@ object frmTracker: TfrmTracker
187 end 186 end
188 object PatternTabSheet: TTabSheet 187 object PatternTabSheet: TTabSheet
189 Caption = 'Patterns' 188 Caption = 'Patterns'
190 ClientHeight = 841 189 ClientHeight = 649
191 ClientWidth = 1408 190 ClientWidth = 1097
192 ParentFont = False 191 ParentFont = False
193 object Panel3: TPanel 192 object Panel3: TPanel
194 Left = 293 193 Left = 229
195 Height = 841 194 Height = 649
196 Top = 0 195 Top = 0
197 Width = 1115 196 Width = 868
198 Align = alClient 197 Align = alClient
199 ClientHeight = 841 198 ClientHeight = 649
200 ClientWidth = 1115 199 ClientWidth = 868
201 ParentFont = False 200 ParentFont = False
202 TabOrder = 0 201 TabOrder = 0
203 object HeaderControl1: THeaderControl 202 object HeaderControl1: THeaderControl
204 Left = 1 203 Left = 1
205 Height = 38 204 Height = 30
206 Hint = 'Left click to mute, right click to solo' 205 Hint = 'Left click to mute, right click to solo'
207 Top = 1 206 Top = 1
208 Width = 1113 207 Width = 866
209 DragReorder = False 208 DragReorder = False
210 Images = ImageList2 209 Images = ImageList2
211 Sections = < 210 Sections = <
212 item 211 item
213 Alignment = taLeftJustify 212 Alignment = taLeftJustify
214 Width = 41 213 Width = 32
215 Visible = True 214 Visible = True
216 end 215 end
217 item 216 item
218 Alignment = taCenter 217 Alignment = taCenter
219 ImageIndex = 1 218 ImageIndex = 1
220 Text = 'Duty 1' 219 Text = 'Duty 1'
221 Width = 170 220 Width = 133
222 Visible = True 221 Visible = True
223 end 222 end
224 item 223 item
225 Alignment = taCenter 224 Alignment = taCenter
226 ImageIndex = 1 225 ImageIndex = 1
227 Text = 'Duty 2' 226 Text = 'Duty 2'
228 Width = 170 227 Width = 133
229 Visible = True 228 Visible = True
230 end 229 end
231 item 230 item
232 Alignment = taCenter 231 Alignment = taCenter
233 ImageIndex = 1 232 ImageIndex = 1
234 Text = 'Wave' 233 Text = 'Wave'
235 Width = 170 234 Width = 133
236 Visible = True 235 Visible = True
237 end 236 end
238 item 237 item
239 Alignment = taCenter 238 Alignment = taCenter
240 ImageIndex = 1 239 ImageIndex = 1
241 Text = 'Noise' 240 Text = 'Noise'
242 Width = 170 241 Width = 133
243 Visible = True 242 Visible = True
244 end> 243 end>
245 OnSectionClick = HeaderControl1SectionClick 244 OnSectionClick = HeaderControl1SectionClick
@@ -250,34 +249,34 @@ object frmTracker: TfrmTracker
250 end 249 end
251 object ScrollBox1: TScrollBox 250 object ScrollBox1: TScrollBox
252 Left = 1 251 Left = 1
253 Height = 801 252 Height = 617
254 Top = 39 253 Top = 31
255 Width = 1113 254 Width = 866
256 HorzScrollBar.Increment = 4 255 HorzScrollBar.Increment = 3
257 HorzScrollBar.Page = 41 256 HorzScrollBar.Page = 32
258 HorzScrollBar.Smooth = True 257 HorzScrollBar.Smooth = True
259 HorzScrollBar.Tracking = True 258 HorzScrollBar.Tracking = True
260 VertScrollBar.Increment = 6 259 VertScrollBar.Increment = 5
261 VertScrollBar.Page = 64 260 VertScrollBar.Page = 50
262 VertScrollBar.Smooth = True 261 VertScrollBar.Smooth = True
263 VertScrollBar.Tracking = True 262 VertScrollBar.Tracking = True
264 Align = alClient 263 Align = alClient
265 BorderStyle = bsNone 264 BorderStyle = bsNone
266 ClientHeight = 801 265 ClientHeight = 617
267 ClientWidth = 1113 266 ClientWidth = 866
268 ParentFont = False 267 ParentFont = False
269 TabOrder = 1 268 TabOrder = 1
270 OnMouseWheelDown = ScrollBox1MouseWheelDown 269 OnMouseWheelDown = ScrollBox1MouseWheelDown
271 OnMouseWheelUp = ScrollBox1MouseWheelUp 270 OnMouseWheelUp = ScrollBox1MouseWheelUp
272 object RowNumberStringGrid: TStringGrid 271 object RowNumberStringGrid: TStringGrid
273 Left = 0 272 Left = 0
274 Height = 801 273 Height = 617
275 Top = 0 274 Top = 0
276 Width = 41 275 Width = 32
277 Align = alLeft 276 Align = alLeft
278 BorderStyle = bsNone 277 BorderStyle = bsNone
279 ColCount = 1 278 ColCount = 1
280 DefaultColWidth = 41 279 DefaultColWidth = 32
281 Enabled = False 280 Enabled = False
282 ParentFont = False 281 ParentFont = False
283 RowCount = 64 282 RowCount = 64
@@ -288,43 +287,43 @@ object frmTracker: TfrmTracker
288 end 287 end
289 object OrderEditStringGrid: TStringGrid 288 object OrderEditStringGrid: TStringGrid
290 Left = 0 289 Left = 0
291 Height = 841 290 Height = 649
292 Top = 0 291 Top = 0
293 Width = 287 292 Width = 224
294 Align = alLeft 293 Align = alLeft
295 AutoEdit = False 294 AutoEdit = False
296 AutoFillColumns = True 295 AutoFillColumns = True
297 Columns = < 296 Columns = <
298 item 297 item
299 Alignment = taCenter 298 Alignment = taCenter
300 MinSize = 42 299 MinSize = 33
301 MaxSize = 42 300 MaxSize = 33
302 Title.Caption = 'Dty1' 301 Title.Caption = 'Dty1'
303 Width = 47 302 Width = 35
304 end 303 end
305 item 304 item
306 Alignment = taCenter 305 Alignment = taCenter
307 MinSize = 42 306 MinSize = 33
308 MaxSize = 42 307 MaxSize = 33
309 Title.Caption = 'Dty2' 308 Title.Caption = 'Dty2'
310 Width = 47 309 Width = 35
311 end 310 end
312 item 311 item
313 Alignment = taCenter 312 Alignment = taCenter
314 MinSize = 42 313 MinSize = 33
315 MaxSize = 42 314 MaxSize = 33
316 Title.Caption = 'Wav' 315 Title.Caption = 'Wav'
317 Width = 47 316 Width = 35
318 end 317 end
319 item 318 item
320 Alignment = taCenter 319 Alignment = taCenter
321 MinSize = 42 320 MinSize = 33
322 MaxSize = 42 321 MaxSize = 33
323 Title.Caption = 'Nse' 322 Title.Caption = 'Nse'
324 Width = 47 323 Width = 38
325 end> 324 end>
326 DefaultColWidth = 22 325 DefaultColWidth = 17
327 DefaultRowHeight = 27 326 DefaultRowHeight = 21
328 ExtendedSelect = False 327 ExtendedSelect = False
329 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goRangeSelect, goRowMoving, goEditing, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight] 328 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goRangeSelect, goRowMoving, goEditing, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight]
330 ParentFont = False 329 ParentFont = False
@@ -344,30 +343,30 @@ object frmTracker: TfrmTracker
344 OnMouseDown = OrderEditStringGridMouseDown 343 OnMouseDown = OrderEditStringGridMouseDown
345 OnValidateEntry = OrderEditStringGridValidateEntry 344 OnValidateEntry = OrderEditStringGridValidateEntry
346 ColWidths = ( 345 ColWidths = (
347 82 346 64
348 47 347 35
349 47 348 35
350 47 349 35
351 47 350 38
352 ) 351 )
353 end 352 end
354 object Splitter2: TSplitter 353 object Splitter2: TSplitter
355 Left = 287 354 Left = 224
356 Height = 841 355 Height = 649
357 Top = 0 356 Top = 0
358 Width = 6 357 Width = 5
359 end 358 end
360 end 359 end
361 object InstrumentTabSheet: TTabSheet 360 object InstrumentTabSheet: TTabSheet
362 Caption = 'Instruments' 361 Caption = 'Instruments'
363 ClientHeight = 841 362 ClientHeight = 649
364 ClientWidth = 1408 363 ClientWidth = 1097
365 ParentFont = False 364 ParentFont = False
366 object FlowPanel1: TFlowPanel 365 object FlowPanel1: TFlowPanel
367 Left = 0 366 Left = 0
368 Height = 841 367 Height = 649
369 Top = 0 368 Top = 0
370 Width = 1203 369 Width = 937
371 Align = alClient 370 Align = alClient
372 AutoSize = True 371 AutoSize = True
373 BevelOuter = bvNone 372 BevelOuter = bvNone
@@ -402,26 +401,26 @@ object frmTracker: TfrmTracker
402 ParentFont = False 401 ParentFont = False
403 TabOrder = 0 402 TabOrder = 0
404 object InstrumentGroupBox: TGroupBox 403 object InstrumentGroupBox: TGroupBox
405 Left = 9 404 Left = 7
406 Height = 350 405 Height = 273
407 Top = 9 406 Top = 7
408 Width = 359 407 Width = 280
409 Anchors = [] 408 Anchors = []
410 BorderSpacing.Left = 9 409 BorderSpacing.Left = 7
411 BorderSpacing.Top = 9 410 BorderSpacing.Top = 7
412 BorderSpacing.Right = 9 411 BorderSpacing.Right = 7
413 BorderSpacing.Bottom = 9 412 BorderSpacing.Bottom = 7
414 Caption = 'Instrument' 413 Caption = 'Instrument'
415 ClientHeight = 326 414 ClientHeight = 269
416 ClientWidth = 355 415 ClientWidth = 276
417 ParentFont = False 416 ParentFont = False
418 TabOrder = 0 417 TabOrder = 0
419 object InstrumentNumberSpinner: TSpinEdit 418 object InstrumentNumberSpinner: TSpinEdit
420 Left = 102 419 Left = 80
421 Height = 32 420 Height = 27
422 Hint = 'What instrument to edit' 421 Hint = 'What instrument to edit'
423 Top = 49 422 Top = 38
424 Width = 240 423 Width = 187
425 MaxValue = 15 424 MaxValue = 15
426 MinValue = 1 425 MinValue = 1
427 OnChange = InstrumentNumberSpinnerChange 426 OnChange = InstrumentNumberSpinnerChange
@@ -430,50 +429,50 @@ object frmTracker: TfrmTracker
430 Value = 1 429 Value = 1
431 end 430 end
432 object Label1: TLabel 431 object Label1: TLabel
433 Left = 10 432 Left = 8
434 Height = 22 433 Height = 17
435 Top = 59 434 Top = 46
436 Width = 83 435 Width = 62
437 Caption = 'Instrument' 436 Caption = 'Instrument'
438 ParentColor = False 437 ParentColor = False
439 ParentFont = False 438 ParentFont = False
440 end 439 end
441 object Label2: TLabel 440 object Label2: TLabel
442 Left = 10 441 Left = 8
443 Height = 22 442 Height = 17
444 Top = 100 443 Top = 78
445 Width = 44 444 Width = 34
446 Caption = 'Name' 445 Caption = 'Name'
447 ParentColor = False 446 ParentColor = False
448 ParentFont = False 447 ParentFont = False
449 end 448 end
450 object InstrumentNameEdit: TEdit 449 object InstrumentNameEdit: TEdit
451 Left = 102 450 Left = 80
452 Height = 32 451 Height = 27
453 Hint = 'The name of the instrument' 452 Hint = 'The name of the instrument'
454 Top = 90 453 Top = 70
455 Width = 240 454 Width = 187
456 MaxLength = 255 455 MaxLength = 255
457 OnChange = InstrumentNameEditChange 456 OnChange = InstrumentNameEditChange
458 ParentFont = False 457 ParentFont = False
459 TabOrder = 1 458 TabOrder = 1
460 end 459 end
461 object Label3: TLabel 460 object Label3: TLabel
462 Left = 10 461 Left = 8
463 Height = 22 462 Height = 17
464 Top = 20 463 Top = 16
465 Width = 63 464 Width = 50
466 Caption = 'Channel' 465 Caption = 'Channel'
467 Font.Style = [fsBold] 466 Font.Style = [fsBold]
468 ParentColor = False 467 ParentColor = False
469 ParentFont = False 468 ParentFont = False
470 end 469 end
471 object InstrumentTypeCombobox: TComboBox 470 object InstrumentTypeCombobox: TComboBox
472 Left = 102 471 Left = 80
473 Height = 30 472 Height = 25
474 Hint = 'What type of channel this instrument will be played on' 473 Hint = 'What type of channel this instrument will be played on'
475 Top = 10 474 Top = 8
476 Width = 237 475 Width = 185
477 ItemHeight = 0 476 ItemHeight = 0
478 ItemIndex = 0 477 ItemIndex = 0
479 Items.Strings = ( 478 Items.Strings = (
@@ -488,33 +487,33 @@ object frmTracker: TfrmTracker
488 Text = 'Square' 487 Text = 'Square'
489 end 488 end
490 object LengthEnabledCheckbox: TCheckBox 489 object LengthEnabledCheckbox: TCheckBox
491 Left = 15 490 Left = 12
492 Height = 24 491 Height = 21
493 Hint = 'Cut the sound after a certain length of time' 492 Hint = 'Cut the sound after a certain length of time'
494 Top = 151 493 Top = 118
495 Width = 75 494 Width = 61
496 Caption = 'Length' 495 Caption = 'Length'
497 OnChange = LengthEnabledCheckboxChange 496 OnChange = LengthEnabledCheckboxChange
498 ParentFont = False 497 ParentFont = False
499 TabOrder = 3 498 TabOrder = 3
500 end 499 end
501 object InstrumentImportButton: TButton 500 object InstrumentImportButton: TButton
502 Left = 15 501 Left = 12
503 Height = 32 502 Height = 25
504 Hint = 'Import an instrument' 503 Hint = 'Import an instrument'
505 Top = 277 504 Top = 216
506 Width = 149 505 Width = 116
507 Caption = 'Import' 506 Caption = 'Import'
508 OnClick = InstrumentImportButtonClick 507 OnClick = InstrumentImportButtonClick
509 ParentFont = False 508 ParentFont = False
510 TabOrder = 4 509 TabOrder = 4
511 end 510 end
512 object InstrumentExportButton: TButton 511 object InstrumentExportButton: TButton
513 Left = 191 512 Left = 149
514 Height = 32 513 Height = 25
515 Hint = 'Export an instrument' 514 Hint = 'Export an instrument'
516 Top = 277 515 Top = 216
517 Width = 149 516 Width = 116
518 Caption = 'Export' 517 Caption = 'Export'
519 OnClick = InstrumentExportButtonClick 518 OnClick = InstrumentExportButtonClick
520 ParentFont = False 519 ParentFont = False
@@ -522,21 +521,21 @@ object frmTracker: TfrmTracker
522 end 521 end
523 object TestOctave5Button: TButton 522 object TestOctave5Button: TButton
524 Tag = 5 523 Tag = 5
525 Left = 182 524 Left = 142
526 Height = 32 525 Height = 25
527 Hint = 'Test out the instrument with a C-5 note' 526 Hint = 'Test out the instrument with a C-5 note'
528 Top = 187 527 Top = 146
529 Width = 35 528 Width = 27
530 Caption = '5' 529 Caption = '5'
531 OnClick = TestOctaveButtonClick 530 OnClick = TestOctaveButtonClick
532 ParentFont = False 531 ParentFont = False
533 TabOrder = 6 532 TabOrder = 6
534 end 533 end
535 object LengthTrackbar: TTrackBar 534 object LengthTrackbar: TTrackBar
536 Left = 97 535 Left = 76
537 Height = 55 536 Height = 43
538 Top = 144 537 Top = 112
539 Width = 242 538 Width = 189
540 Max = 63 539 Max = 63
541 OnChange = LengthSpinnerChange 540 OnChange = LengthSpinnerChange
542 Position = 0 541 Position = 0
@@ -545,21 +544,21 @@ object frmTracker: TfrmTracker
545 TabOrder = 7 544 TabOrder = 7
546 end 545 end
547 object Label14: TLabel 546 object Label14: TLabel
548 Left = 15 547 Left = 12
549 Height = 22 548 Height = 17
550 Top = 195 549 Top = 152
551 Width = 85 550 Width = 66
552 Caption = 'Test octave:' 551 Caption = 'Test octave:'
553 ParentColor = False 552 ParentColor = False
554 ParentFont = False 553 ParentFont = False
555 end 554 end
556 object TestOctave5Button1: TButton 555 object TestOctave5Button1: TButton
557 Tag = 4 556 Tag = 4
558 Left = 141 557 Left = 110
559 Height = 32 558 Height = 25
560 Hint = 'Test out the instrument with a C-4 note' 559 Hint = 'Test out the instrument with a C-4 note'
561 Top = 187 560 Top = 146
562 Width = 35 561 Width = 27
563 Caption = '4' 562 Caption = '4'
564 OnClick = TestOctaveButtonClick 563 OnClick = TestOctaveButtonClick
565 ParentFont = False 564 ParentFont = False
@@ -567,11 +566,11 @@ object frmTracker: TfrmTracker
567 end 566 end
568 object TestOctave5Button2: TButton 567 object TestOctave5Button2: TButton
569 Tag = 3 568 Tag = 3
570 Left = 100 569 Left = 78
571 Height = 32 570 Height = 25
572 Hint = 'Test out the instrument with a C-3 note' 571 Hint = 'Test out the instrument with a C-3 note'
573 Top = 187 572 Top = 146
574 Width = 35 573 Width = 27
575 Caption = '3' 574 Caption = '3'
576 OnClick = TestOctaveButtonClick 575 OnClick = TestOctaveButtonClick
577 ParentFont = False 576 ParentFont = False
@@ -579,11 +578,11 @@ object frmTracker: TfrmTracker
579 end 578 end
580 object TestOctave5Button3: TButton 579 object TestOctave5Button3: TButton
581 Tag = 6 580 Tag = 6
582 Left = 223 581 Left = 174
583 Height = 32 582 Height = 25
584 Hint = 'Test out the instrument with a C-6 note' 583 Hint = 'Test out the instrument with a C-6 note'
585 Top = 187 584 Top = 146
586 Width = 35 585 Width = 27
587 Caption = '6' 586 Caption = '6'
588 OnClick = TestOctaveButtonClick 587 OnClick = TestOctaveButtonClick
589 ParentFont = False 588 ParentFont = False
@@ -591,11 +590,11 @@ object frmTracker: TfrmTracker
591 end 590 end
592 object TestOctave5Button4: TButton 591 object TestOctave5Button4: TButton
593 Tag = 7 592 Tag = 7
594 Left = 264 593 Left = 206
595 Height = 32 594 Height = 25
596 Hint = 'Test out the instrument with a C-7 note' 595 Hint = 'Test out the instrument with a C-7 note'
597 Top = 187 596 Top = 146
598 Width = 35 597 Width = 27
599 Caption = '7' 598 Caption = '7'
600 OnClick = TestOctaveButtonClick 599 OnClick = TestOctaveButtonClick
601 ParentFont = False 600 ParentFont = False
@@ -603,65 +602,65 @@ object frmTracker: TfrmTracker
603 end 602 end
604 object TestOctave5Button5: TButton 603 object TestOctave5Button5: TButton
605 Tag = 8 604 Tag = 8
606 Left = 305 605 Left = 238
607 Height = 32 606 Height = 25
608 Hint = 'Test out the instrument with a C-8 note' 607 Hint = 'Test out the instrument with a C-8 note'
609 Top = 187 608 Top = 146
610 Width = 35 609 Width = 27
611 Caption = '8' 610 Caption = '8'
612 OnClick = TestOctaveButtonClick 611 OnClick = TestOctaveButtonClick
613 ParentFont = False 612 ParentFont = False
614 TabOrder = 12 613 TabOrder = 12
615 end 614 end
616 object EnableSubpatternCheckbox: TCheckBox 615 object EnableSubpatternCheckbox: TCheckBox
617 Left = 15 616 Left = 12
618 Height = 24 617 Height = 21
619 Top = 236 618 Top = 184
620 Width = 158 619 Width = 125
621 Caption = 'Enable subpattern' 620 Caption = 'Enable subpattern'
622 OnChange = EnableSubpatternCheckboxChange 621 OnChange = EnableSubpatternCheckboxChange
623 TabOrder = 13 622 TabOrder = 13
624 end 623 end
625 end 624 end
626 object EnvelopeGroupBox: TGroupBox 625 object EnvelopeGroupBox: TGroupBox
627 Left = 386 626 Left = 301
628 Height = 174 627 Height = 136
629 Top = 9 628 Top = 7
630 Width = 746 629 Width = 582
631 Anchors = [] 630 Anchors = []
632 BorderSpacing.Left = 9 631 BorderSpacing.Left = 7
633 BorderSpacing.Top = 9 632 BorderSpacing.Top = 7
634 BorderSpacing.Right = 9 633 BorderSpacing.Right = 7
635 BorderSpacing.Bottom = 9 634 BorderSpacing.Bottom = 7
636 Caption = 'Envelope' 635 Caption = 'Envelope'
637 ClientHeight = 150 636 ClientHeight = 132
638 ClientWidth = 742 637 ClientWidth = 578
639 ParentFont = False 638 ParentFont = False
640 TabOrder = 1 639 TabOrder = 1
641 object Label4: TLabel 640 object Label4: TLabel
642 Left = 10 641 Left = 8
643 Height = 22 642 Height = 17
644 Top = 20 643 Top = 16
645 Width = 64 644 Width = 49
646 Caption = 'Start vol.' 645 Caption = 'Start vol.'
647 ParentColor = False 646 ParentColor = False
648 ParentFont = False 647 ParentFont = False
649 end 648 end
650 object Label5: TLabel 649 object Label5: TLabel
651 Left = 10 650 Left = 8
652 Height = 22 651 Height = 17
653 Top = 69 652 Top = 54
654 Width = 66 653 Width = 51
655 Caption = 'Direction' 654 Caption = 'Direction'
656 ParentColor = False 655 ParentColor = False
657 ParentFont = False 656 ParentFont = False
658 end 657 end
659 object DirectionComboBox: TComboBox 658 object DirectionComboBox: TComboBox
660 Left = 105 659 Left = 82
661 Height = 30 660 Height = 25
662 Hint = 'Whether to fade the sound in or out' 661 Hint = 'Whether to fade the sound in or out'
663 Top = 59 662 Top = 46
664 Width = 254 663 Width = 198
665 ItemHeight = 0 664 ItemHeight = 0
666 ItemIndex = 1 665 ItemIndex = 1
667 Items.Strings = ( 666 Items.Strings = (
@@ -675,40 +674,40 @@ object frmTracker: TfrmTracker
675 Text = 'Down' 674 Text = 'Down'
676 end 675 end
677 object Label6: TLabel 676 object Label6: TLabel
678 Left = 10 677 Left = 8
679 Height = 22 678 Height = 17
680 Top = 115 679 Top = 90
681 Width = 57 680 Width = 43
682 Caption = 'Change' 681 Caption = 'Change'
683 ParentColor = False 682 ParentColor = False
684 ParentFont = False 683 ParentFont = False
685 end 684 end
686 object Panel5: TPanel 685 object Panel5: TPanel
687 Left = 384 686 Left = 300
688 Height = 133 687 Height = 104
689 Top = 0 688 Top = 0
690 Width = 346 689 Width = 270
691 BevelOuter = bvLowered 690 BevelOuter = bvLowered
692 ClientHeight = 133 691 ClientHeight = 100
693 ClientWidth = 346 692 ClientWidth = 266
694 ParentFont = False 693 ParentFont = False
695 TabOrder = 1 694 TabOrder = 1
696 object EnvelopePaintbox: TPaintBox 695 object EnvelopePaintbox: TPaintBox
697 Left = 1 696 Left = 1
698 Height = 131 697 Height = 98
699 Hint = 'Preview of the volume envelope' 698 Hint = 'Preview of the volume envelope'
700 Top = 1 699 Top = 1
701 Width = 344 700 Width = 264
702 Align = alClient 701 Align = alClient
703 ParentFont = False 702 ParentFont = False
704 OnPaint = EnvelopePaintboxPaint 703 OnPaint = EnvelopePaintboxPaint
705 end 704 end
706 end 705 end
707 object StartVolTrackbar: TTrackBar 706 object StartVolTrackbar: TTrackBar
708 Left = 105 707 Left = 82
709 Height = 55 708 Height = 43
710 Top = 10 709 Top = 8
711 Width = 251 710 Width = 196
712 Max = 15 711 Max = 15
713 OnChange = StartVolSpinnerChange 712 OnChange = StartVolSpinnerChange
714 Position = 0 713 Position = 0
@@ -716,10 +715,10 @@ object frmTracker: TfrmTracker
716 TabOrder = 2 715 TabOrder = 2
717 end 716 end
718 object EnvChangeTrackbar: TTrackBar 717 object EnvChangeTrackbar: TTrackBar
719 Left = 105 718 Left = 82
720 Height = 55 719 Height = 43
721 Top = 105 720 Top = 82
722 Width = 251 721 Width = 196
723 Max = 7 722 Max = 7
724 OnChange = EnvChangeSpinnerChange 723 OnChange = EnvChangeSpinnerChange
725 Position = 0 724 Position = 0
@@ -728,35 +727,35 @@ object frmTracker: TfrmTracker
728 end 727 end
729 end 728 end
730 object SquareGroupBox: TGroupBox 729 object SquareGroupBox: TGroupBox
731 Left = 9 730 Left = 7
732 Height = 217 731 Height = 169
733 Top = 377 732 Top = 294
734 Width = 409 733 Width = 319
735 Anchors = [] 734 Anchors = []
736 BorderSpacing.Left = 9 735 BorderSpacing.Left = 7
737 BorderSpacing.Top = 9 736 BorderSpacing.Top = 7
738 BorderSpacing.Right = 9 737 BorderSpacing.Right = 7
739 BorderSpacing.Bottom = 9 738 BorderSpacing.Bottom = 7
740 Caption = 'Square' 739 Caption = 'Square'
741 ClientHeight = 193 740 ClientHeight = 165
742 ClientWidth = 405 741 ClientWidth = 315
743 ParentFont = False 742 ParentFont = False
744 TabOrder = 2 743 TabOrder = 2
745 object Label7: TLabel 744 object Label7: TLabel
746 Left = 10 745 Left = 8
747 Height = 22 746 Height = 17
748 Top = 20 747 Top = 16
749 Width = 84 748 Width = 65
750 Caption = 'Sweep time' 749 Caption = 'Sweep time'
751 ParentColor = False 750 ParentColor = False
752 ParentFont = False 751 ParentFont = False
753 end 752 end
754 object SweepTimeCombobox: TComboBox 753 object SweepTimeCombobox: TComboBox
755 Left = 133 754 Left = 104
756 Height = 30 755 Height = 25
757 Hint = 'How long to sweep' 756 Hint = 'How long to sweep'
758 Top = 10 757 Top = 8
759 Width = 256 758 Width = 200
760 ItemHeight = 0 759 ItemHeight = 0
761 ItemIndex = 0 760 ItemIndex = 0
762 Items.Strings = ( 761 Items.Strings = (
@@ -778,11 +777,11 @@ object frmTracker: TfrmTracker
778 Text = 'Off - no frequency change' 777 Text = 'Off - no frequency change'
779 end 778 end
780 object SweepDirectionCombobox: TComboBox 779 object SweepDirectionCombobox: TComboBox
781 Left = 133 780 Left = 104
782 Height = 30 781 Height = 25
783 Hint = 'The direction of the sweep' 782 Hint = 'The direction of the sweep'
784 Top = 51 783 Top = 40
785 Width = 256 784 Width = 200
786 ItemHeight = 0 785 ItemHeight = 0
787 ItemIndex = 1 786 ItemIndex = 1
788 Items.Strings = ( 787 Items.Strings = (
@@ -798,38 +797,38 @@ object frmTracker: TfrmTracker
798 Text = 'Down' 797 Text = 'Down'
799 end 798 end
800 object Label8: TLabel 799 object Label8: TLabel
801 Left = 10 800 Left = 8
802 Height = 22 801 Height = 17
803 Top = 62 802 Top = 48
804 Width = 115 803 Width = 89
805 Caption = 'Sweep direction' 804 Caption = 'Sweep direction'
806 ParentColor = False 805 ParentColor = False
807 ParentFont = False 806 ParentFont = False
808 end 807 end
809 object Label9: TLabel 808 object Label9: TLabel
810 Left = 10 809 Left = 8
811 Height = 22 810 Height = 17
812 Top = 113 811 Top = 88
813 Width = 78 812 Width = 62
814 Caption = 'Sweep size' 813 Caption = 'Sweep size'
815 ParentColor = False 814 ParentColor = False
816 ParentFont = False 815 ParentFont = False
817 end 816 end
818 object Label10: TLabel 817 object Label10: TLabel
819 Left = 10 818 Left = 8
820 Height = 22 819 Height = 17
821 Top = 154 820 Top = 120
822 Width = 35 821 Width = 26
823 Caption = 'Duty' 822 Caption = 'Duty'
824 ParentColor = False 823 ParentColor = False
825 ParentFont = False 824 ParentFont = False
826 end 825 end
827 object DutyCombobox: TComboBox 826 object DutyCombobox: TComboBox
828 Left = 133 827 Left = 104
829 Height = 30 828 Height = 25
830 Hint = 'Which duty cycle to use (changes timbre of wave)' 829 Hint = 'Which duty cycle to use (changes timbre of wave)'
831 Top = 144 830 Top = 112
832 Width = 256 831 Width = 200
833 ItemHeight = 0 832 ItemHeight = 0
834 ItemIndex = 2 833 ItemIndex = 2
835 Items.Strings = ( 834 Items.Strings = (
@@ -847,10 +846,10 @@ object frmTracker: TfrmTracker
847 Text = '50% (square)' 846 Text = '50% (square)'
848 end 847 end
849 object SweepSizeTrackbar: TTrackBar 848 object SweepSizeTrackbar: TTrackBar
850 Left = 135 849 Left = 105
851 Height = 55 850 Height = 43
852 Top = 102 851 Top = 80
853 Width = 251 852 Width = 196
854 Max = 7 853 Max = 7
855 OnChange = SweepSizeSpinnerChange 854 OnChange = SweepSizeSpinnerChange
856 Position = 0 855 Position = 0
@@ -859,44 +858,44 @@ object frmTracker: TfrmTracker
859 end 858 end
860 end 859 end
861 object WaveGroupBox: TGroupBox 860 object WaveGroupBox: TGroupBox
862 Left = 436 861 Left = 340
863 Height = 217 862 Height = 169
864 Top = 377 863 Top = 294
865 Width = 381 864 Width = 297
866 Anchors = [] 865 Anchors = []
867 BorderSpacing.Left = 9 866 BorderSpacing.Left = 7
868 BorderSpacing.Top = 9 867 BorderSpacing.Top = 7
869 BorderSpacing.Right = 9 868 BorderSpacing.Right = 7
870 BorderSpacing.Bottom = 9 869 BorderSpacing.Bottom = 7
871 Caption = 'Wave' 870 Caption = 'Wave'
872 ClientHeight = 193 871 ClientHeight = 165
873 ClientWidth = 377 872 ClientWidth = 293
874 ParentFont = False 873 ParentFont = False
875 TabOrder = 3 874 TabOrder = 3
876 object Label11: TLabel 875 object Label11: TLabel
877 Left = 10 876 Left = 8
878 Height = 22 877 Height = 17
879 Top = 20 878 Top = 16
880 Width = 55 879 Width = 42
881 Caption = 'Volume' 880 Caption = 'Volume'
882 ParentColor = False 881 ParentColor = False
883 ParentFont = False 882 ParentFont = False
884 end 883 end
885 object Label12: TLabel 884 object Label12: TLabel
886 Left = 10 885 Left = 8
887 Height = 22 886 Height = 17
888 Top = 62 887 Top = 48
889 Width = 74 888 Width = 58
890 Caption = 'Waveform' 889 Caption = 'Waveform'
891 ParentColor = False 890 ParentColor = False
892 ParentFont = False 891 ParentFont = False
893 end 892 end
894 object WaveformCombobox: TComboBox 893 object WaveformCombobox: TComboBox
895 Left = 133 894 Left = 104
896 Height = 30 895 Height = 25
897 Hint = 'Which waveform is associated with this instrument' 896 Hint = 'Which waveform is associated with this instrument'
898 Top = 51 897 Top = 40
899 Width = 226 898 Width = 176
900 ItemHeight = 0 899 ItemHeight = 0
901 ItemIndex = 0 900 ItemIndex = 0
902 Items.Strings = ( 901 Items.Strings = (
@@ -924,21 +923,21 @@ object frmTracker: TfrmTracker
924 Text = 'Wave #0' 923 Text = 'Wave #0'
925 end 924 end
926 object Panel4: TPanel 925 object Panel4: TPanel
927 Left = 10 926 Left = 8
928 Height = 76 927 Height = 59
929 Top = 102 928 Top = 80
930 Width = 348 929 Width = 272
931 BevelOuter = bvLowered 930 BevelOuter = bvLowered
932 ClientHeight = 76 931 ClientHeight = 55
933 ClientWidth = 348 932 ClientWidth = 268
934 ParentFont = False 933 ParentFont = False
935 TabOrder = 1 934 TabOrder = 1
936 object WavePaintbox: TPaintBox 935 object WavePaintbox: TPaintBox
937 Left = 1 936 Left = 1
938 Height = 74 937 Height = 53
939 Hint = 'Preview of the waveform associated with this instrument' 938 Hint = 'Preview of the waveform associated with this instrument'
940 Top = 1 939 Top = 1
941 Width = 346 940 Width = 266
942 Align = alClient 941 Align = alClient
943 Color = clBlack 942 Color = clBlack
944 ParentColor = False 943 ParentColor = False
@@ -947,11 +946,11 @@ object frmTracker: TfrmTracker
947 end 946 end
948 end 947 end
949 object WaveVolumeCombobox: TComboBox 948 object WaveVolumeCombobox: TComboBox
950 Left = 133 949 Left = 104
951 Height = 30 950 Height = 25
952 Hint = 'The initial volume of the wave' 951 Hint = 'The initial volume of the wave'
953 Top = 10 952 Top = 8
954 Width = 226 953 Width = 176
955 ItemHeight = 0 954 ItemHeight = 0
956 ItemIndex = 1 955 ItemIndex = 1
957 Items.Strings = ( 956 Items.Strings = (
@@ -968,26 +967,26 @@ object frmTracker: TfrmTracker
968 end 967 end
969 end 968 end
970 object NoiseGroupBox: TGroupBox 969 object NoiseGroupBox: TGroupBox
971 Left = 835 970 Left = 651
972 Height = 76 971 Height = 59
973 Top = 377 972 Top = 294
974 Width = 304 973 Width = 237
975 Anchors = [] 974 Anchors = []
976 BorderSpacing.Left = 9 975 BorderSpacing.Left = 7
977 BorderSpacing.Top = 9 976 BorderSpacing.Top = 7
978 BorderSpacing.Right = 9 977 BorderSpacing.Right = 7
979 BorderSpacing.Bottom = 9 978 BorderSpacing.Bottom = 7
980 Caption = 'Noise' 979 Caption = 'Noise'
981 ClientHeight = 52 980 ClientHeight = 40
982 ClientWidth = 300 981 ClientWidth = 233
983 ParentFont = False 982 ParentFont = False
984 TabOrder = 4 983 TabOrder = 4
985 object SevenBitCounterCheckbox: TCheckBox 984 object SevenBitCounterCheckbox: TCheckBox
986 Left = 10 985 Left = 8
987 Height = 24 986 Height = 21
988 Hint = 'Select LFSR width. When checked, output will sound like a tone rather than noise' 987 Hint = 'Select LFSR width. When checked, output will sound like a tone rather than noise'
989 Top = 10 988 Top = 8
990 Width = 290 989 Width = 224
991 Alignment = taLeftJustify 990 Alignment = taLeftJustify
992 Caption = '7 bit counter (more tone-like output)' 991 Caption = '7 bit counter (more tone-like output)'
993 OnChange = SevenBitCounterCheckboxChange 992 OnChange = SevenBitCounterCheckboxChange
@@ -997,46 +996,46 @@ object frmTracker: TfrmTracker
997 end 996 end
998 end 997 end
999 object SubpatternGroupBox: TGroupBox 998 object SubpatternGroupBox: TGroupBox
1000 Left = 1203 999 Left = 937
1001 Height = 832 1000 Height = 642
1002 Top = 9 1001 Top = 7
1003 Width = 205 1002 Width = 160
1004 Align = alRight 1003 Align = alRight
1005 Anchors = [] 1004 Anchors = []
1006 BorderSpacing.Top = 9 1005 BorderSpacing.Top = 7
1007 Caption = 'Subpattern' 1006 Caption = 'Subpattern'
1008 ClientHeight = 808 1007 ClientHeight = 623
1009 ClientWidth = 201 1008 ClientWidth = 156
1010 TabOrder = 1 1009 TabOrder = 1
1011 object ScrollBox2: TScrollBox 1010 object ScrollBox2: TScrollBox
1012 Left = 0 1011 Left = 0
1013 Height = 808 1012 Height = 623
1014 Top = 0 1013 Top = 0
1015 Width = 201 1014 Width = 156
1016 HorzScrollBar.Increment = 4 1015 HorzScrollBar.Increment = 3
1017 HorzScrollBar.Page = 41 1016 HorzScrollBar.Page = 32
1018 HorzScrollBar.Smooth = True 1017 HorzScrollBar.Smooth = True
1019 HorzScrollBar.Tracking = True 1018 HorzScrollBar.Tracking = True
1020 VertScrollBar.Increment = 6 1019 VertScrollBar.Increment = 5
1021 VertScrollBar.Page = 64 1020 VertScrollBar.Page = 50
1022 VertScrollBar.Smooth = True 1021 VertScrollBar.Smooth = True
1023 VertScrollBar.Tracking = True 1022 VertScrollBar.Tracking = True
1024 Align = alClient 1023 Align = alClient
1025 BorderStyle = bsNone 1024 BorderStyle = bsNone
1026 ClientHeight = 808 1025 ClientHeight = 623
1027 ClientWidth = 201 1026 ClientWidth = 156
1028 TabOrder = 0 1027 TabOrder = 0
1029 OnMouseWheelDown = ScrollBox1MouseWheelDown 1028 OnMouseWheelDown = ScrollBox1MouseWheelDown
1030 OnMouseWheelUp = ScrollBox1MouseWheelUp 1029 OnMouseWheelUp = ScrollBox1MouseWheelUp
1031 object RowNumberStringGrid1: TStringGrid 1030 object RowNumberStringGrid1: TStringGrid
1032 Left = 160 1031 Left = 124
1033 Height = 808 1032 Height = 623
1034 Top = 0 1033 Top = 0
1035 Width = 41 1034 Width = 32
1036 Align = alRight 1035 Align = alRight
1037 BorderStyle = bsNone 1036 BorderStyle = bsNone
1038 ColCount = 1 1037 ColCount = 1
1039 DefaultColWidth = 41 1038 DefaultColWidth = 32
1040 Enabled = False 1039 Enabled = False
1041 ParentFont = False 1040 ParentFont = False
1042 RowCount = 32 1041 RowCount = 32
@@ -1048,19 +1047,19 @@ object frmTracker: TfrmTracker
1048 end 1047 end
1049 object WavesTabSheet: TTabSheet 1048 object WavesTabSheet: TTabSheet
1050 Caption = 'Waves' 1049 Caption = 'Waves'
1051 ClientHeight = 841 1050 ClientHeight = 649
1052 ClientWidth = 1408 1051 ClientWidth = 1097
1053 ParentFont = False 1052 ParentFont = False
1054 object WaveEditPaintBox: TPaintBox 1053 object WaveEditPaintBox: TPaintBox
1055 AnchorSideTop.Control = WaveEditGroupBox 1054 AnchorSideTop.Control = WaveEditGroupBox
1056 AnchorSideTop.Side = asrBottom 1055 AnchorSideTop.Side = asrBottom
1057 Left = 0 1056 Left = 0
1058 Height = 636 1057 Height = 489
1059 Top = 205 1058 Top = 160
1060 Width = 1408 1059 Width = 1097
1061 Align = alBottom 1060 Align = alBottom
1062 Anchors = [akTop, akLeft, akRight, akBottom] 1061 Anchors = [akTop, akLeft, akRight, akBottom]
1063 BorderSpacing.Top = 17 1062 BorderSpacing.Top = 13
1064 ParentFont = False 1063 ParentFont = False
1065 PopupMenu = WaveEditPopup 1064 PopupMenu = WaveEditPopup
1066 OnMouseDown = WaveEditPaintBoxMouseDown 1065 OnMouseDown = WaveEditPaintBoxMouseDown
@@ -1069,61 +1068,61 @@ object frmTracker: TfrmTracker
1069 OnPaint = WaveEditPaintBoxPaint 1068 OnPaint = WaveEditPaintBoxPaint
1070 end 1069 end
1071 object WaveEditGroupBox: TGroupBox 1070 object WaveEditGroupBox: TGroupBox
1072 Left = 10 1071 Left = 8
1073 Height = 178 1072 Height = 139
1074 Top = 10 1073 Top = 8
1075 Width = 728 1074 Width = 568
1076 Caption = 'Wave Editor' 1075 Caption = 'Wave Editor'
1077 ClientHeight = 174 1076 ClientHeight = 135
1078 ClientWidth = 724 1077 ClientWidth = 564
1079 ParentFont = False 1078 ParentFont = False
1080 TabOrder = 0 1079 TabOrder = 0
1081 object Label20: TLabel 1080 object Label20: TLabel
1082 Left = 20 1081 Left = 16
1083 Height = 22 1082 Height = 17
1084 Top = 20 1083 Top = 16
1085 Width = 40 1084 Width = 31
1086 Caption = 'Wave' 1085 Caption = 'Wave'
1087 ParentColor = False 1086 ParentColor = False
1088 ParentFont = False 1087 ParentFont = False
1089 end 1088 end
1090 object WaveEditNumberSpinner: TSpinEdit 1089 object WaveEditNumberSpinner: TSpinEdit
1091 Left = 82 1090 Left = 64
1092 Height = 32 1091 Height = 27
1093 Top = 10 1092 Top = 8
1094 Width = 102 1093 Width = 80
1095 MaxValue = 15 1094 MaxValue = 15
1096 OnChange = WaveEditNumberSpinnerChange 1095 OnChange = WaveEditNumberSpinnerChange
1097 ParentFont = False 1096 ParentFont = False
1098 TabOrder = 0 1097 TabOrder = 0
1099 end 1098 end
1100 object ImportWaveButton: TButton 1099 object ImportWaveButton: TButton
1101 Left = 20 1100 Left = 16
1102 Height = 32 1101 Height = 25
1103 Hint = 'Import a wave' 1102 Hint = 'Import a wave'
1104 Top = 62 1103 Top = 48
1105 Width = 188 1104 Width = 147
1106 Caption = 'Import' 1105 Caption = 'Import'
1107 OnClick = ImportWaveButtonClick 1106 OnClick = ImportWaveButtonClick
1108 ParentFont = False 1107 ParentFont = False
1109 TabOrder = 1 1108 TabOrder = 1
1110 end 1109 end
1111 object ExportWaveButton: TButton 1110 object ExportWaveButton: TButton
1112 Left = 20 1111 Left = 16
1113 Height = 32 1112 Height = 25
1114 Hint = 'Export a wave' 1113 Hint = 'Export a wave'
1115 Top = 102 1114 Top = 80
1116 Width = 188 1115 Width = 147
1117 Caption = 'Export' 1116 Caption = 'Export'
1118 OnClick = ExportWaveButtonClick 1117 OnClick = ExportWaveButtonClick
1119 ParentFont = False 1118 ParentFont = False
1120 TabOrder = 2 1119 TabOrder = 2
1121 end 1120 end
1122 object HexWaveEdit: TEdit 1121 object HexWaveEdit: TEdit
1123 Left = 369 1122 Left = 288
1124 Height = 32 1123 Height = 27
1125 Top = 10 1124 Top = 8
1126 Width = 338 1125 Width = 264
1127 MaxLength = 32 1126 MaxLength = 32
1128 OnChange = HexWaveEditEditingDone 1127 OnChange = HexWaveEditEditingDone
1129 OnEditingDone = HexWaveEditEditingDone 1128 OnEditingDone = HexWaveEditEditingDone
@@ -1131,19 +1130,19 @@ object frmTracker: TfrmTracker
1131 TabOrder = 3 1130 TabOrder = 3
1132 end 1131 end
1133 object Label13: TLabel 1132 object Label13: TLabel
1134 Left = 226 1133 Left = 176
1135 Height = 22 1134 Height = 17
1136 Top = 20 1135 Top = 16
1137 Width = 140 1136 Width = 108
1138 Caption = 'Hex representation' 1137 Caption = 'Hex representation'
1139 ParentColor = False 1138 ParentColor = False
1140 ParentFont = False 1139 ParentFont = False
1141 end 1140 end
1142 object PlayWaveWhileDrawingCheckbox: TCheckBox 1141 object PlayWaveWhileDrawingCheckbox: TCheckBox
1143 Left = 226 1142 Left = 176
1144 Height = 24 1143 Height = 21
1145 Top = 51 1144 Top = 40
1146 Width = 201 1145 Width = 158
1147 Caption = 'Play wave while drawing' 1146 Caption = 'Play wave while drawing'
1148 ParentFont = False 1147 ParentFont = False
1149 TabOrder = 4 1148 TabOrder = 4
@@ -1152,30 +1151,30 @@ object frmTracker: TfrmTracker
1152 end 1151 end
1153 object CommentsTabSheet: TTabSheet 1152 object CommentsTabSheet: TTabSheet
1154 Caption = 'Comments' 1153 Caption = 'Comments'
1155 ClientHeight = 841 1154 ClientHeight = 649
1156 ClientWidth = 1408 1155 ClientWidth = 1097
1157 ParentFont = False 1156 ParentFont = False
1158 object CommentMemo: TMemo 1157 object CommentMemo: TMemo
1159 AnchorSideTop.Control = Label17 1158 AnchorSideTop.Control = Label17
1160 AnchorSideTop.Side = asrBottom 1159 AnchorSideTop.Side = asrBottom
1161 Left = 0 1160 Left = 0
1162 Height = 792 1161 Height = 611
1163 Hint = 'The comments section for your song. Greetings/links/etc' 1162 Hint = 'The comments section for your song. Greetings/links/etc'
1164 Top = 49 1163 Top = 38
1165 Width = 1408 1164 Width = 1097
1166 Align = alBottom 1165 Align = alBottom
1167 Anchors = [akTop, akLeft, akRight, akBottom] 1166 Anchors = [akTop, akLeft, akRight, akBottom]
1168 BorderSpacing.Top = 17 1167 BorderSpacing.Top = 13
1169 MaxLength = 255 1168 MaxLength = 255
1170 OnChange = CommentMemoChange 1169 OnChange = CommentMemoChange
1171 ParentFont = False 1170 ParentFont = False
1172 TabOrder = 0 1171 TabOrder = 0
1173 end 1172 end
1174 object Label17: TLabel 1173 object Label17: TLabel
1175 Left = 10 1174 Left = 8
1176 Height = 22 1175 Height = 17
1177 Top = 10 1176 Top = 8
1178 Width = 463 1177 Width = 351
1179 Caption = 'This is an area to write comments for anyone editing your tune.' 1178 Caption = 'This is an area to write comments for anyone editing your tune.'
1180 ParentColor = False 1179 ParentColor = False
1181 ParentFont = False 1180 ParentFont = False
@@ -1183,27 +1182,27 @@ object frmTracker: TfrmTracker
1183 end 1182 end
1184 object RoutinesTabSheet: TTabSheet 1183 object RoutinesTabSheet: TTabSheet
1185 Caption = 'Routines' 1184 Caption = 'Routines'
1186 ClientHeight = 841 1185 ClientHeight = 649
1187 ClientWidth = 1408 1186 ClientWidth = 1097
1188 ParentFont = False 1187 ParentFont = False
1189 inline RoutineSynedit: TSynEdit 1188 inline RoutineSynedit: TSynEdit
1190 AnchorSideTop.Control = Label19 1189 AnchorSideTop.Control = Label19
1191 AnchorSideTop.Side = asrBottom 1190 AnchorSideTop.Side = asrBottom
1192 Left = 0 1191 Left = 0
1193 Height = 685 1192 Height = 528
1194 Top = 156 1193 Top = 121
1195 Width = 1408 1194 Width = 1097
1196 Align = alBottom 1195 Align = alBottom
1197 BorderSpacing.Top = 17 1196 BorderSpacing.Top = 13
1198 Anchors = [akTop, akLeft, akRight, akBottom] 1197 Anchors = [akTop, akLeft, akRight, akBottom]
1199 Font.Height = -17 1198 Font.Height = -13
1200 Font.Name = 'Courier New' 1199 Font.Name = 'Courier New'
1201 Font.Pitch = fpFixed 1200 Font.Pitch = fpFixed
1202 Font.Quality = fqNonAntialiased 1201 Font.Quality = fqNonAntialiased
1203 ParentColor = False 1202 ParentColor = False
1204 ParentFont = False 1203 ParentFont = False
1205 TabOrder = 0 1204 TabOrder = 0
1206 Gutter.Width = 73 1205 Gutter.Width = 57
1207 Gutter.MouseActions = <> 1206 Gutter.MouseActions = <>
1208 RightGutter.Width = 0 1207 RightGutter.Width = 0
1209 RightGutter.MouseActions = <> 1208 RightGutter.MouseActions = <>
@@ -1657,11 +1656,11 @@ object frmTracker: TfrmTracker
1657 OnChange = RoutineSyneditChange 1656 OnChange = RoutineSyneditChange
1658 inline SynLeftGutterPartList1: TSynGutterPartList 1657 inline SynLeftGutterPartList1: TSynGutterPartList
1659 object SynGutterMarks1: TSynGutterMarks 1658 object SynGutterMarks1: TSynGutterMarks
1660 Width = 31 1659 Width = 24
1661 MouseActions = <> 1660 MouseActions = <>
1662 end 1661 end
1663 object SynGutterLineNumber1: TSynGutterLineNumber 1662 object SynGutterLineNumber1: TSynGutterLineNumber
1664 Width = 21 1663 Width = 17
1665 MouseActions = <> 1664 MouseActions = <>
1666 MarkupInfo.Background = clBtnFace 1665 MarkupInfo.Background = clBtnFace
1667 MarkupInfo.Foreground = clNone 1666 MarkupInfo.Foreground = clNone
@@ -1671,19 +1670,18 @@ object frmTracker: TfrmTracker
1671 LeadingZeros = False 1670 LeadingZeros = False
1672 end 1671 end
1673 object SynGutterChanges1: TSynGutterChanges 1672 object SynGutterChanges1: TSynGutterChanges
1674 Width = 5 1673 Width = 4
1675 MouseActions = <> 1674 MouseActions = <>
1676 ModifiedColor = 59900 1675 ModifiedColor = 59900
1677 SavedColor = clGreen 1676 SavedColor = clGreen
1678 end 1677 end
1679 object SynGutterSeparator1: TSynGutterSeparator 1678 object SynGutterSeparator1: TSynGutterSeparator
1680 Width = 3 1679 Width = 2
1681 MouseActions = <> 1680 MouseActions = <>
1682 MarkupInfo.Background = clWhite 1681 MarkupInfo.Background = clWhite
1683 MarkupInfo.Foreground = clGray 1682 MarkupInfo.Foreground = clGray
1684 end 1683 end
1685 object SynGutterCodeFolding1: TSynGutterCodeFolding 1684 object SynGutterCodeFolding1: TSynGutterCodeFolding
1686 Width = 13
1687 MouseActions = <> 1685 MouseActions = <>
1688 MarkupInfo.Background = clNone 1686 MarkupInfo.Background = clNone
1689 MarkupInfo.Foreground = clGray 1687 MarkupInfo.Foreground = clGray
@@ -1693,19 +1691,19 @@ object frmTracker: TfrmTracker
1693 end 1691 end
1694 end 1692 end
1695 object Label18: TLabel 1693 object Label18: TLabel
1696 Left = 10 1694 Left = 8
1697 Height = 22 1695 Height = 17
1698 Top = 20 1696 Top = 16
1699 Width = 58 1697 Width = 42
1700 Caption = 'Routine' 1698 Caption = 'Routine'
1701 ParentColor = False 1699 ParentColor = False
1702 ParentFont = False 1700 ParentFont = False
1703 end 1701 end
1704 object RoutineNumberSpinner: TSpinEdit 1702 object RoutineNumberSpinner: TSpinEdit
1705 Left = 82 1703 Left = 64
1706 Height = 32 1704 Height = 27
1707 Top = 10 1705 Top = 8
1708 Width = 226 1706 Width = 176
1709 MaxValue = 15 1707 MaxValue = 15
1710 OnChange = RoutineNumberSpinnerChange 1708 OnChange = RoutineNumberSpinnerChange
1711 ParentFont = False 1709 ParentFont = False
@@ -1713,10 +1711,10 @@ object frmTracker: TfrmTracker
1713 Value = 1 1711 Value = 1
1714 end 1712 end
1715 object Label19: TLabel 1713 object Label19: TLabel
1716 Left = 10 1714 Left = 8
1717 Height = 88 1715 Height = 68
1718 Top = 51 1716 Top = 40
1719 Width = 695 1717 Width = 531
1720 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!' 1718 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!'
1721 ParentColor = False 1719 ParentColor = False
1722 ParentFont = False 1720 ParentFont = False
@@ -1726,21 +1724,21 @@ object frmTracker: TfrmTracker
1726 end 1724 end
1727 object ScopesPanel: TPanel 1725 object ScopesPanel: TPanel
1728 Left = 0 1726 Left = 0
1729 Height = 82 1727 Height = 64
1730 Top = 34 1728 Top = 29
1731 Width = 1667 1729 Width = 1301
1732 Align = alTop 1730 Align = alTop
1733 BevelOuter = bvNone 1731 BevelOuter = bvNone
1734 ClientHeight = 82 1732 ClientHeight = 64
1735 ClientWidth = 1667 1733 ClientWidth = 1301
1736 ParentFont = False 1734 ParentFont = False
1737 TabOrder = 3 1735 TabOrder = 3
1738 object LEDMeter1: TLEDMeter 1736 object LEDMeter1: TLEDMeter
1739 AnchorSideRight.Control = Duty1Visualizer 1737 AnchorSideRight.Control = Duty1Visualizer
1740 Left = 0 1738 Left = 0
1741 Height = 41 1739 Height = 32
1742 Top = 41 1740 Top = 32
1743 Width = 659 1741 Width = 513
1744 Anchors = [akTop, akLeft, akRight] 1742 Anchors = [akTop, akLeft, akRight]
1745 BevelStyle = bvLowered 1743 BevelStyle = bvLowered
1746 Colors.Border = 2168839 1744 Colors.Border = 2168839
@@ -1761,9 +1759,9 @@ object frmTracker: TfrmTracker
1761 object LEDMeter2: TLEDMeter 1759 object LEDMeter2: TLEDMeter
1762 AnchorSideRight.Control = Duty1Visualizer 1760 AnchorSideRight.Control = Duty1Visualizer
1763 Left = 0 1761 Left = 0
1764 Height = 41 1762 Height = 32
1765 Top = 0 1763 Top = 0
1766 Width = 659 1764 Width = 513
1767 Anchors = [akTop, akLeft, akRight] 1765 Anchors = [akTop, akLeft, akRight]
1768 BevelStyle = bvLowered 1766 BevelStyle = bvLowered
1769 Colors.Border = 2168839 1767 Colors.Border = 2168839
@@ -1782,40 +1780,40 @@ object frmTracker: TfrmTracker
1782 Section3Value = 48 1780 Section3Value = 48
1783 end 1781 end
1784 object Duty1Visualizer: TPaintBox 1782 object Duty1Visualizer: TPaintBox
1785 Left = 659 1783 Left = 513
1786 Height = 82 1784 Height = 64
1787 Top = 0 1785 Top = 0
1788 Width = 252 1786 Width = 197
1789 Align = alRight 1787 Align = alRight
1790 ParentFont = False 1788 ParentFont = False
1791 OnClick = Duty1VisualizerClick 1789 OnClick = Duty1VisualizerClick
1792 OnPaint = Duty1VisualizerPaint 1790 OnPaint = Duty1VisualizerPaint
1793 end 1791 end
1794 object Duty2Visualizer: TPaintBox 1792 object Duty2Visualizer: TPaintBox
1795 Left = 911 1793 Left = 710
1796 Height = 82 1794 Height = 64
1797 Top = 0 1795 Top = 0
1798 Width = 252 1796 Width = 197
1799 Align = alRight 1797 Align = alRight
1800 ParentFont = False 1798 ParentFont = False
1801 OnClick = Duty1VisualizerClick 1799 OnClick = Duty1VisualizerClick
1802 OnPaint = Duty2VisualizerPaint 1800 OnPaint = Duty2VisualizerPaint
1803 end 1801 end
1804 object WaveVisualizer: TPaintBox 1802 object WaveVisualizer: TPaintBox
1805 Left = 1163 1803 Left = 907
1806 Height = 82 1804 Height = 64
1807 Top = 0 1805 Top = 0
1808 Width = 252 1806 Width = 197
1809 Align = alRight 1807 Align = alRight
1810 ParentFont = False 1808 ParentFont = False
1811 OnClick = Duty1VisualizerClick 1809 OnClick = Duty1VisualizerClick
1812 OnPaint = WaveVisualizerPaint 1810 OnPaint = WaveVisualizerPaint
1813 end 1811 end
1814 object NoiseVisualizer: TPaintBox 1812 object NoiseVisualizer: TPaintBox
1815 Left = 1415 1813 Left = 1104
1816 Height = 82 1814 Height = 64
1817 Top = 0 1815 Top = 0
1818 Width = 252 1816 Width = 197
1819 Align = alRight 1817 Align = alRight
1820 ParentFont = False 1818 ParentFont = False
1821 OnClick = Duty1VisualizerClick 1819 OnClick = Duty1VisualizerClick
@@ -1824,19 +1822,19 @@ object frmTracker: TfrmTracker
1824 end 1822 end
1825 object StatusBar1: TStatusBar 1823 object StatusBar1: TStatusBar
1826 Left = 0 1824 Left = 0
1827 Height = 26 1825 Height = 21
1828 Top = 997 1826 Top = 777
1829 Width = 1667 1827 Width = 1301
1830 AutoHint = True 1828 AutoHint = True
1831 Panels = < 1829 Panels = <
1832 item 1830 item
1833 Width = 598 1831 Width = 467
1834 end 1832 end
1835 item 1833 item
1836 Width = 256 1834 Width = 200
1837 end 1835 end
1838 item 1836 item
1839 Width = 256 1837 Width = 200
1840 end> 1838 end>
1841 ParentFont = False 1839 ParentFont = False
1842 ParentShowHint = False 1840 ParentShowHint = False
@@ -1845,9 +1843,9 @@ object frmTracker: TfrmTracker
1845 end 1843 end
1846 object ToolBar1: TToolBar 1844 object ToolBar1: TToolBar
1847 Left = 0 1845 Left = 0
1848 Height = 34 1846 Height = 29
1849 Top = 0 1847 Top = 0
1850 Width = 1667 1848 Width = 1301
1851 AutoSize = True 1849 AutoSize = True
1852 Caption = 'ToolBar1' 1850 Caption = 'ToolBar1'
1853 EdgeBorders = [ebBottom] 1851 EdgeBorders = [ebBottom]
@@ -1864,7 +1862,7 @@ object frmTracker: TfrmTracker
1864 ParentShowHint = False 1862 ParentShowHint = False
1865 end 1863 end
1866 object PanicToolButton: TToolButton 1864 object PanicToolButton: TToolButton
1867 Left = 585 1865 Left = 495
1868 Hint = 'Stops all sound output' 1866 Hint = 'Stops all sound output'
1869 Top = 0 1867 Top = 0
1870 AutoSize = True 1868 AutoSize = True
@@ -1875,17 +1873,17 @@ object frmTracker: TfrmTracker
1875 ShowHint = True 1873 ShowHint = True
1876 end 1874 end
1877 object ToolButton2: TToolButton 1875 object ToolButton2: TToolButton
1878 Left = 139 1876 Left = 119
1879 Top = 0 1877 Top = 0
1880 Action = PlayCursorAction 1878 Action = PlayCursorAction
1881 end 1879 end
1882 object ToolButton4: TToolButton 1880 object ToolButton4: TToolButton
1883 Left = 170 1881 Left = 148
1884 Top = 0 1882 Top = 0
1885 Action = StopAction 1883 Action = StopAction
1886 end 1884 end
1887 object ExportGBButton: TToolButton 1885 object ExportGBButton: TToolButton
1888 Left = 242 1886 Left = 214
1889 Hint = 'Export the song as a standalone ROM' 1887 Hint = 'Export the song as a standalone ROM'
1890 Top = 0 1888 Top = 0
1891 AutoSize = True 1889 AutoSize = True
@@ -1894,49 +1892,49 @@ object frmTracker: TfrmTracker
1894 OnClick = ExportGBButtonClick 1892 OnClick = ExportGBButtonClick
1895 end 1893 end
1896 object ToolButton8: TToolButton 1894 object ToolButton8: TToolButton
1897 Left = 103 1895 Left = 86
1898 Height = 28 1896 Height = 22
1899 Top = 0 1897 Top = 0
1900 Caption = 'ToolButton8' 1898 Caption = 'ToolButton8'
1901 Style = tbsDivider 1899 Style = tbsDivider
1902 end 1900 end
1903 object ToolButton6: TToolButton 1901 object ToolButton6: TToolButton
1904 Left = 201 1902 Left = 177
1905 Height = 28 1903 Height = 22
1906 Top = 0 1904 Top = 0
1907 Caption = 'ToolButton6' 1905 Caption = 'ToolButton6'
1908 Style = tbsDivider 1906 Style = tbsDivider
1909 end 1907 end
1910 object ToolButton7: TToolButton 1908 object ToolButton7: TToolButton
1911 Left = 1274 1909 Left = 1037
1912 Height = 28 1910 Height = 22
1913 Top = 0 1911 Top = 0
1914 Caption = 'ToolButton7' 1912 Caption = 'ToolButton7'
1915 Style = tbsSeparator 1913 Style = tbsSeparator
1916 end 1914 end
1917 object OctaveSpinEdit: TSpinEdit 1915 object OctaveSpinEdit: TSpinEdit
1918 Left = 718 1916 Left = 603
1919 Height = 32 1917 Height = 27
1920 Hint = 'The octave offset for entering new notes' 1918 Hint = 'The octave offset for entering new notes'
1921 Top = 0 1919 Top = 0
1922 Width = 83 1920 Width = 65
1923 MaxValue = 5 1921 MaxValue = 5
1924 OnChange = OctaveSpinEditChange 1922 OnChange = OctaveSpinEditChange
1925 ParentFont = False 1923 ParentFont = False
1926 TabOrder = 0 1924 TabOrder = 0
1927 end 1925 end
1928 object ToolButton9: TToolButton 1926 object ToolButton9: TToolButton
1929 Left = 655 1927 Left = 554
1930 Height = 28 1928 Height = 22
1931 Top = 0 1929 Top = 0
1932 Caption = 'ToolButton9' 1930 Caption = 'ToolButton9'
1933 Style = tbsSeparator 1931 Style = tbsSeparator
1934 end 1932 end
1935 object Label22: TLabel 1933 object Label22: TLabel
1936 Left = 663 1934 Left = 560
1937 Height = 28 1935 Height = 22
1938 Top = 0 1936 Top = 0
1939 Width = 55 1937 Width = 43
1940 AutoSize = False 1938 AutoSize = False
1941 Caption = 'Octave ' 1939 Caption = 'Octave '
1942 Layout = tlCenter 1940 Layout = tlCenter
@@ -1944,10 +1942,10 @@ object frmTracker: TfrmTracker
1944 ParentFont = False 1942 ParentFont = False
1945 end 1943 end
1946 object Label23: TLabel 1944 object Label23: TLabel
1947 Left = 801 1945 Left = 668
1948 Height = 28 1946 Height = 22
1949 Top = 0 1947 Top = 0
1950 Width = 90 1948 Width = 70
1951 AutoSize = False 1949 AutoSize = False
1952 Caption = ' Instrument ' 1950 Caption = ' Instrument '
1953 Layout = tlCenter 1951 Layout = tlCenter
@@ -1955,11 +1953,11 @@ object frmTracker: TfrmTracker
1955 ParentFont = False 1953 ParentFont = False
1956 end 1954 end
1957 object InstrumentComboBox: TComboBox 1955 object InstrumentComboBox: TComboBox
1958 Left = 891 1956 Left = 738
1959 Height = 30 1957 Height = 25
1960 Hint = 'The selected instrument for new notes' 1958 Hint = 'The selected instrument for new notes'
1961 Top = 0 1959 Top = 0
1962 Width = 274 1960 Width = 214
1963 DropDownCount = 999 1961 DropDownCount = 999
1964 ItemHeight = 0 1962 ItemHeight = 0
1965 ItemIndex = 0 1963 ItemIndex = 0
@@ -1973,10 +1971,10 @@ object frmTracker: TfrmTracker
1973 Text = '(no instrument)' 1971 Text = '(no instrument)'
1974 end 1972 end
1975 object Label24: TLabel 1973 object Label24: TLabel
1976 Left = 1165 1974 Left = 952
1977 Height = 28 1975 Height = 22
1978 Top = 0 1976 Top = 0
1979 Width = 45 1977 Width = 35
1980 AutoSize = False 1978 AutoSize = False
1981 Caption = ' Step ' 1979 Caption = ' Step '
1982 Layout = tlCenter 1980 Layout = tlCenter
@@ -1984,23 +1982,23 @@ object frmTracker: TfrmTracker
1984 ParentFont = False 1982 ParentFont = False
1985 end 1983 end
1986 object StepSpinEdit: TSpinEdit 1984 object StepSpinEdit: TSpinEdit
1987 Left = 1210 1985 Left = 987
1988 Height = 32 1986 Height = 27
1989 Hint = 'How many rows to step down after entering a new note' 1987 Hint = 'How many rows to step down after entering a new note'
1990 Top = 0 1988 Top = 0
1991 Width = 64 1989 Width = 50
1992 MaxValue = 63 1990 MaxValue = 63
1993 OnChange = StepSpinEditChange 1991 OnChange = StepSpinEditChange
1994 ParentFont = False 1992 ParentFont = False
1995 TabOrder = 2 1993 TabOrder = 2
1996 end 1994 end
1997 object ToolButton3: TToolButton 1995 object ToolButton3: TToolButton
1998 Left = 108 1996 Left = 90
1999 Top = 0 1997 Top = 0
2000 Action = PlayStartAction 1998 Action = PlayStartAction
2001 end 1999 end
2002 object ExportGBSButton: TToolButton 2000 object ExportGBSButton: TToolButton
2003 Left = 345 2001 Left = 299
2004 Hint = 'Export the song as a GBS soundtrack' 2002 Hint = 'Export the song as a GBS soundtrack'
2005 Top = 0 2003 Top = 0
2006 Caption = 'Export GBS' 2004 Caption = 'Export GBS'
@@ -2008,14 +2006,14 @@ object frmTracker: TfrmTracker
2008 OnClick = ExportGBSButtonClick 2006 OnClick = ExportGBSButtonClick
2009 end 2007 end
2010 object ToolButton5: TToolButton 2008 object ToolButton5: TToolButton
2011 Left = 580 2009 Left = 491
2012 Height = 28 2010 Height = 22
2013 Top = 0 2011 Top = 0
2014 Caption = 'ToolButton5' 2012 Caption = 'ToolButton5'
2015 Style = tbsDivider 2013 Style = tbsDivider
2016 end 2014 end
2017 object ToolButton10: TToolButton 2015 object ToolButton10: TToolButton
2018 Left = 456 2016 Left = 391
2019 Hint = 'Export the song as WAV or MP3' 2017 Hint = 'Export the song as WAV or MP3'
2020 Top = 0 2018 Top = 0
2021 Caption = 'Render Song' 2019 Caption = 'Render Song'
@@ -2023,14 +2021,14 @@ object frmTracker: TfrmTracker
2023 OnClick = ToolButton10Click 2021 OnClick = ToolButton10Click
2024 end 2022 end
2025 object ToolButton11: TToolButton 2023 object ToolButton11: TToolButton
2026 Left = 237 2024 Left = 210
2027 Height = 28 2025 Height = 22
2028 Top = 0 2026 Top = 0
2029 Caption = 'ToolButton11' 2027 Caption = 'ToolButton11'
2030 Style = tbsDivider 2028 Style = tbsDivider
2031 end 2029 end
2032 object LoopSongToolButton: TToolButton 2030 object LoopSongToolButton: TToolButton
2033 Left = 206 2031 Left = 181
2034 Top = 0 2032 Top = 0
2035 ImageIndex = 87 2033 ImageIndex = 87
2036 OnClick = LoopSongToolButtonClick 2034 OnClick = LoopSongToolButtonClick
@@ -2039,8 +2037,8 @@ object frmTracker: TfrmTracker
2039 end 2037 end
2040 object MainMenu1: TMainMenu 2038 object MainMenu1: TMainMenu
2041 Images = ImageList1 2039 Images = ImageList1
2042 Left = 51 2040 Left = 40
2043 Top = 41 2041 Top = 32
2044 object MenuItem1: TMenuItem 2042 object MenuItem1: TMenuItem
2045 Caption = 'File' 2043 Caption = 'File'
2046 object MenuItem33: TMenuItem 2044 object MenuItem33: TMenuItem
@@ -2206,8 +2204,8 @@ object frmTracker: TfrmTracker
2206 end 2204 end
2207 object MenuBarActionList: TActionList 2205 object MenuBarActionList: TActionList
2208 Images = ImageList1 2206 Images = ImageList1
2209 Left = 133 2207 Left = 104
2210 Top = 92 2208 Top = 72
2211 object FileOpen1: TFileOpen 2209 object FileOpen1: TFileOpen
2212 Category = 'File' 2210 Category = 'File'
2213 Caption = '&Open ...' 2211 Caption = '&Open ...'
@@ -2317,8 +2315,8 @@ object frmTracker: TfrmTracker
2317 end 2315 end
2318 end 2316 end
2319 object ImageList1: TImageList 2317 object ImageList1: TImageList
2320 Left = 195 2318 Left = 152
2321 Top = 41 2319 Top = 32
2322 Bitmap = { 2320 Bitmap = {
2323 4C7A5C0000001000000010000000132900000000000078DAED5D077C1545FE9F 2321 4C7A5C0000001000000010000000132900000000000078DAED5D077C1545FE9F
2324 24A89CA2A814B1DC5FEE3C3D15C1029E200A51BA078228081A44AAC22145448A 2322 24A89CA2A814B1DC5FEE3C3D15C1029E200A51BA078228081A44AAC22145448A
@@ -2654,17 +2652,17 @@ object frmTracker: TfrmTracker
2654 end 2652 end
2655 object OpenDialog1: TOpenDialog 2653 object OpenDialog1: TOpenDialog
2656 Filter = 'hUGETracker Instruments|*.ugi' 2654 Filter = 'hUGETracker Instruments|*.ugi'
2657 Left = 103 2655 Left = 80
2658 Top = 72 2656 Top = 56
2659 end 2657 end
2660 object InstrumentSaveDialog: TSaveDialog 2658 object InstrumentSaveDialog: TSaveDialog
2661 Filter = 'hUGETracker Instruments|*.ugi' 2659 Filter = 'hUGETracker Instruments|*.ugi'
2662 Left = 103 2660 Left = 80
2663 Top = 72 2661 Top = 56
2664 end 2662 end
2665 object OrderEditPopup: TPopupMenu 2663 object OrderEditPopup: TPopupMenu
2666 Left = 164 2664 Left = 128
2667 Top = 51 2665 Top = 40
2668 object MenuItem17: TMenuItem 2666 object MenuItem17: TMenuItem
2669 Caption = 'Insert new row' 2667 Caption = 'Insert new row'
2670 Hint = 'Insert a new row filled with brand new patterns' 2668 Hint = 'Insert a new row filled with brand new patterns'
@@ -2695,8 +2693,8 @@ object frmTracker: TfrmTracker
2695 object ImageList2: TImageList 2693 object ImageList2: TImageList
2696 Height = 32 2694 Height = 32
2697 Width = 32 2695 Width = 32
2698 Left = 62 2696 Left = 48
2699 Top = 110 2697 Top = 86
2700 Bitmap = { 2698 Bitmap = {
2701 4C7A020000002000000020000000400200000000000078DAED98818EC3200886 2699 4C7A020000002000000020000000400200000000000078DAED98818EC3200886
2702 7DF4BED9F666DE6CA54504048BBDE572246659B7F503A4C8BF94662CE77EAD34 2700 7DF4BED9F666DE6CA54504048BBDE572246659B7F503A4C8BF94662CE77EAD34
@@ -2723,33 +2721,33 @@ object frmTracker: TfrmTracker
2723 Enabled = False 2721 Enabled = False
2724 Interval = 200 2722 Interval = 200
2725 OnTimer = OscilloscopeUpdateTimerTimer 2723 OnTimer = OscilloscopeUpdateTimerTimer
2726 Left = 113 2724 Left = 88
2727 Top = 62 2725 Top = 48
2728 end 2726 end
2729 object GBSSaveDialog: TSaveDialog 2727 object GBSSaveDialog: TSaveDialog
2730 Filter = 'Gameboy Soundtrack|*.gbs' 2728 Filter = 'Gameboy Soundtrack|*.gbs'
2731 Left = 369 2729 Left = 288
2732 Top = 31 2730 Top = 24
2733 end 2731 end
2734 object WaveSaveDialog: TSaveDialog 2732 object WaveSaveDialog: TSaveDialog
2735 Filter = 'hUGETracker Waves|*.ugw' 2733 Filter = 'hUGETracker Waves|*.ugw'
2736 Left = 472 2734 Left = 368
2737 Top = 31 2735 Top = 24
2738 end 2736 end
2739 object GBSaveDialog: TSaveDialog 2737 object GBSaveDialog: TSaveDialog
2740 Filter = 'Gameboy ROM|*.gb' 2738 Filter = 'Gameboy ROM|*.gb'
2741 Left = 420 2739 Left = 328
2742 Top = 31 2740 Top = 24
2743 end 2741 end
2744 object NoteHaltTimer: TTimer 2742 object NoteHaltTimer: TTimer
2745 Enabled = False 2743 Enabled = False
2746 OnTimer = NoteHaltTimerTimer 2744 OnTimer = NoteHaltTimerTimer
2747 Left = 103 2745 Left = 80
2748 Top = 110 2746 Top = 86
2749 end 2747 end
2750 object TrackerGridPopup: TPopupMenu 2748 object TrackerGridPopup: TPopupMenu
2751 Left = 123 2749 Left = 96
2752 Top = 31 2750 Top = 24
2753 object TrackerPopupEditEffect: TMenuItem 2751 object TrackerPopupEditEffect: TMenuItem
2754 Caption = 'Edit effect ...' 2752 Caption = 'Edit effect ...'
2755 OnClick = TrackerPopupEditEffectClick 2753 OnClick = TrackerPopupEditEffectClick
@@ -2901,8 +2899,8 @@ object frmTracker: TfrmTracker
2901 object WavSaveDialog: TSaveDialog 2899 object WavSaveDialog: TSaveDialog
2902 DefaultExt = '.wav' 2900 DefaultExt = '.wav'
2903 Filter = 'Wave files|*.wav' 2901 Filter = 'Wave files|*.wav'
2904 Left = 523 2902 Left = 408
2905 Top = 31 2903 Top = 24
2906 end 2904 end
2907 object SynAnySyn1: TSynAnySyn 2905 object SynAnySyn1: TSynAnySyn
2908 Enabled = False 2906 Enabled = False
@@ -3026,18 +3024,18 @@ object frmTracker: TfrmTracker
3026 Entity = False 3024 Entity = False
3027 DollarVariables = False 3025 DollarVariables = False
3028 ActiveDot = False 3026 ActiveDot = False
3029 Left = 10 3027 Left = 8
3030 Top = 110 3028 Top = 86
3031 end 3029 end
3032 object MODOpenDialog: TOpenDialog 3030 object MODOpenDialog: TOpenDialog
3033 DefaultExt = '.mod' 3031 DefaultExt = '.mod'
3034 Filter = 'GBT Player MOD files|*.mod' 3032 Filter = 'GBT Player MOD files|*.mod'
3035 Left = 605 3033 Left = 472
3036 Top = 31 3034 Top = 24
3037 end 3035 end
3038 object WaveEditPopup: TPopupMenu 3036 object WaveEditPopup: TPopupMenu
3039 Left = 10 3037 Left = 8
3040 Top = 41 3038 Top = 32
3041 object MenuItem37: TMenuItem 3039 object MenuItem37: TMenuItem
3042 Caption = 'Copy' 3040 Caption = 'Copy'
3043 OnClick = MenuItem37Click 3041 OnClick = MenuItem37Click
@@ -3049,8 +3047,8 @@ object frmTracker: TfrmTracker
3049 end 3047 end
3050 object ShortcutsActionList: TActionList 3048 object ShortcutsActionList: TActionList
3051 Images = ImageList1 3049 Images = ImageList1
3052 Left = 267 3050 Left = 208
3053 Top = 41 3051 Top = 32
3054 object PlayStartAction: TAction 3052 object PlayStartAction: TAction
3055 DisableIfNoHandler = False 3053 DisableIfNoHandler = False
3056 Hint = 'Play song from start' 3054 Hint = 'Play song from start'
@@ -3175,23 +3173,23 @@ object frmTracker: TfrmTracker
3175 end 3173 end
3176 object GBDKCSaveDialog: TSaveDialog 3174 object GBDKCSaveDialog: TSaveDialog
3177 Filter = 'GBDK C File|*.c' 3175 Filter = 'GBDK C File|*.c'
3178 Left = 318 3176 Left = 248
3179 Top = 31 3177 Top = 24
3180 end 3178 end
3181 object RGBDSAsmSaveDialog: TSaveDialog 3179 object RGBDSAsmSaveDialog: TSaveDialog
3182 Filter = 'RGBDS Assembly|*.asm' 3180 Filter = 'RGBDS Assembly|*.asm'
3183 Left = 349 3181 Left = 272
3184 Top = 62 3182 Top = 48
3185 end 3183 end
3186 object VGMSaveDialog: TSaveDialog 3184 object VGMSaveDialog: TSaveDialog
3187 Filter = 'VGM Rip|*.vgm' 3185 Filter = 'VGM Rip|*.vgm'
3188 Left = 456 3186 Left = 356
3189 Top = 67 3187 Top = 52
3190 end 3188 end
3191 object TBMOpenDialog: TOpenDialog 3189 object TBMOpenDialog: TOpenDialog
3192 DefaultExt = '.tbm' 3190 DefaultExt = '.tbm'
3193 Filter = 'TrackerBoy TBM files|*.tbm' 3191 Filter = 'TrackerBoy TBM files|*.tbm'
3194 Left = 605 3192 Left = 472
3195 Top = 82 3193 Top = 64
3196 end 3194 end
3197 end 3195 end
Modifiedsrc/tracker.pas +11−1
@@ -1635,13 +1635,23 @@ end;
1635 procedure TfrmTracker.InstrumentImportButtonClick(Sender: TObject); 1635 procedure TfrmTracker.InstrumentImportButtonClick(Sender: TObject);
1636 var 1636 var
1637 F: file of TInstrument; 1637 F: file of TInstrument;
1638 I: TInstrument;
1638 begin 1639 begin
1639 OpenDialog1.Filter := 'hUGETracker instruments|*.ugi'; 1640 OpenDialog1.Filter := 'hUGETracker instruments|*.ugi';
1640 if OpenDialog1.Execute then begin 1641 if OpenDialog1.Execute then begin
1641 AssignFile(F, OpenDialog1.FileName); 1642 AssignFile(F, OpenDialog1.FileName);
1642 Reset(F); 1643 Reset(F);
1643 Read(F, CurrentInstrument^); 1644 Read(F, I);
1644 CloseFile(F); 1645 CloseFile(F);
1646
1647 if CurrentInstrument^.Type_ <> I.Type_ then
1648 ShowMessage('The selected instrument is not for this channel type.')
1649 else begin
1650 CurrentInstrument^ := I;
1651
1652 // Refresh the UI
1653 LoadInstrument(CurrentInstrumentBank, InstrumentNumberSpinner.Value);
1654 end;
1645 end; 1655 end;
1646 end; 1656 end;
1647 1657