https://github.com/riottracker/rtmidi
Haskell wrapper for RtMidi, the lightweight, cross-platform MIDI I/O library.
https://github.com/riottracker/rtmidi
audio haskell midi rtmidi
Last synced: 3 months ago
JSON representation
Haskell wrapper for RtMidi, the lightweight, cross-platform MIDI I/O library.
- Host: GitHub
- URL: https://github.com/riottracker/rtmidi
- Owner: riottracker
- License: other
- Created: 2017-02-13T14:35:17.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-08-19T23:45:59.000Z (almost 2 years ago)
- Last Synced: 2025-10-21T14:42:59.195Z (7 months ago)
- Topics: audio, haskell, midi, rtmidi
- Language: C++
- Homepage:
- Size: 134 KB
- Stars: 3
- Watchers: 5
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RtMidi
Haskell wrapper for [RtMidi](http://www.music.mcgill.ca/~gary/rtmidi/), the lightweight, cross-platform MIDI I/O library.
## Version
The version of this library does not correspond to the RtMidi version (sorry). You can look at the `justfile` to see that we vendor sources
from version `6.0.0`.
## How to use
See [Hackage](https://hackage.haskell.org/package/RtMidi) for the latest released version and add `RtMidi` and `vector` to your library `build-depends`.
Follow the [callback](https://github.com/riottracker/RtMidi/blob/master/examples/callback.hs) example to receive messages.
Follow the [playback](https://github.com/riottracker/RtMidi/blob/master/examples/playback.hs) example to send messages.
## Development
This project is tested with Cabal (latest versions of last two compiler lines) and Stack (latest LTS).
You can get started with development like so (if you have `just` installed):
# Build and test on OSX CoreMIDI support or Linux with ALSA support.
# (You can also manually invoke stack and pass `--flag RtMidi:jack` for Jack support.)
just test
# Print information about all accessible MIDI devices and all compiled APIs.
just example-report
## TODO
* See if there is a way to autodetect Jack in the Cabal file.
* See if there is a way to make OSX not take 3 seconds when initializing the MIDI subsystem.