Skip to content

Latest commit

 

History

History
54 lines (37 loc) · 3.63 KB

README.md

File metadata and controls

54 lines (37 loc) · 3.63 KB

GitHub Issues Percentage of issues still open Average time to resolve an issue

Hello and welcome to RMR's readme.

RMR or "RtMIDI, reduced" is a simplified rewrite of RtMIDI's Alsa part: C++ → C + GLib library. It allows to interface C programs using MIDI standard. There is no compatibility with API calls and struct members from RtMIDI.

Warning: I might change API a lot, this project is not stable. Use RMR at your own risk.

Documentation

Latest documentation is available on Read the Docs.

Motivation

This is my personal, derivative project. I want to use RMR on Linux embedded devices and learn more about MIDI and Alsa while changing the code. I also want to know the library internals well when I am using it so it can be as predictable for me as possible.

It will be great if you will discuss it with me in issues, recommend code improvements, etc.

Changes

  • C++ → C
  • use GLib asynchronous queues and arrays when needed (mostly input code: arrays for variably sized SysEx messages and queues for inter-thread message passing)
  • removed OOP parts and use structs to reduce overhead
  • changed OOP methods to simple functions to reduce overhead
  • currently uses do {} while (0); for error handling in many cases
  • use of GNU make for examples and tests
  • documentation using Sphinx and Hawkmoth

Future plans

Jack

One day, I might try and rewrite JACK API and add it to RMR, I like using it for audio, but I don't use it for MIDI yet.

Legal and ethical

The RMR is MIT-licensed. If you create a pull request, it will also be very nice of you to add a PR for the original RtMIDI repo and I'm ready to help with that. Initially, I wanted it to have the same non-binding license clause, but that way, GitHub can not detect the license. (Please inform me in the issues if there's anything wrong with it.)

Other great RtMIDI forks