
Security News
New Website “Is It Really FOSS?” Tracks Transparency in Open Source Distribution Models
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
midi-communications-macos
Advanced tools
Realtime MIDI IO with Ruby for OSX.
Access the Apple Core MIDI framework API with Ruby.
This library is part of a suite of Ruby libraries for MIDI:
Function | Library |
---|---|
MIDI Events representation | MIDI Events |
MIDI Data parsing | MIDI Parser |
MIDI communication with Instruments and Control Surfaces | MIDI Communications |
Low level MIDI interface to MacOS | MIDI Communications MacOS Layer |
Low level MIDI interface to Linux | TO DO (by now MIDI Communications uses alsa-rawmidi) |
Low level MIDI interface to JRuby | TO DO (by now MIDI Communications uses midi-jruby) |
Low level MIDI interface to Windows | TO DO (by now MIDI Communications uses midi-winm) |
This library is based on Ari Russo's library ffi-coremidi.
If you're using Bundler, add this line to your application's Gemfile:
gem "midi-communications-macos"
Otherwise
gem install midi-communications-macos
(TO DO) rdoc
MIDI Communications MacOS Layer is mostly a clone of ffi-coremidi with some modifications:
The author has been developing since 2016 a Ruby project called Musa DSL that needs a way of representing MIDI Events and a way of communicating with MIDI Instruments and MIDI Control Surfaces.
Ari Russo has done a great job creating several interdependent Ruby libraries that allow MIDI Events representation (MIDI Message and Nibbler) and communication with MIDI Instruments and MIDI Control Surfaces (unimidi, ffi-coremidi and others) that, with some modifications, I've been using in MusaDSL.
After thinking about the best approach to publish MusaDSL I've decided to publish my own renamed version of the modified dependencies because:
All in all I have decided to publish a suite of libraries optimized for MusaDSL use case that also can be used by other people in their projects.
Function | Library | Based on Ari Russo's | Difference |
---|---|---|---|
MIDI Events representation | MIDI Events | MIDI Message | removed parsing, small improvements |
MIDI Data parsing | MIDI Parser | Nibbler | removed process history information, minor optimizations |
MIDI communication with Instruments and Control Surfaces | MIDI Communications | unimidi | use of [MIDI Communications MacOS Layer](https://github.com/javier-sy/midi-communications-macos, removed process history information, removed buffering, removed command line script) |
Low level MIDI interface to MacOS | MIDI Communications MacOS Layer | ffi-coremidi | removed buffering and process history information, locking behaviour when waiting midi events, improved midi devices name detection, minor optimizations |
Low level MIDI interface to Linux | TO DO | ||
Low level MIDI interface to JRuby | TO DO | ||
Low level MIDI interface to Windows | TO DO |
Thanks to Ari Russo for his ruby library ffi-coremidi licensed under Apache License 2.0.
As explained by Ari Russo regarding his library ffi-coremidi:
MIDI Communicatios MacOS Layer Copyright (c) 2021-2023 Javier Sánchez Yeste, licensed under LGPL 3.0 License
ffi-coremidi Copyright (c) 2011-2017 Ari Russo, licensed under Apache License 2.0 (see the file LICENSE.ffi-coremidi)
FAQs
Unknown package
We found that midi-communications-macos demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
Security News
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
Security News
The Latio podcast explores how static and runtime reachability help teams prioritize exploitable vulnerabilities and streamline AppSec workflows.