shawnlawson / The_Force

webGL live coding performance IDE
https://shawnlawson.github.io/The_Force/
MIT License
274 stars 52 forks source link

Bands global variable doesn't work in chrome when it remembers mic permissions #21

Closed CharStiles closed 4 years ago

CharStiles commented 4 years ago

Hi! Thanks for making the force.

The bands input only works on chrome on first access to microphone permission. When you reload the page chrome remembers that you give it permission but bands continues to be all 0 value. Weird thing is that the files on system (file tab) also only work depending if your chrome remembers permission or not.

The error in the console is: pageGlobals.js:436 Uncaught TypeError: mSound.mStream.stop is not a function at initAudio (pageGlobals.js:436) at HTMLInputElement.<anonymous> (pageGlobals.js:265) at HTMLInputElement.dispatch (jquery-2.1.1.min.js:3) at HTMLInputElement.r.handle (jquery-2.1.1.min.js:3)

It works fine in Firefox, even when you press "remember permission" and reload the page, then the bands global just starts working right off the bat. I can look into this myself next week, but I thought I'd make an issue in case its an easy fix. Cheers.

shawnlawson commented 4 years ago

Thanks!

OK, I think this more new WebAudio changes that need to be fixed/cleaned. I'll see if I can locate some of these issues, probably tomorrow, I think.

shawnlawson commented 4 years ago

There's a new audioFix branch if you want to give it a try. Disabled the auto-creation of an audio context on load. Dropped it into initAudio(). commented out some of that stream stop() as well. This seems to work in Safari, Firefox, and Chrome on OSX. See if this works for you and I'll merge into gh-pages.

CharStiles commented 4 years ago

Whow! Hey! Thanks for jumping on this so quickly! Yes I tested it using https://www.npmjs.com/package/https-localhost and it works wonderfully! Thank you again! I am excited to show this off to the workshop participants.

shawnlawson commented 4 years ago

Awesome! I merged into gh-pages, so good to run from the GitHub directly.