MIDI Endpoints

An endpoint object represents a source or destination of MIDI data. It can correspond to either a physical device such as a port on a MIDI interface, or to a source or destination within another MIDI application.

Real vs. Virtual Endpoints

Real endpoints correspond to physical devices or sources/destinations created by other MIDI applications on the system.

Virtual endpoints, on the other hand, are endpoints that you create and that appear in other applications as sources and destinations. They allow you to communicate with other applications as though your application were a physical device.

Managing Real Endpoints

Real endpoints are represented by objects of the PYMIDIRealDestination and PYMIDIRealSource classes. The MIDI Manager is responsible for creating and managing objects of these classes - you never instantiate them yourself.

Managing Virtual Endpoints

Virtual endpoints are represented by objects of the PYMIDIVirtualDestination and PYMIDIVirtualSource classes. These can be created using the initWithName: initializer.

Note that the terminology can be slightly confusing in that a PYMIDIVirtualSource appears as a source to other applications, not to your own. Your own application must send data to the virtual source (as though it were destination.) That data can then be received by other applications. The reverse is true for virtual destinations.