This module provides plug and play support for MIDI input devices such as MIDI keyboards.

#Device Source

type Device = { connected :: Boolean, id :: String, manufacturer :: String, name :: String, portType :: String, version :: String }

A Midi Device.

#RawMidiEvent Source

type RawMidiEvent = { encodedBinary :: String, timeStamp :: Number }

A 'raw' Midi Event where the event has not been decoded.

#createDeviceChannel Source

createDeviceChannel :: Effect (Channel Device)

create a channel for MIDI device connections/disconnections and feed it from web-midi

#createEventChannel Source

createEventChannel :: Effect (Channel TimedEvent)

create a channel for MIDI timed event messages and feed it from web-midi

#detectInputDevices Source

detectInputDevices :: (Device -> Effect Unit) -> Effect Unit

detect any input device as it connects or disconnects

#listen Source

listen :: (RawMidiEvent -> Effect Unit) -> Effect Unit

listen to 'raw' web-MIDI event messages.

#webMidiConnect Source

webMidiConnect :: Effect Boolean

try to connect to Web-Midi.