files/en-us/web/api/midioutput/send/index.md
{{securecontext_header}}{{APIRef("Web MIDI API")}}
The send() method of the {{domxref("MIDIOutput")}} interface queues messages for the corresponding MIDI port. The message can be sent immediately, or with an optional timestamp to delay sending.
send(data)
send(data, timestamp)
data
timestamp {{optional_inline}}
None ({{jsxref("undefined")}}).
data is not a valid sequence, or does not contain a valid MIDI message.NotAllowedError {{domxref("DOMException")}}
data is a system exclusive message, and the {{domxref("MIDIAccess")}} did not enable exclusive access.InvalidStateError {{domxref("DOMException")}}
In the following example a middle C note is sent immediately, followed by a note off message one second later.
function sendMiddleC(midiAccess, portID) {
const noteOnMessage = [0x90, 60, 0x7f]; // Note on middle C, full velocity
const output = midiAccess.outputs.get(portID);
output.send(noteOnMessage); // Omitting the timestamp means send immediately.
output.send([0x80, 60, 0x40], window.performance.now() + 1000.0); // timestamp = now + 1000ms.
}
{{Specifications}}
{{Compat}}