

Show HN: JavaScript Acid Techno Machine - errozero
http://errozero.co.uk/acid-machine/

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

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

~~~
alfiedotwtf
This is awesome!

Feature request: export the sample to wav/mp3 :)

~~~
errozero
Hey thanks, I'm working on that as well as the ability to create a full length
track and save it with a unique url to share with with people.

------
lachenmayer
Really interesting what happens to the sound when you switch tabs (in Chrome
at least): The sounds still play, but slowed down about 10x.

~~~
jkbr
A workaround is to detach the tab and keep it visible. Then it doesn't need to
be focused.

~~~
grayfox
It sound awesome! Wouldn't want to work around that effect... hehe nifty.

------
meandave
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](https://github.com/meandavejustice/audio-clock)

~~~
errozero
I'll check that out, it may help to speed things up in Firefox too which seems
to slow down even with the tab in focus sometimes.

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

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

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

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

~~~
ArekDymalski
Really? Wow! Maybe you could try contacting Christian Schaub
[http://www.webstube.com/pages/software/patterneditor/index.h...](http://www.webstube.com/pages/software/patterneditor/index.htm)
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!

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

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

------
thomasfl
If @errozero can recreate the ReBirth [1] app in javascript, then imagine what
can be made in a few years time.

1: [http://www.rebirthmuseum.com/](http://www.rebirthmuseum.com/)

~~~
errozero
I think there is a lot more possible right now, creating this has given me a
lot of new ideas for a more fully featured sequencer.

------
beardyw
Utterly brilliant - where did my time go!

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.

~~~
errozero
I added a sequencer - but also added a record to wave feature so the
performance part of it should now be a lot more fun :)

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

~~~
errozero
Good idea, it's still very much a work in progress, i'll have to add some tips
and basic instructions in there.

------
lfam
The 909 needs shuffle.

------
aflinik
Really cool toy! I wonder how the randomizer works, does it use some
predefined scale or some other heuristics to always end up with something
nice?

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

------
tambourine_man
Really nice. Doesn't on Safari latest

------
errozero
Just added a save feature to this - it generates a unique url so you can share
what you have created.

------
schuettla
Thx, is really fun to use. A recording feature or an export as an WAV/MP3 file
would be great.

~~~
errozero
Hey, I'm working on a save feature right now, hoping to get something up later
today.

------
meandave
I like that the default is the opening to "call your girlfriend"

~~~
errozero
Haha, I've never even heard that song, just had a listen and it's almost
identical!

------
psykovsky
I get no sound whatsoever. Chromium and Firefox on Ubuntu 14.04 LTS

------
errozero
Basic sequencer now added. Automation next!

------
basharmadi
This is awesome, somehow it reminds me of the Commodore 64

------
niix
This is great! Do you have the source anywhere hosted?

~~~
crucialfelix
[https://github.com/errozero/acidmachine](https://github.com/errozero/acidmachine)

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

------
Socketubs
Very nice project ! Is it open source ?

~~~
Socketubs
I anwser to my own question because I haven't read enough:
[https://github.com/errozero/acidmachine](https://github.com/errozero/acidmachine)

------
vermooten
Incredible, great work!

------
dropit_sphere
This is awesome.

~~~
tuleelk
Brings back so many memories.

