Skip to content

Commit

Permalink
Added running status tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jazz-soft committed Jun 1, 2024
1 parent 2d5f9da commit 56f537c
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 3 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ const TEST = require('test-midi-files');
- [**test-rpn-00-01-fine-tuning.mid**](https://github.com/jazz-soft/test-midi-files/raw/main/midi/test-rpn-00-01-fine-tuning.mid)
- [**test-rpn-00-02-coarse-tuning.mid**](https://github.com/jazz-soft/test-midi-files/raw/main/midi/test-rpn-00-02-coarse-tuning.mid)
- [**test-rpn-00-05-modulation-depth-range.mid**](https://github.com/jazz-soft/test-midi-files/raw/main/midi/test-rpn-00-05-modulation-depth-range.mid)
- [**test-running-status-metaevent.mid**](https://github.com/jazz-soft/test-midi-files/raw/main/midi/test-running-status-metaevent.mid)
- [**test-running-status-sysex.mid**](https://github.com/jazz-soft/test-midi-files/raw/main/midi/test-running-status-sysex.mid)
- [**test-smpte-offset.mid**](https://github.com/jazz-soft/test-midi-files/raw/main/midi/test-smpte-offset.mid)
- [**test-sysex-7e-06-01-id-request.mid**](https://github.com/jazz-soft/test-midi-files/raw/main/midi/test-sysex-7e-06-01-id-request.mid)
- [**test-sysex-7e-09-01-gm1-enable.mid**](https://github.com/jazz-soft/test-midi-files/raw/main/midi/test-sysex-7e-09-01-gm1-enable.mid)
Expand Down
33 changes: 33 additions & 0 deletions code/test-running-status-metaevent.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
var TEST = require('..');
var JZZ = require('jzz');
require('jzz-midi-smf')(JZZ);

var smf = new JZZ.MIDI.SMF(0, 96);
var trk = new JZZ.MIDI.SMF.MTrk();
smf.push(trk);
trk.smfSeqName('Running status interrupted by metaevent')
.smfCopyright('https://jazz-soft.net')
.smfText('Running status is interrupted by metaevent in the middle of the scale.\n')
.smfText('You must hear a C-Major scale.')
.noteOn(0, 'C5', 127).tick(96).noteOn(0, 'C5', 0)
.noteOn(0, 'D5', 127).tick(96).noteOn(0, 'D5', 0)
.noteOn(0, 'E5', 127).tick(96).noteOn(0, 'E5', 0)
.noteOn(0, 'F5', 127).tick(96).noteOn(0, 'F5', 0)
.noteOn(0, 'G5', 127).tick(96).noteOn(0, 'G5', 0)
.noteOn(0, 'A5', 127).tick(96).noteOn(0, 'A5', 0)
.noteOn(0, 'B5', 127).tick(96).noteOn(0, 'B5', 0)
.noteOn(0, 'C6', 127).tick(96).noteOn(0, 'C6', 0)
.smfText('break');

var data = smf.dump();
var len = data.length;

var a = data.substring(0, len - 37); // start
var b = data.substring(len - 37, len - 13); // last 4 notes
var c = data.substring(len - 13, len - 4); // break
var d = data.substring(len - 4); // eof

data = a + c + b + d;

TEST.write(data);
TEST.play(data);
33 changes: 33 additions & 0 deletions code/test-running-status-sysex.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
var TEST = require('..');
var JZZ = require('jzz');
require('jzz-midi-smf')(JZZ);

var smf = new JZZ.MIDI.SMF(0, 96);
var trk = new JZZ.MIDI.SMF.MTrk();
smf.push(trk);
trk.smfSeqName('Running status interrupted by SysEx')
.smfCopyright('https://jazz-soft.net')
.smfText('Running status is interrupted by SysEx in the middle of the scale.\n')
.smfText('You must hear a C-Major scale.')
.noteOn(0, 'C5', 127).tick(96).noteOn(0, 'C5', 0)
.noteOn(0, 'D5', 127).tick(96).noteOn(0, 'D5', 0)
.noteOn(0, 'E5', 127).tick(96).noteOn(0, 'E5', 0)
.noteOn(0, 'F5', 127).tick(96).noteOn(0, 'F5', 0)
.noteOn(0, 'G5', 127).tick(96).noteOn(0, 'G5', 0)
.noteOn(0, 'A5', 127).tick(96).noteOn(0, 'A5', 0)
.noteOn(0, 'B5', 127).tick(96).noteOn(0, 'B5', 0)
.noteOn(0, 'C6', 127).tick(96).noteOn(0, 'C6', 0)
.sxIdRequest();

var data = smf.dump();
var len = data.length;

var a = data.substring(0, len - 36); // start
var b = data.substring(len - 36, len - 12); // last 4 notes
var c = data.substring(len - 12, len - 4); // break
var d = data.substring(len - 4); // eof

data = a + c + b + d;

TEST.write(data);
TEST.play(data);
Binary file added midi/test-running-status-metaevent.mid
Binary file not shown.
Binary file added midi/test-running-status-sysex.mid
Binary file not shown.
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@
"dependencies": {
"jzz": "^1.8.4",
"jzz-gui-player": "^1.7.4",
"jzz-midi-gear": "^1.3.3",
"jzz-midi-gm": "^1.3.6",
"jzz-midi-gear": "^1.3.4",
"jzz-midi-gm": "^1.3.7",
"jzz-midi-smf": "^1.9.2",
"jzz-synth-tiny": "^1.4.0"
},
"devDependencies": {
"eslint": "^9.3.0",
"eslint": "^9.4.0",
"grunt": "^1.6.1",
"mocha": "^10.4.0",
"node-web-audio-api": "^0.21.0",
Expand Down

0 comments on commit 56f537c

Please sign in to comment.