View Single Post
Old 31st October 2013, 20:56   #53
Junior Member
Join Date: Jun 2013
Posts: 22
Originally Posted by QOAL View Post
As the release version of Firefox now supports all the necessary web audio spec I would like to point out a problem with Dancer.
The version of the web audio spec it targets is slightly different to how the spec is now, it seems.

Two functions have been renamed (I assume Chrome has the old names as aliases):
createJavaScriptNode is now createScriptProcessor
createGainNode is now createGain
More info here.

Alas, even with those errors fixed there is still a problem where the audio only plays for about 250ms. (It reports it as still playing through.)

Dancer has a distinct lack of activity on Github, and I'd like to think that its at fault not Firefox.
I agree, Dancer is quite inactive now. There are a couple of things, in this area, that i think should be done in webvs.
1) Create a separate, nicer AnalyserAdapter implementation. use some other well maintained library or write our own.

+ SoundManager2 looks promising. the downside is that its flash + doesnt have beat detection afaik.
+ Implementing our own doesnt seem too far fetched either, both firefox and chrome supports AnalyserNodes which gives you FFT spectrum and waveform data directly, unlike dancer which uses a JS FFT library on the raw sound samples. The browser implementation should be a lot faster also.

2) Implement custom beat detection logic. For things like "Custom BPM" etc

Originally Posted by QOAL View Post
Anyway with that I've enabled the editor as standard in my editor.

z33m: Would there be any benefit if WebVS used web workers? Pause reduction on the main thread etc.
Havnt looked into this much yet. Im guessing nothing much, atleast from my limited understanding of how webworkers work. Basically they work through message passing, so dont know what kind of data can be passed around safely. They do not have access to the DOM and hence probably the webgl context too. So its pretty much limited to raw processing stuff, maybe to speed up expression parsing or something. The PEGS parser is a bit slow actually.

But the UI responsiveness should be somewhat solved by the issue#5, since it greatly reduces expression+shader recompilations. Especially since the UI is only ever going to update components one at a time, so atmost max(clone) effect reinitialization per user interaction, which should be fast enough.
z33m is offline   Reply With Quote