{"action":"created","issue":{"url":"https://api.github.com/repos/davidedc/livecodelab/issues/241","labels_url":"https://api.github.com/repos/davidedc/livecodelab/issues/241/labels{/name}","comments_url":"https://api.github.com/repos/davidedc/livecodelab/issues/241/comments","events_url":"https://api.github.com/repos/davidedc/livecodelab/issues/241/events","html_url":"https://github.com/davidedc/livecodelab/pull/241","id":47650476,"number":241,"title":"Timekeeper cleanup","user":{"login":"rumblesan","id":169088,"avatar_url":"https://avatars.githubusercontent.com/u/169088?v=3","gravatar_id":"","url":"https://api.github.com/users/rumblesan","html_url":"https://github.com/rumblesan","followers_url":"https://api.github.com/users/rumblesan/followers","following_url":"https://api.github.com/users/rumblesan/following{/other_user}","gists_url":"https://api.github.com/users/rumblesan/gists{/gist_id}","starred_url":"https://api.github.com/users/rumblesan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rumblesan/subscriptions","organizations_url":"https://api.github.com/users/rumblesan/orgs","repos_url":"https://api.github.com/users/rumblesan/repos","events_url":"https://api.github.com/users/rumblesan/events{/privacy}","received_events_url":"https://api.github.com/users/rumblesan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"rumblesan","id":169088,"avatar_url":"https://avatars.githubusercontent.com/u/169088?v=3","gravatar_id":"","url":"https://api.github.com/users/rumblesan","html_url":"https://github.com/rumblesan","followers_url":"https://api.github.com/users/rumblesan/followers","following_url":"https://api.github.com/users/rumblesan/following{/other_user}","gists_url":"https://api.github.com/users/rumblesan/gists{/gist_id}","starred_url":"https://api.github.com/users/rumblesan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rumblesan/subscriptions","organizations_url":"https://api.github.com/users/rumblesan/orgs","repos_url":"https://api.github.com/users/rumblesan/repos","events_url":"https://api.github.com/users/rumblesan/events{/privacy}","received_events_url":"https://api.github.com/users/rumblesan/received_events","type":"User","site_admin":false},"milestone":null,"comments":17,"created_at":"2014-11-03T22:00:22Z","updated_at":"2015-06-20T22:11:44Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/davidedc/livecodelab/pulls/241","html_url":"https://github.com/davidedc/livecodelab/pull/241","diff_url":"https://github.com/davidedc/livecodelab/pull/241.diff","patch_url":"https://github.com/davidedc/livecodelab/pull/241.patch"},"body":"So these changes should make the time keeper and sound system a bit more solid.\r\n\r\nThere's still some work to do\r\n* This uses the Web Audio API, so there's not yet support for IE\r\n* The syncing with the pulse client might not be up to scratch, it needs more testing.\r\n\r\nThere's also a question about how the BPM updating should work. Currently it works fine, but it will update at the next quarter note (i.e. every run of the beatLoop callback). This might not be the desired behaviour, so we should figure out what is"},"comment":{"url":"https://api.github.com/repos/davidedc/livecodelab/issues/comments/113827170","html_url":"https://github.com/davidedc/livecodelab/pull/241#issuecomment-113827170","issue_url":"https://api.github.com/repos/davidedc/livecodelab/issues/241","id":113827170,"user":{"login":"davidedc","id":769568,"avatar_url":"https://avatars.githubusercontent.com/u/769568?v=3","gravatar_id":"","url":"https://api.github.com/users/davidedc","html_url":"https://github.com/davidedc","followers_url":"https://api.github.com/users/davidedc/followers","following_url":"https://api.github.com/users/davidedc/following{/other_user}","gists_url":"https://api.github.com/users/davidedc/gists{/gist_id}","starred_url":"https://api.github.com/users/davidedc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidedc/subscriptions","organizations_url":"https://api.github.com/users/davidedc/orgs","repos_url":"https://api.github.com/users/davidedc/repos","events_url":"https://api.github.com/users/davidedc/events{/privacy}","received_events_url":"https://api.github.com/users/davidedc/received_events","type":"User","site_admin":false},"created_at":"2015-06-20T22:11:44Z","updated_at":"2015-06-20T22:11:44Z","body":"So here were my issues with this pull back then:\r\n\r\n - it ruled out IE (the latest \"Edge\" version probably has web audio support so it will be OK at that time in the future when normal people will be able to install Edge)\r\n - it doesn't free the main thread from the triggering of the sample playing (which would be possible to do with web audio and would be a big win)\r\n - it contained a couple of changes that are useful independently from the rest of the changes\r\n\r\nThat, and the fact that sound support has been traditionally very fiddly to implement and test.\r\n\r\nSo that's why this pull has been hanging...\r\n\r\nIf this came in as an addendum (rather than a replacement) to the already existing library solutions, and it did make use of the webaudio \"start playing the sample while the main thread is doing other things\", then this would be just a win-win to merge.\r\n\r\nIt's the idea of regressing on IE support and having to test the fiddly part and yet to _still_ have the contention problem over the main thread (between graphics and sample playback)... it made this pull request \"easy to postpone\" for me..."}}