top | item 26870666

The Endless Acid Banger: algorithmic self-composing acid techno music

1109 points| clomond | 5 years ago |vitling.xyz | reply

255 comments

order
[+] jmfldn|5 years ago|reply
This is a great project, well done. Algorithmic music is fascinating to me, I feel like there's a lot of untapped potential in the concept particularly with more 'complex' genres where higher levels of composition and structural continuity are required. This tends to work much better with loop-based genres but I'd personally love to do a side project on something that could write melodies from some sort of generative grammar for example. A lot of these exist but the results are mixed very often.

For me the interesting part is not just in getting a computer to do all the work but using it as a compositional aide. You can think of it at writing music at a higher level of abstraction. Rather than writing a score you can write the rules of the score and use a stochastic process to spit out permutations for example. Eg imagine writing a program that could spit out Eric Satie-esque melodies.

[+] sideshowb|5 years ago|reply
As someone who writes mainly loop based genres I agree and have thought about much the same stack of abstractions. Acid techno is a great starting point as it's not known for complexity, being traditionally produced with a 909+303+303, devices that support only a 1 bar loop (a genre with origins that predate wide availability of digital audio workstations). But like yourself I'm interested in more complex genres.

One example of more general EDM levels of abstraction for me might go

1a. this tune needs to play with space (stereo/reverb) more 1b. we need some interesting background sounds

therefore

2. we need an interesting, wide background sound to start at bar 32 and end at 64

Dropping in something from a sample library to achieve that wouldn't satisfy me as every step of constructing that sound is following other rules of abstraction e.g. how should it fit with the existing tonal balance? with the existing rhythm? etc. But at the same time the process is 1% inspiration 99% perspiration - it's following unwritten almost-rules which would be fascinating to capture in an algorithm if I could. They wouldn't have to be completely general rules, just my own personal ones.

A related (light hearted) thing I wrote on EDM abstractions a while back https://omnisplore.wordpress.com/2017/11/25/kolmogorov-compl...

[+] wpietri|5 years ago|reply
I get why people want machine-aided composition. But I'd love to see a project like this go in the opposite direction.

Maybe put a row of buttons at the top: "I am [Loving it] [Grooving] [Fine] [A Bit Bored] [About to Quit]". Then use that (plus browser data and window-close data) to train ML models to maximize engagement. Or perhaps to hook it up to facial expression recognition.

When I watch friends DJ, there's this great feedback loop between how the crowd's behaving and what they're putting on. They're clearly using the music to achieve certain mental states among listeners. I'd love to see how well that can be done algorithmically.

[+] spiralganglion|5 years ago|reply
Agreed, but I'd like to take it a step further. Rather than fitting new compositional ideas into the patterns and structures of our existing music theories, I'd like to use computation to create new theories.

As an example, I've become really interested in the fact that tempo and meter are taken as constant, grid-like structures in pretty much all existing music practices (even within, say, Gamelan, though there you do get a lot of pushing and pulling). Typically, you have polyrhythms and polymeters to fit more interesting patterns into the fixed grid, and accelerando and ritardando to adjust the rate of grid traversal, but that's about it. Hardly anyone applies algorithmic/geometric thinking to the grid itself — likely because more complex rhythmic foundations would make human performance nigh impossible.

To explore this space, I created my own little generative music system that takes a handful of simple motifs (a la Riley or Reich) and stacks them into a recursive temporal structure, which is then pushed logarithmically toward a tempo of 0 or infinity. There are some rules so that the "performers" only play at comprehensible scales, and that pitch modulation keeps the piece interesting to a listener. You can listen to it here, if you'd like: https://ivanish.ca/diminished-fifth/

I'd love to see more folks working on tools to make these sorts of theory-stretching ideas easier to access and explore. For instance, I've really been struggling with how to hand-compose music that can fit within a nonlinear/recursive structure of time. Existing tools like Tidal or Max/Pd were built to support the existing theory. I think we need new tools that allow you to design the theory itself.

[+] Rochus|5 years ago|reply
> I feel like there's a lot of untapped potential in the concept particularly with more 'complex' genres

Well, you're in good company. This goes back for many decades. Here is a summary of many attempts during this time: https://www.amazon.com/Algorithmic-Composition-Paradigms-Aut.... Really convincing composition started to appear only recently using transformers, e.g. https://openai.com/blog/musenet/. The present solution is a rather primitive one in comparison.

