jpauwels / pywebaudioplayer

https://pypi.org/project/pywebaudioplayer/
MIT License
10 stars 1 forks source link

Multiple Trackswitch Instances #3

Open sebastianrosenzweig opened 4 years ago

sebastianrosenzweig commented 4 years ago

Hi Johan,

One issue I stumbled across is the use of multiple trackswitch instances in one Jupyter notebook. When using multiple players, the GUIs seem to crash (no update of player position and controls, irresponsiveness). This feature is actually supported by the original player, but I could not figure out so far why it doesn't work in the notebook environment...

jpauwels commented 4 years ago

Hmm, I thought I had the case of multiple instances covered. I'll need to look into it to see if I can reproduce.

sebastianrosenzweig commented 4 years ago

For me (using Firefox), this issue occurs when 'globalsolo' is activated. Setting this to False helps in a way. Then, one can make the GUI responsive again by re-executing the particular cells.

jpauwels commented 4 years ago

I can reproduce it now even with the example-notebook.ipynb, so it's something that got introduced by upgrades to Firefox or Jupyter Notebook.

In general, I've found the theoretical way forward, but still need to implement it. For Jupyter Notebook, it would be better to load the libraries using the built-in RequireJS. Unfortunately this also means splitting the code according to usecase. I've already done this, so now you need to import pywebaudioplayer.notebook. It was reasonably easy for WaveSurfer, but I'm still figuring out how to load TrackSwitch and WaveformPlaylist with RequireJS. Hopefully doing that will resolve this issue too, WaveSurfer now runs solidly in Jupyter Notebook. If this issue is still not resolved afterwards, I'll have another look.