Fix failing vibrato test

This commit is contained in:
Johan Hillerström 2015-11-21 19:54:54 +01:00
commit 677c157c71

32
test/effects.js vendored
View file

@ -85,7 +85,7 @@ exports['test 3xx portamento'] = function(assert) {
assert.equal(ch.period, 1152 - 16, 'row 1 tick 2 period -16'); assert.equal(ch.period, 1152 - 16, 'row 1 tick 2 period -16');
}; };
exports['test 4xy vibrato'] = function(assert) { exports['test 4xy vibrato - sine'] = function(assert) {
var xm = testdata.resetXMData(); var xm = testdata.resetXMData();
// vibrato 4xy: speed x, depth y // vibrato 4xy: speed x, depth y
// full cycle is 64/speed // full cycle is 64/speed
@ -107,37 +107,37 @@ exports['test 4xy vibrato'] = function(assert) {
XMPlayer.nextTick(); // row 0 tick 1 XMPlayer.nextTick(); // row 0 tick 1
// compute logical period p from actual play frequency // compute logical period p from actual play frequency
var p = 16*12 * Math.log(p0 / ch.doff) / Math.log(2); var p = 16*12 * Math.log(p0 / ch.doff) / Math.log(2);
assert.equal(p.toFixed(3), "0.707", 'row 0 tick 1 period +0.707'); assert.equal(p.toFixed(3), "0.000", 'row 0 tick 1 period +0');
XMPlayer.nextTick(); // row 0 tick 2 XMPlayer.nextTick(); // row 0 tick 2
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "1.000", 'row 0 tick 2 period +1.000'); assert.equal(p.toFixed(3), "1.414", 'row 0 tick 2 period +1.414');
XMPlayer.nextTick(); // row 1 tick 0 XMPlayer.nextTick(); // row 1 tick 0
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "1.414", 'row 1 tick 0 period +1.414'); assert.equal(p.toFixed(3), "4.000", 'row 1 tick 0 period +4.000');
XMPlayer.nextTick(); // row 1 tick 1 XMPlayer.nextTick(); // row 1 tick 1
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "0.000", 'row 1 tick 1 period +0'); assert.equal(p.toFixed(3), "4.000", 'row 1 tick 1 period +4.000');
XMPlayer.nextTick(); // row 1 tick 2 XMPlayer.nextTick(); // row 1 tick 2
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "-1.414", 'row 1 tick 2 period -1.414'); assert.equal(p.toFixed(3), "2.828", 'row 1 tick 2 period 2.828');
XMPlayer.nextTick(); // row 2 tick 0 XMPlayer.nextTick(); // row 2 tick 0
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "-2.000", 'row 2 tick 0 period -2.000'); assert.equal(p.toFixed(3), "0.000", 'row 2 tick 0 period +0');
XMPlayer.nextTick(); // row 2 tick 1 XMPlayer.nextTick(); // row 2 tick 1
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "-1.990", 'row 2 tick 1 period -1.990'); assert.equal(p.toFixed(3), "0.000", 'row 2 tick 1 period +0');
XMPlayer.nextTick(); // row 2 tick 2 XMPlayer.nextTick(); // row 2 tick 2
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "-1.962", 'row 2 tick 2 period -1.962'); assert.equal(p.toFixed(3), "-0.392", 'row 2 tick 2 period -0.392');
XMPlayer.nextTick(); // row 3 tick 0 XMPlayer.nextTick(); // row 3 tick 0
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "-1.914", 'row 3 tick 0 period -1.914'); assert.equal(p.toFixed(3), "-0.780", 'row 3 tick 0 period -0.780');
XMPlayer.nextTick(); // row 3 tick 1 XMPlayer.nextTick(); // row 3 tick 1
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "-1.848", 'row 3 tick 1 period -1.848'); assert.equal(p.toFixed(3), "-0.780", 'row 3 tick 1 period -0.780');
XMPlayer.nextTick(); // row 3 tick 2 XMPlayer.nextTick(); // row 3 tick 2
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "-1.764", 'row 3 tick 2 period -1.764'); assert.equal(p.toFixed(3), "-1.161", 'row 3 tick 2 period -1.161');
XMPlayer.nextTick(); // row 4 tick 0 XMPlayer.nextTick(); // row 4 tick 0
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "0.000", 'row 4 tick 0 period 0 - no vibrato'); assert.equal(p.toFixed(3), "0.000", 'row 4 tick 0 period 0 - no vibrato');
@ -148,16 +148,16 @@ exports['test 4xy vibrato'] = function(assert) {
// that's what I'm assuming here... // that's what I'm assuming here...
XMPlayer.nextTick(); // row 5 tick 0 XMPlayer.nextTick(); // row 5 tick 0
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "-1.663", 'row 5 tick 0 period -1.663 - vibrato resume'); assert.equal(p.toFixed(3), "-1.531", 'row 5 tick 0 period -1.531 - vibrato resume');
XMPlayer.nextTick(); // row 5 tick 1 XMPlayer.nextTick(); // row 5 tick 1
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "-1.546", 'row 5 tick 1 period -1.546'); assert.equal(p.toFixed(3), "-1.531", 'row 5 tick 1 period -1.531');
XMPlayer.nextTick(); // row 5 tick 2 XMPlayer.nextTick(); // row 5 tick 2
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "-1.414", 'row 5 tick 2 period -1.414'); assert.equal(p.toFixed(3), "-1.886", 'row 5 tick 2 period -1.886');
XMPlayer.nextTick(); // row 6 tick 0 XMPlayer.nextTick(); // row 6 tick 0
p = -16*12 * Math.log(ch.doff / p0) / Math.log(2); p = -16*12 * Math.log(ch.doff / p0) / Math.log(2);
assert.equal(p.toFixed(3), "-1.269", 'row 6 tick 0 period -1.269'); assert.equal(p.toFixed(3), "-1.111", 'row 6 tick 0 period -1.111');
}; };
exports['test Axy volume slide'] = function(assert) { exports['test Axy volume slide'] = function(assert) {