As you might expect, when creating a program that randomly generates a near unlimited stream of original music, you are faced with a good few challenges. Even more challenges emerge when the musical style is not pre-determined, but selected by the end user from a choice of hundreds. I haven’t got hundreds of genres to choose from yet, but in every step of the software design I have to pretend that I do, and try to predict what every different style of music imaginable might need.
Hear are some of the challenges I currently know of:
- Good rhythms – Random rhythms aren’t problematic. Pretty much any arrangement of percussive sounds usually sounds good. Random rhythms have their place in rock and metal styles, and sit perfectly in jungle, IDM, free-form jazz and breakcore tracks. The real rhythmic challenges will be faced when trying to make some of the more controlled styles sound correct without being too repetitive or mundane. I want the styles to sound right, but I don’t want Algorythm Radio to produce 18 bajjilion versions of the same techno track!
- Good melodies – Melodies are far harder to get right. In the early days of Algorythm Radio I had great success with random melody generators. I was blown away by the success rate of the randomness, even when multiple random melodies were playing together! To be fair, the melodies were always in a single key back then. As successful as the random melodies were, I can’t rely solely on randomness, there is more to music than that, and I really ought to change key from time to time.
- Mixing and mastering – I will want every sound that comes out of Algorythm Radio to sound professional, which means it will all have to be professionally mixed and mastered. But how can I do that when I don’t know what the music will sound like, or even which instruments will be used? It’s a sound engineers dream! Or nightmare…
- Balancing the genres – How specific should the different genres be? Should I make them really broad, like rock, techno, jazz, house and classical? Or maybe really specific, like ambient baroque pop, operatic dust metal, deep freakbeat, east coast raggacore and experimental hard bop. If I make the genres too broad, then the user won’t have enough control over the music being produced. They may like some rock, but not all styles of rock. On the other hand, if I make the genres too specific, I will be in danger of the music produced in each style getting boring really quickly. What’s the point of having 300 undecazillion tracks per genre if they all sound the same? I want to be able to encompass the true soul of each style, while also leaving some room for new and exciting sounds to emerge.
- Judging success – How successful should each genre be? In an ideal world, every track made will be totally new, exciting and original while conforming closely enough to the style. Realistically though, there’s bound to be a dud somewhere in the 128 teknillion tracks. If I tightly regulate the generation of each track to ensure success, the resulting music will be less experimental and more predictable. So I need to be able to find a balance of good music vs musical scope. Sound easy so far? Time to set my head spinning by remembering that each genre needs to sound successful enough to every potential listener with all their varying tastes, not just me!
This is by no means a complete list, but an overview of some of the bigger challenges I will have to overcome in order to make Algorythm Radio as complete, exciting and professional as I aim to. In the blog posts to come, I will be discussing these and many other topics in greater detail.
Stay tuned, and be sure to keep an eye out for the Algorythm Radio Kickstarter that will be launched in early 2016.