Portmidi
A simple wrapper using ffi around the portmidi library. This is hopefully easier to build than the c extension I did earlier
Install / Use
/learn @halfbyte/PortmidiREADME
= Portmidi-Mapper
This is a small, incomplete wrapper around the portmidi c library.
It is the successor of my portmidi-ruby project which used ordinary ruby extensions which are a pain to write.
== Requirements
- portmidi (who woulda thought) built as a dynamic library. See below for special notes for Mac OS X Snow Leopard
- ffi (which in turn needs a sane build env to be installed)
== What's missing?
The most important: Tests. I'm still pondering on how to test a library that has hardware requirements and dependencies (= MIDI hardware). So I guess it means I will mock away the portmidi layer to test my abstractions and add some optional integration test that will require a MIDI loopback configuration.
Implementation wise, there's a few things missing:
- Setting Channel- and Message filters
- More different exceptions, plus support for Host Errors
- A lot of safety nets like testing for open devices before reading and writing and such.
== Credits
The portmidi wrapper was thrown together by Jan Krutisch jan@krutisch.de
- Portmidi C-Library: Roger B. Dannenberg / Portmedia Framework Group
- Jan 'half/byte' Krutisch (http://github.com/halfbyte)
- Patches by
- Thomas Jachmann (http://github.com/thomasjachmann)
== Installing Portmidi
- On MacOSX, there's a homebrew recipe, so $ brew install portmidi should do the trick
- On most Linuxes, portmidi should be simply a package to install by your packagemanager
- On Windows: "try this":http://sourceforge.net/apps/trac/portmedia/wiki/Installing%20portmidi%20on%20Windows
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.8kCommit, push, and open a PR
