polarch / JSAmbisonics

A JS library for first-order ambisonic (FOA) and higher-order ambisonic (HOA) processing for browsers, using Web Audio.
BSD 3-Clause "New" or "Revised" License
155 stars 26 forks source link

WebAmbi HOA as NodeJS #3

Closed PyrApple closed 8 years ago

PyrApple commented 8 years ago

Dear Archontis,

This pull-request slightly goes against the DOTADIW logic but well, since I had to screw the whole thing up anyway.. here are the main modifications I did there:

(please don't hate me :)

polarch commented 8 years ago

Heheh,

no hate, that's cool, I like that.. I had some doubts about the packaging when I wrote it (everybody can understand how to throw a single .js file in their .html, including people that have never heard of NodeJS), but I like the "proper" way it's looking now. Let's go for it :-).

But you have to give me till Wednesday to have a look to all these changes to understand what's going on, I'll do it during my flight back.

Btw, I noticed that there's a limit to 4th order atm, it wasn't intentional. Not due to the computations but rather due to the WebAudio channelMerger and channelSplitter nodes I'm using - they cannot go for more that 32ch it seems. I think 4th is probably ok for most purposes, if more are needed then each HOA object should initialize multiple splitter/merger nodes.

(Pretty cool this binauralFIR, I had missed it!)

I attach here a list of planned additions from my side, after that I consider it fairly complete for most scenarios, then I'll focus on another web-based ambisonic thingie I started a while ago.

(OPTIONAL)

Can't think of anything more at the moment. Any other ideas?

Cheers, Archontis

PyrApple commented 8 years ago

Sounds perfect, I would add:

(OPTIONAL)

My next project will give me time to test how far we can stretch multi-sources scenarios on standard machines. I may even stumble on architectures requiring decoding-to-loudspeakers features.

Best, David

polarch commented 8 years ago

Hi David,

just made a local copy of the node version. Does it need any special setting up? I don't do html coding at all (or these jquery stuff, I have no clue about), but linking to the latest jquery version, and trying any of the examples gives me plenty of errors.

I'll check it a bit more, then I may need some guidance..

Archontis

PyrApple commented 8 years ago

Dear Archontis,

It shouldn’t need any setup, a basic http-server on project root (or any http serving tool on ./index.html) does the job here. Now your

linking to the latest jquery version

rings a bell, if you can tell me which version and send me the errors log of your browser console. It’s most likely related to the way I factorized the .html element in the ./example/common.html, where the scripts (e.g. foa-player.js) try to access an element of said common.html not yet loaded because of a sluggish jquery.

Do not bother, save your brain for the interesting bit :).

David

Le 29 juin 2016 à 20:32, polarch notifications@github.com a écrit :

Hi David,

just made a local copy of the node version. Does it need any special setting up? I don't do html coding at all (or these jquery stuff, I have no clue about), but linking to the latest jquery version, and trying any of the examples gives me plenty of errors.

I'll check it a bit more, then I may need some guidance..

Archontis

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/polarch/JSAmbisonics/pull/3#issuecomment-229447150, or mute the thread https://github.com/notifications/unsubscribe/ABIcboXZFFe46HVYrmD8Qt1DtOdYIPU_ks5qQrpYgaJpZM4I-mU3.

PyrApple commented 8 years ago

would you care to test if the rawgit version is functional on your side?

polarch commented 8 years ago

Rawgit:

PyrApple commented 8 years ago

Is the error still there when opened with Chrome?

Le 29 juin 2016 à 23:40, polarch notifications@github.com a écrit :

Rawgit:

anything with analyser doesn't work (TypeError: analyser is undefined) there's a consistent error on all examples for some element (div-reverb?): (TypeError: document.getElementById(...) is null) — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/polarch/JSAmbisonics/pull/3#issuecomment-229497609, or mute the thread https://github.com/notifications/unsubscribe/ABIcbltz-rbO83gtQYX-uAdRcLVwZdriks5qQuZagaJpZM4I-mU3.

polarch commented 8 years ago

Works on Chrome!

Firefox still gives the errors I mentioned. Interestingly, analyser gets created only for the HOA panner example.

The (TypeError: document.getElementById(...) is null) persists in all of them.

polarch commented 8 years ago

Seems to be this line that causes the second issue in FF:

document.getElementById("div-reverb").outerHTML='';

PyrApple commented 8 years ago

It is, that's the jquery thingy I mentioned earlier.

That gives us at least common ground for discussion. I'll look over the Firefox issue, here (v47.0.1) it raises no errors (neither analyser nor jquery), yet no sound comes out...

PyrApple commented 8 years ago

This last commit solved the jquery issue on Firefox on my side (hence clearing all issues mentioned in earlier), if you don't mind checking the RawGit on yours to confirm.