@@ -16,6 +16,7 @@ type |
| 16 |
{ TfrmTracker } |
16 |
{ TfrmTracker } |
| 17 |
|
17 |
|
| 18 |
TfrmTracker = class(TForm) |
18 |
TfrmTracker = class(TForm) |
|
|
19 |
Button1: TButton; |
| 19 |
ShiftClockSpinner: TECSpinPosition; |
20 |
ShiftClockSpinner: TECSpinPosition; |
| 20 |
InstrumentExportButton: TButton; |
21 |
InstrumentExportButton: TButton; |
| 21 |
InstrumentImportButton: TButton; |
22 |
InstrumentImportButton: TButton; |
@@ -28,6 +29,7 @@ type |
| 28 |
MenuItem23: TMenuItem; |
29 |
MenuItem23: TMenuItem; |
| 29 |
MenuItem24: TMenuItem; |
30 |
MenuItem24: TMenuItem; |
| 30 |
MenuItem8: TMenuItem; |
31 |
MenuItem8: TMenuItem; |
|
|
32 |
NoteHaltTimer: TTimer; |
| 31 |
WaveSaveDialog: TSaveDialog; |
33 |
WaveSaveDialog: TSaveDialog; |
| 32 |
Label22: TLabel; |
34 |
Label22: TLabel; |
| 33 |
Label23: TLabel; |
35 |
Label23: TLabel; |
@@ -47,7 +49,7 @@ type |
| 47 |
OctaveSpinEdit: TSpinEdit; |
49 |
OctaveSpinEdit: TSpinEdit; |
| 48 |
GBSSaveDialog: TSaveDialog; |
50 |
GBSSaveDialog: TSaveDialog; |
| 49 |
StepSpinEdit: TSpinEdit; |
51 |
StepSpinEdit: TSpinEdit; |
| 50 |
Timer1: TTimer; |
52 |
OscilloscopeUpdateTimer: TTimer; |
| 51 |
ExportGBSButton: TToolButton; |
53 |
ExportGBSButton: TToolButton; |
| 52 |
ToolButton3: TToolButton; |
54 |
ToolButton3: TToolButton; |
| 53 |
ToolButton9: TToolButton; |
55 |
ToolButton9: TToolButton; |
@@ -173,6 +175,7 @@ type |
| 173 |
DivRatioSpinner: TECSpinPosition; |
175 |
DivRatioSpinner: TECSpinPosition; |
| 174 |
TreeView1: TTreeView; |
176 |
TreeView1: TTreeView; |
| 175 |
TrackerGrid: TTrackerGrid; |
177 |
TrackerGrid: TTrackerGrid; |
|
|
178 |
procedure Button1Click(Sender: TObject); |
| 176 |
procedure EditDelete1Execute(Sender: TObject); |
179 |
procedure EditDelete1Execute(Sender: TObject); |
| 177 |
procedure InstrumentComboBoxChange(Sender: TObject); |
180 |
procedure InstrumentComboBoxChange(Sender: TObject); |
| 178 |
procedure CopyActionExecute(Sender: TObject); |
181 |
procedure CopyActionExecute(Sender: TObject); |
@@ -219,6 +222,7 @@ type |
| 219 |
procedure MenuItem5Click(Sender: TObject); |
222 |
procedure MenuItem5Click(Sender: TObject); |
| 220 |
procedure MenuItem8Click(Sender: TObject); |
223 |
procedure MenuItem8Click(Sender: TObject); |
| 221 |
procedure NoiseVisualizerPaint(Sender: TObject); |
224 |
procedure NoiseVisualizerPaint(Sender: TObject); |
|
|
225 |
procedure NoteHaltTimerTimer(Sender: TObject); |
| 222 |
procedure OrderEditStringGridAfterSelection(Sender: TObject; aCol, |
226 |
procedure OrderEditStringGridAfterSelection(Sender: TObject; aCol, |
| 223 |
aRow: Integer); |
227 |
aRow: Integer); |
| 224 |
procedure OrderEditStringGridColRowDeleted(Sender: TObject; |
228 |
procedure OrderEditStringGridColRowDeleted(Sender: TObject; |
@@ -239,7 +243,7 @@ type |
| 239 |
procedure ShiftClockSpinnerChange(Sender: TObject); |
243 |
procedure ShiftClockSpinnerChange(Sender: TObject); |
| 240 |
procedure StepSpinEditChange(Sender: TObject); |
244 |
procedure StepSpinEditChange(Sender: TObject); |
| 241 |
procedure TicksPerRowSpinEditChange(Sender: TObject); |
245 |
procedure TicksPerRowSpinEditChange(Sender: TObject); |
| 242 |
procedure Timer1Timer(Sender: TObject); |
246 |
procedure OscilloscopeUpdateTimerTimer(Sender: TObject); |
| 243 |
procedure ExportGBSButtonClick(Sender: TObject); |
247 |
procedure ExportGBSButtonClick(Sender: TObject); |
| 244 |
procedure ToolButton2Click(Sender: TObject); |
248 |
procedure ToolButton2Click(Sender: TObject); |
| 245 |
procedure ToolButton3Click(Sender: TObject); |
249 |
procedure ToolButton3Click(Sender: TObject); |
@@ -310,6 +314,7 @@ type |
| 310 |
procedure DrawVizualizer(PB: TPaintBox; Channel: Integer); |
314 |
procedure DrawVizualizer(PB: TPaintBox; Channel: Integer); |
| 311 |
|
315 |
|
| 312 |
procedure PreviewInstrument(Freq: Integer; Instr: Integer); |
316 |
procedure PreviewInstrument(Freq: Integer; Instr: Integer); |
|
|
317 |
procedure PreviewC5; |
| 313 |
procedure Panic; |
318 |
procedure Panic; |
| 314 |
public |
319 |
public |
| 315 |
|
320 |
|
@@ -464,6 +469,15 @@ begin |
| 464 |
end; |
469 |
end; |
| 465 |
end; |
470 |
end; |
| 466 |
|
471 |
|
|
|
472 |
procedure TfrmTracker.PreviewC5; |
|
|
473 |
begin |
|
|
474 |
if not LoadingFile then begin |
|
|
475 |
PreviewInstrument(NotesToFreqs.Data[C_5], InstrumentNumberSpinner.Value); |
|
|
476 |
NoteHaltTimer.Enabled := False; |
|
|
477 |
NoteHaltTimer.Enabled := True |
|
|
478 |
end; |
|
|
479 |
end; |
|
|
480 |
|
| 467 |
procedure TfrmTracker.Panic; |
481 |
procedure TfrmTracker.Panic; |
| 468 |
begin |
482 |
begin |
| 469 |
// Silence CH1 |
483 |
// Silence CH1 |
@@ -1099,6 +1113,11 @@ begin |
| 1099 |
|
1113 |
|
| 1100 |
end; |
1114 |
end; |
| 1101 |
|
1115 |
|
|
|
1116 |
procedure TfrmTracker.Button1Click(Sender: TObject); |
|
|
1117 |
begin |
|
|
1118 |
PreviewC5; |
|
|
1119 |
end; |
|
|
1120 |
|
| 1102 |
procedure TfrmTracker.PasteActionExecute(Sender: TObject); |
1121 |
procedure TfrmTracker.PasteActionExecute(Sender: TObject); |
| 1103 |
begin |
1122 |
begin |
| 1104 |
PostMessage(Screen.ActiveControl.Handle, LM_PASTE, 0, 0); |
1123 |
PostMessage(Screen.ActiveControl.Handle, LM_PASTE, 0, 0); |
@@ -1204,18 +1223,24 @@ begin |
| 1204 |
|
1223 |
|
| 1205 |
for X := 0 to 3 do |
1224 |
for X := 0 to 3 do |
| 1206 |
Song.Patterns.CreateNewPattern(Highest+X); |
1225 |
Song.Patterns.CreateNewPattern(Highest+X); |
|
|
1226 |
|
|
|
1227 |
ReloadPatterns; |
| 1207 |
end; |
1228 |
end; |
| 1208 |
|
1229 |
|
| 1209 |
procedure TfrmTracker.MenuItem18Click(Sender: TObject); |
1230 |
procedure TfrmTracker.MenuItem18Click(Sender: TObject); |
| 1210 |
begin |
1231 |
begin |
| 1211 |
with OrderEditStringGrid do |
1232 |
with OrderEditStringGrid do |
| 1212 |
InsertRowWithValues(Row, ['', '0', '0', '0', '0']); |
1233 |
InsertRowWithValues(Row, ['', '0', '0', '0', '0']); |
|
|
1234 |
|
|
|
1235 |
ReloadPatterns; |
| 1213 |
end; |
1236 |
end; |
| 1214 |
|
1237 |
|
| 1215 |
procedure TfrmTracker.MenuItem19Click(Sender: TObject); |
1238 |
procedure TfrmTracker.MenuItem19Click(Sender: TObject); |
| 1216 |
begin |
1239 |
begin |
| 1217 |
if OrderEditStringGrid.RowCount > 2 then |
1240 |
if OrderEditStringGrid.RowCount > 2 then |
| 1218 |
OrderEditStringGrid.DeleteRow(OrderEditStringGrid.Row); |
1241 |
OrderEditStringGrid.DeleteRow(OrderEditStringGrid.Row); |
|
|
1242 |
|
|
|
1243 |
ReloadPatterns; |
| 1219 |
end; |
1244 |
end; |
| 1220 |
|
1245 |
|
| 1221 |
procedure TfrmTracker.MenuItem21Click(Sender: TObject); |
1246 |
procedure TfrmTracker.MenuItem21Click(Sender: TObject); |
@@ -1224,6 +1249,8 @@ begin |
| 1224 |
InsertRowWithValues(Row, ['', '0', '0', '0', '0']); |
1249 |
InsertRowWithValues(Row, ['', '0', '0', '0', '0']); |
| 1225 |
Rows[Row-1] := Rows[Row]; |
1250 |
Rows[Row-1] := Rows[Row]; |
| 1226 |
end; |
1251 |
end; |
|
|
1252 |
|
|
|
1253 |
ReloadPatterns; |
| 1227 |
end; |
1254 |
end; |
| 1228 |
|
1255 |
|
| 1229 |
procedure TfrmTracker.MenuItem22Click(Sender: TObject); |
1256 |
procedure TfrmTracker.MenuItem22Click(Sender: TObject); |
@@ -1246,6 +1273,8 @@ begin |
| 1246 |
Song.Patterns.CreateNewPattern(Highest+X)^ := |
1273 |
Song.Patterns.CreateNewPattern(Highest+X)^ := |
| 1247 |
Song.Patterns.KeyData[StrToInt(Rows[Row][X+1])]^; |
1274 |
Song.Patterns.KeyData[StrToInt(Rows[Row][X+1])]^; |
| 1248 |
end; |
1275 |
end; |
|
|
1276 |
|
|
|
1277 |
ReloadPatterns; |
| 1249 |
end; |
1278 |
end; |
| 1250 |
|
1279 |
|
| 1251 |
procedure TfrmTracker.MenuItem5Click(Sender: TObject); |
1280 |
procedure TfrmTracker.MenuItem5Click(Sender: TObject); |
@@ -1267,6 +1296,12 @@ begin |
| 1267 |
DrawVizualizer(NoiseVisualizer, 4); |
1296 |
DrawVizualizer(NoiseVisualizer, 4); |
| 1268 |
end; |
1297 |
end; |
| 1269 |
|
1298 |
|
|
|
1299 |
procedure TfrmTracker.NoteHaltTimerTimer(Sender: TObject); |
|
|
1300 |
begin |
|
|
1301 |
Panic; |
|
|
1302 |
NoteHaltTimer.Enabled := False; |
|
|
1303 |
end; |
|
|
1304 |
|
| 1270 |
procedure TfrmTracker.OrderEditStringGridAfterSelection(Sender: TObject; aCol, |
1305 |
procedure TfrmTracker.OrderEditStringGridAfterSelection(Sender: TObject; aCol, |
| 1271 |
aRow: Integer); |
1306 |
aRow: Integer); |
| 1272 |
begin |
1307 |
begin |
@@ -1332,6 +1367,7 @@ begin |
| 1332 |
if Key = VK_DELETE then begin |
1367 |
if Key = VK_DELETE then begin |
| 1333 |
// TODO: Make this stop the editor from showing |
1368 |
// TODO: Make this stop the editor from showing |
| 1334 |
OrderEditStringGrid.DeleteRow(OrderEditStringGrid.Row); |
1369 |
OrderEditStringGrid.DeleteRow(OrderEditStringGrid.Row); |
|
|
1370 |
ReloadPatterns; |
| 1335 |
end; |
1371 |
end; |
| 1336 |
end; |
1372 |
end; |
| 1337 |
|
1373 |
|
@@ -1345,7 +1381,7 @@ begin |
| 1345 |
Song.TicksPerRow := TicksPerRowSpinEdit.Value; |
1381 |
Song.TicksPerRow := TicksPerRowSpinEdit.Value; |
| 1346 |
end; |
1382 |
end; |
| 1347 |
|
1383 |
|
| 1348 |
procedure TfrmTracker.Timer1Timer(Sender: TObject); |
1384 |
procedure TfrmTracker.OscilloscopeUpdateTimerTimer(Sender: TObject); |
| 1349 |
var |
1385 |
var |
| 1350 |
Max1, Max2: Integer; |
1386 |
Max1, Max2: Integer; |
| 1351 |
I: Integer; |
1387 |
I: Integer; |