Quick tutorial for anyone who isn't familiar with the music gear being emulated:
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.
Acid Machine is a web based tool for creating Acid Techno. It consists of 2x 303 style synths and a drum machine. I'm currently working on a song mode so you can string patterns together, record automation and save your finished track.
Hit the randomize button for some instant results.
That's really impressive. Randomize even makes pretty compelling loops.
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.
I get that too on Firefox, I'm hoping to try out the web-worker idea suggested by meandave to fix it. At the moment it works much better on Chrome for some reason.
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.
Yeah, Robin Whittle probably knows more about the 303 than anyone outside of Roland Japan, and he's very generous with his knowledge too. You should be proud, you did an excellent job.
I would recommend doing your scheduling in a web worker.
In chrome the playback will slow to a crawl when switching tabs. This is because chrome slows down mainthread js execution for inactive tabs. I have a little module I use to get around this limitation. https://github.com/meandavejustice/audio-clock
This is super impressive.
I have a tiny bit of (hopefully constructive) criticism though, and it's not really against this work and what has been accomplished.
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.
Hey, yes that is a very good point and something I was thinking about changing. I think I'm going to swap out the whole keyboard and step selection for a mini piano roll under each synth.
Really impressive. If someone had told me 18 yrs ago that I shouldn't be so excited about ReBirth because one day it will be available in the browser :)
A feature request: delay time and hi-pass controls :)
Btw, the delay timing seems to be off a little bit.
Thanks, i'm hoping it will be as fully featured as rebirth by the time i'm finished. I would like to add in the ability to import a rebirth song file but i'm having trouble deciphering the hex code that's in the saved files.
Really? Wow! Maybe you could try contacting Christian Schaub http://www.webstube.com/pages/software/patterneditor/index.h...
who has created a RB pattern editor for Mac. I guess he may know a bit about the format :) There was also a guy called Matthias Schill who made the pattern editor for Windows but unfortunately his webpage is down. Good luck!
Thanks for the suggestion, I emailed Christian Schaub and he's going to send me over what he knows! :) Hopefully I can add a Rebirth importer at some point in the next few weeks.
I've just added in some keyboard shortcuts to mute/unmute and randomize the instruments. Working on the save and share function today, it would be great to be able to hear what people have made.
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.
Awesome work, just lost an hour! Might be worth adding a hover hint to the abbreviations on the drum machine. Took me a while to notice there was more to play with there.
The notes are selected from a D minor pentatonic scale. It selects 4 notes at a time, then randomly decides if it should use the previous 4 notes again or generate a fresh 4.
That's a little bit out of date, the main repo is on BitBucket - I copied it over to Github a few days ago. I'll try to keep it in sync with the main one every few days.
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.