xrrhythmsuk / xruk-player

A pattern-based drumming machine based on TypeScript, beatbox.js, Vue.js and Bootstrap.
https://player.xrrhythms.uk
GNU Affero General Public License v3.0
1 stars 0 forks source link

Custom material disappears on reloading player #75

Open BirchBirchBirch opened 1 year ago

BirchBirchBirch commented 1 year ago

If I create or import a new tune or break in the player on my laptop (Chrome on macOS) or phone (Safari on iOS) and then close and reopen the player, it isn't there anymore, which wasn't the case previously.

No idea if this is just me but I imagine people would have said if it affected them too.

timrog commented 1 year ago

Could you open the console (press F12) before you start creating and see if any errors appear? Paste copy of the output here.

One possibility is that it's run out of history space (it uses "localstorage" which is pretty limited). I have a feeling it stores every song you've ever made in the history.

BirchBirchBirch commented 1 year ago

I got some initial errors about having an unknown object in the tune example songs (which I presume is the count in? As we've fixed the original issue now I suppose we could put it back to adding them automatically), but on reloading the page and my custom things disappearing I get the following:

The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu (anonymous) @ beatbox.js:1 beatbox.js:1 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu

timrog commented 1 year ago

Sorry for the delay. I can't see any problems that might affect it above. Does this still happen? Does this happen only on one device or on all that you've tried? Is there already any custom material on that device?

I've been doing exporting and importing a lot recently and I haven't seen any problems.

Could you let me know the exact steps you're following to reproduce the problem? Cheers.

BirchBirchBirch commented 11 months ago

Sorry, only just seen this. On looking again it seems like if I put some custom stuff in the player on my laptop (Chrome on macOS) and then close it, if I reopen the player it shows some kind of hash it's loading up and then everything from that session is gone.

On having a closer look I've seen that you can still reload things if you go to the History dropdown and pick the most recent session, but it seems odd that that doesn't happen automatically. It's no longer an issue on iOS.

timrog commented 11 months ago

I've found one way you can reproduce this problem and that's to have two tabs open and make changes in one followed by the other. The changes in the first tab will be lost because they've been overwritten by the second. It saves the entire state in one go rather than saving each individual change. It's not easy to fix this without a big overhaul but maybe one day.