4 "summary": "Layers of abstraction for working with CoreMIDI in pure Swift.",
5 "description": "CoreMIDI's c interface is poorly documented and cumbersome. At the lowest level of abstraction, ARMIDI provides simple Swift wrappers for all of the CoreMIDIServices functions, available at the global level. At the next level of abstraction, protocols with default implementations are provided for the basic CoreMIDI Services components: objects, devices, entities, endpoints, ports, and clients. The final level of abstraction is a set of classes that implement the protocols and are available for subclassing. The ARMIDIError type provides a simple Swift Error type for handling the CoreMIDI OSStatus error codes. ARMIDIParser is a simple MIDI 1.0 parser engine.",
6 "homepage": "https://github.com/AaronRasmussen/ARMIDI.git",
12 "Aaron Rasmussen": "aaron.rasmussen@me.com"
15 "git": "https://github.com/AaronRasmussen/ARMIDI.git",
21 "swift_versions": "5.3",
22 "source_files": "ARMIDI*/**/*",
23 "frameworks": "CoreMIDI",
26 "name": "ARMIDIParser",
27 "source_files": "ARMIDIParser/Sources/**/*"
30 "name": "ARMIDIError",
31 "source_files": "ARMIDIError/Sources/**/*"
34 "name": "ARMIDIServices",
35 "source_files": "ARMIDIServices/Sources/**/*",
37 "ARMIDI/ARMIDIError": [
43 "name": "ARMIDIServices+Protocols",
44 "source_files": "ARMIDIServices+Protocols/Sources/**/*",
46 "ARMIDI/ARMIDIServices": [
52 "name": "ARMIDIServices+Classes",
53 "source_files": "ARMIDIServices+Classes/Sources/**/*",
55 "ARMIDI/ARMIDIServices+Protocols": [
61 "swift_version": "5.3"