Class:            PortMIDIPort

Environment:      Siren
Superclass:         Siren.MIDIPort
Category:         MusicIO-MIDI
Instance variables:   driver
Imports:            private MIDICommands.* private MIDIioctls.*
               private GeneralMIDIMap.* private GeneralMIDIDrums.*

An instance of PortMIDIPort is the interface to the external driver that talks to the PortMIDI interface.

Instance Variables:
   driver    my I/O interface driver

Shared Variables:
   Devices    unised
   Streams    the map between Siren devices and interface ports

open/close

close
   Close MIDI.

close: stream
   Close MIDI.

open
   Open the MIDI driver -- start the lower-level driver up.

openInput: dev
   Open the MIDI driver -- start the lower-level driver up.

openOutput: dev
   Open the MIDI driver -- start the lower-level driver up.

terminate
   Close MIDI.

ioctl

readLoop
   The MIDI driver input process loop.

startControllerCaching
   Start caching MIDI controller in the driver.

stopControllerCaching
   Stop caching MIDI controller in the driver.

initialize release

initialize
   Setup the receiver's instance variables.

release
   Release--break and dependencies on the error value.

read/write

playOff: aPitch amp: anAmp voice: aVoice
   Play the argument on the receiver--no duration-->no note-off.

playOff: streamID pitch: pitch amp: amp voice: voice
   Play the argument on the receiver.

playOn: aPitch amp: anAmp voice: aVoice
   Play the argument on the receiver--no duration-->no note-off.

playOn: streamID pitch: pitch amp: amp voice: voice
   Play the argument on the receiver--no duration-->no note-off.

put: streamID data: data length: size
   Send the argument (a ByteArray for historical reasons) to the receiver now.

put: data length: size
   Send the argument (a ByteArray for historical reasons) to the receiver now.

readControllersFrom: lo to: hi into: array
   Read a range of controllers

accessing

isActive
   Answer whether the receiver is active.

MetaClass:         PortMIDIPort class

examples

testANote
   Open MIDI, play a note.

class initialization

initializeData
   Set up the class defaults.