pr

python-rtmidi

Python bindings for the cross-platform MIDI I/O library RtMidi

Showing:

Popularity

Downloads/wk

0

GitHub Stars

219

Maintenance

Last Commit

3mos ago

Contributors

8

Package

Dependencies

0

License

MIT License

Categories

Readme

Welcome to python-rtmidi!

A Python binding for the RtMidi C++ library implemented using Cython.

|version| |status| |license| |python_versions| |format| |travis|

.. |version| image:: https://shields.io/pypi/v/python-rtmidi :target: https://pypi.org/project/python-rtmidi :alt: Latest version

.. |release-date| image:: https://shields.io/github/release-date/SpotlightKid/python-rtmidi :target: https://github.com/SpotlightKid/python-rtmidi/releases :alt: Date of latest release

.. |status| image:: https://shields.io/pypi/status/python-rtmidi :alt: Project status

.. |license| image:: https://shields.io/pypi/l/python-rtmidi :target: license.txt_ :alt: MIT License

.. |python_versions| image:: https://shields.io/pypi/pyversions/python-rtmidi :alt: Python versions

.. |format| image:: https://shields.io/pypi/format/python-rtmidi :target: https://pypi.org/project/python-rtmidi/#files :alt: Distribution format

.. |travis| image:: https://travis-ci.org/SpotlightKid/python-rtmidi.svg?branch=master :target: https://travis-ci.org/SpotlightKid/python-rtmidi :alt: Travis CI status

Overview

RtMidi_ is a set of C++ classes which provides a concise and simple, cross-platform API (Application Programming Interface) for realtime MIDI input / output across Linux (ALSA & JACK), macOS / OS X (CoreMIDI & JACK), and Windows (MultiMedia System) operating systems.

python-rtmidi is a Python binding for RtMidi implemented using Cython and provides a thin wrapper around the RtMidi C++ interface. The API is basically the same as the C++ one but with the naming scheme of classes, methods and parameters adapted to the Python PEP-8 conventions and requirements of the Python package naming structure. python-rtmidi supports Python 3 (3.6, 3.7, 3.8, and 3.9).

The documentation_ provides installation instructions, a history of changes per release and an API reference.

See the file LICENSE.txt_ about copyright and usage terms.

The source code repository and issue tracker are hosted on GitHub:

https://github.com/SpotlightKid/python-rtmidi.

Usage example

Here's a quick example of how to use python-rtmidi to open the first available MIDI output port and send a middle C note on MIDI channel 1::

import time
import rtmidi

midiout = rtmidi.MidiOut()
available_ports = midiout.get_ports()

if available_ports:
    midiout.open_port(0)
else:
    midiout.open_virtual_port("My virtual output")

with midiout:
    note_on = [0x90, 60, 112] # channel 1, middle C, velocity 112
    note_off = [0x80, 60, 0]
    midiout.send_message(note_on)
    time.sleep(0.5)
    midiout.send_message(note_off)
    time.sleep(0.1)

del midiout

More usage examples can be found in the examples and tests directories of the source repository.

.. _cython: http://cython.org/ .. _documentation: https://spotlightkid.github.io/python-rtmidi/ .. _examples: https://github.com/SpotlightKid/python-rtmidi/tree/master/examples .. _license.txt: https://github.com/SpotlightKid/python-rtmidi/blob/master/LICENSE.txt .. _python-rtmidi: https://github.com/SpotlightKid/python-rtmidi .. _rtmidi: http://www.music.mcgill.ca/~gary/rtmidi/index.html .. _tests: https://github.com/SpotlightKid/python-rtmidi/tree/master/tests

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial