jazz-soft / jzz-midi-gear Goto Github PK
View Code? Open in Web Editor NEWRetrieve your MIDI device model and manufacturer
License: MIT License
Retrieve your MIDI device model and manufacturer
License: MIT License
MIDI SysEx ID reply for "Yamaha PSS-A50 Portable Keyboard":
f0 7e 7f 06 02 43 00 44 27 1f 00 00 00 7f f7
Looks like 00 44
is "Portable Keyboard", 27 1F
is "PSS-A50"
This could be added to the list.
$ amidi -l
Dir Device Name
IO hw:1,0,0 Digital Keyboard MIDI 1
$ amidi -p hw:1,0,0 -S 'F0 7E 00 06 01 F7' -d
F0 7E 7F 06 02 43 00 44 27 1F 00 00 00 7F F7
isIdResponse correctly tests that the 5th byte has a value of 2:
https://github.com/jazz-soft/JZZ-midi-Gear/blob/master/javascript/JZZ.midi.Gear.js#L15
JZZ.MIDI.prototype.isIdResponse = function() {
return this[0] == 0xf0 && this[1] == 0x7e && this[3] == 6 && this[4] == 2 && this[this.length-1] == 0xf7 && this.length > 10;
};
Unfortunately some synth manufacturers do not send a correct device inquiry response. I happen to own a Waldorf Microwave XT, and the response it sends is:
F0 7E 06 02 3E 0E 00 0B 00 32 2E 33 33 F7
This is documented thoroughly in the manual:
The Microwave 2 will respond with the following:
F0,7E,06,02 Universal Device Header
02
is the 4th byte! ๐คฌ
The instrument has the last available firmware installed ( 2.33 ) so this is unlikely to ever get fixed by Waldorf, and regardless has now likely been baked into third party software. I'm not sure what the right approach here is, it should be reliable to test for a value of 2 at the 5th byte but I thought I'd log the issue so at least other MWXT owners don't go crazy.
An alternative approach I might adopt for some other work I'm doing is to key all known instruments using this utility function:
msg = [240, 126, 6, 2, 62, 14, 0, 11, 0, 50, 46, 51, 51, 247];
function makeUniqueId(intArr) {
return intArr.map((int) => { return int.toString(16).padStart(2, '0'); })
}
console.log(makeUniqueId(msg))
// returns 'f0-7e-06-02-3e-0e-00-0b-00-32-2e-33-33-f7'
It's unlikely there would be collisions and I can then support non-standard hardware without special logic and I'd have O(1) lookups.
The web link did not detect my connected Keyboards mentioned in the title, and I couldn't find Korg listed in the updated list of manufacturers. Here are the identity request reply messages for both keyboards:
Korg Pa1000:
SYSX: F0 7E 7F 06 02 42 60 00 65 00 01 03 01 00 F7
Triton Extreme:
SYSX: F0 7E 00 06 02 42 50 00 3D 00 00 00 01 00 F7
ID Response SysEx received:
port: Bass Station II
message: f0 7e 00 06 02 00 20 29 33 00 00 00 00 06 09 06 f7
brand: Novation
model: undefined
device: undefined
I've created a pull request but don't know if that's right: #9
ID-Response:
f0 7e 7f 06 02 00 01 0c 24 00 02 00 63 00 1e 01 f7
It's the new Yamaha THR30II (wireless) guitar practice amp.
It's settings can be modified by SysEx Messages.
There is an app for Windows, Android and IPhone to do so.
But you can also directly connect it by USB-Midi and communicate via SysEx commands
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.