wani WebAudio N Interface

Native, Natural, Normalized... and hope if it could be Nice ;)

WANI is A Specification

propose to Web Audio Community that to make your code Reusable, Self-Descriptive, and Sharable. Basically, WANI is not an implementation, but interface specification. You can see very draft spec here

WANI is Simple and Flexible

To make your code into WANI module, just call a register function from module script, like this.
function ConstructorOfYourSynthesizer () { ... }

// then, just add this to the end of your *.js file (with some rules tho ;)
Wani.registerModule({
  name: "MySynthesizer",
  create: ConstructorOfYourSyntehsizer,
  type: 'synth'
});
It has very small required rule set. Almost are optional and free to expand.

WANI is Headless

WANI and it's modules aren't includes any implementation about Graphical User Interface. But you can give a hint to UI builder via wani's registry. In other words, WANI could be an interface between GUI and DSP. For example, GUIs in this page are automatically generated, picks default values and ranges.

Behaves as same as native AudioNode

such like this.
var nativeOsc = ctx.createOsc();
var waniEffect = Wani.createModule('EFFECT_NAME');
nativeOsc.connect(waniEffect);
waniEffect.connect(ctx.destination);
This means, module user needn't think about like "which node is native and which is from library? they have diferrent methods..." things.
And also, this could help to import or combine some existing audio library to others. In this page, open source effects library tuna is working with wani, via about 60 lines simple bridge script.

DEMOS

Instanciate module with auto generated GUI

You can easilly create module instance.

var moduleInstance = Wani.createModule('Foobar');

Here, add selected module to the end of DSP chain, and building GUIs from it's self-described informations.

Load Module from outer world on the fly

Also, you can load module from external javascript file on the fly. just push load button to load new module from outer world. ( or If you know any Wani-ized effector, put the URL to try it ;)

And then, you can see new module in the select menu above.

Disclaimer

This software is still alpha quality. We may change APIs without notice.

License

MIT

@

Effects in this demo page are imported from tuna. thanks!

written by aklaswad github twitter

Fork me on GitHub