The Viktor NV-1 is a powerful synth running in your browser

Standard

Its name is Viktor, and it’s a synth you can play with for free in a browser – with a mouse, or finger, or keyboard, or even MIDI.

Not news, but – heck of a lot of fun to play with.

Now part of a growing number of Web Audio (and even Web MIDI) synths, the Viktor NV-1 is a surprisingly powerful diversion. You get three oscillators, two envelopes (one for amplitude, one for filter), a filter, LFO, reverb, delay, compressor, and loads of controls.

Because it lives in a browser, it’s also easy to save and share presets with others. So, for instance, here you go:

http://bit.ly/2vegv3n

The developer also has a lovely explanation of how this works:

It’s Built on-top of the Web Audio API (WAA). The WAA is very nicely organized and easy to use. Basically it provides a variety of NodeTypes (responsible for sound generation, editing or analysis) which you combine in your liking, creating a graph through which your sound is being shaped.

Also worth noting – how it was built:

Web Audio API, Web MIDI API, Local Storage (through npm module “store”). For the effects section I used Tuna.js.

AngularJS, webaudio-controls (I am regretting this decision, since these controls are full of bugs and had to fix several of them before releasing), Bootstrap, Font Awesome, Font Orbitron and Stylus is what I used for the UI.

Instead of using Angular alone, for dependency management, I use Browserify, which provides the nice CommonJS format/style of module creation and requiring.

Angular isn’t very Browserify-friendly so I had to do some stitching in my initial setup (browserify-shim, browserify-ng-html2js etc.) but once the setup was ready development really felt a breeze.

Grunt and multiple grunt-contrib-‘s are used for the build (and development rebuild).

I drew the images on Pixelmator.

Try it:

http://bit.ly/2uU7CZW

Or grab the code (fully open source):

http://bit.ly/2vdnKIQ

The browser synth is the work of Nikolay Tsenkov.

from Create Digital Music http://bit.ly/2voUpvi
via IFTTT