Skip to content

Commit

Permalink
Per-Note Management
Browse files Browse the repository at this point in the history
  • Loading branch information
jazz-soft committed Dec 16, 2023
1 parent 75a72a0 commit 611368a
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 2 deletions.
10 changes: 10 additions & 0 deletions javascript/JZZ.js
Original file line number Diff line number Diff line change
Expand Up @@ -3093,6 +3093,16 @@
},
umpPnNRPN: function(g, c, n, i, x, y, z, w) {
return [0x40 + _4b(g), 0x10 + _ch(c), _7bn(n), _8b(i)].concat(_32a(x, y, z, w));
},
umpPnManagement: function(g, c, n, m) {
var a = m.toString().split('');
var x = 0;
for (var i = 0; i < a.length; i++) {
if (a[i] == 'S' && !(x & 1)) x |= 1;
else if (a[i] == 'D' && !(x & 2)) x |= 2;
else { x = m; break; }
}
return [0x40 + _4b(g), 0xf0 + _ch(c), _7bn(n), _8b(x), 0, 0, 0, 0];
}
};
var _helperGCX = {
Expand Down
2 changes: 1 addition & 1 deletion minified/JZZ.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"jazz-midi": "^1.7.9"
},
"devDependencies": {
"eslint": "^8.55.0",
"eslint": "^8.56.0",
"grunt": "^1.6.1",
"grunt-contrib-jshint": "^3.2.0",
"grunt-contrib-uglify": "^5.2.2",
Expand Down
9 changes: 9 additions & 0 deletions test/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -1071,6 +1071,15 @@ describe('UMP messages', function() {
it('umpPnNRPN', function() {
assert.equal(JZZ.UMP.umpPnNRPN(1, 2, 3, 4, 5).toString(), '41120304 00000005 -- Assignable Per-Note Controller');
});
it('umpPnManagement', function() {
assert.equal(JZZ.UMP.umpPnManagement(1, 2, 3, 3).toString(), '41f20303 00000000 -- Per-Note Management');
assert.equal(JZZ.UMP.umpPnManagement(1, 2, 3, 'DS').toString(), '41f20303 00000000 -- Per-Note Management');
assert.equal(JZZ.UMP.umpPnManagement(1, 2, 3, 'S').toString(), '41f20301 00000000 -- Per-Note Management');
assert.equal(JZZ.UMP.umpPnManagement(1, 2, 3, 'D').toString(), '41f20302 00000000 -- Per-Note Management');
assert.equal(JZZ.UMP.umpPnManagement(1, 2, 3, '').toString(), '41f20300 00000000 -- Per-Note Management');
assert.throws(function() { JZZ.UMP.umpPnManagement(1, 2, 3, 'DD'); });
assert.throws(function() { JZZ.UMP.umpPnManagement(1, 2, 3, 'SS'); });
});
it('data', function() {
assert.equal(JZZ.UMP(0x50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0).toString(), '50000000 00000000 00000000 00000000 -- Data');
});
Expand Down

0 comments on commit 611368a

Please sign in to comment.