{"push_id":909465488,"size":4,"distinct_size":4,"ref":"refs/heads/master","head":"a0ebbf96dbedd38378f2e863f209af3ff97d7229","before":"47cf5d9e6173e1a856457954517a5a456eb4c9a4","commits":[{"sha":"1601525274da7e3a3df3c2be2de19b468ba8cb1d","author":{"email":"84a516841ba77a5b4648de2cd0dfcb30ea46dbb4@chromakode.com","name":"Max Goodman"},"message":"Merge loops","distinct":true,"url":"https://api.github.com/repos/hacktunes/hacktunes/commits/1601525274da7e3a3df3c2be2de19b468ba8cb1d"},{"sha":"c7517aa27e70881f29a45151bd06e7cae500ae70","author":{"email":"84a516841ba77a5b4648de2cd0dfcb30ea46dbb4@chromakode.com","name":"Max Goodman"},"message":"Rewrite disabled track handling to always load MIDI\n\nSince updates are infrequent, and creating tracks is intended to be\ncheap, we can afford to create and then immediately destroy tracks here.\n\nThis approach ensures that we always calculate the full song duration,\neven when all tracks are disabled. However, I didn't want to keep\nunnecessary MIDI players running after the full transport has been\nloaded, so we now reference count the MIDI players, removing unnecessary\nones after the disabled tracks are cleaned up.\n\nIf a song is playing with no enabled tracks, there will be no\nMIDIPlayers running, which means that we can no longer rely on the\nMIDIPlayer endCallback to trigger song completion. This changeset also\nswitches to setting a timeout after the remaining time on the song\nfinishes.","distinct":true,"url":"https://api.github.com/repos/hacktunes/hacktunes/commits/c7517aa27e70881f29a45151bd06e7cae500ae70"},{"sha":"37d7e1edff701f7f1cfc67b23fc851603866ff38","author":{"email":"84a516841ba77a5b4648de2cd0dfcb30ea46dbb4@chromakode.com","name":"Max Goodman"},"message":"Add initializer for ctx","distinct":true,"url":"https://api.github.com/repos/hacktunes/hacktunes/commits/37d7e1edff701f7f1cfc67b23fc851603866ff38"},{"sha":"a0ebbf96dbedd38378f2e863f209af3ff97d7229","author":{"email":"84a516841ba77a5b4648de2cd0dfcb30ea46dbb4@chromakode.com","name":"Max Goodman"},"message":"Re-create tracks when seeked, and destroy when not actively playing\n\nThis should fix the hanging notes that occasionally happened. Still need\nto add a gain so we can avoid glitches and pops.","distinct":true,"url":"https://api.github.com/repos/hacktunes/hacktunes/commits/a0ebbf96dbedd38378f2e863f209af3ff97d7229"}]}