hack to use first sample in instrument rather than last one

This commit is contained in:
Andy Sloane 2015-10-30 08:53:39 -07:00
commit dacb1a5852

7
xm.js
View file

@ -919,6 +919,8 @@ 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);
if (j == 0) {
var samplen0 = samplen; // FIXME HACK HACK HACK
var samploop = dv.getUint32(idx+4, true); var samploop = dv.getUint32(idx+4, true);
var samplooplen = dv.getUint32(idx+8, true); var samplooplen = dv.getUint32(idx+8, true);
var sampvol = dv.getUint8(idx+12); var sampvol = dv.getUint8(idx+12);
@ -937,6 +939,7 @@ function playXM(arrayBuf) {
"fadeout", vol_fadeout); "fadeout", vol_fadeout);
console.log(" pan env", env_pan, env_pan_sustain, console.log(" pan env", env_pan, env_pan_sustain,
env_pan_loop_start, env_pan_loop_end, "type", env_pan_type); 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;