{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":571407257,"defaultBranch":"main","name":"musicxml-player","ownerLogin":"infojunkie","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-11-28T03:51:12.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/92977?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1723785237.0","currentOid":""},"activityList":{"items":[{"before":"8ba40359d12428915a041cdf33027d99aa94034b","after":"ebb506b1bae0155ad50f6bb8449d416743ed6196","ref":"refs/heads/main","pushedAt":"2024-08-16T05:13:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Update dependencies and node versions","shortMessageHtmlLink":"Update dependencies and node versions"}},{"before":"95c9ad33ba7fde48d0338516a6cf7ad0a0413a2a","after":"8ba40359d12428915a041cdf33027d99aa94034b","ref":"refs/heads/main","pushedAt":"2024-08-16T04:30:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Don't fail on destroy","shortMessageHtmlLink":"Don't fail on destroy"}},{"before":"5e4350cad150e08c6542853d978ffbc80b21841c","after":"95c9ad33ba7fde48d0338516a6cf7ad0a0413a2a","ref":"refs/heads/main","pushedAt":"2024-08-11T20:36:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Fix param loading in demo","shortMessageHtmlLink":"Fix param loading in demo"}},{"before":"cc88fedbac0c899b4f183971a2612f2649f81702","after":"5e4350cad150e08c6542853d978ffbc80b21841c","ref":"refs/heads/main","pushedAt":"2024-08-11T06:58:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Add looping support in midi-player; Add baiao demo","shortMessageHtmlLink":"Add looping support in midi-player; Add baiao demo"}},{"before":"78559ec7bcd05cb22b9f6db89434134b14a48be5","after":"cc88fedbac0c899b4f183971a2612f2649f81702","ref":"refs/heads/main","pushedAt":"2024-08-01T07:06:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Stop repeating when destroying","shortMessageHtmlLink":"Stop repeating when destroying"}},{"before":"97fd29463147c7ee31d0014fe059d8f1768fbd49","after":"78559ec7bcd05cb22b9f6db89434134b14a48be5","ref":"refs/heads/main","pushedAt":"2024-08-01T06:59:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Incomplete fix for reentrant TimingObject update event","shortMessageHtmlLink":"Incomplete fix for reentrant TimingObject update event"}},{"before":"addffea27457c1c117716005b10ad2bb24f33f13","after":"97fd29463147c7ee31d0014fe059d8f1768fbd49","ref":"refs/heads/main","pushedAt":"2024-08-01T06:27:42.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Giant refactoring of the Player API.\n\nIt all started with a rethinking of the TimingObject interface, whereby the Player now controls the TimingObject lifetime as opposed to receiving it from the caller.\nThis introduced the conundrum of differentiating between internally-generated TimingObject updates (such as play(), pause()) versus updates caused by the Player client.\n\nOnce that was solved(-ish, check https://github.com/chrisguttandin/timing-object/issues/229) I noticed that player velocity can be changed dynamically via a TimingObject update\nbut that other options such as mute / repeat need a full rebuild of the Player in order to take effect. I exposed those as dynamic attributes and updated the demo accordingly.","shortMessageHtmlLink":"Giant refactoring of the Player API."}},{"before":"e38164e55070adfbe307582a1460cf995816a0fe","after":"addffea27457c1c117716005b10ad2bb24f33f13","ref":"refs/heads/main","pushedAt":"2024-06-29T03:23:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Update dependencies","shortMessageHtmlLink":"Update dependencies"}},{"before":"fe19f423358e2083a9130ccd01cbcee1be2c1643","after":"e38164e55070adfbe307582a1460cf995816a0fe","ref":"refs/heads/main","pushedAt":"2024-06-03T06:04:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Adjust rast demo","shortMessageHtmlLink":"Adjust rast demo"}},{"before":"f19c0846901f47d939bddeb0c40687b71ed49e39","after":"fe19f423358e2083a9130ccd01cbcee1be2c1643","ref":"refs/heads/main","pushedAt":"2024-05-24T02:23:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Reset velocity in demo","shortMessageHtmlLink":"Reset velocity in demo"}},{"before":"63efc59d9b122615d19299abd9ef6d1c35fbba71","after":"f19c0846901f47d939bddeb0c40687b71ed49e39","ref":"refs/heads/main","pushedAt":"2024-05-19T23:15:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Update README","shortMessageHtmlLink":"Update README"}},{"before":"07970ef00a757e638a91571363c2a885a04e4039","after":null,"ref":"refs/tags/v0.16.0","pushedAt":"2024-05-19T06:32:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"}},{"before":"07970ef00a757e638a91571363c2a885a04e4039","after":"63efc59d9b122615d19299abd9ef6d1c35fbba71","ref":"refs/heads/main","pushedAt":"2024-05-19T06:32:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Update version number","shortMessageHtmlLink":"Update version number"}},{"before":"c092cbca0bbecb89b5d188aef6ec194b59dbfc60","after":"07970ef00a757e638a91571363c2a885a04e4039","ref":"refs/heads/main","pushedAt":"2024-05-19T06:26:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Fix #15 support playback speed aka velocity","shortMessageHtmlLink":"Fix #15 support playback speed aka velocity"}},{"before":"4c815e9243154440618ef7df4ec26876fd9168fd","after":"c092cbca0bbecb89b5d188aef6ec194b59dbfc60","ref":"refs/heads/main","pushedAt":"2024-05-16T17:47:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Big refactoring to remove internal cursors and rely on MIDI player position instead","shortMessageHtmlLink":"Big refactoring to remove internal cursors and rely on MIDI player po…"}},{"before":"9b541d82f334ed3fa82be75eb5b61258ff6aff9f","after":"4c815e9243154440618ef7df4ec26876fd9168fd","ref":"refs/heads/main","pushedAt":"2024-05-14T03:04:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Update dependencies","shortMessageHtmlLink":"Update dependencies"}},{"before":"219117c58c457954a0ba4695e4fac27bfe0383cb","after":"9b541d82f334ed3fa82be75eb5b61258ff6aff9f","ref":"refs/heads/main","pushedAt":"2024-05-13T04:55:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Update dependencies","shortMessageHtmlLink":"Update dependencies"}},{"before":"d7983ccdf40f80f00b17a25c286ad48cfb5a31ac","after":"219117c58c457954a0ba4695e4fac27bfe0383cb","ref":"refs/heads/main","pushedAt":"2024-05-10T05:35:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Minor code cleanups","shortMessageHtmlLink":"Minor code cleanups"}},{"before":"990bebc06b6269a4c773e0c8cf5985e6cb806189","after":"d7983ccdf40f80f00b17a25c286ad48cfb5a31ac","ref":"refs/heads/main","pushedAt":"2024-04-21T20:25:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Fix #34 First play after page load stutters","shortMessageHtmlLink":"Fix #34 First play after page load stutters"}},{"before":"0ee24c6792a0a31700840abb91e2106ccfe3472a","after":"990bebc06b6269a4c773e0c8cf5985e6cb806189","ref":"refs/heads/main","pushedAt":"2024-01-16T19:31:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Remove debug output","shortMessageHtmlLink":"Remove debug output"}},{"before":"bd3c0d0d52e4d52d96b6a771dd5d3b8fa6945c3d","after":"0ee24c6792a0a31700840abb91e2106ccfe3472a","ref":"refs/heads/main","pushedAt":"2024-01-16T19:29:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Remove debug output","shortMessageHtmlLink":"Remove debug output"}},{"before":"81380daf249afe65c5aa1468a92356108cb3a328","after":"bd3c0d0d52e4d52d96b6a771dd5d3b8fa6945c3d","ref":"refs/heads/main","pushedAt":"2024-01-16T19:21:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Validate MusicXML in parseMusicXML() and update demo to better reject invalid files","shortMessageHtmlLink":"Validate MusicXML in parseMusicXML() and update demo to better reject…"}},{"before":"9c986e9d71b591f2b6a64edb16c418b98c4c6e49","after":"81380daf249afe65c5aa1468a92356108cb3a328","ref":"refs/heads/main","pushedAt":"2024-01-15T18:53:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Add Player.midi() method to retrieve MIDI ArrayBuffer","shortMessageHtmlLink":"Add Player.midi() method to retrieve MIDI ArrayBuffer"}},{"before":"136cc07d6c5ddb96175e926cd5a9c7f33c54760c","after":"9c986e9d71b591f2b6a64edb16c418b98c4c6e49","ref":"refs/heads/main","pushedAt":"2024-01-13T07:05:34.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Update to latest dependencies","shortMessageHtmlLink":"Update to latest dependencies"}},{"before":"477fc1b810674feb4119c2759a7cff58a9ada73f","after":"136cc07d6c5ddb96175e926cd5a9c7f33c54760c","ref":"refs/heads/main","pushedAt":"2023-08-05T07:01:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"5cb9854cdf158d9be167f4578aaae66ee3c7d6b1","after":"477fc1b810674feb4119c2759a7cff58a9ada73f","ref":"refs/heads/main","pushedAt":"2023-08-04T06:29:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Add microtonal demo and fix microtone support #30","shortMessageHtmlLink":"Add microtonal demo and fix microtone support #30"}},{"before":"df8f1520652b509f049cd3eddf7887743b851b57","after":"5cb9854cdf158d9be167f4578aaae66ee3c7d6b1","ref":"refs/heads/main","pushedAt":"2023-07-18T05:55:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Fix regressions introduced by new version of musicxml-midi","shortMessageHtmlLink":"Fix regressions introduced by new version of musicxml-midi"}},{"before":"03382ad1f7b319c3f8e80dcb8c292692f012bd96","after":"df8f1520652b509f049cd3eddf7887743b851b57","ref":"refs/heads/main","pushedAt":"2023-07-17T04:58:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Update to musicxml-midi v2","shortMessageHtmlLink":"Update to musicxml-midi v2"}},{"before":"3cd5cb6b15b91766eb9a25a44c4f2e1a1bf80cc3","after":"03382ad1f7b319c3f8e80dcb8c292692f012bd96","ref":"refs/heads/main","pushedAt":"2023-07-16T02:41:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Offset, not delay","shortMessageHtmlLink":"Offset, not delay"}},{"before":"e49c874786e19ba79a37bc6cb74cff46f30147e1","after":"3cd5cb6b15b91766eb9a25a44c4f2e1a1bf80cc3","ref":"refs/heads/main","pushedAt":"2023-07-14T04:43:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"infojunkie","name":"Karim Ratib","path":"/infojunkie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92977?s=80&v=4"},"commit":{"message":"Reset timingsrc when destroying the player","shortMessageHtmlLink":"Reset timingsrc when destroying the player"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xNlQwNToxMzo1Mi4wMDAwMDBazwAAAASbz1SL","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xNlQwNToxMzo1Mi4wMDAwMDBazwAAAASbz1SL","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNy0xNFQwNDo0Mzo1Ny4wMDAwMDBazwAAAANVWNRY"}},"title":"Activity · infojunkie/musicxml-player"}