All Projects → SpotlightKid → Python Rtmidi

SpotlightKid / Python Rtmidi

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

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Python Rtmidi

rtpmidid
RTP MIDI (AppleMIDI) daemon for Linux
Stars: ✭ 109 (-42.33%)
Mutual labels:  midi, alsa
Unimidi
Realtime MIDI IO for Ruby
Stars: ✭ 229 (+21.16%)
Mutual labels:  midi, alsa
Libremidi
A modern C++ MIDI real-time & file I/O library. Supports Windows, macOS, Linux and WebMIDI.
Stars: ✭ 69 (-63.49%)
Mutual labels:  midi, alsa
alsa-midi-latency-test
Measure the roundtrip time of MIDI messages.
Stars: ✭ 20 (-89.42%)
Mutual labels:  midi, alsa
Managed Midi
[Past project] Cross-platform MIDI processing library for mono and .NET (ALSA, CoreMIDI, Android, WinMM and UWP).
Stars: ✭ 130 (-31.22%)
Mutual labels:  midi, alsa
Midilib
Pure Ruby MIDI file and event manipulation library
Stars: ✭ 158 (-16.4%)
Mutual labels:  midi
Libatm
Library for generating and working with MIDI files
Stars: ✭ 171 (-9.52%)
Mutual labels:  midi
Midiutil
A pure Python library for creating multi-track MIDI files
Stars: ✭ 151 (-20.11%)
Mutual labels:  midi
Fsynth
Web-based and pixels-based collaborative synthesizer
Stars: ✭ 146 (-22.75%)
Mutual labels:  midi
Mixxx
Mixxx is Free DJ software that gives you everything you need to perform live mixes.
Stars: ✭ 2,510 (+1228.04%)
Mutual labels:  midi
Midifile
A MIDI file parser/writer using ArrayBuffers
Stars: ✭ 177 (-6.35%)
Mutual labels:  midi
Signal
A friendly music sequencer built with web technology
Stars: ✭ 166 (-12.17%)
Mutual labels:  midi
Openbook
Open source lilypond real book for Jazz musicians
Stars: ✭ 159 (-15.87%)
Mutual labels:  midi
Jamtaba
Jamtaba is a software to play online music jam sessions.
Stars: ✭ 174 (-7.94%)
Mutual labels:  midi
Html Midi Player
🎹 Play and display MIDI files on the web
Stars: ✭ 158 (-16.4%)
Mutual labels:  midi
Arduino Applemidi Library
Send and receive MIDI messages over Ethernet (rtpMIDI or AppleMIDI)
Stars: ✭ 177 (-6.35%)
Mutual labels:  midi
Midi Controller Css
Use Korg NanoKontrol midi controller to physically edit your CSS files, as featured in the German press:
Stars: ✭ 149 (-21.16%)
Mutual labels:  midi
Helio Workstation
One music sequencer for all major platforms, desktop and mobile
Stars: ✭ 2,257 (+1094.18%)
Mutual labels:  midi
Protoplug
Create audio plugins on-the-fly with LuaJIT.
Stars: ✭ 175 (-7.41%)
Mutual labels:  midi
Ardour
Mirror of Ardour Source Code
Stars: ✭ 2,318 (+1126.46%)
Mutual labels:  midi

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].