{"id":19288098,"url":"https://github.com/desktopgame/next_synth_midi","last_synced_at":"2026-05-05T04:04:05.506Z","repository":{"id":111985190,"uuid":"330103177","full_name":"desktopgame/next_synth_midi","owner":"desktopgame","description":null,"archived":false,"fork":false,"pushed_at":"2021-02-21T07:35:59.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-23T23:28:35.468Z","etag":null,"topics":["dart","flutter","midi"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/desktopgame.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-16T06:52:43.000Z","updated_at":"2022-10-08T00:48:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"ff229eff-5606-4fb4-96c2-85690252a63d","html_url":"https://github.com/desktopgame/next_synth_midi","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/desktopgame/next_synth_midi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/desktopgame%2Fnext_synth_midi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/desktopgame%2Fnext_synth_midi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/desktopgame%2Fnext_synth_midi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/desktopgame%2Fnext_synth_midi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/desktopgame","download_url":"https://codeload.github.com/desktopgame/next_synth_midi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/desktopgame%2Fnext_synth_midi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274815734,"owners_count":25355211,"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","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["dart","flutter","midi"],"created_at":"2024-11-09T22:08:02.454Z","updated_at":"2026-05-05T04:04:00.473Z","avatar_url":"https://github.com/desktopgame.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# next_synth_midi\n\nMIDI機能を使用するためのネイティブライブラリ\n\n## example\nMIDI端末を列挙して、最初に見つかった端末にノートオン,ノートオフを送信する\n````.dart\nFuture\u003cvoid\u003e sendMidiMessage() async {\n  int deviceCount = await NextSynthMidi.deviceCount;\n  bool opened = false;\n  print(\"deviceCount= ${deviceCount}\");\n  for (int i = 0; i \u003c deviceCount; i++) {\n    String name = await NextSynthMidi.getDeviceName(i);\n    int inputs = await NextSynthMidi.getInputPortCount(i);\n    int outputs = await NextSynthMidi.getOutputPortCount(i);\n    print(\"name=${name} inputs=${inputs} outputs=${outputs}\");\n    for (int j = 0; j \u003c inputs + outputs; j++) {\n      int port = await NextSynthMidi.getPortNumber(i, j);\n      bool isInput = await NextSynthMidi.isInputPort(i, j);\n      bool isOutput = await NextSynthMidi.isOutputPort(i, j);\n      print(\"[$j] port=${port} isInput=${isInput} isOutput=${isOutput}\");\n      if (isOutput \u0026\u0026 !opened) {\n        await NextSynthMidi.openPort(i, port, -1);\n        await NextSynthMidi.waitForOpen(i, port, -1);\n        await NextSynthMidi.send(i, port, Uint8List.fromList([0x90, 60, 127]), 0, 3);\n        await Future.delayed(new Duration(seconds: 3));\n        await NextSynthMidi.send(i, port, Uint8List.fromList([0x90, 60, 0]), 0, 3);\n        var n = await NextSynthMidi.closePort(i, port, -1);\n        print(\"send! $n\");\n      }\n    }\n  }\n}\n````\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdesktopgame%2Fnext_synth_midi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdesktopgame%2Fnext_synth_midi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdesktopgame%2Fnext_synth_midi/lists"}