Skip to content

Commit e85f47c

Browse files
committed
load existing songs
1 parent 2cc0748 commit e85f47c

File tree

3 files changed

+254
-10
lines changed

3 files changed

+254
-10
lines changed

src/hUGEDriver

src/song.pas

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ ESongVersionException = class(Exception);
5454
Comment: ShortString;
5555

5656
Instruments: TInstrumentCollectionV1;
57-
Waves: TWaveBank;
57+
Waves: TWaveBankV2;
5858

5959
TicksPerRow: Integer;
6060

@@ -72,7 +72,7 @@ ESongVersionException = class(Exception);
7272
Comment: ShortString;
7373

7474
Instruments: TInstrumentCollectionV2;
75-
Waves: TWaveBank;
75+
Waves: TWaveBankV2;
7676

7777
TicksPerRow: Integer;
7878

@@ -92,7 +92,7 @@ ESongVersionException = class(Exception);
9292
Comment: ShortString;
9393

9494
Instruments: TInstrumentCollection;
95-
Waves: TWaveBank;
95+
Waves: TWaveBankV2;
9696

9797
TicksPerRow: Integer;
9898

@@ -113,7 +113,7 @@ ESongVersionException = class(Exception);
113113
Comment: ShortString;
114114

115115
Instruments: TInstrumentCollection;
116-
Waves: TWaveBank;
116+
Waves: TWaveBankV3;
117117

118118
TicksPerRow: packed array[0..3] of Integer;
119119

@@ -889,6 +889,7 @@ function UpgradeSong(S: TSongV4): TSong;
889889
function UpgradeSong(S: TSongV6): TSong;
890890
var
891891
SV7: TSongV7;
892+
I, J: Integer;
892893
begin
893894
SV7.Version := 7;
894895

@@ -897,7 +898,12 @@ function UpgradeSong(S: TSongV6): TSong;
897898
SV7.Comment := S.Comment;
898899

899900
SV7.Instruments := S.Instruments;
900-
SV7.Waves := S.Waves;
901+
for I := Low(S.Waves) to High(S.Waves) do
902+
SV7.Waves[I] := S.Waves[I];
903+
904+
for I := Length(S.Waves) to High(SV7.Waves) do
905+
for J := Low(SV7.Waves[I]) to High(SV7.Waves[I]) do
906+
SV7.Waves[I, J] := Random($F);
901907

902908
SV7.TicksPerRow[0] := S.TicksPerRow;
903909
SV7.TicksPerRow[1] := S.TicksPerRow;

src/tracker.lfm

