{"action":"created","issue":{"url":"https://api.github.com/repos/WebAudio/web-midi-api/issues/158","repository_url":"https://api.github.com/repos/WebAudio/web-midi-api","labels_url":"https://api.github.com/repos/WebAudio/web-midi-api/issues/158/labels{/name}","comments_url":"https://api.github.com/repos/WebAudio/web-midi-api/issues/158/comments","events_url":"https://api.github.com/repos/WebAudio/web-midi-api/issues/158/events","html_url":"https://github.com/WebAudio/web-midi-api/issues/158","id":132845015,"number":158,"title":"Nonblocking or asynchronous send()","user":{"login":"agoode","id":59842,"avatar_url":"https://avatars.githubusercontent.com/u/59842?v=3","gravatar_id":"","url":"https://api.github.com/users/agoode","html_url":"https://github.com/agoode","followers_url":"https://api.github.com/users/agoode/followers","following_url":"https://api.github.com/users/agoode/following{/other_user}","gists_url":"https://api.github.com/users/agoode/gists{/gist_id}","starred_url":"https://api.github.com/users/agoode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agoode/subscriptions","organizations_url":"https://api.github.com/users/agoode/orgs","repos_url":"https://api.github.com/users/agoode/repos","events_url":"https://api.github.com/users/agoode/events{/privacy}","received_events_url":"https://api.github.com/users/agoode/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":35,"created_at":"2016-02-10T23:08:12Z","updated_at":"2016-02-18T01:14:58Z","closed_at":null,"body":"We have so far been able to use synchronous `send` but this provides no mechanism for backpressure.\r\n\r\nThe current implementation in Chrome uses large internal buffers to hide this issue, but this is wasteful and results in the browser silently dropping messages when the buffer is overrun. This condition is not common with normal MIDI messages, but sysex messages can be of arbitrary length and can be slow to send, so Chrome also puts limits on those as well.\r\n\r\nIn order to allow implementations to avoid these buffers and arbitrary limits, we need a mechanism for non-blocking `send`."},"comment":{"url":"https://api.github.com/repos/WebAudio/web-midi-api/issues/comments/185492960","html_url":"https://github.com/WebAudio/web-midi-api/issues/158#issuecomment-185492960","issue_url":"https://api.github.com/repos/WebAudio/web-midi-api/issues/158","id":185492960,"user":{"login":"toyoshim","id":577684,"avatar_url":"https://avatars.githubusercontent.com/u/577684?v=3","gravatar_id":"","url":"https://api.github.com/users/toyoshim","html_url":"https://github.com/toyoshim","followers_url":"https://api.github.com/users/toyoshim/followers","following_url":"https://api.github.com/users/toyoshim/following{/other_user}","gists_url":"https://api.github.com/users/toyoshim/gists{/gist_id}","starred_url":"https://api.github.com/users/toyoshim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/toyoshim/subscriptions","organizations_url":"https://api.github.com/users/toyoshim/orgs","repos_url":"https://api.github.com/users/toyoshim/repos","events_url":"https://api.github.com/users/toyoshim/events{/privacy}","received_events_url":"https://api.github.com/users/toyoshim/received_events","type":"User","site_admin":false},"created_at":"2016-02-18T01:14:58Z","updated_at":"2016-02-18T01:14:58Z","body":"Why throttled 1 sec interval timer does not work for you?\r\nYou should be able to queue next sending messages for the next 1 sec with proper timestamps.\r\nI don't think you need to adjust playback speed very quickly in a background tab, right? "}}