News for hackers. Stuff that matters.
Re:Generating More of My Favorite Aphex Twin Track by haywirez on Tuesday March 26, 2019 @08:37AM (#19491164)
For musicians and devs, it's a good hint that Markov chains are "good enough" for most interesting music applications, ML/AI doesn't typically yield better results. Happy to see this on the front page!
Re:Generating More of My Favorite Aphex Twin Track by mturmon on Tuesday March 26, 2019 @11:05AM (#19492493)
I don't disagree with this observation, but I wanted to mention a counterpoint.

Eno's "Music for Airports" famously uses a system of multiple tape loops that produce sequences of different periods. As you listen, you can hear phrases that occur nearly together and then later, well-separated in time, as the periods of these loops go in and out of phase:

"One of the notes repeats every 23 1/2 seconds. It is in fact a long loop running around a series of tubular aluminum chairs in Conny Plank's studio. The next lowest loop repeats every 25 7/8 seconds or something like that. The third one every 29 15/16 seconds or something. What I mean is they all repeat in cycles that are called incommensurable — they are not likely to come back into sync again."

This interaction of periods will have long memory. (If the tape lengths are L and L+d, for small d, then the repeat time could easily be as long as L*(L/d), and even longer if d does not divide L evenly.) Thus, it is very different from what you get with a Markov chain.

Re:Generating More of My Favorite Aphex Twin Track by twic on Tuesday March 26, 2019 @11:33AM (#19492751)
There was an interview with Eno in Wired in 1995 [1] that i still think about sometimes. Amongst other things, he talks about lifting himself to the next meta-level of composition, where he doesn't write music, he writes rules for a box which makes music:

Q: If I could give you a black box that could do anything, what would you have it do?

A: I would love to have a box onto which I could offload choice making. A thing that makes choices about its outputs, and says to itself, This is a good output, reinforce that, or replay it, or feed it back in. I would love to have this machine stand for me. I could program this box to be my particular taste and interest in things.

Q: Why do you want to do that? You have you.

A: Yes, I have me. But I want to be able to sell systems for making my music as well as selling pieces of music. In the future, you won't buy artists' works; you'll buy software that makes original pieces of "their" works, or that recreates their way of looking at things. You could buy a Shostakovich box, or you could buy a Brahms box. You might want some Shostakovich slow-movement-like music to be generated. So then you use that box. Or you could buy a Brian Eno box. So then I would need to put in this box a device that represents my taste for choosing pieces.

[1] https://www.wired.com/1995/05/eno-2/

Re:Generating More of My Favorite Aphex Twin Track by bhrgunatha on Tuesday March 26, 2019 @10:33PM (#19497749)
I spent a huge amount of time playing around with a demo of SSEYO Koan Pro which Eno used to make Generative Music 1 [1] and which evolved over time into Wotja by Intermorphic [2]. It's about time I tried Wotja out!

[1] https://en.wikipedia.org/wiki/Generative_music

[2] https://intermorphic.com/wotja/

Re:Generating More of My Favorite Aphex Twin Track by pcf on Tuesday March 26, 2019 @02:33PM (#19494712)
This should be doable? You could feed your entire catalogue into the machine, and have it start generating music. For every pass, you could listen to the created piece and tell it "I would not make anything like element X, because of [specific reason], so take that out."

Enough of these passes and detailed removal of elements you wouldn't create, and you should get closer and closer to a machine that would be your musical clone.

Re:Generating More of My Favorite Aphex Twin Track by AgentME on Thursday March 28, 2019 @07:57PM (#19517852)
This is missing the complexity to a lot of music. Swap "music" in your post for "books" or "software" or "human interactions" and maybe the skipped complexity becomes obvious. What if the key ingredient to someone's music is a long over-arching structure throughout the song of highs and lows following the emotional progression of a predictable 3-act story? The software would need to be capable of recognizing and synthesizing and tuning that kind of high-level element and surely many others like that. Even songs that are made up of a few repeating tracks overlaid probably have high-level qualities like that the artist tweaks the setup until the end results meet the high-level goal they were aiming for.

I'm sure a musician who was also a programmer who understood their own tastes and creation process well enough could currently create something like this for a specific genre, but I think we're very far from a one-size-fits-all generator.

Re:Generating More of My Favorite Aphex Twin Track by TheOtherHobbes on Wednesday March 27, 2019 @07:32AM (#19499818)
You need a machine description of "element" - which turns out to be a lot harder than it sounds.
Re:Generating More of My Favorite Aphex Twin Track by jimmcslim on Tuesday March 26, 2019 @05:43PM (#19496310)
How well would it cope with the evolution of an artist's ouevre; would it recognise that certain sounds are from a certain period?
Re:Generating More of My Favorite Aphex Twin Track by kbenson on Tuesday March 26, 2019 @11:42AM (#19492840)
> What I mean is they all repeat in cycles that are called incommensurable — they are not likely to come back into sync again.

I remember a few years back there was some quick guide to visual design that I saw that recommended this. To provide what appeared to be randomness over repeating samples (or at least prevent easy pattern matching in the brain which is distracting), take three images that can of different prime number lengths, then repeat each one and put them next to each other.

I believe the example used was the ruffles in a stage curtain, where there were a few layers. Each layer was a repeating image of length 3, then length 5, then length 7 (but the image itself had some variations between ruffles within it). You won't get a point where all the images all stop and start at the same point (a dead giveaway of the pattern) until length 105.

Re:Generating More of My Favorite Aphex Twin Track by xinsight on Tuesday March 26, 2019 @07:57PM (#19497029)
I remember that article too! I used the same technique to make a convincing, non-duplicating flame-flicker algorithm for an led. 3 variables, all looping to different prime numbers and the sum of the 3 variables was the led intensity.
Re:Generating More of My Favorite Aphex Twin Track by emzo on Tuesday March 26, 2019 @03:21PM (#19495152)
Re:Generating More of My Favorite Aphex Twin Track by kbenson on Tuesday March 26, 2019 @05:36PM (#19496266)
I actually figured there was a good chance someone here would reply with it, since I believe I originally found it here either from a submission or a comment. Thanks!
Re:Generating More of My Favorite Aphex Twin Track by ssalazar on Tuesday March 26, 2019 @04:48PM (#19495882)
Hm, it works well for this particular song/the genre of generative music but it easily hits limits with many other types of music people might want to work with. More advanced ML/AI techniques are needed to reason about sound in a semantic/latent space, which a stock Markov model will not do.
Re:Generating More of My Favorite Aphex Twin Track by droobles on Tuesday March 26, 2019 @11:20AM (#19492639)
I feel like the Markov chain could also apply go higher level song formula, with probability weights for choruses, verses, bridges, breakdowns, solos, etc.

I prefer to just write a bunch of riffs and see where they grow organically, but it seems the chain would be a great tool to piece some of those ideas together or give an indicator of where they could go when a creative block is hit.

Re:Generating More of My Favorite Aphex Twin Track by posterboy on Tuesday March 26, 2019 @12:30PM (#19493326)
I think it should be more interesting to create a formular that sounds nice. In effect, that's what's done when creating structures "organically". Hence a lot of music is formulaic, but the problem with that is that the formular is predictable on purpose. It's not strictly simple, not everyone can do it freely, but the more complexity, the harder it is to stay within any given constraint. Vice versa, adding a lot of complexity just to satisfy a weird constrained, instead of relaxing the constraint can seem overloaded. The latter notion may be a meta constrained, so you get a dynamical system. The dynamics of a Markoc Chain are either limited or hard to control as far as I can tell, as its a random process. But the expressiveness is king. The way I imagine controling that would involve human interpretation in a trial and error loop, and therefore a lot of bad music. This, and the imitation of prior art is a given for unplugged music, too, of course, but the material to draw from is so diverse that a markov chain is more likely to pick up all the bad parts, too.

I mean, most music is terribly dull and meaningless in the grand picture of things. The selection of input would be more like the job of a DJ. I don't know how much creativity can be fit into programming the chain, what features to pickup. It would probably just be a part of a bigger workflow, starting small, creating short samples, arranging those, and cetera.

For the story it helps that Aphex Twin is rather random to begin with (e.g. having created a song by reverse fourier syntheses over a gray scale picture, creating the sound to a desired spectrogramm). The irony is appreciable, though comendable if someone likes the result.

Re:Generating More of My Favorite Aphex Twin Track by haywirez on Tuesday March 26, 2019 @11:24AM (#19492680)
Coincidentally working on this right now...
Re:Generating More of My Favorite Aphex Twin Track by droobles on Tuesday March 26, 2019 @11:25AM (#19492684)
Let me know how that goes! I know as a songwriter it'd be a great tool to have on hand.
Re:Generating More of My Favorite Aphex Twin Track by haywirez on Tuesday March 26, 2019 @11:33AM (#19492746)
What you describe is exactly what I'm building - https://songsling.io

Didn't want to explicitly promote it here in the thread, but I'm building it to serve as a general music-content engine for artists (also for my own music, let's be honest) that will let you upload composition parts and the player will put them together on the fly. It already has interactivity built in where you can serve a different version of a track based on changing inputs you connect from your Internet presence etc. Plus, you can DJ with it, it supports smoothly changing playback speeds. It needs to happen.

Re:Generating More of My Favorite Aphex Twin Track by fwip on Tuesday March 26, 2019 @03:04PM (#19494996)
One use-case that immediately jumped to mind for an API plugin is integration with popular games for game streamers to use. Something that detects that you're in the middle of a gunfight vs just chilling in the lobby, and selects/modifies the music appropriately.

Some video games do this automatically with their in-game music, but not all, and many streamers prefer using other music to avoid it getting stale.

Re:Generating More of My Favorite Aphex Twin Track by bjs250 on Tuesday March 26, 2019 @12:49PM (#19493552)
Just wanted to say that this looks super dope. Love the aesthetic as well.
Re:Generating More of My Favorite Aphex Twin Track by cauthon on Tuesday March 26, 2019 @11:40AM (#19492815)
> it's a good hint that Markov chains are "good enough" for most interesting music applications, ML/AI doesn't typically yield better results

Are Markov chains not considered ML/AI? I would consider them to be a standard part of the field