rtmidi

Nim bindings for RtMidi, a cross-platform realtime MIDI input/output library.

Wrapper score 15/100 · tests present · no docs generated

Wraps a native library — check OS Compatibility below for platform-specific linking notes.

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:23

Installation

nimble install rtmidi
choosenim install rtmidi
git clone https://github.com/stoneface86/nim-rtmidi/

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
rtmidi - - - - - - -

Source

Repository https://github.com/stoneface86/nim-rtmidi/
Homepage https://github.com/stoneface86/nim-rtmidi/
Registry Source nimble_official

README

nim-rtmidi

Nim wrapper for RtMidi, a cross-platform realtime MIDI input/output library. This wrapper contains both low-level bindings and a high-level API.

Versioning

This library uses the same versioning as RtMidi, adding an extra patch number. For example version 4.0.0.1 uses RtMidi version 4.0.0, and the wrapper's version is 1.

The following versions are available:

RtMidi version nim-rtmidi version
6.0.0 6.0.0.0
5.0.0 5.0.0.0
4.0.0 4.0.0.0

v6.0.0.0 is the current stable version.

Dependencies

Nim v1.4.0 and up is required.

A vendored copy of RtMidi is included in this repository when linking statically, so you will need to install RtMidi's dependencies:

  • Linux: ALSA development libraries, pthreads
  • OSX: None
  • Windows: None

Install

Install via nimble:

nimble install rtmidi

Then use in your project:

# high-level API
import rtmidi
# and/or you want bindings
# import rtmidi/bindings

Options

Define Default Description
rtmidiUseJack not present Enables compilation of the JACK backend
rtmidiUseDll not present Dynamic link to rtmidi instead of static linking
rtmidiDll depends on OS Set the name of the rtmidi dynamic library used

Support for the JACK API is not compiled in by default, so define rtmidiUseJack to enable it when static linking.

Static linking is done by default, define rtmidiUseDll to link dynamically. By default the DLL file used depends on your OS:

  • Linux: librtmidi.so
  • MacOS: librtmidi.dylib
  • Windows: rtmidi.dll

Define rtmidiDll to override this filename.

License

This library is licensed under the MIT License. RtMidi is licensed under a modified MIT License.