hack to use first sample in instrument rather than last one
This commit is contained in:
parent
92c6bddcc6
commit
dacb1a5852
1 changed files with 23 additions and 20 deletions
43
xm.js
43
xm.js
|
|
@ -919,24 +919,27 @@ function playXM(arrayBuf) {
|
||||||
var totalsamples = 0;
|
var totalsamples = 0;
|
||||||
for (var j = 0; j < nsamp; j++) {
|
for (var j = 0; j < nsamp; j++) {
|
||||||
var samplen = dv.getUint32(idx, true);
|
var samplen = dv.getUint32(idx, true);
|
||||||
var samploop = dv.getUint32(idx+4, true);
|
if (j == 0) {
|
||||||
var samplooplen = dv.getUint32(idx+8, true);
|
var samplen0 = samplen; // FIXME HACK HACK HACK
|
||||||
var sampvol = dv.getUint8(idx+12);
|
var samploop = dv.getUint32(idx+4, true);
|
||||||
var sampfinetune = dv.getInt8(idx+13);
|
var samplooplen = dv.getUint32(idx+8, true);
|
||||||
var samptype = dv.getUint8(idx+14);
|
var sampvol = dv.getUint8(idx+12);
|
||||||
var samppan = dv.getUint8(idx+15);
|
var sampfinetune = dv.getInt8(idx+13);
|
||||||
var sampnote = dv.getInt8(idx+16);
|
var samptype = dv.getUint8(idx+14);
|
||||||
var sampname = getstring(dv, idx+18, 22);
|
var samppan = dv.getUint8(idx+15);
|
||||||
var sampleoffset = idx + samphdrsiz;
|
var sampnote = dv.getInt8(idx+16);
|
||||||
console.log("sample %d: len %d name '%s' loop %d/%d vol %d",
|
var sampname = getstring(dv, idx+18, 22);
|
||||||
j, samplen, sampname, samploop, samplooplen, sampvol);
|
var sampleoffset = idx + samphdrsiz;
|
||||||
console.log(" type %d note %s(%d) finetune %d pan %d",
|
console.log("sample %d: len %d name '%s' loop %d/%d vol %d",
|
||||||
samptype, prettify_note(sampnote + 12*4), sampnote, sampfinetune, samppan);
|
j, samplen, sampname, samploop, samplooplen, sampvol);
|
||||||
console.log(" vol env", env_vol, env_vol_sustain,
|
console.log(" type %d note %s(%d) finetune %d pan %d",
|
||||||
env_vol_loop_start, env_vol_loop_end, "type", env_vol_type,
|
samptype, prettify_note(sampnote + 12*4), sampnote, sampfinetune, samppan);
|
||||||
"fadeout", vol_fadeout);
|
console.log(" vol env", env_vol, env_vol_sustain,
|
||||||
console.log(" pan env", env_pan, env_pan_sustain,
|
env_vol_loop_start, env_vol_loop_end, "type", env_vol_type,
|
||||||
env_pan_loop_start, env_pan_loop_end, "type", env_pan_type);
|
"fadeout", vol_fadeout);
|
||||||
|
console.log(" pan env", env_pan, env_pan_sustain,
|
||||||
|
env_pan_loop_start, env_pan_loop_end, "type", env_pan_type);
|
||||||
|
}
|
||||||
idx += samphdrsiz;
|
idx += samphdrsiz;
|
||||||
totalsamples += samplen;
|
totalsamples += samplen;
|
||||||
}
|
}
|
||||||
|
|
@ -944,12 +947,12 @@ function playXM(arrayBuf) {
|
||||||
inst = {
|
inst = {
|
||||||
'name': instname,
|
'name': instname,
|
||||||
'number': i,
|
'number': i,
|
||||||
'len': samplen, 'loop': samploop,
|
'len': samplen0, 'loop': samploop,
|
||||||
'looplen': samplooplen, 'note': sampnote, 'fine': sampfinetune,
|
'looplen': samplooplen, 'note': sampnote, 'fine': sampfinetune,
|
||||||
'pan': samppan, 'type': samptype, 'vol': sampvol,
|
'pan': samppan, 'type': samptype, 'vol': sampvol,
|
||||||
'fine': sampfinetune,
|
'fine': sampfinetune,
|
||||||
'fadeout': vol_fadeout,
|
'fadeout': vol_fadeout,
|
||||||
'sampledata': ConvertSample(new Uint8Array(arrayBuf, sampleoffset, samplen), samptype & 16),
|
'sampledata': ConvertSample(new Uint8Array(arrayBuf, sampleoffset, samplen0), samptype & 16),
|
||||||
};
|
};
|
||||||
if (samptype & 16) {
|
if (samptype & 16) {
|
||||||
inst.len /= 2;
|
inst.len /= 2;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue