As we talked on Reddit (I released my synth today, Viktor NV-1: http://nicroto.github.io/viktor/) I definitely need to add QWERTY keyboard playability.
Also - url sharing of presets... that's a great idea! Viktor uses local storage so you can save presets and allows you to export and import libraries of presets (in json files), but file sharing is harder than a url.
I think there is something wrong with the way your envelope works, though. I hear clipping when I change notes. In my case it took a lot of time tuning the envelope, before it became really playable through a keyboard and still as you know, in Firefox there is an issue with AudioParam.setTargetAtTime starting or arriving at a value close to 0.
Congrats on making #1 page on HN. Couple of hours after you, my submission didn't even get an upvote. :P
mild wub: http://resistorsings.com/106/#patch/mildwub?vca-level=0.4840...
(Also I cant seem to get the release to work on the envelope.)
If anyone is interested in an accurate emulation of this classic synth, heres one that sounds largely identical to the real thing and is very reasonably priced: http://kunz.corrupt.ch/products/tal-u-no-lx
Basically, use Chrome for now if you want it to play nice. WebMIDI is only supported in Chrome anyhow.
Also, 100% agreed on TAL U-NO-LX, it's one of my favorite plug-ins and the price is great!
Thanks for the fun :)
All new standards and inventions creates new problems and products.
Also just found this [1] general midi emulator, somewhat relevant, for those looking for something a little more canned (but less powerful).
In 106.js, every UI control is arbitrarily assignable to any MIDI CC message, so you can map it to your device however you like. That's a feature I'm used to ("MIDI learn") from desktop DAWs, but haven't seen in any other websynths yet.
You won't be able to see the UI for this feature at all unless you've got a MIDI controller plugged in, though.
i built learn functionality into my MIDI library for browser based UIs in 2012: https://github.com/kn0ll/midi.io unfortunately my synths that use them are long gone. i developed this as the WebMIDI spec was being published and long before it was available in the browser (which is why i'm using web sockets for UDP communication).
anyway, i really did mean "good job mate", your app is awesome.
[1] https://github.com/stevengoldberg/juno106/blob/master/js/vie...
[2] https://github.com/stevengoldberg/juno106/blob/master/js/mod...
I would say the 0-127 range of controls hurts midi more than anything, if someone just bumped midi to osc's range most people would be happy. HD MIDI does that and may end up usurping OSC before OSC even gets traction: http://www.midi.org/aboutus/news/hd.php
But the beautiful thing about MIDI is how plug-and-play it is, because of the one standard. You can plug one keyboard into another and boom, you have an instant controller. I can't see that functionality in OSC's future.
0-127 is really limiting though - I've tried using faders where 0 is no volume, and 127 is max volume, and it just doesn't feel like there is enough resolution to fine-tune things.
(TBF if I think 14 bit midi is a hack then I should really be against OSC)
MIDI just freaking works. I've seen someone fight to setup OSC for about 20 minutes (and failing) in a particular DAW, and the creative process of just plugging my hardware synths together with a sequencer - no computers involved, and having it work is awesome.
I agree channel routing is annoying, but for most things I do (electronic music) it's not limiting. Am I wanting to sequence a Harken (sp) Continuum with full aftertouch and funky envelopes? Not so much.
I dread the day everything requires a computer, and the MIDI cable is an amazing beast for having lived as long as it's lived. It's somewhat like a shark or crocodile in that respect.
I agree it's not beautiful to automate a smooth filter sweep but in general, it's a great thing.
It doesn't specify anything like pitches, tempos, control messages, envelope triggers. (In fact why is it even called "Sound Control" ? There's nothing specific to sound in it.)
It isn't a standard there that let's people just plug things into each other. Each program that uses it has completely different APIs.
I think there needs to be an initiative from developers and manufacturers to make establish standards that run on top of OSC to make it useful.
MIDI is a super straightforward protocol, so maybe that is why?
http://www.w3.org/2012/sysapps/tcp-udp-sockets/
There are a few projects out there that use websockets to talk to a node js server and then forward that to OSC.