W3C home > Mailing lists > Public > public-audio@w3.org > October to December 2012

Re: DSP API experimental implementation

From: Marcus Geelnard <mage@opera.com>
Date: Wed, 31 Oct 2012 10:37:28 +0100
To: public-audio@w3.org, "Jussi Kalliokoski" <jussi.kalliokoski@gmail.com>
Message-ID: <op.wm1ecq0gm77heq@mage-speeddemon>
Hi Jussi,

Den 2012-10-31 02:00:24 skrev Jussi Kalliokoski  
<jussi.kalliokoski@gmail.com>:

> Hi Marcus, everyone,
>
> Today I started working on an experimental implementation of the DSP API  
> for node.js. The work is available on Github [1].

Super-neat! Nice work Jussi!

> Currently I've only partially implemented the DSP interface; it's still  
> missing `absCplx`, `clamp`, `pack`, `ramp`, >`random`, `sampleCubic`,  
> `sampleLinear` and `unpack`. And I actually have no idea whether  
> anything besides basic >arithmetic (+-/*) actually works because I  
> haven't gotten around to writing tests for anything else.

You should probably be able to use the JS polyfill as a reference for  
things like the samplers and the Filter interface, at least to get you  
started (before you go ahead and SIMDify it all).

When you get around to the FFT interface, you'll find that I actually  
haven't solved the scaling issue of FFT vs IFFT. I guess we'd want a  
definition that ensures that IFFT(FFT(x)) == x (not counting rounding  
errors).

I haven't done any test cases myself. There's still the issue of  
computational precision, so you'd have to be a bit clever about how to  
test it accurately, I guess.


>
> But I actually already have one piece of feedback on the spec: the  
> specified algorithm for `divCplx()` doesn't seem to be >correct. The  
> algorithm is at least different for the two signatures.

Oh, typo! Will fix...

>
>
> Cheers,
> Jussi
>
> [1] https://github.com/jussi-kalliokoski/node-dsp



-- 
Marcus Geelnard
Core graphics developer
Opera Software ASA
Received on Wednesday, 31 October 2012 09:38:00 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:50:03 UTC