{"id":21570429,"url":"https://github.com/arirusso/unimidi","last_synced_at":"2025-04-12T21:28:03.916Z","repository":{"id":1433201,"uuid":"1634017","full_name":"arirusso/unimidi","owner":"arirusso","description":"Realtime MIDI IO for Ruby","archived":false,"fork":false,"pushed_at":"2022-02-18T02:46:58.000Z","size":193,"stargazers_count":255,"open_issues_count":13,"forks_count":27,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-04-04T01:07:15.776Z","etag":null,"topics":["alsa","alsa-rawmidi","gem","hardware","jruby","linux","midi","midi-controller","midi-device","midi-messages","music","osx","ruby","ruby-gem","synthesis","synthesizer"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arirusso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-04-19T04:12:01.000Z","updated_at":"2025-02-07T16:13:09.000Z","dependencies_parsed_at":"2022-08-04T03:00:21.604Z","dependency_job_id":null,"html_url":"https://github.com/arirusso/unimidi","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arirusso%2Funimidi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arirusso%2Funimidi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arirusso%2Funimidi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arirusso%2Funimidi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arirusso","download_url":"https://codeload.github.com/arirusso/unimidi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248633861,"owners_count":21136926,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alsa","alsa-rawmidi","gem","hardware","jruby","linux","midi","midi-controller","midi-device","midi-messages","music","osx","ruby","ruby-gem","synthesis","synthesizer"],"created_at":"2024-11-24T11:12:39.057Z","updated_at":"2025-04-12T21:28:03.882Z","avatar_url":"https://github.com/arirusso.png","language":"Ruby","readme":"# UniMIDI\n\n#### Platform independent realtime MIDI input and output for Ruby.\n\nAlso see [MicroMIDI](http://github.com/arirusso/micromidi) which builds a full MIDI messaging DSL on top of this library.\n\n### Features\n\n* Supports Linux, JRuby, OSX, Windows and Cygwin\n* No compilation required\n* Both input and output to and from multiple devices concurrently\n* Generalized handling of different MIDI and SysEx Message types\n* (OSX Only) Use IAC to internally route MIDI to other programs\n\n### Requirements\n\nUniMIDI uses one of the following libraries, depending on which platform you're using it on.  The necessary library should install automatically with the unimidi gem.\n\nPlatform\n\n* JRuby: [midi-jruby](http://github.com/arirusso/midi-jruby)\n* Linux: [alsa-rawmidi](http://github.com/arirusso/alsa-rawmidi)\n* OSX: [ffi-coremidi](http://github.com/arirusso/ffi-coremidi)\n* Windows/Cygwin: [midi-winmm](http://github.com/arirusso/midi-winmm)\n\n### Install\n\nIf you're using Bundler, add this line to your application's Gemfile:\n\n`gem \"unimidi\"`\n\nOtherwise...\n\n`gem install unimidi`\n\n### Usage\n\n##### Blog Posts\n\n* [What is UniMIDI?](http://tx81z.blogspot.com/2011/06/unimidi-platform-independent-realtime.html)\n* [Selecting a device](http://tx81z.blogspot.com/2011/10/selecting-midi-device-with-unimidi.html)\n* [Internally patching in OSX](http://tx81z.blogspot.com/2011/06/osx-unimidi-and-midi-patch-bay.html)\n* [Using UniMIDI with MicroMIDI](http://tx81z.blogspot.com/2011/08/micromidi-ruby-dsl-for-midi.html)\n\nIn addition, some examples are included with the library\n\n* [Selecting a device](http://github.com/arirusso/unimidi/blob/master/examples/select_a_device.rb)\n* [MIDI input](http://github.com/arirusso/unimidi/blob/master/examples/input.rb)\n* [MIDI output](http://github.com/arirusso/unimidi/blob/master/examples/output.rb)\n* [MIDI Sysex output](http://github.com/arirusso/unimidi/blob/master/examples/sysex_output.rb)\n\n### Tests\n\nUniMIDI includes a set of tests which assume that an output is connected to an input.  You will be asked to select which input and output as the test is run.\n\nThe tests can be run using\n\n`rake spec`\n\nSee below for additional notes on testing with JRuby\n\n### Documentation\n\n[rdoc](http://rdoc.info/gems/unimidi)\n\n### Platform Specific Notes\n\n##### JRuby\n\n* javax.sound has some documented issues with SysEx messages in some versions OSX Snow Leopard which do affect this library.\n\n##### Linux\n\n* *libasound* and *libasound-dev* packages are required\n\n### Author\n\n[Ari Russo](http://github.com/arirusso) \u003cari.russo at gmail.com\u003e\n\n### License\n\nApache 2.0, See the file LICENSE\n\nCopyright (c) 2010-2022 Ari Russo  \n","funding_links":[],"categories":["Programming Languages"],"sub_categories":["Ruby"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farirusso%2Funimidi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farirusso%2Funimidi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farirusso%2Funimidi/lists"}