Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: A JavaScript emulator of the Synthi A synthesizer (alexnisnevich.github.io)
68 points by alnis on June 13, 2016 | hide | past | favorite | 13 comments

This is something I've been working on the past few months. It's still got some quirks but is mostly feature-complete. See https://github.com/AlexNisnevich/synthi-js for more details.

Chrome 45+ or Safari 7.1+ highly recommended - Firefox doesn't perform very well for some reason.

Great work.

Lots of browsers recognise the style "-webkit-user-select: none;" which I think will greatly improve your UI.

Ah, good idea! I'll add that tonight.

The cost of vst plug ins is crazy! Something like this would go for around $100. Great work.

I'm sure someone working on Firefox would be interested in taking a look, but finding the right person who has enough time is always tricky.

The Firefox issue is interesting – all UI interactions appear to have about a 500ms delay before the synthesizer output is affected. I can't figure out if it's an issue with WebAudio in Firefox, or a Flocking issue, or something on my end.

Great project! Any chance you could add a virtual keyboard easily enough?

It's something that I've been thinking about!

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 ...

P.S. Another thing I've had in mind was the ability to connect MIDI keyboards and have them mimic EMS DK keyboard behavior within SYNTHI-JS. I wasn't sure if it was possible to work directly with MIDI devices in JavaScript, but it appears that this library could do the trick: https://github.com/cwilso/WebMIDIAPIShim

It's worth a try, at least.

This [1] is a recent album produced entirely using a (physical) Synthi A - shows what can be done with one.

[1] http://www.fsoldigital.com/product/synthi-a-ignition-of-the-...

What a great project, and what a great synth you have reproduced! This is an awesome musical instrument, nothing less. Really inspiring, thanks for making and posting it.

Wow, this is pretty extraordinary. I will be diving into the source of this one for sure.

Appreciate the radial vs vertical choice on the knobs. Nice touch.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact