42 comments

[ 3.7 ms ] story [ 65.9 ms ] thread
Doesn't work in firefox, console tells me

Uncaught TypeError: a.frequency.cancelAndHoldAtTime is not a function

Pretty fun in Chrome!

Also within ungoogled chromium, upon hitting the "stop" button, it seems to keep playing either an additional lower-volume track, or some long delayed echo....but hitting the "stop" button several times eventually stops playback. Even still, the concept is pretty neat!
Not only does this sound excellent, with three great TB-303 synth engines with a colored delay, but it's very musical. The three patterns are locked to a common scale/mode, they autogenerate with compatible and often interleaving polyrhythms, and the "instruments" - bass, lead, drone - spawn with complimentary defaults.

As a longtime synth nerd, it still amazes me to see beautiful tools like this running in a web browser.

Excellent job!

Hey, I made this a few years ago. I'm suprised to see it posted here today.

It was never finished and I was meaning to add a polyfill for the missing cancelAndHoldAtTime function for Firefox.

Edit: I've just hacked in a quick polyfill

This is fantastic errozero nicely done! It's very musical, the drone is a nice touch and really glues it all together in a subtle way.
(comment deleted)
Update: wav export now added
@errorzero - if you have the time would you be able to give more information on the Scales? This section is very interesting.
Hey, the scales are just an array of numbers like this

    ['Darkness', [0, 1, 3]],
    ['Darkness2', [0, 1]],
    ['Single', [3]],
    ['Locrian', [0, 1, 3, 5, 6, 8, 10]],
    ['Aeolian', [0, 2, 3, 5, 7, 8, 10]],
    ['Mixolydian', [0, 2, 4, 5, 7, 9, 10]],
    ...
A scale is randomly selected at the start and then notes are randomly selected from that scale in the pattern generation, plus the root note number is added to each one.

So if you had the 'Darkness' scale selected and had the root dropdown set to 0, the notes in this scale would be C, C#, D# which is 0, 1, 3 if you count the keys on a keyboard. If you changed the root to 2, then it would become D, D#, F (2, 3, 5).

Hope that makes sense.

That does make sense, thanks! Very simple and effective.
Update: The wav export feature now renders with all parameter changes, and I've fixed a bug that excluded the drone from the export.
This is great and will be an excellent source of samples
(comment deleted)
cries nostalgia tears in Propellerhead Rebirth

Thanks.

What would be the level of effort to get some midi transport controls and BPM sync in here, now that browsers support MIDI to some degree?
Lovely! Is the source code public?
Disappointed, I thought acid loops were fruit loops dipped in acid (303 µg a piece?). The sound is nice, though.
Where is "Export as MIDI"?
When clicking Regenerate, it would be great if the sequence kept playing if Play was active at that time.
Oh this is lovely! I love the 303, played with ReBirth a LOT and built several x0xb0xes back in the day.

About half of the patterns it generated were something I could listen to for a while. Makes me want to get back into electronic music again.

It would be cool if this showed the patterns in a visual manner that I could copy into my 303 VST of choice
It's brilliant. Love it. I want to know more about the generation, it looks very well thought out. Worth an article in itself.
Right off the bat I get something that sounds like something Frank Klepacki would have used in the Red Alert 2 soundtrack (likely pulled from Methods of Mayhem). Nice.
Reminds me of the music of Dynamix (Commodore 64 game)
(comment deleted)
oh yeah. I feel like I'm in the '90s again.
Does anyone have any suggestions for how to get into electronic music production?

I am working on a small game and want to make some jungle dnb tracks for it.

I grabbed Renoise and follow some tutorials and stuff. Is there a better way to go about it?

amazing, can you please add simple 909 kit?