Show HN: A JavaScript emulator of the Synthi A synthesizer
alexnisnevich.github.io
alexnisnevich.github.io
Chrome 45+ or Safari 7.1+ highly recommended - Firefox doesn't perform very well for some reason.
Lots of browsers recognise the style "-webkit-user-select: none;" which I think will greatly improve your UI.
It should be relatively straightforward to implement a virtual keyboard. My thought was to model it as an oscillator that only outputs sound for as long as a key is held down and whose frequency instantaneously changes every time a different key is pressed. Each keypress would also call `manualTrigger()` to re-trigger the envelope. (There could also be a mode to output "control voltage" rather than a waveform so that you could use the keyboard to control other oscillators - I believe the EMS DK keyboard had this dual functionality.)
The thing that's been stopping me from implementing it so far has largely been the question of where to put the keyboard! There's not really any space on it in the UI, but I don't like the idea of making it into a modal dialog because people probably would want to be able to turn knobs and work the patchboard while operating the keyboard. So I'm not sure what the best solution is ...
It's worth a try, at least.
[1] http://www.fsoldigital.com/product/synthi-a-ignition-of-the-...