mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-01 18:42:40 +00:00
IT import: consider cutoff value
This commit is contained in:
parent
6f8f2b9e2a
commit
3e4dfb9dcf
1 changed files with 20 additions and 6 deletions
|
@ -501,6 +501,20 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) {
|
|||
}
|
||||
}
|
||||
|
||||
// set filter macro to cutoff value if no filter envelope is defined
|
||||
if (ins->std.ex1Macro.len==0 && initCut&0x80) {
|
||||
if ((initCut&0x7f)==0x7f) {
|
||||
ins->std.ex1Macro.len=1;
|
||||
ins->std.ex1Macro.val[0]=65535;
|
||||
} else {
|
||||
ins->std.ex1Macro.len=1;
|
||||
ins->std.ex1Macro.val[0]=1024+(initCut&0x7f)*400;
|
||||
}
|
||||
} else {
|
||||
ins->std.ex1Macro.len=1;
|
||||
ins->std.ex1Macro.val[0]=65535;
|
||||
}
|
||||
|
||||
ds.ins.push_back(ins);
|
||||
}
|
||||
|
||||
|
@ -766,9 +780,9 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) {
|
|||
}
|
||||
|
||||
if (chan&128) {
|
||||
mask[chan&63]=reader.readC();
|
||||
mask[(chan-1)&63]=reader.readC();
|
||||
}
|
||||
chan&=63;
|
||||
chan=(chan-1)&63;
|
||||
|
||||
if (chan>maxChan) maxChan=chan;
|
||||
|
||||
|
@ -1037,11 +1051,9 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) {
|
|||
}
|
||||
|
||||
if (chan&128) {
|
||||
mask[chan&63]=reader.readC();
|
||||
mask[(chan-1)&63]=reader.readC();
|
||||
}
|
||||
chan&=63;
|
||||
|
||||
if (chan>maxChan) maxChan=chan;
|
||||
chan=(chan-1)&63;
|
||||
|
||||
if (mask[chan]&1) {
|
||||
note[chan]=reader.readC();
|
||||
|
@ -1265,6 +1277,8 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) {
|
|||
}
|
||||
}
|
||||
|
||||
maxChan++;
|
||||
|
||||
ds.insLen=ds.ins.size();
|
||||
|
||||
logV("maxChan: %d",maxChan);
|
||||
|
|
Loading…
Reference in a new issue