Lines changed: 242 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ object frmTracker: TfrmTracker
6262
Height = 598
6363
Top = 0
6464
Width = 936
65-
ActivePage = WavesTabSheet
65+
ActivePage = InstrumentTabSheet
6666
Align = alClient
6767
ParentFont = False
68-
TabIndex = 3
68+
TabIndex = 2
6969
TabOrder = 0
7070
object GeneralTabSheet: TTabSheet
7171
Caption = 'General'
@@ -936,7 +936,6 @@ object frmTracker: TfrmTracker
936936
Top = 40
937937
Width = 176
938938
ItemHeight = 0
939-
ItemIndex = 0
940939
Items.Strings = (
941940
'Wave #0'
942941
'Wave #1'
@@ -954,11 +953,250 @@ object frmTracker: TfrmTracker
954953
'Wave #13'
955954
'Wave #14'
956955
'Wave #15'
956+
'Wave #16'
957+
'Wave #17'
958+
'Wave #18'
959+
'Wave #19'
960+
'Wave #20'
961+
'Wave #21'
962+
'Wave #22'
963+
'Wave #23'
964+
'Wave #24'
965+
'Wave #25'
966+
'Wave #26'
967+
'Wave #27'
968+
'Wave #28'
969+
'Wave #29'
970+
'Wave #30'
971+
'Wave #31'
972+
'Wave #32'
973+
'Wave #33'
974+
'Wave #34'
975+
'Wave #35'
976+
'Wave #36'
977+
'Wave #37'
978+
'Wave #38'
979+
'Wave #39'
980+
'Wave #40'
981+
'Wave #41'
982+
'Wave #42'
983+
'Wave #43'
984+
'Wave #44'
985+
'Wave #45'
986+
'Wave #46'
987+
'Wave #47'
988+
'Wave #48'
989+
'Wave #49'
990+
'Wave #50'
991+
'Wave #51'
992+
'Wave #52'
993+
'Wave #53'
994+
'Wave #54'
995+
'Wave #55'
996+
'Wave #56'
997+
'Wave #57'
998+
'Wave #58'
999+
'Wave #59'
1000+
'Wave #60'
1001+
'Wave #61'
1002+
'Wave #62'
1003+
'Wave #63'
1004+
'Wave #64'
1005+
'Wave #65'
1006+
'Wave #66'
1007+
'Wave #67'
1008+
'Wave #68'
1009+
'Wave #69'
1010+
'Wave #70'
1011+
'Wave #71'
1012+
'Wave #72'
1013+
'Wave #73'
1014+
'Wave #74'
1015+
'Wave #75'
1016+
'Wave #76'
1017+
'Wave #77'
1018+
'Wave #78'
1019+
'Wave #79'
1020+
'Wave #80'
1021+
'Wave #81'
1022+
'Wave #82'
1023+
'Wave #83'
1024+
'Wave #84'
1025+
'Wave #85'
1026+
'Wave #86'
1027+
'Wave #87'
1028+
'Wave #88'
1029+
'Wave #89'
1030+
'Wave #90'
1031+
'Wave #91'
1032+
'Wave #92'
1033+
'Wave #93'
1034+
'Wave #94'
1035+
'Wave #95'
1036+
'Wave #96'
1037+
'Wave #97'
1038+
'Wave #98'
1039+
'Wave #99'
1040+
'Wave #100'
1041+
'Wave #101'
1042+
'Wave #102'
1043+
'Wave #103'
1044+
'Wave #104'
1045+
'Wave #105'
1046+
'Wave #106'
1047+
'Wave #107'
1048+
'Wave #108'
1049+
'Wave #109'
1050+
'Wave #110'
1051+
'Wave #111'
1052+
'Wave #112'
1053+
'Wave #113'
1054+
'Wave #114'
1055+
'Wave #115'
1056+
'Wave #116'
1057+
'Wave #117'
1058+
'Wave #118'
1059+
'Wave #119'
1060+
'Wave #120'
1061+
'Wave #121'
1062+
'Wave #122'
1063+
'Wave #123'
1064+
'Wave #124'
1065+
'Wave #125'
1066+
'Wave #126'
1067+
'Wave #127'
1068+
'Wave #128'
1069+
'Wave #129'
1070+
'Wave #130'
1071+
'Wave #131'
1072+
'Wave #132'
1073+
'Wave #133'
1074+
'Wave #134'
1075+
'Wave #135'
1076+
'Wave #136'
1077+
'Wave #137'
1078+
'Wave #138'
1079+
'Wave #139'
1080+
'Wave #140'
1081+
'Wave #141'
1082+
'Wave #142'
1083+
'Wave #143'
1084+
'Wave #144'
1085+
'Wave #145'
1086+
'Wave #146'
1087+
'Wave #147'
1088+
'Wave #148'
1089+
'Wave #149'
1090+
'Wave #150'
1091+
'Wave #151'
1092+
'Wave #152'
1093+
'Wave #153'
1094+
'Wave #154'
1095+
'Wave #155'
1096+
'Wave #156'
1097+
'Wave #157'
1098+
'Wave #158'
1099+
'Wave #159'
1100+
'Wave #160'
1101+
'Wave #161'
1102+
'Wave #162'
1103+
'Wave #163'
1104+
'Wave #164'
1105+
'Wave #165'
1106+
'Wave #166'
1107+
'Wave #167'
1108+
'Wave #168'
1109+
'Wave #169'
1110+
'Wave #170'
1111+
'Wave #171'
1112+
'Wave #172'
1113+
'Wave #173'
1114+
'Wave #174'
1115+
'Wave #175'
1116+
'Wave #176'
1117+
'Wave #177'
1118+
'Wave #178'
1119+
'Wave #179'
1120+
'Wave #180'
1121+
'Wave #181'
1122+
'Wave #182'
1123+
'Wave #183'
1124+
'Wave #184'
1125+
'Wave #185'
1126+
'Wave #186'
1127+
'Wave #187'
1128+
'Wave #188'
1129+
'Wave #189'
1130+
'Wave #190'
1131+
'Wave #191'
1132+
'Wave #192'
1133+
'Wave #193'
1134+
'Wave #194'
1135+
'Wave #195'
1136+
'Wave #196'
1137+
'Wave #197'
1138+
'Wave #198'
1139+
'Wave #199'
1140+
'Wave #200'
1141+
'Wave #201'
1142+
'Wave #202'
1143+
'Wave #203'
1144+
'Wave #204'
1145+
'Wave #205'
1146+
'Wave #206'
1147+
'Wave #207'
1148+
'Wave #208'
1149+
'Wave #209'
1150+
'Wave #210'
1151+
'Wave #211'
1152+
'Wave #212'
1153+
'Wave #213'
1154+
'Wave #214'
1155+
'Wave #215'
1156+
'Wave #216'
1157+
'Wave #217'
1158+
'Wave #218'
1159+
'Wave #219'
1160+
'Wave #220'
1161+
'Wave #221'
1162+
'Wave #222'
1163+
'Wave #223'
1164+
'Wave #224'
1165+
'Wave #225'
1166+
'Wave #226'
1167+
'Wave #227'
1168+
'Wave #228'
1169+
'Wave #229'
1170+
'Wave #230'
1171+
'Wave #231'
1172+
'Wave #232'
1173+
'Wave #233'
1174+
'Wave #234'
1175+
'Wave #235'
1176+
'Wave #236'
1177+
'Wave #237'
1178+
'Wave #238'
1179+
'Wave #239'
1180+
'Wave #240'
1181+
'Wave #241'
1182+
'Wave #242'
1183+
'Wave #243'
1184+
'Wave #244'
1185+
'Wave #245'
1186+
'Wave #246'
1187+
'Wave #247'
1188+
'Wave #248'
1189+
'Wave #249'
1190+
'Wave #250'
1191+
'Wave #251'
1192+
'Wave #252'
1193+
'Wave #253'
1194+
'Wave #254'
1195+
'Wave #255'
9571196
)
9581197
ParentFont = False
9591198
Style = csDropDownList
9601199
TabOrder = 0
961-
Text = 'Wave #0'
9621200
OnChange = WaveformComboboxChange
9631201
end
9641202
object Panel4: TPanel

0 commit comments

Comments
 (0)