-
-
Notifications
You must be signed in to change notification settings - Fork 118
Home
This page is being retired. For upcoming enhancements, check out the new website.
-
Should parameters (e.g. velocity) be specified and reported as 7bit values (0-127) or as normalized floats (0-1) ? See forum discussion and GitHub Discussion.
These are the methods where the problem surfaces (by default, they expect a float):
-
Output.setKeyAftertouch()
(pressure) -
Output.setChannelAftertouch()
(aftertouch)
Currently, these methods accept a 7bit value directly, through the
rawValue
option parameter or by specifying a pair of [msb, lsb]-
Note()
constructor (attack, release) -
OutputChannel.playNote()
(note number, attack, release) -
OutputChannel.sendNoteOff()
(release) -
OutputChannel.sendNoteOn()
(attack) -
OutputChannel.setMasterTuning()
(msb/lsb) -
OutputChannel.setPitchBend()
(msb/lsb) -
OutputChannel.setPitchBendRange()
(msb/lsb) -
OutputChannel.setModulationRange()
(msb/lsb) -
Output.setSongPosition()
(value: 1-16383) -
OutputChannel.setTuningBank()
(value: 0-127) -
OutputChannel.setTuningProgram()
(value: 0-127) -
OutputChannel.setProgram()
(value: 0-127) -
OutputChannel.sendControlChange()
(value: 0-127) -
Output.setSong()
(value: 0-127)
We also need to look at methods of the
Output
object -
-
What should be the default channel value for listening and sending? I think listening on all channels will help beginners and doesn't risk clogging the system. Sending to all channels by default is kinda weird, though.
-
Should all values be zero-indexed (MIDI channels, bank numbers, etc.)
Enhancements for the website and documentation
-
Add several usage examples:
- Vanilla JS
- React/Next.js/Svelte/etc.
- How to interface with other MIDI software on macOS, Windows and Linux
- Typescript, with examples such import and bundling (see Issue #82)
-
Electron/NW.js
-
The examples' source should be available in the
examples
folder of the repo -
Add a CONTRIBUTING.md file