A piano keyboard component
** YOU NEED SUPPORT FOR WEB COMPONENTS IN YOUR BROWSER BECAUSE WE'RE NOT SHIMMING ANYTHING IN **
Firefox: go to about:config, find dom.webcomponents.enabled and set it to true.
Chrome: maybe nothing to do?
Grab Piano-Keyboard.js and Piano-Keyboard.css from the repo or do npm install openmusic-piano-keyboard.
Include Piano-Keyboard.js and Piano-Keyboard.css before you use the component. It will be registered automatically as openmusic-piano-keyboard so you can run document.createElement('openmusic-piano-keyboard') or have <openmusic-piano-keyboard> elements in your HTML source.
E.g.:
<link rel="stylesheet" href="Piano-Keyboard.css">
<script src="Piano-Keyboard.js" defer></script>You need to load the module and then register it--it is not automatically registered!
require('openmusic-piano-keyboard').register('openmusic-piano-keyboard');But you could even register it with other name. Up to you.
Remember to load the css file too or the component will be unstyled.
<openmusic-piano-keyboard octaves="2"></openmusic-piano-keyboard>Attribute for selecting how many octaves to render. Can be 1 or 2.
Events are DOM events, additional data is in the detail field of each event.
detail: index containing the index of the pressed key (either by mouse or keyboard)
E.g.
keyboard.addEventListener('noteon', function(e) {
console.log('note on on key index: ', e.detail.index);
});detail: index containing the index of the released key (either by mouse or keyboard)
E.g.
keyboard.addEventListener('noteoff', function(e) {
console.log('note off on key index: ', e.detail.index);
});Have a look at the demo file in index.html for a usage example.
