pyobjc-framework-CoreMIDI
Wrappers for the framework CoreMIDI on macOS
What it is and what it does
This package wraps Apple's CoreMIDI framework for use in Python, allowing macOS applications to send and receive MIDI data to and from hardware devices and software synthesizers. It is built on top of PyObjC, which translates between Python and Objective-C, and depends on pyobjc-core and pyobjc-framework-Cocoa to function.
The wrappers expose CoreMIDI's native API surface directly; the package itself does not include high-level documentation, so users must refer to Apple's CoreMIDI documentation and PyObjC's translation guidelines to understand how to call the underlying framework. It is maintained actively and marked as production-stable, supporting Python 3.10 through 3.15 on macOS.
Use it for:
- Build a macOS DAW controller or MIDI sequencer that sends note and control data to external synthesizers.
- Create a live performance tool that listens to MIDI keyboards or controllers connected to a Mac.
- Develop a MIDI monitor or diagnostic utility to inspect MIDI traffic on macOS.
- Write a music production script that automates MIDI recording or playback on macOS systems.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides Python bindings to macOS's CoreMIDI framework, enabling MIDI input and output operations from Python code running on macOS.
Yes, if you are developing MIDI applications on macOS and need direct access to CoreMIDI. The package is actively maintained, permissively licensed, and production-stable. The main constraint is platform specificity (macOS only) and the requirement to cross-reference Apple's CoreMIDI documentation alongside PyObjC's translation rules; it is not a high-level abstraction but a thin wrapper.
Install
pyobjc-framework-coremidi on PyPI
pip
pip install pyobjc-framework-coremidiuv
uv add pyobjc-framework-coremidipoetry
poetry add pyobjc-framework-coremidiInstalling pyobjc-framework-CoreMIDI
Before you install
Medium install friction: platform-specific wheels for macOS only (Python 3.10–3.15), with compiled dependencies on pyobjc-core and pyobjc-framework-Cocoa. Active maintenance (last commit 2026-08-14, release 3 days ago) and production-stable status reduce risk.
License in practice
MIT license is permissive; you may use, modify, and distribute this package freely with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install pyobjc-framework-coremidi
import CoreMIDI
# Access MIDI devices and ports via CoreMIDI framework bindings
macOS only; requires Python 3.10 or later; depends on pyobjc-core and pyobjc-framework-Cocoa.
Verify before relying
- Specific CoreMIDI API coverage and completeness compared to native macOS CoreMIDI.
- Whether this package includes MIDI event scheduling or only basic I/O.
- Real-world latency characteristics for MIDI input/output operations.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — pyobjc-core, pyobjc-framework-Cocoa |
| Maintenance | actively maintained — 3 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 659,941/month — #5,462 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyobjc_framework_coremidi-12.2.2-cp310-cp310-macosx_10_9_universal2.whl; pyobjc_framework_coremidi-12.2.2-cp311-cp311-macosx_10_9_universal2.whl; pyobjc_framework_coremidi-12.2.2-cp312-cp312-macosx_10_13_universal2.whl; pyobjc_framework_coremidi-12.2.2-cp313-cp313-macosx_10_13_universal2.whl; pyobjc_framework_coremidi-12.2.2-cp313-cp313t-macosx_10_13_universal2.whl; pyobjc_framework_coremidi-12.2.2-cp314-cp314-macosx_10_15_universal2.whl; pyobjc_framework_coremidi-12.2.2-cp314-cp314t-macosx_10_15_universal2.whl; pyobjc_framework_coremidi-12.2.2-cp315-cp315-macosx_10_15_universal2.whl; pyobjc_framework_coremidi-12.2.2-cp315-cp315t-macosx_10_15_universal2.whl
Keywords: PyObjC, CoreMIDI
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pyobjc-framework-iTunesLibraryProvides Python bindings to macOS's…
permissive · top 15,000 on PyPI
python-rtmidipython-rtmidi provides a Python interface to…
permissive · top 15,000 on PyPI
pyobjc-framework-CoreHapticsProvides Python bindings to Apple's CoreHaptics…
permissive · top 15,000 on PyPI
pyobjc-framework-ShazamKitProvides Python bindings to macOS's ShazamKit…
permissive · top 15,000 on PyPI
midoMido provides a Python library for creating,…
permissive · top 5,000 on PyPI
pyobjc-framework-CoreAudioProvides Python bindings to macOS's CoreAudio…
permissive · top 15,000 on PyPI
pyobjc-framework-MapKitProvides Python bindings to Apple's MapKit…
permissive · top 15,000 on PyPI
pyobjc-framework-CoreMotionProvides Python bindings to macOS's CoreMotion…
permissive · top 15,000 on PyPI
pyobjc-framework-SharedWithYouCoreProvides Python bindings for Apple's…
permissive · top 15,000 on PyPI
pyobjc-framework-PHASEProvides Python bindings to Apple's PHASE…
permissive · top 15,000 on PyPI