{"id":21443620,"url":"https://github.com/leovr/rtp-midi","last_synced_at":"2025-07-14T18:30:54.910Z","repository":{"id":57733933,"uuid":"80926817","full_name":"LeovR/rtp-midi","owner":"LeovR","description":"Java RTP-MIDI implementation","archived":false,"fork":false,"pushed_at":"2018-03-03T12:49:21.000Z","size":95,"stargazers_count":8,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-16T11:35:51.543Z","etag":null,"topics":["java","java-8","java-library","midi","music","music-library"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LeovR.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":"2017-02-04T15:06:31.000Z","updated_at":"2023-08-23T16:55:56.000Z","dependencies_parsed_at":"2022-09-26T22:11:14.223Z","dependency_job_id":null,"html_url":"https://github.com/LeovR/rtp-midi","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeovR%2Frtp-midi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeovR%2Frtp-midi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeovR%2Frtp-midi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeovR%2Frtp-midi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LeovR","download_url":"https://codeload.github.com/LeovR/rtp-midi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225990436,"owners_count":17556154,"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":["java","java-8","java-library","midi","music","music-library"],"created_at":"2024-11-23T02:12:23.121Z","updated_at":"2024-11-23T02:12:23.640Z","avatar_url":"https://github.com/LeovR.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/LeovR/rtp-midi.svg?branch=master)](https://travis-ci.org/LeovR/rtp-midi)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.leovr/rtp-midi/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.leovr/rtp-midi)\n# rtpmidi\nA Java implementation of the RTP-MIDI protocol. \n\n## Usage\n\nCurrently this library can only be used as a RTP-MIDI session listener.\n\n1. Create a `AppleMidiServer`\n2. Add a `AppleMidiSession` to the server\n  * Either a `MidiDeviceAppleMidiSession` if a `MidiDevice` should be used\n  * Or a `MidiReceiverAppleMidiSession` if only a `Receiver` interface should be used. E.g. for direct processing of messages without a `MidiDevice`.\n3. `start()` the server\n\nTo announce the server via Apple's bonjour the [jMDNS](https://github.com/jmdns/jmdns) library can be used.\n\n###Demo\n\n    public class Application {\n    \n        public static void main(final String[] args) throws InterruptedException {\n            try {\n                JmDNS jmdns = JmDNS.create(InetAddress.getLocalHost());\n    \n                ServiceInfo serviceInfo =\n                        ServiceInfo.create(\"_apple-midi._udp.local.\", \"rtpMidiJava\", 50004, \"apple-midi\");\n                jmdns.registerService(serviceInfo);\n\n                MidiDevice midiDevice = ;//get MIDI device\n\n                AppleMidiServer server = new AppleMidiServer();\n                server.addAppleMidiSession(\n                                new MidiDeviceAppleMidiSession(new MidiDeviceModePair(midiDevice, MidiDeviceMode.READ_ONLY)));\n\n                server.start();\n\n                System.in.read();\n\n                server.stop();\n            } catch (final IOException e) {\n                e.printStackTrace();\n            }\n        }\n    }\n\n\n## ToDo\n* Implement journaling\n* Implement missing session protocol commands\n* Implement session initiation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleovr%2Frtp-midi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleovr%2Frtp-midi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleovr%2Frtp-midi/lists"}