[+] 05greg|5 years ago|reply
Wholeheartedly agree using computers as a compositional aide is a fantastic thing, it's really quite satisfying to define some rules by which the program can modify the inputs (melodies, chords, drum patterns) and have it output interesting results.

I coded up some jungle music not long ago: https://www.youtube.com/watch?v=GPan4gRSwZs&t=79s

I'm working on a procedure to modify the drum breaks in a conventional way, meaning I have to think less about keeping them interesting while live coding.

[+] alisonatwork|5 years ago|reply
This kind of algorithmic music has been a thing for decades. I have a funny memory of going to a university open day as a child in the late 80s/early 90s and a presentation by some boffin with a synthesizer was what made me want to grow up and become a computer programmer.

Back in the early days, I think CSound[0] was the big software, not because it can make especially interesting sounds compared to more "musical" software synths, but because it's a proper programming language which gives people the freedom to do these higher level abstractions.

In the hardware world, a lot of this developed out of arpeggiators and analog sequencers. I remember years ago I had a "P3" sequencer[1] which implemented a lot of these sorts of algorithmic pattern generaton tools - you could do things like quantize to a scale, then set a sequence of percentages that themselves impacted the likelihood of a particular note being played. I see there is a new version of this sequencer[2] too.

Lots of analog sequencers provide similar features, and if you have a modular setup you can ramp the tempo way down and have them control chord progressions or swells instead of 16th note patterns. Pretty sure this is how a bunch of live ambient music was done back in the day.

That was a fairly niche corner of electronic composition, but even in the mainstream of 20 years ago stuff like the Emu Proteus sound modules featured pretty advanced programmable arpeggiators where you could essentially write the skeleton of a musical sequence and then modify what notes of it actually ended up getting played by deciding which original notes to start from. I always came at this more from that minimal/techno/sequence-based side, but then I went to a wedding and saw a wedding singer playing an "accompaniment" keyboard which showed the other side - entire chord sequences and backing instrumentation getting generated in real-time based just on what chord the keyboard player chose to hit with their left hand. It's surely only a small step forward from there to being able to input a higher level algorithm that could develop a whole song.

[0] https://csound.com/

[1] https://www.soundonsound.com/reviews/sequentix-p3

[2] https://www.sequentix.com/shop/cirklon-hardware-sequencer

