Show HN: JavaScript Acid Techno Machine
errozero.co.uk
errozero.co.uk
The top two items are two instances of an imitation of a Roland TB-303 bassline synth. The bottom item is an imitation of a Roland TR-909 drum machine (a drum synthesizer).
Press 'Play' in the top left to start all three instruments playing. Each is now running through 4 bars of 4 beats, or 16 steps in total. By default the first bass synth is playing a low 'C' on every step, the second bass synth is playing nothing, and the drum machine is playing a bass drum on the first step of each bar (steps 1, 5, 9, and 13).
Laying out a pattern on the drum machine is a little more intuitive, so start with that. The row of 16 buttons represents the steps on which a hit will be played for the currently selected drum type. Buttons for switching modes to edit the pattern for each drum type are listed horizontally (BD, SD etc). Switch to a different drum and add some hits to the pattern by clicking on those steps in the row of 16 buttons.
The bassline synths are programmed in basically the opposite way. The 16 steps become the modes you switch between (by clicking the UP and DN buttons under 'Current Step') and clicking on any of the the 13 musical note buttons (coloured like piano keys) will select the note which plays on that step. The highlighted note can also be deselected so that no note will be played for that step. Try stepping through and changing the notes which are played on each step or deselecting notes to create a more interesting rhythmic pattern.
Hit the randomize button for some instant results.
Feature request: export the sample to wav/mp3 :)
It gets bogged down for me and starts stuttering and losing the beat when I have all three tracks working (i7 system with 8GB RAM, running current Firefox developer release on a modern Linux system). I wouldn't know where to start on troubleshooting performance problems.
It's because, we've not optimised our implementation _at all_ (I'm exaggerating a bit but you get the idea).
That said now that Firefox's implementation is in good shape in terms of spec compliance, we have started (very recently, one week or something) to work on performance.
Any other synths you could put in? I'm guessing a PPG/Waldorf or Prophet VS or DX7 would send the CPU to 140 deg. Celsius.
BTW /r/edm liked it: http://www.reddit.com/r/edmproduction/comments/2yphc8/a_303_... (pretty funny)
________
oh, and anybody want to tweak on a basic 2 oscillator analog, here's one in Flash: http://www.audiosauna.com/studio/
The TB303 has one of the worst sequencing interfaces of any hardware sequencer, so even as much as it is loved, I'd love to see something more modern in terms of UI for sequencing melodic parts.
Even step select/activation with 16 steps and keeping the TB303 keyboard sort of interface for actually selecting notes would be a lot more usable and immediate. Having to select the step number and enter a note is painful though and not very mouse friendly.. with hardware at least you can mash the heck out of the button.
A feature request: delay time and hi-pass controls :)
Btw, the delay timing seems to be off a little bit.
Feature request please - mute and randomize (at least) would sound great if you could pre-sync them with the repeat. I found myself trying to judge how much lag there is before they kick in. It would be great if you could just line up one or more before the repeat - which is where you will want them 99%. Maybe a check box option.
You have a fantastic performance application right now, please don't get drawn into making a sequencer and losing all the fun.