summaryrefslogtreecommitdiffstats
path: root/player-tests.mjs
blob: e2ba42f8d23138e2eb430e2ce0fada377b913377 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { Note, toCents } from './scale.mjs';

export default function() {
    const cNote = Note.fromString('C');
    console.assert(cNote.distanceTo(cNote) === 0);
    const dNote = Note.fromString('D');
    console.assert(cNote.distanceTo(dNote) === 2);
    const dSharpNote = Note.fromString('D♯');
    console.assert(cNote.distanceTo(dSharpNote) === 3);

    const aNote = Note.fromString('A', 'A to A');
    console.assert(toCents([aNote, 4], [aNote, 3]) === -1200);
    const bNote = Note.fromString('B');
    console.assert(toCents([aNote, 4], [bNote, 4]) == 200, 'A4 to B4 is 200 cents');
    // E F F# G G# A
    const eNote = Note.fromString('E');
    console.assert(toCents([aNote, 4], [eNote, 4]) === -500, 'E4 is 500 cents lower than A4');

    console.assert(toCents([aNote, 4], [bNote, 3]) === -1000, 'A4 to B3 is 100 cents above -1200');
}