SkillAgentSearch skills...

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/Portmidi
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

= 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

View on GitHub
GitHub Stars13
CategoryDevelopment
Updated5y ago
Forks4

Languages

Ruby

Security Score

60/100

Audited on Dec 22, 2020

No findings