Commit 5073bb4

Nick committed on
Potentially fix the hanging bug!!
commit 5073bb4f742cc824bd7466f6ac2c040f88be7896 parent bdbb1d0
6 changed files +386−384
Modifiedemulationthread.pas +2−2
@@ -34,9 +34,9 @@ var
34 tickFreq, cycles: Extended; 34 tickFreq, cycles: Extended;
35 frameStart, frameEnd: Extended; 35 frameStart, frameEnd: Extended;
36 frameElapsedInSec: Extended; 36 frameElapsedInSec: Extended;
37 function GetCounter: Integer; 37 function GetCounter: Extended;
38 begin 38 begin
39 Result := Trunc(ET.Elapsed*1000000); // Convert to microseconds 39 Result := ET.Elapsed*1000000; // Convert to microseconds
40 end; 40 end;
41 begin 41 begin
42 lastTime := 0; 42 lastTime := 0;
ModifiedhUGEDriver +1−1
@@ -1 +1 @@
1 Subproject commit 7f96aea503519f0643e400c94fb6e256f3e787d7 1 Subproject commit 29e451a41d276db827bbec7210533c237f1e9737
Modifiedrendertowave.pas +1−1
@@ -6,7 +6,7 @@ interface
6 6
7 uses 7 uses
8 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, EditBtn, 8 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, EditBtn,
9 ExtCtrls, Spin, ComCtrls, constants, process, fgl; 9 ExtCtrls, Spin, ComCtrls, constants, process;
10 10
11 type 11 type
12 { EHaltingProblem } 12 { EHaltingProblem }
Modifiedtracker.lfm +382−380
@@ -1,11 +1,12 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 2029 2 Left = 3817
3 Height = 714 3 Height = 1250
4 Top = 270 4 Top = 380
5 Width = 1181 5 Width = 2067
6 Caption = 'hUGETracker' 6 Caption = 'hUGETracker'
7 ClientHeight = 694 7 ClientHeight = 1216
8 ClientWidth = 1181 8 ClientWidth = 2067
9 DesignTimePPI = 168
9 KeyPreview = True 10 KeyPreview = True
10 Menu = MainMenu1 11 Menu = MainMenu1
11 OnClose = FormClose 12 OnClose = FormClose
@@ -19,9 +20,9 @@ object frmTracker: TfrmTracker
19 LCLVersion = '2.0.6.0' 20 LCLVersion = '2.0.6.0'
20 object TreeView1: TTreeView 21 object TreeView1: TTreeView
21 Left = 0 22 Left = 0
22 Height = 468 23 Height = 820
23 Top = 203 24 Top = 353
24 Width = 193 25 Width = 338
25 Align = alLeft 26 Align = alLeft
26 ParentFont = False 27 ParentFont = False
27 ReadOnly = True 28 ReadOnly = True
@@ -36,27 +37,27 @@ object frmTracker: TfrmTracker
36 } 37 }
37 end 38 end
38 object Splitter1: TSplitter 39 object Splitter1: TSplitter
39 Left = 193 40 Left = 338
40 Height = 468 41 Height = 820
41 Top = 203 42 Top = 353
42 Width = 5 43 Width = 9
43 end 44 end
44 object Panel1: TPanel 45 object Panel1: TPanel
45 Left = 198 46 Left = 347
46 Height = 468 47 Height = 820
47 Top = 203 48 Top = 353
48 Width = 983 49 Width = 1720
49 Align = alClient 50 Align = alClient
50 BevelOuter = bvNone 51 BevelOuter = bvNone
51 ClientHeight = 468 52 ClientHeight = 820
52 ClientWidth = 983 53 ClientWidth = 1720
53 ParentFont = False 54 ParentFont = False
54 TabOrder = 2 55 TabOrder = 2
55 object PageControl1: TPageControl 56 object PageControl1: TPageControl
56 Left = 0 57 Left = 0
57 Height = 468 58 Height = 820
58 Top = 0 59 Top = 0
59 Width = 983 60 Width = 1720
60 ActivePage = PatternTabSheet 61 ActivePage = PatternTabSheet
61 Align = alClient 62 Align = alClient
62 ParentFont = False 63 ParentFont = False
@@ -68,68 +69,68 @@ object frmTracker: TfrmTracker
68 ClientWidth = 975 69 ClientWidth = 975
69 ParentFont = False 70 ParentFont = False
70 object SongInformationGroupbox: TGroupBox 71 object SongInformationGroupbox: TGroupBox
71 Left = 8 72 Left = 14
72 Height = 136 73 Height = 238
73 Top = 8 74 Top = 14
74 Width = 305 75 Width = 534
75 Caption = 'Song information' 76 Caption = 'Song information'
76 ClientHeight = 116 77 ClientHeight = 203
77 ClientWidth = 301 78 ClientWidth = 530
78 ParentFont = False 79 ParentFont = False
79 TabOrder = 0 80 TabOrder = 0
80 object Label15: TLabel 81 object Label15: TLabel
81 Left = 8 82 Left = 14
82 Height = 15 83 Height = 15
83 Top = 16 84 Top = 28
84 Width = 27 85 Width = 27
85 Caption = 'Song' 86 Caption = 'Song'
86 ParentColor = False 87 ParentColor = False
87 ParentFont = False 88 ParentFont = False
88 end 89 end
89 object Label16: TLabel 90 object Label16: TLabel
90 Left = 7 91 Left = 12
91 Height = 15 92 Height = 15
92 Top = 48 93 Top = 84
93 Width = 28 94 Width = 28
94 Caption = 'Artist' 95 Caption = 'Artist'
95 ParentColor = False 96 ParentColor = False
96 ParentFont = False 97 ParentFont = False
97 end 98 end
98 object SongEdit: TEdit 99 object SongEdit: TEdit
99 Left = 56 100 Left = 98
100 Height = 23 101 Height = 23
101 Hint = 'The name of your composition' 102 Hint = 'The name of your composition'
102 Top = 8 103 Top = 14
103 Width = 216 104 Width = 378
104 OnChange = SongEditChange 105 OnChange = SongEditChange
105 ParentFont = False 106 ParentFont = False
106 TabOrder = 0 107 TabOrder = 0
107 end 108 end
108 object ArtistEdit: TEdit 109 object ArtistEdit: TEdit
109 Left = 56 110 Left = 98
110 Height = 23 111 Height = 23
111 Hint = 'Your name or handle' 112 Hint = 'Your name or handle'
112 Top = 40 113 Top = 70
113 Width = 216 114 Width = 378
114 OnChange = ArtistEditChange 115 OnChange = ArtistEditChange
115 ParentFont = False 116 ParentFont = False
116 TabOrder = 1 117 TabOrder = 1
117 end 118 end
118 object Label21: TLabel 119 object Label21: TLabel
119 Left = 8 120 Left = 14
120 Height = 15 121 Height = 15
121 Top = 78 122 Top = 136
122 Width = 114 123 Width = 114
123 Caption = 'Tempo (ticks per row)' 124 Caption = 'Tempo (ticks per row)'
124 ParentColor = False 125 ParentColor = False
125 ParentFont = False 126 ParentFont = False
126 end 127 end
127 object TicksPerRowSpinEdit: TSpinEdit 128 object TicksPerRowSpinEdit: TSpinEdit
128 Left = 133 129 Left = 233
129 Height = 23 130 Height = 23
130 Hint = 'How many ticks should happen before the row changes. Higher means slower' 131 Hint = 'How many ticks should happen before the row changes. Higher means slower'
131 Top = 73 132 Top = 128
132 Width = 50 133 Width = 88
133 MaxValue = 20 134 MaxValue = 20
134 MinValue = 1 135 MinValue = 1
135 OnChange = TicksPerRowSpinEditChange 136 OnChange = TicksPerRowSpinEditChange
@@ -141,25 +142,25 @@ object frmTracker: TfrmTracker
141 end 142 end
142 object PatternTabSheet: TTabSheet 143 object PatternTabSheet: TTabSheet
143 Caption = 'Patterns' 144 Caption = 'Patterns'
144 ClientHeight = 440 145 ClientHeight = 777
145 ClientWidth = 975 146 ClientWidth = 1712
146 ParentFont = False 147 ParentFont = False
147 object Panel3: TPanel 148 object Panel3: TPanel
148 Left = 224 149 Left = 392
149 Height = 440 150 Height = 777
150 Top = 0 151 Top = 0
151 Width = 751 152 Width = 1320
152 Align = alClient 153 Align = alClient
153 ClientHeight = 440 154 ClientHeight = 777
154 ClientWidth = 751 155 ClientWidth = 1320
155 ParentFont = False 156 ParentFont = False
156 TabOrder = 0 157 TabOrder = 0
157 object HeaderControl1: THeaderControl 158 object HeaderControl1: THeaderControl
158 Left = 1 159 Left = 1
159 Height = 30 160 Height = 52
160 Hint = 'Left click to mute, right click to solo' 161 Hint = 'Left click to mute, right click to solo'
161 Top = 1 162 Top = 1
162 Width = 749 163 Width = 1318
163 DragReorder = False 164 DragReorder = False
164 Images = ImageList2 165 Images = ImageList2
165 Sections = < 166 Sections = <
@@ -167,28 +168,28 @@ object frmTracker: TfrmTracker
167 Alignment = taCenter 168 Alignment = taCenter
168 ImageIndex = 1 169 ImageIndex = 1
169 Text = 'Duty 1' 170 Text = 'Duty 1'
170 Width = 133 171 Width = 233
171 Visible = True 172 Visible = True
172 end 173 end
173 item 174 item
174 Alignment = taCenter 175 Alignment = taCenter
175 ImageIndex = 1 176 ImageIndex = 1
176 Text = 'Duty 2' 177 Text = 'Duty 2'
177 Width = 133 178 Width = 233
178 Visible = True 179 Visible = True
179 end 180 end
180 item 181 item
181 Alignment = taCenter 182 Alignment = taCenter
182 ImageIndex = 1 183 ImageIndex = 1
183 Text = 'Wave' 184 Text = 'Wave'
184 Width = 133 185 Width = 233
185 Visible = True 186 Visible = True
186 end 187 end
187 item 188 item
188 Alignment = taCenter 189 Alignment = taCenter
189 ImageIndex = 1 190 ImageIndex = 1
190 Text = 'Noise' 191 Text = 'Noise'
191 Width = 133 192 Width = 233
192 Visible = True 193 Visible = True
193 end> 194 end>
194 OnSectionClick = HeaderControl1SectionClick 195 OnSectionClick = HeaderControl1SectionClick
@@ -199,9 +200,9 @@ object frmTracker: TfrmTracker
199 end 200 end
200 object ScrollBox1: TScrollBox 201 object ScrollBox1: TScrollBox
201 Left = 1 202 Left = 1
202 Height = 408 203 Height = 723
203 Top = 31 204 Top = 53
204 Width = 749 205 Width = 1318
205 HorzScrollBar.Increment = 1 206 HorzScrollBar.Increment = 1
206 HorzScrollBar.Page = 1 207 HorzScrollBar.Page = 1
207 HorzScrollBar.Smooth = True 208 HorzScrollBar.Smooth = True
@@ -218,43 +219,43 @@ object frmTracker: TfrmTracker
218 end 219 end
219 object OrderEditStringGrid: TStringGrid 220 object OrderEditStringGrid: TStringGrid
220 Left = 0 221 Left = 0
221 Height = 440 222 Height = 777
222 Top = 0 223 Top = 0
223 Width = 224 224 Width = 392
224 Align = alLeft 225 Align = alLeft
225 AutoEdit = False 226 AutoEdit = False
226 AutoFillColumns = True 227 AutoFillColumns = True
227 Columns = < 228 Columns = <
228 item 229 item
229 Alignment = taCenter 230 Alignment = taCenter
230 MinSize = 33 231 MinSize = 58
231 MaxSize = 33 232 MaxSize = 58
232 Title.Caption = 'Dty1' 233 Title.Caption = 'Dty1'
233 Width = 34 234 Width = 61
234 end 235 end
235 item 236 item
236 Alignment = taCenter 237 Alignment = taCenter
237 MinSize = 33 238 MinSize = 58
238 MaxSize = 33 239 MaxSize = 58
239 Title.Caption = 'Dty2' 240 Title.Caption = 'Dty2'
240 Width = 34 241 Width = 61
241 end 242 end
242 item 243 item
243 Alignment = taCenter 244 Alignment = taCenter
244 MinSize = 33 245 MinSize = 58
245 MaxSize = 33 246 MaxSize = 58
246 Title.Caption = 'Wav' 247 Title.Caption = 'Wav'
247 Width = 34 248 Width = 61
248 end 249 end
249 item 250 item
250 Alignment = taCenter 251 Alignment = taCenter
251 MinSize = 33 252 MinSize = 58
252 MaxSize = 33 253 MaxSize = 58
253 Title.Caption = 'Nse' 254 Title.Caption = 'Nse'
254 Width = 37 255 Width = 63
255 end> 256 end>
256 DefaultColWidth = 17 257 DefaultColWidth = 30
257 DefaultRowHeight = 21 258 DefaultRowHeight = 37
258 ExtendedSelect = False 259 ExtendedSelect = False
259 Options = [goFixedVertLine, goFixedHorzLine, goRangeSelect, goRowMoving, goEditing, goAutoAddRows, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight] 260 Options = [goFixedVertLine, goFixedHorzLine, goRangeSelect, goRowMoving, goEditing, goAutoAddRows, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight]
260 ParentFont = False 261 ParentFont = False
@@ -273,11 +274,11 @@ object frmTracker: TfrmTracker
273 OnEditingDone = OrderEditStringGridEditingDone 274 OnEditingDone = OrderEditStringGridEditingDone
274 OnKeyDown = OrderEditStringGridKeyDown 275 OnKeyDown = OrderEditStringGridKeyDown
275 ColWidths = ( 276 ColWidths = (
276 64 277 112
277 34 278 61
278 34 279 61
279 34 280 61
280 37 281 63
281 ) 282 )
282 end 283 end
283 end 284 end
@@ -342,25 +343,25 @@ object frmTracker: TfrmTracker
342 TabOrder = 0 343 TabOrder = 0
343 object InstrumentGroupBox: TGroupBox 344 object InstrumentGroupBox: TGroupBox
344 Left = 7 345 Left = 7
345 Height = 208 346 Height = 364
346 Top = 7 347 Top = 7
347 Width = 271 348 Width = 474
348 Anchors = [] 349 Anchors = []
349 BorderSpacing.Left = 7 350 BorderSpacing.Left = 12
350 BorderSpacing.Top = 7 351 BorderSpacing.Top = 12
351 BorderSpacing.Right = 7 352 BorderSpacing.Right = 12
352 BorderSpacing.Bottom = 7 353 BorderSpacing.Bottom = 12
353 Caption = 'Instrument' 354 Caption = 'Instrument'
354 ClientHeight = 188 355 ClientHeight = 329
355 ClientWidth = 267 356 ClientWidth = 470
356 ParentFont = False 357 ParentFont = False
357 TabOrder = 0 358 TabOrder = 0
358 object InstrumentNumberSpinner: TSpinEdit 359 object InstrumentNumberSpinner: TSpinEdit
359 Left = 80 360 Left = 140
360 Height = 23 361 Height = 23
361 Hint = 'What instrument to edit' 362 Hint = 'What instrument to edit'
362 Top = 1 363 Top = 2
363 Width = 176 364 Width = 308
364 MaxValue = 15 365 MaxValue = 15
365 MinValue = 1 366 MinValue = 1
366 OnChange = InstrumentNumberSpinnerChange 367 OnChange = InstrumentNumberSpinnerChange
@@ -369,49 +370,49 @@ object frmTracker: TfrmTracker
369 Value = 1 370 Value = 1
370 end 371 end
371 object Label1: TLabel 372 object Label1: TLabel
372 Left = 8 373 Left = 14
373 Height = 15 374 Height = 15
374 Top = 8 375 Top = 14
375 Width = 58 376 Width = 58
376 Caption = 'Instrument' 377 Caption = 'Instrument'
377 ParentColor = False 378 ParentColor = False
378 ParentFont = False 379 ParentFont = False
379 end 380 end
380 object Label2: TLabel 381 object Label2: TLabel
381 Left = 8 382 Left = 14
382 Height = 15 383 Height = 15
383 Top = 34 384 Top = 60
384 Width = 32 385 Width = 32
385 Caption = 'Name' 386 Caption = 'Name'
386 ParentColor = False 387 ParentColor = False
387 ParentFont = False 388 ParentFont = False
388 end 389 end
389 object InstrumentNameEdit: TEdit 390 object InstrumentNameEdit: TEdit
390 Left = 80 391 Left = 140
391 Height = 23 392 Height = 23
392 Hint = 'The name of the instrument' 393 Hint = 'The name of the instrument'
393 Top = 26 394 Top = 46
394 Width = 176 395 Width = 308
395 OnChange = InstrumentNameEditChange 396 OnChange = InstrumentNameEditChange
396 ParentFont = False 397 ParentFont = False
397 TabOrder = 1 398 TabOrder = 1
398 end 399 end
399 object Label3: TLabel 400 object Label3: TLabel
400 Left = 8 401 Left = 14
401 Height = 15 402 Height = 15
402 Top = 61 403 Top = 107
403 Width = 24 404 Width = 24
404 Caption = 'Type' 405 Caption = 'Type'
405 ParentColor = False 406 ParentColor = False
406 ParentFont = False 407 ParentFont = False
407 end 408 end
408 object InstrumentTypeCombobox: TComboBox 409 object InstrumentTypeCombobox: TComboBox
409 Left = 80 410 Left = 140
410 Height = 23 411 Height = 38
411 Hint = 'What type of channel this instrument will be played on' 412 Hint = 'What type of channel this instrument will be played on'
412 Top = 53 413 Top = 93
413 Width = 176 414 Width = 308
414 ItemHeight = 15 415 ItemHeight = 30
415 ItemIndex = 0 416 ItemIndex = 0
416 Items.Strings = ( 417 Items.Strings = (
417 'Square' 418 'Square'
@@ -425,10 +426,10 @@ object frmTracker: TfrmTracker
425 Text = 'Square' 426 Text = 'Square'
426 end 427 end
427 object LengthEnabledCheckbox: TCheckBox 428 object LengthEnabledCheckbox: TCheckBox
428 Left = 8 429 Left = 14
429 Height = 19 430 Height = 19
430 Hint = 'Cut the sound after a certain length of time' 431 Hint = 'Cut the sound after a certain length of time'
431 Top = 84 432 Top = 147
432 Width = 57 433 Width = 57
433 Caption = 'Length' 434 Caption = 'Length'
434 OnChange = LengthEnabledCheckboxChange 435 OnChange = LengthEnabledCheckboxChange
@@ -436,40 +437,40 @@ object frmTracker: TfrmTracker
436 TabOrder = 3 437 TabOrder = 3
437 end 438 end
438 object InstrumentImportButton: TButton 439 object InstrumentImportButton: TButton
439 Left = 14 440 Left = 24
440 Height = 25 441 Height = 44
441 Top = 151 442 Top = 264
442 Width = 116 443 Width = 203
443 Caption = 'Import' 444 Caption = 'Import'
444 OnClick = InstrumentImportButtonClick 445 OnClick = InstrumentImportButtonClick
445 ParentFont = False 446 ParentFont = False
446 TabOrder = 4 447 TabOrder = 4
447 end 448 end
448 object InstrumentExportButton: TButton 449 object InstrumentExportButton: TButton
449 Left = 137 450 Left = 240
450 Height = 25 451 Height = 44
451 Top = 151 452 Top = 264
452 Width = 116 453 Width = 203
453 Caption = 'Export' 454 Caption = 'Export'
454 OnClick = InstrumentExportButtonClick 455 OnClick = InstrumentExportButtonClick
455 ParentFont = False 456 ParentFont = False
456 TabOrder = 5 457 TabOrder = 5
457 end 458 end
458 object Button1: TButton 459 object Button1: TButton
459 Left = 14 460 Left = 24
460 Height = 25 461 Height = 44
461 Top = 119 462 Top = 208
462 Width = 242 463 Width = 424
463 Caption = 'Test C-5' 464 Caption = 'Test C-5'
464 OnClick = Button1Click 465 OnClick = Button1Click
465 ParentFont = False 466 ParentFont = False
466 TabOrder = 6 467 TabOrder = 6
467 end 468 end
468 object LengthTrackbar: TTrackBar 469 object LengthTrackbar: TTrackBar
469 Left = 78 470 Left = 136
470 Height = 25 471 Height = 44
471 Top = 82 472 Top = 144
472 Width = 178 473 Width = 312
473 Max = 63 474 Max = 63
474 OnChange = LengthSpinnerChange 475 OnChange = LengthSpinnerChange
475 Position = 0 476 Position = 0
@@ -479,44 +480,44 @@ object frmTracker: TfrmTracker
479 end 480 end
480 object EnvelopeGroupBox: TGroupBox 481 object EnvelopeGroupBox: TGroupBox
481 Left = 292 482 Left = 292
482 Height = 136 483 Height = 238
483 Top = 7 484 Top = 7
484 Width = 659 485 Width = 1153
485 Anchors = [] 486 Anchors = []
486 BorderSpacing.Left = 7 487 BorderSpacing.Left = 12
487 BorderSpacing.Top = 7 488 BorderSpacing.Top = 12
488 BorderSpacing.Right = 7 489 BorderSpacing.Right = 12
489 BorderSpacing.Bottom = 7 490 BorderSpacing.Bottom = 12
490 Caption = 'Envelope' 491 Caption = 'Envelope'
491 ClientHeight = 116 492 ClientHeight = 203
492 ClientWidth = 655 493 ClientWidth = 1149
493 ParentFont = False 494 ParentFont = False
494 TabOrder = 1 495 TabOrder = 1
495 object Label4: TLabel 496 object Label4: TLabel
496 Left = 8 497 Left = 14
497 Height = 15 498 Height = 15
498 Top = 9 499 Top = 16
499 Width = 46 500 Width = 46
500 Caption = 'Start vol.' 501 Caption = 'Start vol.'
501 ParentColor = False 502 ParentColor = False
502 ParentFont = False 503 ParentFont = False
503 end 504 end
504 object Label5: TLabel 505 object Label5: TLabel
505 Left = 8 506 Left = 14
506 Height = 15 507 Height = 15
507 Top = 48 508 Top = 84
508 Width = 48 509 Width = 48
509 Caption = 'Direction' 510 Caption = 'Direction'
510 ParentColor = False 511 ParentColor = False
511 ParentFont = False 512 ParentFont = False
512 end 513 end
513 object DirectionComboBox: TComboBox 514 object DirectionComboBox: TComboBox
514 Left = 82 515 Left = 144
515 Height = 23 516 Height = 38
516 Hint = 'Whether to fade the sound in or out' 517 Hint = 'Whether to fade the sound in or out'
517 Top = 46 518 Top = 80
518 Width = 198 519 Width = 346
519 ItemHeight = 15 520 ItemHeight = 30
520 ItemIndex = 1 521 ItemIndex = 1
521 Items.Strings = ( 522 Items.Strings = (
522 'Up' 523 'Up'
@@ -529,22 +530,22 @@ object frmTracker: TfrmTracker
529 Text = 'Down' 530 Text = 'Down'
530 end 531 end
531 object Label6: TLabel 532 object Label6: TLabel
532 Left = 8 533 Left = 14
533 Height = 15 534 Height = 15
534 Top = 86 535 Top = 150
535 Width = 41 536 Width = 41
536 Caption = 'Change' 537 Caption = 'Change'
537 ParentColor = False 538 ParentColor = False
538 ParentFont = False 539 ParentFont = False
539 end 540 end
540 object Panel5: TPanel 541 object Panel5: TPanel
541 Left = 300 542 Left = 525
542 Height = 105 543 Height = 184
543 Top = 0 544 Top = 0
544 Width = 346 545 Width = 606
545 BevelOuter = bvLowered 546 BevelOuter = bvLowered
546 ClientHeight = 105 547 ClientHeight = 184
547 ClientWidth = 346 548 ClientWidth = 606
548 ParentFont = False 549 ParentFont = False
549 TabOrder = 1 550 TabOrder = 1
550 object EnvelopePaintbox: TPaintBox 551 object EnvelopePaintbox: TPaintBox
@@ -559,10 +560,10 @@ object frmTracker: TfrmTracker
559 end 560 end
560 end 561 end
561 object StartVolTrackbar: TTrackBar 562 object StartVolTrackbar: TTrackBar
562 Left = 82 563 Left = 144
563 Height = 25 564 Height = 44
564 Top = 8 565 Top = 14
565 Width = 196 566 Width = 343
566 Max = 15 567 Max = 15
567 OnChange = StartVolSpinnerChange 568 OnChange = StartVolSpinnerChange
568 Position = 0 569 Position = 0
@@ -570,10 +571,10 @@ object frmTracker: TfrmTracker
570 TabOrder = 2 571 TabOrder = 2
571 end 572 end
572 object EnvChangeTrackbar: TTrackBar 573 object EnvChangeTrackbar: TTrackBar
573 Left = 82 574 Left = 144
574 Height = 25 575 Height = 44
575 Top = 82 576 Top = 144
576 Width = 196 577 Width = 343
577 Max = 7 578 Max = 7
578 OnChange = EnvChangeSpinnerChange 579 OnChange = EnvChangeSpinnerChange
579 Position = 0 580 Position = 0
@@ -583,35 +584,35 @@ object frmTracker: TfrmTracker
583 end 584 end
584 object SquareGroupBox: TGroupBox 585 object SquareGroupBox: TGroupBox
585 Left = 7 586 Left = 7
586 Height = 169 587 Height = 296
587 Top = 229 588 Top = 229
588 Width = 319 589 Width = 558
589 Anchors = [] 590 Anchors = []
590 BorderSpacing.Left = 7 591 BorderSpacing.Left = 12
591 BorderSpacing.Top = 7 592 BorderSpacing.Top = 12
592 BorderSpacing.Right = 7 593 BorderSpacing.Right = 12
593 BorderSpacing.Bottom = 7 594 BorderSpacing.Bottom = 12
594 Caption = 'Square' 595 Caption = 'Square'
595 ClientHeight = 149 596 ClientHeight = 261
596 ClientWidth = 315 597 ClientWidth = 554
597 ParentFont = False 598 ParentFont = False
598 TabOrder = 2 599 TabOrder = 2
599 object Label7: TLabel 600 object Label7: TLabel
600 Left = 8 601 Left = 14
601 Height = 15 602 Height = 15
602 Top = 16 603 Top = 28
603 Width = 61 604 Width = 61
604 Caption = 'Sweep time' 605 Caption = 'Sweep time'
605 ParentColor = False 606 ParentColor = False
606 ParentFont = False 607 ParentFont = False
607 end 608 end
608 object SweepTimeCombobox: TComboBox 609 object SweepTimeCombobox: TComboBox
609 Left = 104 610 Left = 182
610 Height = 23 611 Height = 38
611 Hint = 'How long to sweep' 612 Hint = 'How long to sweep'
612 Top = 8 613 Top = 14
613 Width = 200 614 Width = 350
614 ItemHeight = 15 615 ItemHeight = 30
615 ItemIndex = 0 616 ItemIndex = 0
616 Items.Strings = ( 617 Items.Strings = (
617 'Off - no frequency change' 618 'Off - no frequency change'
@@ -632,12 +633,12 @@ object frmTracker: TfrmTracker
632 Text = 'Off - no frequency change' 633 Text = 'Off - no frequency change'
633 end 634 end
634 object SweepDirectionCombobox: TComboBox 635 object SweepDirectionCombobox: TComboBox
635 Left = 104 636 Left = 182
636 Height = 23 637 Height = 38
637 Hint = 'The direction of the sweep' 638 Hint = 'The direction of the sweep'
638 Top = 40 639 Top = 70
639 Width = 200 640 Width = 350
640 ItemHeight = 15 641 ItemHeight = 30
641 ItemIndex = 1 642 ItemIndex = 1
642 Items.Strings = ( 643 Items.Strings = (
643 'Up' 644 'Up'
@@ -652,39 +653,39 @@ object frmTracker: TfrmTracker
652 Text = 'Down' 653 Text = 'Down'
653 end 654 end
654 object Label8: TLabel 655 object Label8: TLabel
655 Left = 8 656 Left = 14
656 Height = 15 657 Height = 15
657 Top = 48 658 Top = 84
658 Width = 84 659 Width = 84
659 Caption = 'Sweep direction' 660 Caption = 'Sweep direction'
660 ParentColor = False 661 ParentColor = False
661 ParentFont = False 662 ParentFont = False
662 end 663 end
663 object Label9: TLabel 664 object Label9: TLabel
664 Left = 8 665 Left = 14
665 Height = 15 666 Height = 15
666 Top = 84 667 Top = 147
667 Width = 56 668 Width = 56
668 Caption = 'Sweep size' 669 Caption = 'Sweep size'
669 ParentColor = False 670 ParentColor = False
670 ParentFont = False 671 ParentFont = False
671 end 672 end
672 object Label10: TLabel 673 object Label10: TLabel
673 Left = 8 674 Left = 14
674 Height = 15 675 Height = 15
675 Top = 120 676 Top = 210
676 Width = 25 677 Width = 25
677 Caption = 'Duty' 678 Caption = 'Duty'
678 ParentColor = False 679 ParentColor = False
679 ParentFont = False 680 ParentFont = False
680 end 681 end
681 object DutyCombobox: TComboBox 682 object DutyCombobox: TComboBox
682 Left = 104 683 Left = 182
683 Height = 23 684 Height = 38
684 Hint = 'Which duty cycle to use (changes timbre of wave)' 685 Hint = 'Which duty cycle to use (changes timbre of wave)'
685 Top = 112 686 Top = 196
686 Width = 200 687 Width = 350
687 ItemHeight = 15 688 ItemHeight = 30
688 ItemIndex = 2 689 ItemIndex = 2
689 Items.Strings = ( 690 Items.Strings = (
690 '12.5%' 691 '12.5%'
@@ -701,10 +702,10 @@ object frmTracker: TfrmTracker
701 Text = '50% (square)' 702 Text = '50% (square)'
702 end 703 end
703 object SweepSizeTrackbar: TTrackBar 704 object SweepSizeTrackbar: TTrackBar
704 Left = 105 705 Left = 184
705 Height = 25 706 Height = 44
706 Top = 80 707 Top = 140
707 Width = 196 708 Width = 343
708 Max = 7 709 Max = 7
709 OnChange = SweepSizeSpinnerChange 710 OnChange = SweepSizeSpinnerChange
710 Position = 0 711 Position = 0
@@ -714,45 +715,45 @@ object frmTracker: TfrmTracker
714 end 715 end
715 object WaveGroupBox: TGroupBox 716 object WaveGroupBox: TGroupBox
716 Left = 340 717 Left = 340
717 Height = 169 718 Height = 296
718 Top = 229 719 Top = 229
719 Width = 297 720 Width = 520
720 Anchors = [] 721 Anchors = []
721 BorderSpacing.Left = 7 722 BorderSpacing.Left = 12
722 BorderSpacing.Top = 7 723 BorderSpacing.Top = 12
723 BorderSpacing.Right = 7 724 BorderSpacing.Right = 12
724 BorderSpacing.Bottom = 7 725 BorderSpacing.Bottom = 12
725 Caption = 'Wave' 726 Caption = 'Wave'
726 ClientHeight = 149 727 ClientHeight = 261
727 ClientWidth = 293 728 ClientWidth = 516
728 Enabled = False 729 Enabled = False
729 ParentFont = False 730 ParentFont = False
730 TabOrder = 3 731 TabOrder = 3
731 object Label11: TLabel 732 object Label11: TLabel
732 Left = 8 733 Left = 14
733 Height = 15 734 Height = 15
734 Top = 16 735 Top = 28
735 Width = 40 736 Width = 40
736 Caption = 'Volume' 737 Caption = 'Volume'
737 ParentColor = False 738 ParentColor = False
738 ParentFont = False 739 ParentFont = False
739 end 740 end
740 object Label12: TLabel 741 object Label12: TLabel
741 Left = 8 742 Left = 14
742 Height = 15 743 Height = 15
743 Top = 48 744 Top = 84
744 Width = 55 745 Width = 55
745 Caption = 'Waveform' 746 Caption = 'Waveform'
746 ParentColor = False 747 ParentColor = False
747 ParentFont = False 748 ParentFont = False
748 end 749 end
749 object WaveformCombobox: TComboBox 750 object WaveformCombobox: TComboBox
750 Left = 104 751 Left = 182
751 Height = 23 752 Height = 38
752 Hint = 'Which waveform is associated with this instrument' 753 Hint = 'Which waveform is associated with this instrument'
753 Top = 40 754 Top = 70
754 Width = 176 755 Width = 308
755 ItemHeight = 15 756 ItemHeight = 30
756 ItemIndex = 0 757 ItemIndex = 0
757 Items.Strings = ( 758 Items.Strings = (
758 'Wave #0' 759 'Wave #0'
@@ -779,13 +780,13 @@ object frmTracker: TfrmTracker
779 Text = 'Wave #0' 780 Text = 'Wave #0'
780 end 781 end
781 object Panel4: TPanel 782 object Panel4: TPanel
782 Left = 8 783 Left = 14
783 Height = 59 784 Height = 103
784 Top = 80 785 Top = 140
785 Width = 272 786 Width = 476
786 BevelOuter = bvLowered 787 BevelOuter = bvLowered
787 ClientHeight = 59 788 ClientHeight = 103
788 ClientWidth = 272 789 ClientWidth = 476
789 ParentFont = False 790 ParentFont = False
790 TabOrder = 1 791 TabOrder = 1
791 object WavePaintbox: TPaintBox 792 object WavePaintbox: TPaintBox
@@ -802,12 +803,12 @@ object frmTracker: TfrmTracker
802 end 803 end
803 end 804 end
804 object WaveVolumeCombobox: TComboBox 805 object WaveVolumeCombobox: TComboBox
805 Left = 104 806 Left = 182
806 Height = 23 807 Height = 38
807 Hint = 'The initial volume of the wave' 808 Hint = 'The initial volume of the wave'
808 Top = 8 809 Top = 14
809 Width = 176 810 Width = 308
810 ItemHeight = 15 811 ItemHeight = 30
811 ItemIndex = 1 812 ItemIndex = 1
812 Items.Strings = ( 813 Items.Strings = (
813 'Mute (No sound)' 814 'Mute (No sound)'
@@ -824,25 +825,25 @@ object frmTracker: TfrmTracker
824 end 825 end
825 object NoiseGroupBox: TGroupBox 826 object NoiseGroupBox: TGroupBox
826 Left = 651 827 Left = 651
827 Height = 169 828 Height = 296
828 Top = 229 829 Top = 229
829 Width = 264 830 Width = 462
830 Anchors = [] 831 Anchors = []
831 BorderSpacing.Left = 7 832 BorderSpacing.Left = 12
832 BorderSpacing.Top = 7 833 BorderSpacing.Top = 12
833 BorderSpacing.Right = 7 834 BorderSpacing.Right = 12
834 BorderSpacing.Bottom = 7 835 BorderSpacing.Bottom = 12
835 Caption = 'Noise' 836 Caption = 'Noise'
836 ClientHeight = 149 837 ClientHeight = 261
837 ClientWidth = 260 838 ClientWidth = 458
838 Enabled = False 839 Enabled = False
839 ParentFont = False 840 ParentFont = False
840 TabOrder = 4 841 TabOrder = 4
841 object SevenBitCounterCheckbox: TCheckBox 842 object SevenBitCounterCheckbox: TCheckBox
842 Left = 8 843 Left = 14
843 Height = 19 844 Height = 19
844 Hint = 'Select LFSR width. When checked, output will sound like a tone rather than noise' 845 Hint = 'Select LFSR width. When checked, output will sound like a tone rather than noise'
845 Top = 80 846 Top = 140
846 Width = 215 847 Width = 215
847 Alignment = taLeftJustify 848 Alignment = taLeftJustify
848 Caption = '7 bit counter (more tone-like output)' 849 Caption = '7 bit counter (more tone-like output)'
@@ -851,39 +852,39 @@ object frmTracker: TfrmTracker
851 TabOrder = 0 852 TabOrder = 0
852 end 853 end
853 object Label14: TLabel 854 object Label14: TLabel
854 Left = 9 855 Left = 16
855 Height = 15 856 Height = 15
856 Top = 51 857 Top = 89
857 Width = 71 858 Width = 71
858 Caption = 'Dividing ratio' 859 Caption = 'Dividing ratio'
859 ParentColor = False 860 ParentColor = False
860 ParentFont = False 861 ParentFont = False
861 end 862 end
862 object RandomizeNoiseButton: TButton 863 object RandomizeNoiseButton: TButton
863 Left = 9 864 Left = 16
864 Height = 25 865 Height = 44
865 Hint = 'Randomize the noise instrument parameters to get a random drum-like sound' 866 Hint = 'Randomize the noise instrument parameters to get a random drum-like sound'
866 Top = 112 867 Top = 196
867 Width = 242 868 Width = 424
868 Caption = 'Randomize' 869 Caption = 'Randomize'
869 OnClick = RandomizeNoiseButtonClick 870 OnClick = RandomizeNoiseButtonClick
870 ParentFont = False 871 ParentFont = False
871 TabOrder = 1 872 TabOrder = 1
872 end 873 end
873 object Label25: TLabel 874 object Label25: TLabel
874 Left = 9 875 Left = 16
875 Height = 15 876 Height = 15
876 Top = 16 877 Top = 28
877 Width = 86 878 Width = 86
878 Caption = 'Shift clock mask' 879 Caption = 'Shift clock mask'
879 ParentColor = False 880 ParentColor = False
880 ParentFont = False 881 ParentFont = False
881 end 882 end
882 object ShiftClockTrackbar: TTrackBar 883 object ShiftClockTrackbar: TTrackBar
883 Left = 110 884 Left = 192
884 Height = 25 885 Height = 44
885 Top = 16 886 Top = 28
886 Width = 146 887 Width = 256
887 Max = 15 888 Max = 15
888 OnChange = ShiftClockSpinnerChange 889 OnChange = ShiftClockSpinnerChange
889 Position = 0 890 Position = 0
@@ -891,10 +892,10 @@ object frmTracker: TfrmTracker
891 TabOrder = 2 892 TabOrder = 2
892 end 893 end
893 object DivRatioTrackbar: TTrackBar 894 object DivRatioTrackbar: TTrackBar
894 Left = 110 895 Left = 192
895 Height = 25 896 Height = 44
896 Top = 51 897 Top = 89
897 Width = 146 898 Width = 256
898 Max = 7 899 Max = 7
899 OnChange = DivRatioSpinnerChange 900 OnChange = DivRatioSpinnerChange
900 Position = 0 901 Position = 0
@@ -918,7 +919,7 @@ object frmTracker: TfrmTracker
918 Width = 975 919 Width = 975
919 Align = alBottom 920 Align = alBottom
920 Anchors = [akTop, akLeft, akRight, akBottom] 921 Anchors = [akTop, akLeft, akRight, akBottom]
921 BorderSpacing.Top = 13 922 BorderSpacing.Top = 23
922 ParentFont = False 923 ParentFont = False
923 OnMouseDown = WaveEditPaintBoxMouseDown 924 OnMouseDown = WaveEditPaintBoxMouseDown
924 OnMouseMove = WaveEditPaintBoxMouseMove 925 OnMouseMove = WaveEditPaintBoxMouseMove
@@ -926,51 +927,51 @@ object frmTracker: TfrmTracker
926 OnPaint = WaveEditPaintBoxPaint 927 OnPaint = WaveEditPaintBoxPaint
927 end 928 end
928 object WaveEditGroupBox: TGroupBox 929 object WaveEditGroupBox: TGroupBox
929 Left = 8 930 Left = 14
930 Height = 139 931 Height = 243
931 Top = 8 932 Top = 14
932 Width = 173 933 Width = 303
933 Caption = 'Wave Editor' 934 Caption = 'Wave Editor'
934 ClientHeight = 119 935 ClientHeight = 208
935 ClientWidth = 169 936 ClientWidth = 299
936 ParentFont = False 937 ParentFont = False
937 TabOrder = 0 938 TabOrder = 0
938 object Label20: TLabel 939 object Label20: TLabel
939 Left = 16 940 Left = 28
940 Height = 15 941 Height = 15
941 Top = 16 942 Top = 28
942 Width = 29 943 Width = 29
943 Caption = 'Wave' 944 Caption = 'Wave'
944 ParentColor = False 945 ParentColor = False
945 ParentFont = False 946 ParentFont = False
946 end 947 end
947 object WaveEditNumberSpinner: TSpinEdit 948 object WaveEditNumberSpinner: TSpinEdit
948 Left = 64 949 Left = 112
949 Height = 23 950 Height = 23
950 Top = 8 951 Top = 14
951 Width = 80 952 Width = 140
952 MaxValue = 15 953 MaxValue = 15
953 OnChange = WaveEditNumberSpinnerChange 954 OnChange = WaveEditNumberSpinnerChange
954 ParentFont = False 955 ParentFont = False
955 TabOrder = 0 956 TabOrder = 0
956 end 957 end
957 object ImportWaveButton: TButton 958 object ImportWaveButton: TButton
958 Left = 16 959 Left = 28
959 Height = 25 960 Height = 44
960 Hint = 'Import a wave' 961 Hint = 'Import a wave'
961 Top = 48 962 Top = 84
962 Width = 147 963 Width = 257
963 Caption = 'Import' 964 Caption = 'Import'
964 OnClick = ImportWaveButtonClick 965 OnClick = ImportWaveButtonClick
965 ParentFont = False 966 ParentFont = False
966 TabOrder = 1 967 TabOrder = 1
967 end 968 end
968 object ExportWaveButton: TButton 969 object ExportWaveButton: TButton
969 Left = 16 970 Left = 28
970 Height = 25 971 Height = 44
971 Hint = 'Export a wave' 972 Hint = 'Export a wave'
972 Top = 80 973 Top = 140
973 Width = 147 974 Width = 257
974 Caption = 'Export' 975 Caption = 'Export'
975 OnClick = ExportWaveButtonClick 976 OnClick = ExportWaveButtonClick
976 ParentFont = False 977 ParentFont = False
@@ -993,15 +994,15 @@ object frmTracker: TfrmTracker
993 Width = 975 994 Width = 975
994 Align = alBottom 995 Align = alBottom
995 Anchors = [akTop, akLeft, akRight, akBottom] 996 Anchors = [akTop, akLeft, akRight, akBottom]
996 BorderSpacing.Top = 13 997 BorderSpacing.Top = 23
997 OnChange = CommentMemoChange 998 OnChange = CommentMemoChange
998 ParentFont = False 999 ParentFont = False
999 TabOrder = 0 1000 TabOrder = 0
1000 end 1001 end
1001 object Label17: TLabel 1002 object Label17: TLabel
1002 Left = 8 1003 Left = 14
1003 Height = 15 1004 Height = 15
1004 Top = 8 1005 Top = 14
1005 Width = 333 1006 Width = 333
1006 Caption = 'This is an area to write comments for anyone editing your tune.' 1007 Caption = 'This is an area to write comments for anyone editing your tune.'
1007 ParentColor = False 1008 ParentColor = False
@@ -1021,17 +1022,17 @@ object frmTracker: TfrmTracker
1021 Top = 243 1022 Top = 243
1022 Width = 1712 1023 Width = 1712
1023 Align = alBottom 1024 Align = alBottom
1024 BorderSpacing.Top = 13 1025 BorderSpacing.Top = 23
1025 Anchors = [akTop, akLeft, akRight, akBottom] 1026 Anchors = [akTop, akLeft, akRight, akBottom]
1026 Enabled = False 1027 Enabled = False
1027 Font.Height = -13 1028 Font.Height = -23
1028 Font.Name = 'Courier New' 1029 Font.Name = 'Courier New'
1029 Font.Pitch = fpFixed 1030 Font.Pitch = fpFixed
1030 Font.Quality = fqNonAntialiased 1031 Font.Quality = fqNonAntialiased
1031 ParentColor = False 1032 ParentColor = False
1032 ParentFont = False 1033 ParentFont = False
1033 TabOrder = 0 1034 TabOrder = 0
1034 Gutter.Width = 57 1035 Gutter.Width = 100
1035 Gutter.MouseActions = <> 1036 Gutter.MouseActions = <>
1036 RightGutter.Width = 0 1037 RightGutter.Width = 0
1037 RightGutter.MouseActions = <> 1038 RightGutter.MouseActions = <>
@@ -1483,11 +1484,11 @@ object frmTracker: TfrmTracker
1483 LineHighlightColor.Foreground = clNone 1484 LineHighlightColor.Foreground = clNone
1484 inline SynLeftGutterPartList1: TSynGutterPartList 1485 inline SynLeftGutterPartList1: TSynGutterPartList
1485 object SynGutterMarks1: TSynGutterMarks 1486 object SynGutterMarks1: TSynGutterMarks
1486 Width = 24 1487 Width = 42
1487 MouseActions = <> 1488 MouseActions = <>
1488 end 1489 end
1489 object SynGutterLineNumber1: TSynGutterLineNumber 1490 object SynGutterLineNumber1: TSynGutterLineNumber
1490 Width = 17 1491 Width = 29
1491 MouseActions = <> 1492 MouseActions = <>
1492 MarkupInfo.Background = clBtnFace 1493 MarkupInfo.Background = clBtnFace
1493 MarkupInfo.Foreground = clNone 1494 MarkupInfo.Foreground = clNone
@@ -1497,18 +1498,19 @@ object frmTracker: TfrmTracker
1497 LeadingZeros = False 1498 LeadingZeros = False
1498 end 1499 end
1499 object SynGutterChanges1: TSynGutterChanges 1500 object SynGutterChanges1: TSynGutterChanges
1500 Width = 4 1501 Width = 7
1501 MouseActions = <> 1502 MouseActions = <>
1502 ModifiedColor = 59900 1503 ModifiedColor = 59900
1503 SavedColor = clGreen 1504 SavedColor = clGreen
1504 end 1505 end
1505 object SynGutterSeparator1: TSynGutterSeparator 1506 object SynGutterSeparator1: TSynGutterSeparator
1506 Width = 2 1507 Width = 4
1507 MouseActions = <> 1508 MouseActions = <>
1508 MarkupInfo.Background = clWhite 1509 MarkupInfo.Background = clWhite
1509 MarkupInfo.Foreground = clGray 1510 MarkupInfo.Foreground = clGray
1510 end 1511 end
1511 object SynGutterCodeFolding1: TSynGutterCodeFolding 1512 object SynGutterCodeFolding1: TSynGutterCodeFolding
1513 Width = 18
1512 MouseActions = <> 1514 MouseActions = <>
1513 MarkupInfo.Background = clNone 1515 MarkupInfo.Background = clNone
1514 MarkupInfo.Foreground = clGray 1516 MarkupInfo.Foreground = clGray
@@ -1518,19 +1520,19 @@ object frmTracker: TfrmTracker
1518 end 1520 end
1519 end 1521 end
1520 object Label18: TLabel 1522 object Label18: TLabel
1521 Left = 8 1523 Left = 14
1522 Height = 30 1524 Height = 30
1523 Top = 16 1525 Top = 28
1524 Width = 71 1526 Width = 71
1525 Caption = 'Routine' 1527 Caption = 'Routine'
1526 ParentColor = False 1528 ParentColor = False
1527 ParentFont = False 1529 ParentFont = False
1528 end 1530 end
1529 object RoutineNumberSpinner: TSpinEdit 1531 object RoutineNumberSpinner: TSpinEdit
1530 Left = 64 1532 Left = 112
1531 Height = 38 1533 Height = 38
1532 Top = 8 1534 Top = 14
1533 Width = 176 1535 Width = 308
1534 Enabled = False 1536 Enabled = False
1535 MaxValue = 15 1537 MaxValue = 15
1536 MinValue = 1 1538 MinValue = 1
@@ -1539,9 +1541,9 @@ object frmTracker: TfrmTracker
1539 Value = 1 1541 Value = 1
1540 end 1542 end
1541 object Label19: TLabel 1543 object Label19: TLabel
1542 Left = 8 1544 Left = 14
1543 Height = 150 1545 Height = 150
1544 Top = 40 1546 Top = 70
1545 Width = 891 1547 Width = 891
1546 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!' 1548 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!'
1547 ParentColor = False 1549 ParentColor = False
@@ -1552,22 +1554,22 @@ object frmTracker: TfrmTracker
1552 end 1554 end
1553 object Panel2: TPanel 1555 object Panel2: TPanel
1554 Left = 0 1556 Left = 0
1555 Height = 178 1557 Height = 312
1556 Top = 25 1558 Top = 41
1557 Width = 1181 1559 Width = 2067
1558 Align = alTop 1560 Align = alTop
1559 BevelOuter = bvNone 1561 BevelOuter = bvNone
1560 ChildSizing.HorizontalSpacing = 10 1562 ChildSizing.HorizontalSpacing = 10
1561 ClientHeight = 178 1563 ClientHeight = 312
1562 ClientWidth = 1181 1564 ClientWidth = 2067
1563 ParentFont = False 1565 ParentFont = False
1564 TabOrder = 3 1566 TabOrder = 3
1565 object LEDMeter1: TLEDMeter 1567 object LEDMeter1: TLEDMeter
1566 AnchorSideRight.Side = asrBottom 1568 AnchorSideRight.Side = asrBottom
1567 Left = 736 1569 Left = 1288
1568 Height = 178 1570 Height = 312
1569 Top = 0 1571 Top = 0
1570 Width = 50 1572 Width = 88
1571 Anchors = [akTop, akRight] 1573 Anchors = [akTop, akRight]
1572 BevelStyle = bvLowered 1574 BevelStyle = bvLowered
1573 Colors.Border = clBlack 1575 Colors.Border = clBlack
@@ -1588,10 +1590,10 @@ object frmTracker: TfrmTracker
1588 end 1590 end
1589 object LEDMeter2: TLEDMeter 1591 object LEDMeter2: TLEDMeter
1590 AnchorSideRight.Side = asrBottom 1592 AnchorSideRight.Side = asrBottom
1591 Left = 686 1593 Left = 1200
1592 Height = 178 1594 Height = 312
1593 Top = 0 1595 Top = 0
1594 Width = 50 1596 Width = 88
1595 Anchors = [akTop, akRight] 1597 Anchors = [akTop, akRight]
1596 BevelStyle = bvLowered 1598 BevelStyle = bvLowered
1597 Colors.Border = clBlack 1599 Colors.Border = clBlack
@@ -1611,49 +1613,49 @@ object frmTracker: TfrmTracker
1611 Section3Value = 80 1613 Section3Value = 80
1612 end 1614 end
1613 object Panel6: TPanel 1615 object Panel6: TPanel
1614 Left = 787 1616 Left = 1377
1615 Height = 178 1617 Height = 312
1616 Top = 0 1618 Top = 0
1617 Width = 394 1619 Width = 690
1618 Align = alRight 1620 Align = alRight
1619 AutoSize = True 1621 AutoSize = True
1620 BevelOuter = bvNone 1622 BevelOuter = bvNone
1621 ClientHeight = 178 1623 ClientHeight = 312
1622 ClientWidth = 394 1624 ClientWidth = 690
1623 ParentFont = False 1625 ParentFont = False
1624 TabOrder = 0 1626 TabOrder = 0
1625 object Duty1Visualizer: TPaintBox 1627 object Duty1Visualizer: TPaintBox
1626 Left = 0 1628 Left = 0
1627 Height = 89 1629 Height = 156
1628 Top = 0 1630 Top = 0
1629 Width = 197 1631 Width = 345
1630 ParentFont = False 1632 ParentFont = False
1631 OnClick = Duty1VisualizerClick 1633 OnClick = Duty1VisualizerClick
1632 OnPaint = Duty1VisualizerPaint 1634 OnPaint = Duty1VisualizerPaint
1633 end 1635 end
1634 object Duty2Visualizer: TPaintBox 1636 object Duty2Visualizer: TPaintBox
1635 Left = 197 1637 Left = 345
1636 Height = 89 1638 Height = 156
1637 Top = 0 1639 Top = 0
1638 Width = 197 1640 Width = 345
1639 ParentFont = False 1641 ParentFont = False
1640 OnClick = Duty1VisualizerClick 1642 OnClick = Duty1VisualizerClick
1641 OnPaint = Duty2VisualizerPaint 1643 OnPaint = Duty2VisualizerPaint
1642 end 1644 end
1643 object WaveVisualizer: TPaintBox 1645 object WaveVisualizer: TPaintBox
1644 Left = 0 1646 Left = 0
1645 Height = 89 1647 Height = 156
1646 Top = 87 1648 Top = 152
1647 Width = 197 1649 Width = 345
1648 ParentFont = False 1650 ParentFont = False
1649 OnClick = Duty1VisualizerClick 1651 OnClick = Duty1VisualizerClick
1650 OnPaint = WaveVisualizerPaint 1652 OnPaint = WaveVisualizerPaint
1651 end 1653 end
1652 object NoiseVisualizer: TPaintBox 1654 object NoiseVisualizer: TPaintBox
1653 Left = 197 1655 Left = 345
1654 Height = 89 1656 Height = 156
1655 Top = 87 1657 Top = 152
1656 Width = 197 1658 Width = 345
1657 ParentFont = False 1659 ParentFont = False
1658 OnClick = Duty1VisualizerClick 1660 OnClick = Duty1VisualizerClick
1659 OnPaint = NoiseVisualizerPaint 1661 OnPaint = NoiseVisualizerPaint
@@ -1662,19 +1664,19 @@ object frmTracker: TfrmTracker
1662 end 1664 end
1663 object StatusBar1: TStatusBar 1665 object StatusBar1: TStatusBar
1664 Left = 0 1666 Left = 0
1665 Height = 23 1667 Height = 43
1666 Top = 671 1668 Top = 1173
1667 Width = 1181 1669 Width = 2067
1668 AutoHint = True 1670 AutoHint = True
1669 Panels = < 1671 Panels = <
1670 item 1672 item
1671 Width = 467 1673 Width = 817
1672 end 1674 end
1673 item 1675 item
1674 Width = 200 1676 Width = 350
1675 end 1677 end
1676 item 1678 item
1677 Width = 200 1679 Width = 350
1678 end> 1680 end>
1679 ParentFont = False 1681 ParentFont = False
1680 ParentShowHint = False 1682 ParentShowHint = False
@@ -1683,9 +1685,9 @@ object frmTracker: TfrmTracker
1683 end 1685 end
1684 object ToolBar1: TToolBar 1686 object ToolBar1: TToolBar
1685 Left = 0 1687 Left = 0
1686 Height = 25 1688 Height = 41
1687 Top = 0 1689 Top = 0
1688 Width = 1181 1690 Width = 2067
1689 AutoSize = True 1691 AutoSize = True
1690 Caption = 'ToolBar1' 1692 Caption = 'ToolBar1'
1691 EdgeBorders = [ebBottom] 1693 EdgeBorders = [ebBottom]
@@ -1702,7 +1704,7 @@ object frmTracker: TfrmTracker
1702 ParentShowHint = False 1704 ParentShowHint = False
1703 end 1705 end
1704 object PanicToolButton: TToolButton 1706 object PanicToolButton: TToolButton
1705 Left = 557 1707 Left = 851
1706 Hint = 'Stops all sound output' 1708 Hint = 'Stops all sound output'
1707 Top = 0 1709 Top = 0
1708 AutoSize = True 1710 AutoSize = True
@@ -1713,21 +1715,21 @@ object frmTracker: TfrmTracker
1713 ShowHint = True 1715 ShowHint = True
1714 end 1716 end
1715 object ToolButton2: TToolButton 1717 object ToolButton2: TToolButton
1716 Left = 147 1718 Left = 221
1717 Top = 0 1719 Top = 0
1718 Caption = '▶️ Cursor' 1720 Caption = '▶️ Cursor'
1719 ImageIndex = 75 1721 ImageIndex = 75
1720 OnClick = ToolButton2Click 1722 OnClick = ToolButton2Click
1721 end 1723 end
1722 object ToolButton4: TToolButton 1724 object ToolButton4: TToolButton
1723 Left = 221 1725 Left = 331
1724 Top = 0 1726 Top = 0
1725 Caption = '⏹ Stop' 1727 Caption = '⏹ Stop'
1726 ImageIndex = 73 1728 ImageIndex = 73
1727 OnClick = ToolButton4Click 1729 OnClick = ToolButton4Click
1728 end 1730 end
1729 object ExportGBButton: TToolButton 1731 object ExportGBButton: TToolButton
1730 Left = 291 1732 Left = 442
1731 Top = 0 1733 Top = 0
1732 AutoSize = True 1734 AutoSize = True
1733 Caption = 'Export .GB' 1735 Caption = 'Export .GB'
@@ -1735,67 +1737,67 @@ object frmTracker: TfrmTracker
1735 OnClick = ExportGBButtonClick 1737 OnClick = ExportGBButtonClick
1736 end 1738 end
1737 object ToolButton8: TToolButton 1739 object ToolButton8: TToolButton
1738 Left = 79 1740 Left = 120
1739 Height = 22 1741 Height = 39
1740 Top = 0 1742 Top = 0
1741 Caption = 'ToolButton8' 1743 Caption = 'ToolButton8'
1742 Style = tbsDivider 1744 Style = tbsDivider
1743 end 1745 end
1744 object ToolButton6: TToolButton 1746 object ToolButton6: TToolButton
1745 Left = 286 1747 Left = 433
1746 Height = 22 1748 Height = 39
1747 Top = 0 1749 Top = 0
1748 Caption = 'ToolButton6' 1750 Caption = 'ToolButton6'
1749 Style = tbsDivider 1751 Style = tbsDivider
1750 end 1752 end
1751 object ToolButton7: TToolButton 1753 object ToolButton7: TToolButton
1752 Left = 1122 1754 Left = 1827
1753 Height = 22 1755 Height = 39
1754 Top = 0 1756 Top = 0
1755 Caption = 'ToolButton7' 1757 Caption = 'ToolButton7'
1756 Style = tbsSeparator 1758 Style = tbsSeparator
1757 end 1759 end
1758 object OctaveSpinEdit: TSpinEdit 1760 object OctaveSpinEdit: TSpinEdit
1759 Left = 663 1761 Left = 1018
1760 Height = 23 1762 Height = 38
1761 Top = 0 1763 Top = 0
1762 Width = 90 1764 Width = 158
1763 MaxValue = 5 1765 MaxValue = 5
1764 OnChange = OctaveSpinEditChange 1766 OnChange = OctaveSpinEditChange
1765 ParentFont = False 1767 ParentFont = False
1766 TabOrder = 0 1768 TabOrder = 0
1767 end 1769 end
1768 object ToolButton9: TToolButton 1770 object ToolButton9: TToolButton
1769 Left = 612 1771 Left = 927
1770 Height = 22 1772 Height = 39
1771 Top = 0 1773 Top = 0
1772 Caption = 'ToolButton9' 1774 Caption = 'ToolButton9'
1773 Style = tbsSeparator 1775 Style = tbsSeparator
1774 end 1776 end
1775 object Label22: TLabel 1777 object Label22: TLabel
1776 Left = 620 1778 Left = 941
1777 Height = 15 1779 Height = 30
1778 Top = 0 1780 Top = 0
1779 Width = 43 1781 Width = 77
1780 Caption = 'Octave ' 1782 Caption = 'Octave '
1781 ParentColor = False 1783 ParentColor = False
1782 ParentFont = False 1784 ParentFont = False
1783 end 1785 end
1784 object Label23: TLabel 1786 object Label23: TLabel
1785 Left = 753 1787 Left = 1176
1786 Height = 15 1788 Height = 30
1787 Top = 0 1789 Top = 0
1788 Width = 70 1790 Width = 125
1789 Caption = ' Instrument ' 1791 Caption = ' Instrument '
1790 ParentColor = False 1792 ParentColor = False
1791 ParentFont = False 1793 ParentFont = False
1792 end 1794 end
1793 object InstrumentComboBox: TComboBox 1795 object InstrumentComboBox: TComboBox
1794 Left = 823 1796 Left = 1301
1795 Height = 23 1797 Height = 38
1796 Top = 0 1798 Top = 0
1797 Width = 214 1799 Width = 374
1798 ItemHeight = 15 1800 ItemHeight = 30
1799 ItemIndex = 0 1801 ItemIndex = 0
1800 Items.Strings = ( 1802 Items.Strings = (
1801 '(no instrument)' 1803 '(no instrument)'
@@ -1822,47 +1824,47 @@ object frmTracker: TfrmTracker
1822 Text = '(no instrument)' 1824 Text = '(no instrument)'
1823 end 1825 end
1824 object Label24: TLabel 1826 object Label24: TLabel
1825 Left = 1037 1827 Left = 1675
1826 Height = 15 1828 Height = 30
1827 Top = 0 1829 Top = 0
1828 Width = 35 1830 Width = 64
1829 Caption = ' Step ' 1831 Caption = ' Step '
1830 ParentColor = False 1832 ParentColor = False
1831 ParentFont = False 1833 ParentFont = False
1832 end 1834 end
1833 object StepSpinEdit: TSpinEdit 1835 object StepSpinEdit: TSpinEdit
1834 Left = 1072 1836 Left = 1739
1835 Height = 23 1837 Height = 38
1836 Top = 0 1838 Top = 0
1837 Width = 50 1839 Width = 88
1838 MaxValue = 63 1840 MaxValue = 63
1839 OnChange = StepSpinEditChange 1841 OnChange = StepSpinEditChange
1840 ParentFont = False 1842 ParentFont = False
1841 TabOrder = 2 1843 TabOrder = 2
1842 end 1844 end
1843 object ToolButton3: TToolButton 1845 object ToolButton3: TToolButton
1844 Left = 84 1846 Left = 129
1845 Top = 0 1847 Top = 0
1846 Caption = '▶️ Start' 1848 Caption = '▶️ Start'
1847 ImageIndex = 74 1849 ImageIndex = 74
1848 OnClick = ToolButton3Click 1850 OnClick = ToolButton3Click
1849 end 1851 end
1850 object ExportGBSButton: TToolButton 1852 object ExportGBSButton: TToolButton
1851 Left = 372 1853 Left = 564
1852 Top = 0 1854 Top = 0
1853 Caption = 'Export .GBS' 1855 Caption = 'Export .GBS'
1854 ImageIndex = 76 1856 ImageIndex = 76
1855 OnClick = ExportGBSButtonClick 1857 OnClick = ExportGBSButtonClick
1856 end 1858 end
1857 object ToolButton5: TToolButton 1859 object ToolButton5: TToolButton
1858 Left = 552 1860 Left = 842
1859 Height = 22 1861 Height = 39
1860 Top = 0 1862 Top = 0
1861 Caption = 'ToolButton5' 1863 Caption = 'ToolButton5'
1862 Style = tbsDivider 1864 Style = tbsDivider
1863 end 1865 end
1864 object ToolButton10: TToolButton 1866 object ToolButton10: TToolButton
1865 Left = 459 1867 Left = 697
1866 Top = 0 1868 Top = 0
1867 Caption = 'Render Song' 1869 Caption = 'Render Song'
1868 ImageIndex = 77 1870 ImageIndex = 77
@@ -1871,8 +1873,8 @@ object frmTracker: TfrmTracker
1871 end 1873 end
1872 object MainMenu1: TMainMenu 1874 object MainMenu1: TMainMenu
1873 Images = ImageList1 1875 Images = ImageList1
1874 left = 544 1876 left = 952
1875 top = 37 1877 top = 65
1876 object MenuItem1: TMenuItem 1878 object MenuItem1: TMenuItem
1877 Caption = 'File' 1879 Caption = 'File'
1878 object MenuItem12: TMenuItem 1880 object MenuItem12: TMenuItem
@@ -1974,8 +1976,8 @@ object frmTracker: TfrmTracker
1974 end 1976 end
1975 object ActionList1: TActionList 1977 object ActionList1: TActionList
1976 Images = ImageList1 1978 Images = ImageList1
1977 left = 640 1979 left = 1120
1978 top = 37 1980 top = 65
1979 object FileOpen1: TFileOpen 1981 object FileOpen1: TFileOpen
1980 Category = 'File' 1982 Category = 'File'
1981 Caption = '&Open ...' 1983 Caption = '&Open ...'
@@ -2079,8 +2081,8 @@ object frmTracker: TfrmTracker
2079 end 2081 end
2080 end 2082 end
2081 object ImageList1: TImageList 2083 object ImageList1: TImageList
2082 left = 306 2084 left = 536
2083 top = 41 2085 top = 72
2084 Bitmap = { 2086 Bitmap = {
2085 4C694E0000001000000010000000000000000000000000000000000000000000 2087 4C694E0000001000000010000000000000000000000000000000000000000000
2086 0000000000000000000000000000000000000000000000000000000000000000 2088 0000000000000000000000000000000000000000000000000000000000000000
@@ -4583,17 +4585,17 @@ object frmTracker: TfrmTracker
4583 end 4585 end
4584 object OpenDialog1: TOpenDialog 4586 object OpenDialog1: TOpenDialog
4585 Filter = 'hUGETracker Instruments|*.ugi' 4587 Filter = 'hUGETracker Instruments|*.ugi'
4586 left = 590 4588 left = 1033
4587 top = 91 4589 top = 159
4588 end 4590 end
4589 object InstrumentSaveDialog: TSaveDialog 4591 object InstrumentSaveDialog: TSaveDialog
4590 Filter = 'hUGETracker Instruments|*.ugi' 4592 Filter = 'hUGETracker Instruments|*.ugi'
4591 left = 494 4593 left = 865
4592 top = 41 4594 top = 72
4593 end 4595 end
4594 object OrderEditPopup: TPopupMenu 4596 object OrderEditPopup: TPopupMenu
4595 left = 366 4597 left = 641
4596 top = 46 4598 top = 81
4597 object MenuItem17: TMenuItem 4599 object MenuItem17: TMenuItem
4598 Caption = 'Insert new row' 4600 Caption = 'Insert new row'
4599 Hint = 'Insert a new row filled with brand new patterns' 4601 Hint = 'Insert a new row filled with brand new patterns'
@@ -4624,8 +4626,8 @@ object frmTracker: TfrmTracker
4624 object ImageList2: TImageList 4626 object ImageList2: TImageList
4625 Height = 32 4627 Height = 32
4626 Width = 32 4628 Width = 32
4627 left = 302 4629 left = 529
4628 top = 114 4630 top = 200
4629 Bitmap = { 4631 Bitmap = {
4630 4C69020000002000000020000000000000000000000000000000000000000000 4632 4C69020000002000000020000000000000000000000000000000000000000000
4631 0000000000000000000000000000000000000000000000000000000000000000 4633 0000000000000000000000000000000000000000000000000000000000000000
@@ -4890,33 +4892,33 @@ object frmTracker: TfrmTracker
4890 Enabled = False 4892 Enabled = False
4891 Interval = 200 4893 Interval = 200
4892 OnTimer = OscilloscopeUpdateTimerTimer 4894 OnTimer = OscilloscopeUpdateTimerTimer
4893 left = 434 4895 left = 760
4894 top = 41 4896 top = 72
4895 end 4897 end
4896 object GBSSaveDialog: TSaveDialog 4898 object GBSSaveDialog: TSaveDialog
4897 Filter = 'Gameboy Soundtrack|*.gbs' 4899 Filter = 'Gameboy Soundtrack|*.gbs'
4898 left = 590 4900 left = 1033
4899 top = 37 4901 top = 65
4900 end 4902 end
4901 object WaveSaveDialog: TSaveDialog 4903 object WaveSaveDialog: TSaveDialog
4902 Filter = 'hUGETracker Waves|*.ugw' 4904 Filter = 'hUGETracker Waves|*.ugw'
4903 left = 544 4905 left = 952
4904 top = 96 4906 top = 168
4905 end 4907 end
4906 object GBSaveDialog: TSaveDialog 4908 object GBSaveDialog: TSaveDialog
4907 Filter = 'Gameboy ROM|*.GB' 4909 Filter = 'Gameboy ROM|*.GB'
4908 left = 434 4910 left = 760
4909 top = 101 4911 top = 177
4910 end 4912 end
4911 object NoteHaltTimer: TTimer 4913 object NoteHaltTimer: TTimer
4912 Enabled = False 4914 Enabled = False
4913 OnTimer = NoteHaltTimerTimer 4915 OnTimer = NoteHaltTimerTimer
4914 left = 366 4916 left = 641
4915 top = 114 4917 top = 200
4916 end 4918 end
4917 object TrackerGridPopup: TPopupMenu 4919 object TrackerGridPopup: TPopupMenu
4918 left = 640 4920 left = 1120
4919 top = 91 4921 top = 159
4920 object TrackerPopupEditEffect: TMenuItem 4922 object TrackerPopupEditEffect: TMenuItem
4921 Caption = 'Edit effect ...' 4923 Caption = 'Edit effect ...'
4922 OnClick = TrackerPopupEditEffectClick 4924 OnClick = TrackerPopupEditEffectClick
@@ -5009,7 +5011,7 @@ object frmTracker: TfrmTracker
5009 object WavSaveDialog: TSaveDialog 5011 object WavSaveDialog: TSaveDialog
5010 DefaultExt = '.wav' 5012 DefaultExt = '.wav'
5011 Filter = 'Wave files|*.wav' 5013 Filter = 'Wave files|*.wav'
5012 left = 232 5014 left = 406
5013 top = 46 5015 top = 81
5014 end 5016 end
5015 end 5017 end