Commit eddf79e

Nick committed on
Couple of kabcorp's requests
commit eddf79e1e7cbdde76212d82b829c1c65f94e955f parent 3948fd7
5 changed files +555−470
ModifiedhUGETracker.lpi +1−1
@@ -143,7 +143,7 @@
143 </Target> 143 </Target>
144 <SearchPaths> 144 <SearchPaths>
145 <IncludeFiles Value="CPU;Sound;Global;$(ProjOutDir)"/> 145 <IncludeFiles Value="CPU;Sound;Global;$(ProjOutDir)"/>
146 <Libraries Value="\usr\local\lib\"/> 146 <Libraries Value="\usr\local\lib"/>
147 <OtherUnitFiles Value="CPU;Sound;Global;Pascal-SDL-2-Headers"/> 147 <OtherUnitFiles Value="CPU;Sound;Global;Pascal-SDL-2-Headers"/>
148 <UnitOutputDirectory Value="lib\Production\$(TargetCPU)-$(TargetOS)"/> 148 <UnitOutputDirectory Value="lib\Production\$(TargetCPU)-$(TargetOS)"/>
149 </SearchPaths> 149 </SearchPaths>
ModifiedhUGETracker.lpr +0−1
@@ -66,7 +66,6 @@ begin
66 Writeln(StdErr, '[ERROR] Couldn''t load Pixelite!!!'); 66 Writeln(StdErr, '[ERROR] Couldn''t load Pixelite!!!');
67 67
68 PangoFcFontMapConfigChanged(PangoCairoFontMapGetDefault); 68 PangoFcFontMapConfigChanged(PangoCairoFontMapGetDefault);
69
70 {$endif} 69 {$endif}
71 70
72 {$ifdef PRODUCTION} 71 {$ifdef PRODUCTION}
Modifiedsong.pas +3−0
@@ -437,6 +437,9 @@ begin
437 S.OrderMatrix[I, 0] := I; 437 S.OrderMatrix[I, 0] := I;
438 end; 438 end;
439 439
440 for I := Low(TRoutineBank) to High(TRoutineBank) do
441 S.Routines[I] := '';
442
440 S.TicksPerRow := 7; 443 S.TicksPerRow := 7;
441 S.Patterns := TPatternMap.Create; 444 S.Patterns := TPatternMap.Create;
442 end; 445 end;
Modifiedtracker.lfm +531−461
@@ -1,12 +1,13 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 1536 2 Left = 814
3 Height = 654 3 Height = 1144
4 Top = 406 4 Top = 197
5 Width = 1232 5 Width = 2156
6 AllowDropFiles = True 6 AllowDropFiles = True
7 Caption = 'hUGETracker' 7 Caption = 'hUGETracker'
8 ClientHeight = 634 8 ClientHeight = 1110
9 ClientWidth = 1232 9 ClientWidth = 2156
10 DesignTimePPI = 168
10 KeyPreview = True 11 KeyPreview = True
11 Menu = MainMenu1 12 Menu = MainMenu1
12 OnCloseQuery = FormCloseQuery 13 OnCloseQuery = FormCloseQuery
@@ -20,9 +21,9 @@ object frmTracker: TfrmTracker
20 LCLVersion = '2.0.12.0' 21 LCLVersion = '2.0.12.0'
21 object TreeView1: TTreeView 22 object TreeView1: TTreeView
22 Left = 0 23 Left = 0
23 Height = 522 24 Height = 914
24 Top = 89 25 Top = 153
25 Width = 193 26 Width = 338
26 Align = alLeft 27 Align = alLeft
27 ParentFont = False 28 ParentFont = False
28 ReadOnly = True 29 ReadOnly = True
@@ -40,102 +41,102 @@ object frmTracker: TfrmTracker
40 } 41 }
41 end 42 end
42 object Splitter1: TSplitter 43 object Splitter1: TSplitter
43 Left = 193 44 Left = 338
44 Height = 522 45 Height = 914
45 Top = 89 46 Top = 153
46 Width = 5 47 Width = 9
47 end 48 end
48 object Panel1: TPanel 49 object Panel1: TPanel
49 Left = 198 50 Left = 347
50 Height = 522 51 Height = 914
51 Top = 89 52 Top = 153
52 Width = 1034 53 Width = 1809
53 Align = alClient 54 Align = alClient
54 BevelOuter = bvNone 55 BevelOuter = bvNone
55 ClientHeight = 522 56 ClientHeight = 914
56 ClientWidth = 1034 57 ClientWidth = 1809
57 ParentFont = False 58 ParentFont = False
58 TabOrder = 2 59 TabOrder = 2
59 object PageControl1: TPageControl 60 object PageControl1: TPageControl
60 Left = 0 61 Left = 0
61 Height = 522 62 Height = 914
62 Top = 0 63 Top = 0
63 Width = 1034 64 Width = 1809
64 ActivePage = GeneralTabSheet 65 ActivePage = InstrumentTabSheet
65 Align = alClient 66 Align = alClient
66 ParentFont = False 67 ParentFont = False
67 TabIndex = 0 68 TabIndex = 2
68 TabOrder = 0 69 TabOrder = 0
69 object GeneralTabSheet: TTabSheet 70 object GeneralTabSheet: TTabSheet
70 Caption = 'General' 71 Caption = 'General'
71 ClientHeight = 494 72 ClientHeight = 871
72 ClientWidth = 1026 73 ClientWidth = 1801
73 ParentFont = False 74 ParentFont = False
74 object SongInformationGroupbox: TGroupBox 75 object SongInformationGroupbox: TGroupBox
75 Left = 8 76 Left = 14
76 Height = 136 77 Height = 238
77 Top = 8 78 Top = 14
78 Width = 305 79 Width = 534
79 Caption = 'Song information' 80 Caption = 'Song information'
80 ClientHeight = 116 81 ClientHeight = 203
81 ClientWidth = 301 82 ClientWidth = 530
82 ParentFont = False 83 ParentFont = False
83 TabOrder = 0 84 TabOrder = 0
84 object Label15: TLabel 85 object Label15: TLabel
85 Left = 8 86 Left = 14
86 Height = 15 87 Height = 30
87 Top = 16 88 Top = 28
88 Width = 27 89 Width = 47
89 Caption = 'Song' 90 Caption = 'Song'
90 ParentColor = False 91 ParentColor = False
91 ParentFont = False 92 ParentFont = False
92 end 93 end
93 object Label16: TLabel 94 object Label16: TLabel
94 Left = 7 95 Left = 12
95 Height = 15 96 Height = 30
96 Top = 48 97 Top = 84
97 Width = 28 98 Width = 49
98 Caption = 'Artist' 99 Caption = 'Artist'
99 ParentColor = False 100 ParentColor = False
100 ParentFont = False 101 ParentFont = False
101 end 102 end
102 object SongEdit: TEdit 103 object SongEdit: TEdit
103 Left = 56 104 Left = 98
104 Height = 23 105 Height = 38
105 Hint = 'The name of your composition' 106 Hint = 'The name of your composition'
106 Top = 8 107 Top = 14
107 Width = 216 108 Width = 378
108 MaxLength = 255 109 MaxLength = 255
109 OnChange = SongEditChange 110 OnChange = SongEditChange
110 ParentFont = False 111 ParentFont = False
111 TabOrder = 0 112 TabOrder = 0
112 end 113 end
113 object ArtistEdit: TEdit 114 object ArtistEdit: TEdit
114 Left = 56 115 Left = 98
115 Height = 23 116 Height = 38
116 Hint = 'Your name or handle' 117 Hint = 'Your name or handle'
117 Top = 40 118 Top = 70
118 Width = 216 119 Width = 378
119 MaxLength = 255 120 MaxLength = 255
120 OnChange = ArtistEditChange 121 OnChange = ArtistEditChange
121 ParentFont = False 122 ParentFont = False
122 TabOrder = 1 123 TabOrder = 1
123 end 124 end
124 object Label21: TLabel 125 object Label21: TLabel
125 Left = 8 126 Left = 14
126 Height = 15 127 Height = 30
127 Top = 78 128 Top = 136
128 Width = 114 129 Width = 197
129 Caption = 'Tempo (ticks per row)' 130 Caption = 'Tempo (ticks per row)'
130 ParentColor = False 131 ParentColor = False
131 ParentFont = False 132 ParentFont = False
132 end 133 end
133 object TicksPerRowSpinEdit: TSpinEdit 134 object TicksPerRowSpinEdit: TSpinEdit
134 Left = 133 135 Left = 233
135 Height = 23 136 Height = 38
136 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'
137 Top = 73 138 Top = 128
138 Width = 50 139 Width = 88
139 MaxValue = 20 140 MaxValue = 20
140 MinValue = 1 141 MinValue = 1
141 OnChange = TicksPerRowSpinEditChange 142 OnChange = TicksPerRowSpinEditChange
@@ -147,59 +148,59 @@ object frmTracker: TfrmTracker
147 end 148 end
148 object PatternTabSheet: TTabSheet 149 object PatternTabSheet: TTabSheet
149 Caption = 'Patterns' 150 Caption = 'Patterns'
150 ClientHeight = 493 151 ClientHeight = 871
151 ClientWidth = 1026 152 ClientWidth = 1801
152 ParentFont = False 153 ParentFont = False
153 object Panel3: TPanel 154 object Panel3: TPanel
154 Left = 224 155 Left = 392
155 Height = 493 156 Height = 871
156 Top = 0 157 Top = 0
157 Width = 802 158 Width = 1409
158 Align = alClient 159 Align = alClient
159 ClientHeight = 493 160 ClientHeight = 871
160 ClientWidth = 802 161 ClientWidth = 1409
161 ParentFont = False 162 ParentFont = False
162 TabOrder = 0 163 TabOrder = 0
163 object HeaderControl1: THeaderControl 164 object HeaderControl1: THeaderControl
164 Left = 1 165 Left = 1
165 Height = 30 166 Height = 52
166 Hint = 'Left click to mute, right click to solo' 167 Hint = 'Left click to mute, right click to solo'
167 Top = 1 168 Top = 1
168 Width = 800 169 Width = 1407
169 DragReorder = False 170 DragReorder = False
170 Images = ImageList2 171 Images = ImageList2
171 Sections = < 172 Sections = <
172 item 173 item
173 Alignment = taLeftJustify 174 Alignment = taLeftJustify
174 Width = 32 175 Width = 56
175 Visible = True 176 Visible = True
176 end 177 end
177 item 178 item
178 Alignment = taCenter 179 Alignment = taCenter
179 ImageIndex = 1 180 ImageIndex = 1
180 Text = 'Duty 1' 181 Text = 'Duty 1'
181 Width = 133 182 Width = 233
182 Visible = True 183 Visible = True
183 end 184 end
184 item 185 item
185 Alignment = taCenter 186 Alignment = taCenter
186 ImageIndex = 1 187 ImageIndex = 1
187 Text = 'Duty 2' 188 Text = 'Duty 2'
188 Width = 133 189 Width = 233
189 Visible = True 190 Visible = True
190 end 191 end
191 item 192 item
192 Alignment = taCenter 193 Alignment = taCenter
193 ImageIndex = 1 194 ImageIndex = 1
194 Text = 'Wave' 195 Text = 'Wave'
195 Width = 133 196 Width = 233
196 Visible = True 197 Visible = True
197 end 198 end
198 item 199 item
199 Alignment = taCenter 200 Alignment = taCenter
200 ImageIndex = 1 201 ImageIndex = 1
201 Text = 'Noise' 202 Text = 'Noise'
202 Width = 133 203 Width = 233
203 Visible = True 204 Visible = True
204 end> 205 end>
205 OnSectionClick = HeaderControl1SectionClick 206 OnSectionClick = HeaderControl1SectionClick
@@ -210,34 +211,33 @@ object frmTracker: TfrmTracker
210 end 211 end
211 object ScrollBox1: TScrollBox 212 object ScrollBox1: TScrollBox
212 Left = 1 213 Left = 1
213 Height = 461 214 Height = 817
214 Top = 31 215 Top = 53
215 Width = 800 216 Width = 1407
216 HorzScrollBar.Increment = 3 217 HorzScrollBar.Increment = 5
217 HorzScrollBar.Page = 32 218 HorzScrollBar.Page = 56
218 HorzScrollBar.Smooth = True 219 HorzScrollBar.Smooth = True
219 HorzScrollBar.Tracking = True 220 HorzScrollBar.Tracking = True
220 VertScrollBar.Increment = 5 221 VertScrollBar.Page = 88
221 VertScrollBar.Page = 50
222 VertScrollBar.Smooth = True 222 VertScrollBar.Smooth = True
223 VertScrollBar.Tracking = True 223 VertScrollBar.Tracking = True
224 Align = alClient 224 Align = alClient
225 BorderStyle = bsNone 225 BorderStyle = bsNone
226 ClientHeight = 461 226 ClientHeight = 817
227 ClientWidth = 800 227 ClientWidth = 1407
228 ParentFont = False 228 ParentFont = False
229 TabOrder = 1 229 TabOrder = 1
230 OnMouseWheelDown = ScrollBox1MouseWheelDown 230 OnMouseWheelDown = ScrollBox1MouseWheelDown
231 OnMouseWheelUp = ScrollBox1MouseWheelUp 231 OnMouseWheelUp = ScrollBox1MouseWheelUp
232 object RowNumberStringGrid: TStringGrid 232 object RowNumberStringGrid: TStringGrid
233 Left = 0 233 Left = 0
234 Height = 461 234 Height = 817
235 Top = 0 235 Top = 0
236 Width = 32 236 Width = 56
237 Align = alLeft 237 Align = alLeft
238 BorderStyle = bsNone 238 BorderStyle = bsNone
239 ColCount = 1 239 ColCount = 1
240 DefaultColWidth = 32 240 DefaultColWidth = 56
241 Enabled = False 241 Enabled = False
242 ParentFont = False 242 ParentFont = False
243 RowCount = 64 243 RowCount = 64
@@ -248,43 +248,43 @@ object frmTracker: TfrmTracker
248 end 248 end
249 object OrderEditStringGrid: TStringGrid 249 object OrderEditStringGrid: TStringGrid
250 Left = 0 250 Left = 0
251 Height = 493 251 Height = 871
252 Top = 0 252 Top = 0
253 Width = 224 253 Width = 392
254 Align = alLeft 254 Align = alLeft
255 AutoEdit = False 255 AutoEdit = False
256 AutoFillColumns = True 256 AutoFillColumns = True
257 Columns = < 257 Columns = <
258 item 258 item
259 Alignment = taCenter 259 Alignment = taCenter
260 MinSize = 33 260 MinSize = 58
261 MaxSize = 33 261 MaxSize = 58
262 Title.Caption = 'Dty1' 262 Title.Caption = 'Dty1'
263 Width = 34 263 Width = 61
264 end 264 end
265 item 265 item
266 Alignment = taCenter 266 Alignment = taCenter
267 MinSize = 33 267 MinSize = 58
268 MaxSize = 33 268 MaxSize = 58
269 Title.Caption = 'Dty2' 269 Title.Caption = 'Dty2'
270 Width = 34 270 Width = 61
271 end 271 end
272 item 272 item
273 Alignment = taCenter 273 Alignment = taCenter
274 MinSize = 33 274 MinSize = 58
275 MaxSize = 33 275 MaxSize = 58
276 Title.Caption = 'Wav' 276 Title.Caption = 'Wav'
277 Width = 34 277 Width = 61
278 end 278 end
279 item 279 item
280 Alignment = taCenter 280 Alignment = taCenter
281 MinSize = 33 281 MinSize = 58
282 MaxSize = 33 282 MaxSize = 58
283 Title.Caption = 'Nse' 283 Title.Caption = 'Nse'
284 Width = 37 284 Width = 63
285 end> 285 end>
286 DefaultColWidth = 17 286 DefaultColWidth = 30
287 DefaultRowHeight = 21 287 DefaultRowHeight = 37
288 ExtendedSelect = False 288 ExtendedSelect = False
289 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goRangeSelect, goRowMoving, goEditing, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight] 289 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goRangeSelect, goRowMoving, goEditing, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight]
290 ParentFont = False 290 ParentFont = False
@@ -303,18 +303,18 @@ object frmTracker: TfrmTracker
303 OnKeyDown = OrderEditStringGridKeyDown 303 OnKeyDown = OrderEditStringGridKeyDown
304 OnValidateEntry = OrderEditStringGridValidateEntry 304 OnValidateEntry = OrderEditStringGridValidateEntry
305 ColWidths = ( 305 ColWidths = (
306 64 306 112
307 34 307 61
308 34 308 61
309 34 309 61
310 37 310 63
311 ) 311 )
312 end 312 end
313 end 313 end
314 object InstrumentTabSheet: TTabSheet 314 object InstrumentTabSheet: TTabSheet
315 Caption = 'Instruments' 315 Caption = 'Instruments'
316 ClientHeight = 493 316 ClientHeight = 871
317 ClientWidth = 1026 317 ClientWidth = 1801
318 ParentFont = False 318 ParentFont = False
319 object PaintBox1: TPaintBox 319 object PaintBox1: TPaintBox
320 AnchorSideTop.Control = FlowPanel1 320 AnchorSideTop.Control = FlowPanel1
@@ -323,8 +323,8 @@ object frmTracker: TfrmTracker
323 Left = 0 323 Left = 0
324 Height = 0 324 Height = 0
325 Hint = 'Preview of how the resulting waveform will look with envelope applied' 325 Hint = 'Preview of how the resulting waveform will look with envelope applied'
326 Top = 493 326 Top = 871
327 Width = 1026 327 Width = 1801
328 Align = alClient 328 Align = alClient
329 Color = clBlack 329 Color = clBlack
330 ParentColor = False 330 ParentColor = False
@@ -334,9 +334,9 @@ object frmTracker: TfrmTracker
334 end 334 end
335 object FlowPanel1: TFlowPanel 335 object FlowPanel1: TFlowPanel
336 Left = 0 336 Left = 0
337 Height = 675 337 Height = 1180
338 Top = 0 338 Top = 0
339 Width = 1026 339 Width = 1801
340 Align = alTop 340 Align = alTop
341 AutoSize = True 341 AutoSize = True
342 BevelOuter = bvNone 342 BevelOuter = bvNone
@@ -371,26 +371,26 @@ object frmTracker: TfrmTracker
371 ParentFont = False 371 ParentFont = False
372 TabOrder = 0 372 TabOrder = 0
373 object InstrumentGroupBox: TGroupBox 373 object InstrumentGroupBox: TGroupBox
374 Left = 7 374 Left = 12
375 Height = 241 375 Height = 422
376 Top = 7 376 Top = 12
377 Width = 271 377 Width = 490
378 Anchors = [] 378 Anchors = []
379 BorderSpacing.Left = 7 379 BorderSpacing.Left = 12
380 BorderSpacing.Top = 7 380 BorderSpacing.Top = 12
381 BorderSpacing.Right = 7 381 BorderSpacing.Right = 12
382 BorderSpacing.Bottom = 7 382 BorderSpacing.Bottom = 12
383 Caption = 'Instrument' 383 Caption = 'Instrument'
384 ClientHeight = 221 384 ClientHeight = 387
385 ClientWidth = 267 385 ClientWidth = 486
386 ParentFont = False 386 ParentFont = False
387 TabOrder = 0 387 TabOrder = 0
388 object InstrumentNumberSpinner: TSpinEdit 388 object InstrumentNumberSpinner: TSpinEdit
389 Left = 80 389 Left = 140
390 Height = 23 390 Height = 38
391 Hint = 'What instrument to edit' 391 Hint = 'What instrument to edit'
392 Top = 38 392 Top = 66
393 Width = 176 393 Width = 327
394 MaxValue = 15 394 MaxValue = 15
395 MinValue = 1 395 MinValue = 1
396 OnChange = InstrumentNumberSpinnerChange 396 OnChange = InstrumentNumberSpinnerChange
@@ -399,51 +399,51 @@ object frmTracker: TfrmTracker
399 Value = 1 399 Value = 1
400 end 400 end
401 object Label1: TLabel 401 object Label1: TLabel
402 Left = 8 402 Left = 14
403 Height = 15 403 Height = 30
404 Top = 46 404 Top = 80
405 Width = 58 405 Width = 101
406 Caption = 'Instrument' 406 Caption = 'Instrument'
407 ParentColor = False 407 ParentColor = False
408 ParentFont = False 408 ParentFont = False
409 end 409 end
410 object Label2: TLabel 410 object Label2: TLabel
411 Left = 8 411 Left = 14
412 Height = 15 412 Height = 30
413 Top = 78 413 Top = 136
414 Width = 32 414 Width = 56
415 Caption = 'Name' 415 Caption = 'Name'
416 ParentColor = False 416 ParentColor = False
417 ParentFont = False 417 ParentFont = False
418 end 418 end
419 object InstrumentNameEdit: TEdit 419 object InstrumentNameEdit: TEdit
420 Left = 80 420 Left = 140
421 Height = 23 421 Height = 38
422 Hint = 'The name of the instrument' 422 Hint = 'The name of the instrument'
423 Top = 70 423 Top = 122
424 Width = 176 424 Width = 327
425 MaxLength = 255 425 MaxLength = 255
426 OnChange = InstrumentNameEditChange 426 OnChange = InstrumentNameEditChange
427 ParentFont = False 427 ParentFont = False
428 TabOrder = 1 428 TabOrder = 1
429 end 429 end
430 object Label3: TLabel 430 object Label3: TLabel
431 Left = 8 431 Left = 14
432 Height = 15 432 Height = 30
433 Top = 16 433 Top = 28
434 Width = 44 434 Width = 80
435 Caption = 'Channel' 435 Caption = 'Channel'
436 Font.Style = [fsBold] 436 Font.Style = [fsBold]
437 ParentColor = False 437 ParentColor = False
438 ParentFont = False 438 ParentFont = False
439 end 439 end
440 object InstrumentTypeCombobox: TComboBox 440 object InstrumentTypeCombobox: TComboBox
441 Left = 78 441 Left = 384
442 Height = 23 442 Height = 38
443 Hint = 'What type of channel this instrument will be played on' 443 Hint = 'What type of channel this instrument will be played on'
444 Top = 8 444 Top = 14
445 Width = 178 445 Width = 331
446 ItemHeight = 15 446 ItemHeight = 30
447 ItemIndex = 0 447 ItemIndex = 0
448 Items.Strings = ( 448 Items.Strings = (
449 'Square' 449 'Square'
@@ -457,52 +457,53 @@ object frmTracker: TfrmTracker
457 Text = 'Square' 457 Text = 'Square'
458 end 458 end
459 object LengthEnabledCheckbox: TCheckBox 459 object LengthEnabledCheckbox: TCheckBox
460 Left = 12 460 Left = 21
461 Height = 19 461 Height = 34
462 Hint = 'Cut the sound after a certain length of time' 462 Hint = 'Cut the sound after a certain length of time'
463 Top = 118 463 Top = 206
464 Width = 57 464 Width = 98
465 Caption = 'Length' 465 Caption = 'Length'
466 OnChange = LengthEnabledCheckboxChange 466 OnChange = LengthEnabledCheckboxChange
467 ParentFont = False 467 ParentFont = False
468 TabOrder = 3 468 TabOrder = 3
469 end 469 end
470 object InstrumentImportButton: TButton 470 object InstrumentImportButton: TButton
471 Left = 12 471 Left = 21
472 Height = 25 472 Height = 44
473 Top = 184 473 Top = 322
474 Width = 116 474 Width = 203
475 Caption = 'Import' 475 Caption = 'Import'
476 OnClick = InstrumentImportButtonClick 476 OnClick = InstrumentImportButtonClick
477 ParentFont = False 477 ParentFont = False
478 TabOrder = 4 478 TabOrder = 4
479 end 479 end
480 object InstrumentExportButton: TButton 480 object InstrumentExportButton: TButton
481 Left = 138 481 Left = 261
482 Height = 25 482 Height = 44
483 Top = 184 483 Top = 322
484 Width = 116 484 Width = 203
485 Caption = 'Export' 485 Caption = 'Export'
486 OnClick = InstrumentExportButtonClick 486 OnClick = InstrumentExportButtonClick
487 ParentFont = False 487 ParentFont = False
488 TabOrder = 5 488 TabOrder = 5
489 end 489 end
490 object Button1: TButton 490 object TestOctave5Button: TButton
491 Left = 12 491 Tag = 5
492 Height = 25 492 Left = 248
493 Height = 44
493 Hint = 'Test out the instrument with a C-5 note' 494 Hint = 'Test out the instrument with a C-5 note'
494 Top = 152 495 Top = 256
495 Width = 242 496 Width = 48
496 Caption = 'Test C-5' 497 Caption = '5'
497 OnClick = Button1Click 498 OnClick = TestOctaveButtonClick
498 ParentFont = False 499 ParentFont = False
499 TabOrder = 6 500 TabOrder = 6
500 end 501 end
501 object LengthTrackbar: TTrackBar 502 object LengthTrackbar: TTrackBar
502 Left = 76 503 Left = 133
503 Height = 25 504 Height = 44
504 Top = 112 505 Top = 196
505 Width = 178 506 Width = 331
506 Max = 63 507 Max = 63
507 OnChange = LengthSpinnerChange 508 OnChange = LengthSpinnerChange
508 Position = 0 509 Position = 0
@@ -510,47 +511,115 @@ object frmTracker: TfrmTracker
510 ParentFont = False 511 ParentFont = False
511 TabOrder = 7 512 TabOrder = 7
512 end 513 end
514 object Label14: TLabel
515 Left = 21
516 Height = 30
517 Top = 266
518 Width = 108
519 Caption = 'Test octave:'
520 ParentColor = False
521 end
522 object TestOctave5Button1: TButton
523 Tag = 4
524 Left = 192
525 Height = 44
526 Hint = 'Test out the instrument with a C-5 note'
527 Top = 256
528 Width = 48
529 Caption = '4'
530 OnClick = TestOctaveButtonClick
531 ParentFont = False
532 TabOrder = 8
533 end
534 object TestOctave5Button2: TButton
535 Tag = 3
536 Left = 136
537 Height = 44
538 Hint = 'Test out the instrument with a C-5 note'
539 Top = 256
540 Width = 48
541 Caption = '3'
542 OnClick = TestOctaveButtonClick
543 ParentFont = False
544 TabOrder = 9
545 end
546 object TestOctave5Button3: TButton
547 Tag = 6
548 Left = 304
549 Height = 44
550 Hint = 'Test out the instrument with a C-5 note'
551 Top = 256
552 Width = 48
553 Caption = '6'
554 OnClick = TestOctaveButtonClick
555 ParentFont = False
556 TabOrder = 10
557 end
558 object TestOctave5Button4: TButton
559 Tag = 7
560 Left = 360
561 Height = 44
562 Hint = 'Test out the instrument with a C-5 note'
563 Top = 256
564 Width = 48
565 Caption = '7'
566 OnClick = TestOctaveButtonClick
567 ParentFont = False
568 TabOrder = 11
569 end
570 object TestOctave5Button5: TButton
571 Tag = 8
572 Left = 416
573 Height = 44
574 Hint = 'Test out the instrument with a C-5 note'
575 Top = 256
576 Width = 48
577 Caption = '8'
578 OnClick = TestOctaveButtonClick
579 ParentFont = False
580 TabOrder = 12
581 end
513 end 582 end
514 object EnvelopeGroupBox: TGroupBox 583 object EnvelopeGroupBox: TGroupBox
515 Left = 292 584 Left = 526
516 Height = 136 585 Height = 238
517 Top = 7 586 Top = 12
518 Width = 582 587 Width = 1018
519 Anchors = [] 588 Anchors = []
520 BorderSpacing.Left = 7 589 BorderSpacing.Left = 12
521 BorderSpacing.Top = 7 590 BorderSpacing.Top = 12
522 BorderSpacing.Right = 7 591 BorderSpacing.Right = 12
523 BorderSpacing.Bottom = 7 592 BorderSpacing.Bottom = 12
524 Caption = 'Envelope' 593 Caption = 'Envelope'
525 ClientHeight = 116 594 ClientHeight = 203
526 ClientWidth = 578 595 ClientWidth = 1014
527 ParentFont = False 596 ParentFont = False
528 TabOrder = 1 597 TabOrder = 1
529 object Label4: TLabel 598 object Label4: TLabel
530 Left = 8 599 Left = 14
531 Height = 15 600 Height = 30
532 Top = 9 601 Top = 16
533 Width = 46 602 Width = 80
534 Caption = 'Start vol.' 603 Caption = 'Start vol.'
535 ParentColor = False 604 ParentColor = False
536 ParentFont = False 605 ParentFont = False
537 end 606 end
538 object Label5: TLabel 607 object Label5: TLabel
539 Left = 8 608 Left = 14
540 Height = 15 609 Height = 30
541 Top = 48 610 Top = 84
542 Width = 48 611 Width = 84
543 Caption = 'Direction' 612 Caption = 'Direction'
544 ParentColor = False 613 ParentColor = False
545 ParentFont = False 614 ParentFont = False
546 end 615 end
547 object DirectionComboBox: TComboBox 616 object DirectionComboBox: TComboBox
548 Left = 82 617 Left = 144
549 Height = 23 618 Height = 38
550 Hint = 'Whether to fade the sound in or out' 619 Hint = 'Whether to fade the sound in or out'
551 Top = 46 620 Top = 80
552 Width = 198 621 Width = 346
553 ItemHeight = 15 622 ItemHeight = 30
554 ItemIndex = 1 623 ItemIndex = 1
555 Items.Strings = ( 624 Items.Strings = (
556 'Up' 625 'Up'
@@ -563,40 +632,40 @@ object frmTracker: TfrmTracker
563 Text = 'Down' 632 Text = 'Down'
564 end 633 end
565 object Label6: TLabel 634 object Label6: TLabel
566 Left = 8 635 Left = 14
567 Height = 15 636 Height = 30
568 Top = 86 637 Top = 150
569 Width = 41 638 Width = 71
570 Caption = 'Change' 639 Caption = 'Change'
571 ParentColor = False 640 ParentColor = False
572 ParentFont = False 641 ParentFont = False
573 end 642 end
574 object Panel5: TPanel 643 object Panel5: TPanel
575 Left = 300 644 Left = 525
576 Height = 104 645 Height = 182
577 Top = 0 646 Top = 0
578 Width = 270 647 Width = 472
579 BevelOuter = bvLowered 648 BevelOuter = bvLowered
580 ClientHeight = 104 649 ClientHeight = 182
581 ClientWidth = 270 650 ClientWidth = 472
582 ParentFont = False 651 ParentFont = False
583 TabOrder = 1 652 TabOrder = 1
584 object EnvelopePaintbox: TPaintBox 653 object EnvelopePaintbox: TPaintBox
585 Left = 1 654 Left = 1
586 Height = 102 655 Height = 180
587 Hint = 'Preview of the volume envelope' 656 Hint = 'Preview of the volume envelope'
588 Top = 1 657 Top = 1
589 Width = 268 658 Width = 470
590 Align = alClient 659 Align = alClient
591 ParentFont = False 660 ParentFont = False
592 OnPaint = EnvelopePaintboxPaint 661 OnPaint = EnvelopePaintboxPaint
593 end 662 end
594 end 663 end
595 object StartVolTrackbar: TTrackBar 664 object StartVolTrackbar: TTrackBar
596 Left = 82 665 Left = 144
597 Height = 25 666 Height = 44
598 Top = 8 667 Top = 14
599 Width = 196 668 Width = 343
600 Max = 15 669 Max = 15
601 OnChange = StartVolSpinnerChange 670 OnChange = StartVolSpinnerChange
602 Position = 0 671 Position = 0
@@ -604,10 +673,10 @@ object frmTracker: TfrmTracker
604 TabOrder = 2 673 TabOrder = 2
605 end 674 end
606 object EnvChangeTrackbar: TTrackBar 675 object EnvChangeTrackbar: TTrackBar
607 Left = 82 676 Left = 144
608 Height = 25 677 Height = 44
609 Top = 82 678 Top = 144
610 Width = 196 679 Width = 343
611 Max = 7 680 Max = 7
612 OnChange = EnvChangeSpinnerChange 681 OnChange = EnvChangeSpinnerChange
613 Position = 0 682 Position = 0
@@ -616,36 +685,36 @@ object frmTracker: TfrmTracker
616 end 685 end
617 end 686 end
618 object SquareGroupBox: TGroupBox 687 object SquareGroupBox: TGroupBox
619 Left = 7 688 Left = 12
620 Height = 169 689 Height = 296
621 Top = 262 690 Top = 458
622 Width = 319 691 Width = 558
623 Anchors = [] 692 Anchors = []
624 BorderSpacing.Left = 7 693 BorderSpacing.Left = 12
625 BorderSpacing.Top = 7 694 BorderSpacing.Top = 12
626 BorderSpacing.Right = 7 695 BorderSpacing.Right = 12
627 BorderSpacing.Bottom = 7 696 BorderSpacing.Bottom = 12
628 Caption = 'Square' 697 Caption = 'Square'
629 ClientHeight = 149 698 ClientHeight = 261
630 ClientWidth = 315 699 ClientWidth = 554
631 ParentFont = False 700 ParentFont = False
632 TabOrder = 2 701 TabOrder = 2
633 object Label7: TLabel 702 object Label7: TLabel
634 Left = 8 703 Left = 14
635 Height = 15 704 Height = 30
636 Top = 16 705 Top = 28
637 Width = 61 706 Width = 107
638 Caption = 'Sweep time' 707 Caption = 'Sweep time'
639 ParentColor = False 708 ParentColor = False
640 ParentFont = False 709 ParentFont = False
641 end 710 end
642 object SweepTimeCombobox: TComboBox 711 object SweepTimeCombobox: TComboBox
643 Left = 104 712 Left = 182
644 Height = 23 713 Height = 38
645 Hint = 'How long to sweep' 714 Hint = 'How long to sweep'
646 Top = 8 715 Top = 14
647 Width = 200 716 Width = 350
648 ItemHeight = 15 717 ItemHeight = 30
649 ItemIndex = 0 718 ItemIndex = 0
650 Items.Strings = ( 719 Items.Strings = (
651 'Off - no frequency change' 720 'Off - no frequency change'
@@ -666,12 +735,12 @@ object frmTracker: TfrmTracker
666 Text = 'Off - no frequency change' 735 Text = 'Off - no frequency change'
667 end 736 end
668 object SweepDirectionCombobox: TComboBox 737 object SweepDirectionCombobox: TComboBox
669 Left = 104 738 Left = 182
670 Height = 23 739 Height = 38
671 Hint = 'The direction of the sweep' 740 Hint = 'The direction of the sweep'
672 Top = 40 741 Top = 70
673 Width = 200 742 Width = 350
674 ItemHeight = 15 743 ItemHeight = 30
675 ItemIndex = 1 744 ItemIndex = 1
676 Items.Strings = ( 745 Items.Strings = (
677 'Up' 746 'Up'
@@ -686,39 +755,39 @@ object frmTracker: TfrmTracker
686 Text = 'Down' 755 Text = 'Down'
687 end 756 end
688 object Label8: TLabel 757 object Label8: TLabel
689 Left = 8 758 Left = 14
690 Height = 15 759 Height = 30
691 Top = 48 760 Top = 84
692 Width = 84 761 Width = 147
693 Caption = 'Sweep direction' 762 Caption = 'Sweep direction'
694 ParentColor = False 763 ParentColor = False
695 ParentFont = False 764 ParentFont = False
696 end 765 end
697 object Label9: TLabel 766 object Label9: TLabel
698 Left = 8 767 Left = 14
699 Height = 15 768 Height = 30
700 Top = 84 769 Top = 147
701 Width = 56 770 Width = 101
702 Caption = 'Sweep size' 771 Caption = 'Sweep size'
703 ParentColor = False 772 ParentColor = False
704 ParentFont = False 773 ParentFont = False
705 end 774 end
706 object Label10: TLabel 775 object Label10: TLabel
707 Left = 8 776 Left = 14
708 Height = 15 777 Height = 30
709 Top = 120 778 Top = 210
710 Width = 25 779 Width = 44
711 Caption = 'Duty' 780 Caption = 'Duty'
712 ParentColor = False 781 ParentColor = False
713 ParentFont = False 782 ParentFont = False
714 end 783 end
715 object DutyCombobox: TComboBox 784 object DutyCombobox: TComboBox
716 Left = 104 785 Left = 182
717 Height = 23 786 Height = 38
718 Hint = 'Which duty cycle to use (changes timbre of wave)' 787 Hint = 'Which duty cycle to use (changes timbre of wave)'
719 Top = 112 788 Top = 196
720 Width = 200 789 Width = 350
721 ItemHeight = 15 790 ItemHeight = 30
722 ItemIndex = 2 791 ItemIndex = 2
723 Items.Strings = ( 792 Items.Strings = (
724 '12.5%' 793 '12.5%'
@@ -735,10 +804,10 @@ object frmTracker: TfrmTracker
735 Text = '50% (square)' 804 Text = '50% (square)'
736 end 805 end
737 object SweepSizeTrackbar: TTrackBar 806 object SweepSizeTrackbar: TTrackBar
738 Left = 105 807 Left = 184
739 Height = 25 808 Height = 44
740 Top = 80 809 Top = 140
741 Width = 196 810 Width = 343
742 Max = 7 811 Max = 7
743 OnChange = SweepSizeSpinnerChange 812 OnChange = SweepSizeSpinnerChange
744 Position = 0 813 Position = 0
@@ -747,45 +816,45 @@ object frmTracker: TfrmTracker
747 end 816 end
748 end 817 end
749 object WaveGroupBox: TGroupBox 818 object WaveGroupBox: TGroupBox
750 Left = 340 819 Left = 594
751 Height = 169 820 Height = 296
752 Top = 262 821 Top = 458
753 Width = 297 822 Width = 520
754 Anchors = [] 823 Anchors = []
755 BorderSpacing.Left = 7 824 BorderSpacing.Left = 12
756 BorderSpacing.Top = 7 825 BorderSpacing.Top = 12
757 BorderSpacing.Right = 7 826 BorderSpacing.Right = 12
758 BorderSpacing.Bottom = 7 827 BorderSpacing.Bottom = 12
759 Caption = 'Wave' 828 Caption = 'Wave'
760 ClientHeight = 149 829 ClientHeight = 261
761 ClientWidth = 293 830 ClientWidth = 516
762 ParentFont = False 831 ParentFont = False
763 TabOrder = 3 832 TabOrder = 3
764 object Label11: TLabel 833 object Label11: TLabel
765 Left = 8 834 Left = 14
766 Height = 15 835 Height = 30
767 Top = 16 836 Top = 28
768 Width = 40 837 Width = 70
769 Caption = 'Volume' 838 Caption = 'Volume'
770 ParentColor = False 839 ParentColor = False
771 ParentFont = False 840 ParentFont = False
772 end 841 end
773 object Label12: TLabel 842 object Label12: TLabel
774 Left = 8 843 Left = 14
775 Height = 15 844 Height = 30
776 Top = 48 845 Top = 84
777 Width = 55 846 Width = 95
778 Caption = 'Waveform' 847 Caption = 'Waveform'
779 ParentColor = False 848 ParentColor = False
780 ParentFont = False 849 ParentFont = False
781 end 850 end
782 object WaveformCombobox: TComboBox 851 object WaveformCombobox: TComboBox
783 Left = 104 852 Left = 182
784 Height = 23 853 Height = 38
785 Hint = 'Which waveform is associated with this instrument' 854 Hint = 'Which waveform is associated with this instrument'
786 Top = 40 855 Top = 70
787 Width = 176 856 Width = 308
788 ItemHeight = 15 857 ItemHeight = 30
789 ItemIndex = 0 858 ItemIndex = 0
790 Items.Strings = ( 859 Items.Strings = (
791 'Wave #0' 860 'Wave #0'
@@ -812,21 +881,21 @@ object frmTracker: TfrmTracker
812 Text = 'Wave #0' 881 Text = 'Wave #0'
813 end 882 end
814 object Panel4: TPanel 883 object Panel4: TPanel
815 Left = 8 884 Left = 14
816 Height = 59 885 Height = 103
817 Top = 80 886 Top = 140
818 Width = 272 887 Width = 476
819 BevelOuter = bvLowered 888 BevelOuter = bvLowered
820 ClientHeight = 59 889 ClientHeight = 103
821 ClientWidth = 272 890 ClientWidth = 476
822 ParentFont = False 891 ParentFont = False
823 TabOrder = 1 892 TabOrder = 1
824 object WavePaintbox: TPaintBox 893 object WavePaintbox: TPaintBox
825 Left = 1 894 Left = 1
826 Height = 57 895 Height = 101
827 Hint = 'Preview of the waveform associated with this instrument' 896 Hint = 'Preview of the waveform associated with this instrument'
828 Top = 1 897 Top = 1
829 Width = 270 898 Width = 474
830 Align = alClient 899 Align = alClient
831 Color = clBlack 900 Color = clBlack
832 ParentColor = False 901 ParentColor = False
@@ -835,12 +904,12 @@ object frmTracker: TfrmTracker
835 end 904 end
836 end 905 end
837 object WaveVolumeCombobox: TComboBox 906 object WaveVolumeCombobox: TComboBox
838 Left = 104 907 Left = 182
839 Height = 23 908 Height = 38
840 Hint = 'The initial volume of the wave' 909 Hint = 'The initial volume of the wave'
841 Top = 8 910 Top = 14
842 Width = 176 911 Width = 308
843 ItemHeight = 15 912 ItemHeight = 30
844 ItemIndex = 1 913 ItemIndex = 1
845 Items.Strings = ( 914 Items.Strings = (
846 'Mute (No sound)' 915 'Mute (No sound)'
@@ -856,26 +925,26 @@ object frmTracker: TfrmTracker
856 end 925 end
857 end 926 end
858 object NoiseGroupBox: TGroupBox 927 object NoiseGroupBox: TGroupBox
859 Left = 7 928 Left = 12
860 Height = 223 929 Height = 390
861 Top = 445 930 Top = 778
862 Width = 397 931 Width = 695
863 Anchors = [] 932 Anchors = []
864 BorderSpacing.Left = 7 933 BorderSpacing.Left = 12
865 BorderSpacing.Top = 7 934 BorderSpacing.Top = 12
866 BorderSpacing.Right = 7 935 BorderSpacing.Right = 12
867 BorderSpacing.Bottom = 7 936 BorderSpacing.Bottom = 12
868 Caption = 'Noise' 937 Caption = 'Noise'
869 ClientHeight = 203 938 ClientHeight = 355
870 ClientWidth = 393 939 ClientWidth = 691
871 ParentFont = False 940 ParentFont = False
872 TabOrder = 4 941 TabOrder = 4
873 object SevenBitCounterCheckbox: TCheckBox 942 object SevenBitCounterCheckbox: TCheckBox
874 Left = 8 943 Left = 14
875 Height = 19 944 Height = 34
876 Hint = 'Select LFSR width. When checked, output will sound like a tone rather than noise' 945 Hint = 'Select LFSR width. When checked, output will sound like a tone rather than noise'
877 Top = 8 946 Top = 14
878 Width = 215 947 Width = 373
879 Alignment = taLeftJustify 948 Alignment = taLeftJustify
880 Caption = '7 bit counter (more tone-like output)' 949 Caption = '7 bit counter (more tone-like output)'
881 OnChange = SevenBitCounterCheckboxChange 950 OnChange = SevenBitCounterCheckboxChange
@@ -883,20 +952,20 @@ object frmTracker: TfrmTracker
883 TabOrder = 0 952 TabOrder = 0
884 end 953 end
885 object Panel6: TPanel 954 object Panel6: TPanel
886 Left = 8 955 Left = 14
887 Height = 152 956 Height = 266
888 Top = 40 957 Top = 70
889 Width = 376 958 Width = 658
890 BevelOuter = bvLowered 959 BevelOuter = bvLowered
891 ClientHeight = 152 960 ClientHeight = 266
892 ClientWidth = 376 961 ClientWidth = 658
893 ParentFont = False 962 ParentFont = False
894 TabOrder = 1 963 TabOrder = 1
895 object NoiseMacroPaintbox: TPaintBox 964 object NoiseMacroPaintbox: TPaintBox
896 Left = 1 965 Left = 1
897 Height = 150 966 Height = 264
898 Top = 1 967 Top = 1
899 Width = 374 968 Width = 656
900 Align = alClient 969 Align = alClient
901 ParentFont = False 970 ParentFont = False
902 OnMouseDown = NoiseMacroPaintboxMouseDown 971 OnMouseDown = NoiseMacroPaintboxMouseDown
@@ -922,7 +991,7 @@ object frmTracker: TfrmTracker
922 Width = 1026 991 Width = 1026
923 Align = alBottom 992 Align = alBottom
924 Anchors = [akTop, akLeft, akRight, akBottom] 993 Anchors = [akTop, akLeft, akRight, akBottom]
925 BorderSpacing.Top = 13 994 BorderSpacing.Top = 23
926 ParentFont = False 995 ParentFont = False
927 PopupMenu = WaveEditPopup 996 PopupMenu = WaveEditPopup
928 OnMouseDown = WaveEditPaintBoxMouseDown 997 OnMouseDown = WaveEditPaintBoxMouseDown
@@ -931,61 +1000,61 @@ object frmTracker: TfrmTracker
931 OnPaint = WaveEditPaintBoxPaint 1000 OnPaint = WaveEditPaintBoxPaint
932 end 1001 end
933 object WaveEditGroupBox: TGroupBox 1002 object WaveEditGroupBox: TGroupBox
934 Left = 8 1003 Left = 14
935 Height = 139 1004 Height = 243
936 Top = 8 1005 Top = 14
937 Width = 568 1006 Width = 994
938 Caption = 'Wave Editor' 1007 Caption = 'Wave Editor'
939 ClientHeight = 119 1008 ClientHeight = 208
940 ClientWidth = 564 1009 ClientWidth = 990
941 ParentFont = False 1010 ParentFont = False
942 TabOrder = 0 1011 TabOrder = 0
943 object Label20: TLabel 1012 object Label20: TLabel
944 Left = 16 1013 Left = 28
945 Height = 15 1014 Height = 15
946 Top = 16 1015 Top = 28
947 Width = 29 1016 Width = 29
948 Caption = 'Wave' 1017 Caption = 'Wave'
949 ParentColor = False 1018 ParentColor = False
950 ParentFont = False 1019 ParentFont = False
951 end 1020 end
952 object WaveEditNumberSpinner: TSpinEdit 1021 object WaveEditNumberSpinner: TSpinEdit
953 Left = 64 1022 Left = 112
954 Height = 23 1023 Height = 23
955 Top = 8 1024 Top = 14
956 Width = 80 1025 Width = 140
957 MaxValue = 15 1026 MaxValue = 15
958 OnChange = WaveEditNumberSpinnerChange 1027 OnChange = WaveEditNumberSpinnerChange
959 ParentFont = False 1028 ParentFont = False
960 TabOrder = 0 1029 TabOrder = 0
961 end 1030 end
962 object ImportWaveButton: TButton 1031 object ImportWaveButton: TButton
963 Left = 16 1032 Left = 28
964 Height = 25 1033 Height = 44
965 Hint = 'Import a wave' 1034 Hint = 'Import a wave'
966 Top = 48 1035 Top = 84
967 Width = 147 1036 Width = 257
968 Caption = 'Import' 1037 Caption = 'Import'
969 OnClick = ImportWaveButtonClick 1038 OnClick = ImportWaveButtonClick
970 ParentFont = False 1039 ParentFont = False
971 TabOrder = 1 1040 TabOrder = 1
972 end 1041 end
973 object ExportWaveButton: TButton 1042 object ExportWaveButton: TButton
974 Left = 16 1043 Left = 28
975 Height = 25 1044 Height = 44
976 Hint = 'Export a wave' 1045 Hint = 'Export a wave'
977 Top = 80 1046 Top = 140
978 Width = 147 1047 Width = 257
979 Caption = 'Export' 1048 Caption = 'Export'
980 OnClick = ExportWaveButtonClick 1049 OnClick = ExportWaveButtonClick
981 ParentFont = False 1050 ParentFont = False
982 TabOrder = 2 1051 TabOrder = 2
983 end 1052 end
984 object HexWaveEdit: TEdit 1053 object HexWaveEdit: TEdit
985 Left = 288 1054 Left = 504
986 Height = 23 1055 Height = 23
987 Top = 8 1056 Top = 14
988 Width = 264 1057 Width = 462
989 MaxLength = 32 1058 MaxLength = 32
990 OnChange = HexWaveEditEditingDone 1059 OnChange = HexWaveEditEditingDone
991 OnEditingDone = HexWaveEditEditingDone 1060 OnEditingDone = HexWaveEditEditingDone
@@ -993,18 +1062,18 @@ object frmTracker: TfrmTracker
993 TabOrder = 3 1062 TabOrder = 3
994 end 1063 end
995 object Label13: TLabel 1064 object Label13: TLabel
996 Left = 176 1065 Left = 308
997 Height = 15 1066 Height = 15
998 Top = 16 1067 Top = 28
999 Width = 100 1068 Width = 100
1000 Caption = 'Hex representation' 1069 Caption = 'Hex representation'
1001 ParentColor = False 1070 ParentColor = False
1002 ParentFont = False 1071 ParentFont = False
1003 end 1072 end
1004 object PlayWaveWhileDrawingCheckbox: TCheckBox 1073 object PlayWaveWhileDrawingCheckbox: TCheckBox
1005 Left = 176 1074 Left = 308
1006 Height = 19 1075 Height = 19
1007 Top = 40 1076 Top = 70
1008 Width = 149 1077 Width = 149
1009 Caption = 'Play wave while drawing' 1078 Caption = 'Play wave while drawing'
1010 ParentFont = False 1079 ParentFont = False
@@ -1027,16 +1096,16 @@ object frmTracker: TfrmTracker
1027 Width = 1026 1096 Width = 1026
1028 Align = alBottom 1097 Align = alBottom
1029 Anchors = [akTop, akLeft, akRight, akBottom] 1098 Anchors = [akTop, akLeft, akRight, akBottom]
1030 BorderSpacing.Top = 13 1099 BorderSpacing.Top = 23
1031 MaxLength = 255 1100 MaxLength = 255
1032 OnChange = CommentMemoChange 1101 OnChange = CommentMemoChange
1033 ParentFont = False 1102 ParentFont = False
1034 TabOrder = 0 1103 TabOrder = 0
1035 end 1104 end
1036 object Label17: TLabel 1105 object Label17: TLabel
1037 Left = 8 1106 Left = 14
1038 Height = 15 1107 Height = 15
1039 Top = 8 1108 Top = 14
1040 Width = 333 1109 Width = 333
1041 Caption = 'This is an area to write comments for anyone editing your tune.' 1110 Caption = 'This is an area to write comments for anyone editing your tune.'
1042 ParentColor = False 1111 ParentColor = False
@@ -1056,16 +1125,16 @@ object frmTracker: TfrmTracker
1056 Top = 128 1125 Top = 128
1057 Width = 1026 1126 Width = 1026
1058 Align = alBottom 1127 Align = alBottom
1059 BorderSpacing.Top = 13 1128 BorderSpacing.Top = 23
1060 Anchors = [akTop, akLeft, akRight, akBottom] 1129 Anchors = [akTop, akLeft, akRight, akBottom]
1061 Font.Height = -13 1130 Font.Height = -23
1062 Font.Name = 'Courier New' 1131 Font.Name = 'Courier New'
1063 Font.Pitch = fpFixed 1132 Font.Pitch = fpFixed
1064 Font.Quality = fqNonAntialiased 1133 Font.Quality = fqNonAntialiased
1065 ParentColor = False 1134 ParentColor = False
1066 ParentFont = False 1135 ParentFont = False
1067 TabOrder = 0 1136 TabOrder = 0
1068 Gutter.Width = 57 1137 Gutter.Width = 100
1069 Gutter.MouseActions = <> 1138 Gutter.MouseActions = <>
1070 RightGutter.Width = 0 1139 RightGutter.Width = 0
1071 RightGutter.MouseActions = <> 1140 RightGutter.MouseActions = <>
@@ -1519,11 +1588,11 @@ object frmTracker: TfrmTracker
1519 OnChange = RoutineSyneditChange 1588 OnChange = RoutineSyneditChange
1520 inline SynLeftGutterPartList1: TSynGutterPartList 1589 inline SynLeftGutterPartList1: TSynGutterPartList
1521 object SynGutterMarks1: TSynGutterMarks 1590 object SynGutterMarks1: TSynGutterMarks
1522 Width = 24 1591 Width = 42
1523 MouseActions = <> 1592 MouseActions = <>
1524 end 1593 end
1525 object SynGutterLineNumber1: TSynGutterLineNumber 1594 object SynGutterLineNumber1: TSynGutterLineNumber
1526 Width = 17 1595 Width = 29
1527 MouseActions = <> 1596 MouseActions = <>
1528 MarkupInfo.Background = clBtnFace 1597 MarkupInfo.Background = clBtnFace
1529 MarkupInfo.Foreground = clNone 1598 MarkupInfo.Foreground = clNone
@@ -1533,18 +1602,19 @@ object frmTracker: TfrmTracker
1533 LeadingZeros = False 1602 LeadingZeros = False
1534 end 1603 end
1535 object SynGutterChanges1: TSynGutterChanges 1604 object SynGutterChanges1: TSynGutterChanges
1536 Width = 4 1605 Width = 7
1537 MouseActions = <> 1606 MouseActions = <>
1538 ModifiedColor = 59900 1607 ModifiedColor = 59900
1539 SavedColor = clGreen 1608 SavedColor = clGreen
1540 end 1609 end
1541 object SynGutterSeparator1: TSynGutterSeparator 1610 object SynGutterSeparator1: TSynGutterSeparator
1542 Width = 2 1611 Width = 4
1543 MouseActions = <> 1612 MouseActions = <>
1544 MarkupInfo.Background = clWhite 1613 MarkupInfo.Background = clWhite
1545 MarkupInfo.Foreground = clGray 1614 MarkupInfo.Foreground = clGray
1546 end 1615 end
1547 object SynGutterCodeFolding1: TSynGutterCodeFolding 1616 object SynGutterCodeFolding1: TSynGutterCodeFolding
1617 Width = 18
1548 MouseActions = <> 1618 MouseActions = <>
1549 MarkupInfo.Background = clNone 1619 MarkupInfo.Background = clNone
1550 MarkupInfo.Foreground = clGray 1620 MarkupInfo.Foreground = clGray
@@ -1554,19 +1624,19 @@ object frmTracker: TfrmTracker
1554 end 1624 end
1555 end 1625 end
1556 object Label18: TLabel 1626 object Label18: TLabel
1557 Left = 8 1627 Left = 14
1558 Height = 15 1628 Height = 15
1559 Top = 16 1629 Top = 28
1560 Width = 41 1630 Width = 41
1561 Caption = 'Routine' 1631 Caption = 'Routine'
1562 ParentColor = False 1632 ParentColor = False
1563 ParentFont = False 1633 ParentFont = False
1564 end 1634 end
1565 object RoutineNumberSpinner: TSpinEdit 1635 object RoutineNumberSpinner: TSpinEdit
1566 Left = 64 1636 Left = 112
1567 Height = 23 1637 Height = 23
1568 Top = 8 1638 Top = 14
1569 Width = 176 1639 Width = 308
1570 MaxValue = 15 1640 MaxValue = 15
1571 OnChange = RoutineNumberSpinnerChange 1641 OnChange = RoutineNumberSpinnerChange
1572 ParentFont = False 1642 ParentFont = False
@@ -1574,9 +1644,9 @@ object frmTracker: TfrmTracker
1574 Value = 1 1644 Value = 1
1575 end 1645 end
1576 object Label19: TLabel 1646 object Label19: TLabel
1577 Left = 8 1647 Left = 14
1578 Height = 75 1648 Height = 75
1579 Top = 40 1649 Top = 70
1580 Width = 506 1650 Width = 506
1581 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!' 1651 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!'
1582 ParentColor = False 1652 ParentColor = False
@@ -1587,21 +1657,21 @@ object frmTracker: TfrmTracker
1587 end 1657 end
1588 object Panel2: TPanel 1658 object Panel2: TPanel
1589 Left = 0 1659 Left = 0
1590 Height = 64 1660 Height = 112
1591 Top = 25 1661 Top = 41
1592 Width = 1232 1662 Width = 2156
1593 Align = alTop 1663 Align = alTop
1594 BevelOuter = bvNone 1664 BevelOuter = bvNone
1595 ClientHeight = 64 1665 ClientHeight = 112
1596 ClientWidth = 1232 1666 ClientWidth = 2156
1597 ParentFont = False 1667 ParentFont = False
1598 TabOrder = 3 1668 TabOrder = 3
1599 object LEDMeter1: TLEDMeter 1669 object LEDMeter1: TLEDMeter
1600 AnchorSideRight.Control = Duty1Visualizer 1670 AnchorSideRight.Control = Duty1Visualizer
1601 Left = 0 1671 Left = 0
1602 Height = 32 1672 Height = 56
1603 Top = 32 1673 Top = 56
1604 Width = 444 1674 Width = 776
1605 Anchors = [akTop, akLeft, akRight] 1675 Anchors = [akTop, akLeft, akRight]
1606 BevelStyle = bvLowered 1676 BevelStyle = bvLowered
1607 Colors.Border = 2168839 1677 Colors.Border = 2168839
@@ -1622,9 +1692,9 @@ object frmTracker: TfrmTracker
1622 object LEDMeter2: TLEDMeter 1692 object LEDMeter2: TLEDMeter
1623 AnchorSideRight.Control = Duty1Visualizer 1693 AnchorSideRight.Control = Duty1Visualizer
1624 Left = 0 1694 Left = 0
1625 Height = 32 1695 Height = 56
1626 Top = 0 1696 Top = 0
1627 Width = 444 1697 Width = 776
1628 Anchors = [akTop, akLeft, akRight] 1698 Anchors = [akTop, akLeft, akRight]
1629 BevelStyle = bvLowered 1699 BevelStyle = bvLowered
1630 Colors.Border = 2168839 1700 Colors.Border = 2168839
@@ -1643,40 +1713,40 @@ object frmTracker: TfrmTracker
1643 Section3Value = 48 1713 Section3Value = 48
1644 end 1714 end
1645 object Duty1Visualizer: TPaintBox 1715 object Duty1Visualizer: TPaintBox
1646 Left = 444 1716 Left = 776
1647 Height = 64 1717 Height = 112
1648 Top = 0 1718 Top = 0
1649 Width = 197 1719 Width = 345
1650 Align = alRight 1720 Align = alRight
1651 ParentFont = False 1721 ParentFont = False
1652 OnClick = Duty1VisualizerClick 1722 OnClick = Duty1VisualizerClick
1653 OnPaint = Duty1VisualizerPaint 1723 OnPaint = Duty1VisualizerPaint
1654 end 1724 end
1655 object Duty2Visualizer: TPaintBox 1725 object Duty2Visualizer: TPaintBox
1656 Left = 641 1726 Left = 1121
1657 Height = 64 1727 Height = 112
1658 Top = 0 1728 Top = 0
1659 Width = 197 1729 Width = 345
1660 Align = alRight 1730 Align = alRight
1661 ParentFont = False 1731 ParentFont = False
1662 OnClick = Duty1VisualizerClick 1732 OnClick = Duty1VisualizerClick
1663 OnPaint = Duty2VisualizerPaint 1733 OnPaint = Duty2VisualizerPaint
1664 end 1734 end
1665 object WaveVisualizer: TPaintBox 1735 object WaveVisualizer: TPaintBox
1666 Left = 838 1736 Left = 1466
1667 Height = 64 1737 Height = 112
1668 Top = 0 1738 Top = 0
1669 Width = 197 1739 Width = 345
1670 Align = alRight 1740 Align = alRight
1671 ParentFont = False 1741 ParentFont = False
1672 OnClick = Duty1VisualizerClick 1742 OnClick = Duty1VisualizerClick
1673 OnPaint = WaveVisualizerPaint 1743 OnPaint = WaveVisualizerPaint
1674 end 1744 end
1675 object NoiseVisualizer: TPaintBox 1745 object NoiseVisualizer: TPaintBox
1676 Left = 1035 1746 Left = 1811
1677 Height = 64 1747 Height = 112
1678 Top = 0 1748 Top = 0
1679 Width = 197 1749 Width = 345
1680 Align = alRight 1750 Align = alRight
1681 ParentFont = False 1751 ParentFont = False
1682 OnClick = Duty1VisualizerClick 1752 OnClick = Duty1VisualizerClick
@@ -1685,19 +1755,19 @@ object frmTracker: TfrmTracker
1685 end 1755 end
1686 object StatusBar1: TStatusBar 1756 object StatusBar1: TStatusBar
1687 Left = 0 1757 Left = 0
1688 Height = 23 1758 Height = 43
1689 Top = 611 1759 Top = 1067
1690 Width = 1232 1760 Width = 2156
1691 AutoHint = True 1761 AutoHint = True
1692 Panels = < 1762 Panels = <
1693 item 1763 item
1694 Width = 467 1764 Width = 817
1695 end 1765 end
1696 item 1766 item
1697 Width = 200 1767 Width = 350
1698 end 1768 end
1699 item 1769 item
1700 Width = 200 1770 Width = 350
1701 end> 1771 end>
1702 ParentFont = False 1772 ParentFont = False
1703 ParentShowHint = False 1773 ParentShowHint = False
@@ -1706,9 +1776,9 @@ object frmTracker: TfrmTracker
1706 end 1776 end
1707 object ToolBar1: TToolBar 1777 object ToolBar1: TToolBar
1708 Left = 0 1778 Left = 0
1709 Height = 25 1779 Height = 41
1710 Top = 0 1780 Top = 0
1711 Width = 1232 1781 Width = 2156
1712 AutoSize = True 1782 AutoSize = True
1713 Caption = 'ToolBar1' 1783 Caption = 'ToolBar1'
1714 EdgeBorders = [ebBottom] 1784 EdgeBorders = [ebBottom]
@@ -1725,7 +1795,7 @@ object frmTracker: TfrmTracker
1725 ParentShowHint = False 1795 ParentShowHint = False
1726 end 1796 end
1727 object PanicToolButton: TToolButton 1797 object PanicToolButton: TToolButton
1728 Left = 557 1798 Left = 851
1729 Hint = 'Stops all sound output' 1799 Hint = 'Stops all sound output'
1730 Top = 0 1800 Top = 0
1731 AutoSize = True 1801 AutoSize = True
@@ -1736,17 +1806,17 @@ object frmTracker: TfrmTracker
1736 ShowHint = True 1806 ShowHint = True
1737 end 1807 end
1738 object ToolButton2: TToolButton 1808 object ToolButton2: TToolButton
1739 Left = 147 1809 Left = 221
1740 Top = 0 1810 Top = 0
1741 Action = PlayCursorAction 1811 Action = PlayCursorAction
1742 end 1812 end
1743 object ToolButton4: TToolButton 1813 object ToolButton4: TToolButton
1744 Left = 221 1814 Left = 331
1745 Top = 0 1815 Top = 0
1746 Action = StopAction 1816 Action = StopAction
1747 end 1817 end
1748 object ExportGBButton: TToolButton 1818 object ExportGBButton: TToolButton
1749 Left = 291 1819 Left = 442
1750 Hint = 'Export the song as a standalone ROM' 1820 Hint = 'Export the song as a standalone ROM'
1751 Top = 0 1821 Top = 0
1752 AutoSize = True 1822 AutoSize = True
@@ -1755,49 +1825,49 @@ object frmTracker: TfrmTracker
1755 OnClick = ExportGBButtonClick 1825 OnClick = ExportGBButtonClick
1756 end 1826 end
1757 object ToolButton8: TToolButton 1827 object ToolButton8: TToolButton
1758 Left = 79 1828 Left = 120
1759 Height = 22 1829 Height = 39
1760 Top = 0 1830 Top = 0
1761 Caption = 'ToolButton8' 1831 Caption = 'ToolButton8'
1762 Style = tbsDivider 1832 Style = tbsDivider
1763 end 1833 end
1764 object ToolButton6: TToolButton 1834 object ToolButton6: TToolButton
1765 Left = 286 1835 Left = 433
1766 Height = 22 1836 Height = 39
1767 Top = 0 1837 Top = 0
1768 Caption = 'ToolButton6' 1838 Caption = 'ToolButton6'
1769 Style = tbsDivider 1839 Style = tbsDivider
1770 end 1840 end
1771 object ToolButton7: TToolButton 1841 object ToolButton7: TToolButton
1772 Left = 1097 1842 Left = 1775
1773 Height = 22 1843 Height = 39
1774 Top = 0 1844 Top = 0
1775 Caption = 'ToolButton7' 1845 Caption = 'ToolButton7'
1776 Style = tbsSeparator 1846 Style = tbsSeparator
1777 end 1847 end
1778 object OctaveSpinEdit: TSpinEdit 1848 object OctaveSpinEdit: TSpinEdit
1779 Left = 663 1849 Left = 1016
1780 Height = 23 1850 Height = 38
1781 Hint = 'The octave offset for entering new notes' 1851 Hint = 'The octave offset for entering new notes'
1782 Top = 0 1852 Top = 0
1783 Width = 65 1853 Width = 114
1784 MaxValue = 5 1854 MaxValue = 5
1785 OnChange = OctaveSpinEditChange 1855 OnChange = OctaveSpinEditChange
1786 ParentFont = False 1856 ParentFont = False
1787 TabOrder = 0 1857 TabOrder = 0
1788 end 1858 end
1789 object ToolButton9: TToolButton 1859 object ToolButton9: TToolButton
1790 Left = 612 1860 Left = 927
1791 Height = 22 1861 Height = 39
1792 Top = 0 1862 Top = 0
1793 Caption = 'ToolButton9' 1863 Caption = 'ToolButton9'
1794 Style = tbsSeparator 1864 Style = tbsSeparator
1795 end 1865 end
1796 object Label22: TLabel 1866 object Label22: TLabel
1797 Left = 620 1867 Left = 941
1798 Height = 22 1868 Height = 39
1799 Top = 0 1869 Top = 0
1800 Width = 43 1870 Width = 75
1801 AutoSize = False 1871 AutoSize = False
1802 Caption = 'Octave ' 1872 Caption = 'Octave '
1803 Layout = tlCenter 1873 Layout = tlCenter
@@ -1805,10 +1875,10 @@ object frmTracker: TfrmTracker
1805 ParentFont = False 1875 ParentFont = False
1806 end 1876 end
1807 object Label23: TLabel 1877 object Label23: TLabel
1808 Left = 728 1878 Left = 1130
1809 Height = 22 1879 Height = 39
1810 Top = 0 1880 Top = 0
1811 Width = 70 1881 Width = 122
1812 AutoSize = False 1882 AutoSize = False
1813 Caption = ' Instrument ' 1883 Caption = ' Instrument '
1814 Layout = tlCenter 1884 Layout = tlCenter
@@ -1816,13 +1886,13 @@ object frmTracker: TfrmTracker
1816 ParentFont = False 1886 ParentFont = False
1817 end 1887 end
1818 object InstrumentComboBox: TComboBox 1888 object InstrumentComboBox: TComboBox
1819 Left = 798 1889 Left = 1252
1820 Height = 23 1890 Height = 38
1821 Hint = 'The selected instrument for new notes' 1891 Hint = 'The selected instrument for new notes'
1822 Top = 0 1892 Top = 0
1823 Width = 214 1893 Width = 374
1824 DropDownCount = 999 1894 DropDownCount = 999
1825 ItemHeight = 15 1895 ItemHeight = 30
1826 ItemIndex = 0 1896 ItemIndex = 0
1827 Items.Strings = ( 1897 Items.Strings = (
1828 '(no instrument)' 1898 '(no instrument)'
@@ -1834,10 +1904,10 @@ object frmTracker: TfrmTracker
1834 Text = '(no instrument)' 1904 Text = '(no instrument)'
1835 end 1905 end
1836 object Label24: TLabel 1906 object Label24: TLabel
1837 Left = 1012 1907 Left = 1626
1838 Height = 22 1908 Height = 39
1839 Top = 0 1909 Top = 0
1840 Width = 35 1910 Width = 61
1841 AutoSize = False 1911 AutoSize = False
1842 Caption = ' Step ' 1912 Caption = ' Step '
1843 Layout = tlCenter 1913 Layout = tlCenter
@@ -1845,23 +1915,23 @@ object frmTracker: TfrmTracker
1845 ParentFont = False 1915 ParentFont = False
1846 end 1916 end
1847 object StepSpinEdit: TSpinEdit 1917 object StepSpinEdit: TSpinEdit
1848 Left = 1047 1918 Left = 1687
1849 Height = 23 1919 Height = 38
1850 Hint = 'How many rows to step down after entering a new note' 1920 Hint = 'How many rows to step down after entering a new note'
1851 Top = 0 1921 Top = 0
1852 Width = 50 1922 Width = 88
1853 MaxValue = 63 1923 MaxValue = 63
1854 OnChange = StepSpinEditChange 1924 OnChange = StepSpinEditChange
1855 ParentFont = False 1925 ParentFont = False
1856 TabOrder = 2 1926 TabOrder = 2
1857 end 1927 end
1858 object ToolButton3: TToolButton 1928 object ToolButton3: TToolButton
1859 Left = 84 1929 Left = 129
1860 Top = 0 1930 Top = 0
1861 Action = PlayStartAction 1931 Action = PlayStartAction
1862 end 1932 end
1863 object ExportGBSButton: TToolButton 1933 object ExportGBSButton: TToolButton
1864 Left = 372 1934 Left = 564
1865 Hint = 'Export the song as a GBS soundtrack' 1935 Hint = 'Export the song as a GBS soundtrack'
1866 Top = 0 1936 Top = 0
1867 Caption = 'Export .GBS' 1937 Caption = 'Export .GBS'
@@ -1869,14 +1939,14 @@ object frmTracker: TfrmTracker
1869 OnClick = ExportGBSButtonClick 1939 OnClick = ExportGBSButtonClick
1870 end 1940 end
1871 object ToolButton5: TToolButton 1941 object ToolButton5: TToolButton
1872 Left = 552 1942 Left = 842
1873 Height = 22 1943 Height = 39
1874 Top = 0 1944 Top = 0
1875 Caption = 'ToolButton5' 1945 Caption = 'ToolButton5'
1876 Style = tbsDivider 1946 Style = tbsDivider
1877 end 1947 end
1878 object ToolButton10: TToolButton 1948 object ToolButton10: TToolButton
1879 Left = 459 1949 Left = 697
1880 Hint = 'Export the song as WAV or MP3' 1950 Hint = 'Export the song as WAV or MP3'
1881 Top = 0 1951 Top = 0
1882 Caption = 'Render Song' 1952 Caption = 'Render Song'
@@ -1886,8 +1956,8 @@ object frmTracker: TfrmTracker
1886 end 1956 end
1887 object MainMenu1: TMainMenu 1957 object MainMenu1: TMainMenu
1888 Images = ImageList1 1958 Images = ImageList1
1889 Left = 40 1959 Left = 70
1890 Top = 32 1960 Top = 56
1891 object MenuItem1: TMenuItem 1961 object MenuItem1: TMenuItem
1892 Caption = 'File' 1962 Caption = 'File'
1893 object MenuItem33: TMenuItem 1963 object MenuItem33: TMenuItem
@@ -2031,8 +2101,8 @@ object frmTracker: TfrmTracker
2031 end 2101 end
2032 object MenuBarActionList: TActionList 2102 object MenuBarActionList: TActionList
2033 Images = ImageList1 2103 Images = ImageList1
2034 Left = 104 2104 Left = 182
2035 Top = 72 2105 Top = 126
2036 object FileOpen1: TFileOpen 2106 object FileOpen1: TFileOpen
2037 Category = 'File' 2107 Category = 'File'
2038 Caption = '&Open ...' 2108 Caption = '&Open ...'
@@ -2135,8 +2205,8 @@ object frmTracker: TfrmTracker
2135 end 2205 end
2136 end 2206 end
2137 object ImageList1: TImageList 2207 object ImageList1: TImageList
2138 Left = 152 2208 Left = 266
2139 Top = 32 2209 Top = 56
2140 Bitmap = { 2210 Bitmap = {
2141 4C69540000001000000010000000000000000000000000000000000000000000 2211 4C69540000001000000010000000000000000000000000000000000000000000
2142 0000000000000000000000000000000000000000000000000000000000000000 2212 0000000000000000000000000000000000000000000000000000000000000000
@@ -4831,17 +4901,17 @@ object frmTracker: TfrmTracker
4831 end 4901 end
4832 object OpenDialog1: TOpenDialog 4902 object OpenDialog1: TOpenDialog
4833 Filter = 'hUGETracker Instruments|*.ugi' 4903 Filter = 'hUGETracker Instruments|*.ugi'
4834 Left = 80 4904 Left = 140
4835 Top = 56 4905 Top = 98
4836 end 4906 end
4837 object InstrumentSaveDialog: TSaveDialog 4907 object InstrumentSaveDialog: TSaveDialog
4838 Filter = 'hUGETracker Instruments|*.ugi' 4908 Filter = 'hUGETracker Instruments|*.ugi'
4839 Left = 80 4909 Left = 140
4840 Top = 56 4910 Top = 98
4841 end 4911 end
4842 object OrderEditPopup: TPopupMenu 4912 object OrderEditPopup: TPopupMenu
4843 Left = 128 4913 Left = 224
4844 Top = 40 4914 Top = 70
4845 object MenuItem17: TMenuItem 4915 object MenuItem17: TMenuItem
4846 Caption = 'Insert new row' 4916 Caption = 'Insert new row'
4847 Hint = 'Insert a new row filled with brand new patterns' 4917 Hint = 'Insert a new row filled with brand new patterns'
@@ -4872,8 +4942,8 @@ object frmTracker: TfrmTracker
4872 object ImageList2: TImageList 4942 object ImageList2: TImageList
4873 Height = 32 4943 Height = 32
4874 Width = 32 4944 Width = 32
4875 Left = 48 4945 Left = 84
4876 Top = 86 4946 Top = 151
4877 Bitmap = { 4947 Bitmap = {
4878 4C69020000002000000020000000000000000000000000000000000000000000 4948 4C69020000002000000020000000000000000000000000000000000000000000
4879 0000000000000000000000000000000000000000000000000000000000000000 4949 0000000000000000000000000000000000000000000000000000000000000000
@@ -5138,33 +5208,33 @@ object frmTracker: TfrmTracker
5138 Enabled = False 5208 Enabled = False
5139 Interval = 200 5209 Interval = 200
5140 OnTimer = OscilloscopeUpdateTimerTimer 5210 OnTimer = OscilloscopeUpdateTimerTimer
5141 Left = 88 5211 Left = 154
5142 Top = 48 5212 Top = 84
5143 end 5213 end
5144 object GBSSaveDialog: TSaveDialog 5214 object GBSSaveDialog: TSaveDialog
5145 Filter = 'Gameboy Soundtrack|*.gbs' 5215 Filter = 'Gameboy Soundtrack|*.gbs'
5146 Left = 288 5216 Left = 504
5147 Top = 24 5217 Top = 42
5148 end 5218 end
5149 object WaveSaveDialog: TSaveDialog 5219 object WaveSaveDialog: TSaveDialog
5150 Filter = 'hUGETracker Waves|*.ugw' 5220 Filter = 'hUGETracker Waves|*.ugw'
5151 Left = 368 5221 Left = 644
5152 Top = 24 5222 Top = 42
5153 end 5223 end
5154 object GBSaveDialog: TSaveDialog 5224 object GBSaveDialog: TSaveDialog
5155 Filter = 'Gameboy ROM|*.GB' 5225 Filter = 'Gameboy ROM|*.GB'
5156 Left = 328 5226 Left = 574
5157 Top = 24 5227 Top = 42
5158 end 5228 end
5159 object NoteHaltTimer: TTimer 5229 object NoteHaltTimer: TTimer
5160 Enabled = False 5230 Enabled = False
5161 OnTimer = NoteHaltTimerTimer 5231 OnTimer = NoteHaltTimerTimer
5162 Left = 80 5232 Left = 140
5163 Top = 86 5233 Top = 151
5164 end 5234 end
5165 object TrackerGridPopup: TPopupMenu 5235 object TrackerGridPopup: TPopupMenu
5166 Left = 96 5236 Left = 168
5167 Top = 24 5237 Top = 42
5168 object TrackerPopupEditEffect: TMenuItem 5238 object TrackerPopupEditEffect: TMenuItem
5169 Caption = 'Edit effect ...' 5239 Caption = 'Edit effect ...'
5170 OnClick = TrackerPopupEditEffectClick 5240 OnClick = TrackerPopupEditEffectClick
@@ -5311,8 +5381,8 @@ object frmTracker: TfrmTracker
5311 object WavSaveDialog: TSaveDialog 5381 object WavSaveDialog: TSaveDialog
5312 DefaultExt = '.wav' 5382 DefaultExt = '.wav'
5313 Filter = 'Wave files|*.wav' 5383 Filter = 'Wave files|*.wav'
5314 Left = 408 5384 Left = 714
5315 Top = 24 5385 Top = 42
5316 end 5386 end
5317 object SynAnySyn1: TSynAnySyn 5387 object SynAnySyn1: TSynAnySyn
5318 Enabled = False 5388 Enabled = False
@@ -5436,18 +5506,18 @@ object frmTracker: TfrmTracker
5436 Entity = False 5506 Entity = False
5437 DollarVariables = False 5507 DollarVariables = False
5438 ActiveDot = False 5508 ActiveDot = False
5439 Left = 8 5509 Left = 14
5440 Top = 86 5510 Top = 151
5441 end 5511 end
5442 object MODOpenDialog: TOpenDialog 5512 object MODOpenDialog: TOpenDialog
5443 DefaultExt = '.mod' 5513 DefaultExt = '.mod'
5444 Filter = 'GBT Player MOD files|*.mod' 5514 Filter = 'GBT Player MOD files|*.mod'
5445 Left = 448 5515 Left = 784
5446 Top = 32 5516 Top = 56
5447 end 5517 end
5448 object WaveEditPopup: TPopupMenu 5518 object WaveEditPopup: TPopupMenu
5449 Left = 8 5519 Left = 14
5450 Top = 32 5520 Top = 56
5451 object MenuItem37: TMenuItem 5521 object MenuItem37: TMenuItem
5452 Caption = 'Copy' 5522 Caption = 'Copy'
5453 OnClick = MenuItem37Click 5523 OnClick = MenuItem37Click
@@ -5459,8 +5529,8 @@ object frmTracker: TfrmTracker
5459 end 5529 end
5460 object ShortcutsActionList: TActionList 5530 object ShortcutsActionList: TActionList
5461 Images = ImageList1 5531 Images = ImageList1
5462 Left = 208 5532 Left = 364
5463 Top = 32 5533 Top = 56
5464 object PlayStartAction: TAction 5534 object PlayStartAction: TAction
5465 Caption = '▶️ Start' 5535 Caption = '▶️ Start'
5466 DisableIfNoHandler = False 5536 DisableIfNoHandler = False
@@ -5585,12 +5655,12 @@ object frmTracker: TfrmTracker
5585 end 5655 end
5586 object GBDKCSaveDialog: TSaveDialog 5656 object GBDKCSaveDialog: TSaveDialog
5587 Filter = 'GBDK C File|*.c' 5657 Filter = 'GBDK C File|*.c'
5588 Left = 248 5658 Left = 434
5589 Top = 24 5659 Top = 42
5590 end 5660 end
5591 object RGBDSAsmSaveDialog: TSaveDialog 5661 object RGBDSAsmSaveDialog: TSaveDialog
5592 Filter = 'RGBDS Assembly|*.asm' 5662 Filter = 'RGBDS Assembly|*.asm'
5593 Left = 248 5663 Left = 434
5594 Top = 64 5664 Top = 112
5595 end 5665 end
5596 end 5666 end
Modifiedtracker.pas +20−7
@@ -40,6 +40,7 @@ type
40 DeleteRowForAllAction: TAction; 40 DeleteRowForAllAction: TAction;
41 InsertRowForAllAction: TAction; 41 InsertRowForAllAction: TAction;
42 InsertRowAction: TAction; 42 InsertRowAction: TAction;
43 Label14: TLabel;
43 MenuItem39: TMenuItem; 44 MenuItem39: TMenuItem;
44 ExportCMenuItem: TMenuItem; 45 ExportCMenuItem: TMenuItem;
45 MenuItem40: TMenuItem; 46 MenuItem40: TMenuItem;
@@ -57,7 +58,7 @@ type
57 PlayCursorAction: TAction; 58 PlayCursorAction: TAction;
58 PlayStartAction: TAction; 59 PlayStartAction: TAction;
59 ShortcutsActionList: TActionList; 60 ShortcutsActionList: TActionList;
60 Button1: TButton; 61 TestOctave5Button: TButton;
61 MenuItem37: TMenuItem; 62 MenuItem37: TMenuItem;
62 MenuItem38: TMenuItem; 63 MenuItem38: TMenuItem;
63 PlayWaveWhileDrawingCheckbox: TCheckBox; 64 PlayWaveWhileDrawingCheckbox: TCheckBox;
@@ -97,6 +98,11 @@ type
97 NoiseVisualizer: TPaintBox; 98 NoiseVisualizer: TPaintBox;
98 MODOpenDialog: TOpenDialog; 99 MODOpenDialog: TOpenDialog;
99 RowNumberStringGrid: TStringGrid; 100 RowNumberStringGrid: TStringGrid;
101 TestOctave5Button1: TButton;
102 TestOctave5Button2: TButton;
103 TestOctave5Button3: TButton;
104 TestOctave5Button4: TButton;
105 TestOctave5Button5: TButton;
100 WaveEditPopup: TPopupMenu; 106 WaveEditPopup: TPopupMenu;
101 SynAnySyn1: TSynAnySyn; 107 SynAnySyn1: TSynAnySyn;
102 WavSaveDialog: TSaveDialog; 108 WavSaveDialog: TSaveDialog;
@@ -259,7 +265,7 @@ type
259 StatusBar1: TStatusBar; 265 StatusBar1: TStatusBar;
260 TreeView1: TTreeView; 266 TreeView1: TTreeView;
261 TrackerGrid: TTrackerGrid; 267 TrackerGrid: TTrackerGrid;
262 procedure Button1Click(Sender: TObject); 268 procedure TestOctaveButtonClick(Sender: TObject);
263 procedure DebugButtonClick(Sender: TObject); 269 procedure DebugButtonClick(Sender: TObject);
264 procedure DecreaseOctaveActionExecute(Sender: TObject); 270 procedure DecreaseOctaveActionExecute(Sender: TObject);
265 procedure DecrementCurrentInstrumentActionExecute(Sender: TObject); 271 procedure DecrementCurrentInstrumentActionExecute(Sender: TObject);
@@ -483,7 +489,7 @@ type
483 procedure PreviewNoteUnderCursor; 489 procedure PreviewNoteUnderCursor;
484 procedure PreviewInstrument(Note: Integer; Instr: Integer; SquareOnCh2: Boolean = False); overload; 490 procedure PreviewInstrument(Note: Integer; Instr: Integer; SquareOnCh2: Boolean = False); overload;
485 procedure PreviewInstrument(Note: Integer; Instr: TInstrument; SquareOnCh2: Boolean = False); overload; 491 procedure PreviewInstrument(Note: Integer; Instr: TInstrument; SquareOnCh2: Boolean = False); overload;
486 procedure PreviewC5; 492 procedure PreviewNote(Note: Integer);
487 procedure Panic; 493 procedure Panic;
488 public 494 public
489 procedure OnTrackerGridResize(Sender: TObject); 495 procedure OnTrackerGridResize(Sender: TObject);
@@ -817,10 +823,10 @@ begin
817 UnlockPlayback; 823 UnlockPlayback;
818 end; 824 end;
819 825
820 procedure TfrmTracker.PreviewC5; 826 procedure TfrmTracker.PreviewNote(Note: Integer);
821 begin 827 begin
822 if not LoadingFile then begin 828 if not LoadingFile then begin
823 PreviewInstrument(C_5, UnmodInst(CurrentInstrumentBank, InstrumentNumberSpinner.Value)); 829 PreviewInstrument(Note, UnmodInst(CurrentInstrumentBank, InstrumentNumberSpinner.Value));
824 NoteHaltTimer.Enabled := False; 830 NoteHaltTimer.Enabled := False;
825 NoteHaltTimer.Enabled := True 831 NoteHaltTimer.Enabled := True
826 end; 832 end;
@@ -1974,9 +1980,16 @@ begin
1974 ReloadPatterns 1980 ReloadPatterns
1975 end; 1981 end;
1976 1982
1977 procedure TfrmTracker.Button1Click(Sender: TObject); 1983 procedure TfrmTracker.TestOctaveButtonClick(Sender: TObject);
1978 begin 1984 begin
1979 PreviewC5; 1985 case (Sender as TButton).Tag of
1986 3: PreviewNote(C_3);
1987 4: PreviewNote(C_4);
1988 5: PreviewNote(C_5);
1989 6: PreviewNote(C_6);
1990 7: PreviewNote(C_7);
1991 8: PreviewNote(C_8);
1992 end;
1980 end; 1993 end;
1981 1994
1982 procedure TfrmTracker.DebugButtonClick(Sender: TObject); 1995 procedure TfrmTracker.DebugButtonClick(Sender: TObject);