[+] Abishek_Muthian|5 years ago|reply
Excellent project, also serves to provide some quick audio latency test for devices. Quality of playback seems to vary between browsers and devices (DDG/FF -Android); I presume it's consistent and better in iOS devices as it's known for better audio latency(Don't have one nearby to test).

If the author is reading this, Would love to hear about the quirks related to audio playback in browsers/devices you've found so far in developing this.

[+] api|5 years ago|reply
The question is whether the use of AI could be elevated above a crutch like autotune to actually being used as an instrument like a synthesizer. In other words: is it being used to amplify the ability of the musician or compensate for their lack of skill?
[+] meowface|5 years ago|reply
This generates much better patterns than any other music web project I've tried. Awesome work.

If you had no music experience, snuck into a club, impersonated a DJ, and just pressed play on this, I think even without touching it, no one would notice anything's amiss. If you messed around with it occasionally, you'd probably get hired back. (And that's a compliment to the app; definitely not a diss of acid techno.)

[+] stinos|5 years ago|reply
no one would notice anything's amiss

I doubt it. Perhaps you were lucky with the piece you listened to, but I checked it for 5 minutes and the off-beat things it generates are pretty much unheard of in this genre. Not that there's no off-beat produced by humans, but it doesn't sound anything like this. Simply because what the machine is doing here brakes the rhythm too much, making it harder to dance on, and after all that's what this music is for.

[+] sideshowb|5 years ago|reply
> If you had no music experience, snuck into a club, impersonated a DJ, and just pressed play on this, I think even without touching it, no one would notice anything's amiss. If you messed around with it occasionally, you'd probably get hired back

Some sufficiently intoxicated people will dance to anything, though a good dj feels an obligation to make sure the thing being played is of good quality, regardless.

As to who gets hired, that's more a matter of networking than musical talent.

[+] sneak|5 years ago|reply
> snuck into a club, impersonated a DJ, and just pressed play on this, I think even without touching it, no one would notice anything's amiss.

That very much depends on the club.

[+] Rochus|5 years ago|reply
Maybe besides https://openai.com/blog/musenet/? The present solution is rather primitive; just a bit of random with time and scale quantisation; but some people seem to be quickly satisfied.
[+] smoe|5 years ago|reply
I have listened (so no touch or watching it) for a couple of minutes and while the patterns all sounded fine (no an expert in that genre but have been to a number of raves) in isolation many of the changes didn’t feel intentional and at times outright jarring without any transition leading up to it.

I reckon in a club situation you would play the patterns for longer which would make it less notable. I do think it is quite impressive work, but overall it still sounds to too much just like switching between patterns without any bigger “musical arc” (not sure what the correct terminology I’m looking for is) in mind. But to be fair that is what a whole lot of peoples calling themselves producers sound like as well.

[+] aeon97|5 years ago|reply
Some of the patterns sound really good, but can you change the bpm? I think a DJ set at the same bpm all night would be kind of boring. I love acid techno, but I mix it into other (sub)genres, and have never heard a set where it was only acid techno. That said, it sounds like some of the drum patterns are more electro than techno, which is nice and provides some variety.
[+] bamboozled|5 years ago|reply
Not really into this type of music, but I'd notice, it sounds pretty average.

It's a cool project and concept, but people in the know would notice.

[+] mekkkkkk|5 years ago|reply
This made me want to grind lap times in Wipeout 2097. The soundtrack and atmosphere in that game was really similar to this, and like nothing I'd heard or seen before at the time. It probably shaped my taste in so many ways. Fond memories!

EDIT: For those sharing the nostalgia, it turns out that the composer of the soundtrack, Cold Storage, remastered it and put it up on streaming services. It's a two part EP called SlipStream.

[+] gilbetron|5 years ago|reply
I was going to write a post saying I was glad a "later" wipeout game had the effect as the original had on me, then I looked into it and saw that Wipeout 2097 was called Wipeout XL in North American, and was the exact game I played :D So, I'll just echo what you said: the soundtrack was foundational in my adult music tastes :)
[+] nullify88|5 years ago|reply
Nothing gives me the tingles like listening to Sasha - Xpander from the WipeOut 3 soundtrack.
[+] crtasm|5 years ago|reply
This confused me as I only knew the Playstation version which features a selection of artists, I'll have to give the full Cold Storage soundtrack a listen!
[+] koboll|5 years ago|reply
Congratulations, this might be the single coolest web project I've ever seen on this site

Add other types of sound (house, trance, etc.) and I will gladly pay a monthly fee to access it

[+] matt_j|5 years ago|reply
Nice!

I love acid music, such a simple formula with infinite variation. There's something so delicious about the wobble of a 303 bassline.

I just want to mention Tin Man for those who are interested in acid. He writes, mostly, quite palatable (often mournful) tunes at house music tempo, but he has a good range and goes full banger at times. A real wizard with a heart for the genre.

https://www.discogs.com/artist/313993-Tin-Man-3

[+] rjh29|5 years ago|reply
Couple observations:

1. The whole thing is done in 1000 lines of code after unobfuscation (including 808 and 303 emulation, sequencer, random generation, UI) - technically it's quite impressive.

2. Part of why it makes such good patterns seems to be reliance on octaves. The patterns usually contain at least 50% or more of the same note repeated, across one or more octaves, and coinciding with rhythmic beats. Even when the notegen set is just F2, F2, F3, F4, G#4 (mostly all the same note) it's quite listenable.

[+] slver|5 years ago|reply
I remember installing ReBirth on my PC many years ago, and so amazed that it can emulate two whole friggin' TB303 analog machines, with a 909 drum kit too, just using the CPU. Which was pegged to 99% during playback.

And here we are today, the same thing is running in my browser and taking 2% CPU.

[+] bennysomething|5 years ago|reply
Yep rebirth was amazing. Even more amazing was Reason from the same company I think.

Wasted so much time on reason.

[+] Toutouxc|5 years ago|reply
This is actually enjoyable, I could imagine working with this in the background. Great work!

edit: You can't actually hide the window in Safari, as it goes to like 10 BPM. Is it a power saving feature or what?

[+] motohagiography|5 years ago|reply
This guy's stuff is next level, wow.

The top level site vitling.xyz has a large set of complete executed concepts like this. Unbelievably cool.

[+] mitjak|5 years ago|reply
jesus, seriously. a prolific human.
[+] samjanis|5 years ago|reply
1055 points and still counting. How cool is that?

The system usage on this is well-designed. I'm using an ASUS F201E Notebook with Debian 10 and the CPU throttled down to 790Mhz (just a bit less than 0.8GHz) to save battery while I'm out on coding field trips, with CPU usage registering around 20%. Very nice.

After listening to this for an hour, it does well with the minimalist resources it's given. Just like what people do on the Pico-8, limitations start becoming an attractive feature. And you can do a lot with 16 bars. A good example is "Army of Me" by Björk - it only uses 8 bars for its backing track but the constant tweaking of filters make it sound a lot more.

This is starting to get in to www.Pouet.net material. Seriously, you should submit it as a demo. It's not just the coding they're after in demos but also creativity. The votes on HN say it all.

[+] Mulpze15|5 years ago|reply
I remember chasing down history of acid music online and discovering Charanjit Singh who created Ten Ragas to a Disco Beat in 1982:

https://youtu.be/sB4RYBpwV0A

[+] vesinisa|5 years ago|reply
I have seen plenty of AIs that supposedly generate music, but this is the first one where the results are actually plausible. This is not too different from what I remember hearing in the early 2000s raves. Only the sound-system back then was maybe a bit beefier than my meager laptop speakers. ;) Well done!!

I have actually been working all morning now with this as my background music. It is great.

[+] fergie|5 years ago|reply
Hands up if you were at an illegal rave in the 90's. m/
[+] swen-rekcah|5 years ago|reply
I may be opening a can-of-worms by asking this question.

But, what are the rights around using this algorithmically generated music? Is it free use? Who owns the copyright

[+] Iv|5 years ago|reply
The button presser could make a claim on the copyright. I could see a legal challenge being filled as this not filling the requirement for being a creative work and hence not copyrightable.
[+] reasons|5 years ago|reply
Jamming out to this in my home office. Someone hand me some upside down water.
[+] s1mon|5 years ago|reply
This is definitely enjoyable and impressive for being done in a browser. It covers some of the core bits of a prototypical acid set up, but there are some basic things missing.

The "909" section only has 4 sounds with some (4?) different velocity (think loudness) levels. The real thing had 26 knobs to adjust the 10 different individual outputs (plus L/R) of 11ish sounds (ride and crash cymbals are on separate outs, but open/closed high hats are on one out). The "303" has 4 knobs but the real thing has 6 and the delay would be from some sort of external effects, so really it's missing 3 controls (tuning, env mod, and accent).

The note color seems to indicate accents and slides (the yellow and purple), but I'm still having trouble hearing which is which and it's not really doing a great job of getting to the level of resonance and distortion that happens with the real thing. It's nice that delay has been added as an effect on both "303"s and the overall mix, but there are so many classic acid tracks which relied on some sort of distortion either through external effects or various mods.

The whole issue of 303 emulators is a huge rabbit hole in and of itself. [1] The history of the 303 and its various uses can also go on for hours [2]

[1] https://djmag.com/longreads/8-best-tb-303-clones-according-a...

[2] http://blog.dubspot.com/roland-tb-303-spotlight/

[+] Ccecil|5 years ago|reply
Great work.

This reminds me a lot of the algorithm that drives the Korg KARMA workstation. I often found myself letting it run like this to see where it decided to go. The settings were changed by knobs but there was often slight drift and changes...as well as a lot of 1/256 measures.

The KARMA architecture moved on to the Korg M3 and OASYS (IIRC) and is very interesting. There are some good videos on the topic and Stephen Kay I have found to be very approachable in the forums (albeit a decade ago).

There was even software to make your computer "double" what the KARMA was doing so you could expand to even more channels/instruments...days like this, I miss my synth.

edit: KARMA= Kay Algorithmic Realtime Music Architecture and it was a variant of the Korg Triton system.

[+] vascocosta|5 years ago|reply
I'm a programmer. I also enjoy occasionally producing electronic music, usually within the trance genre. Nevertheless as a good programmer I'm lazy and that reflects in my music creation. I'm a minimalist, but minimalist trance doesn't sound so good in my opinion. Many layers are often needed, with complex melodies, if you want it to sound professional.

On the other hand, acid techno seems to be minimalist by design, I love it. If I can create it programmatically even better. Mixing automation with some human interaction seems to be the best of both worlds. I'm in love with this and feeling like creating my own acid techno production tool, with a mix of automation and interaction.