The idea is an app that helps musicians with their music writing process.
An instrument library would be created, so that each note (and version of the note) would exist as a separate wav file in a server.
The program would allow you to choose some criteria/characteristics like the length of the piece of music, mood/vibe (if it feels fast, slow, dark, happy, etc), BPM, number of distinct parts in the song, the key signature and band style ("in the style of...")
If you are writing a piece of music and you know what key signature you are in, what BPM it is, what mood you are looking for, then with a click of a button, you can have an artificial intelligence help you with getting inspired with a melody for example or a particular rhythmic pattern.
The program doesn't write the music for you, it would put out something that sounds very obviously robotic, but this could still work as a way for you to get inspired. Example: "That's a cool melody. I'm going to change it up a bit and use it in my music".
I think this is achievable because something similar has been done before (see YouTube link): [login to view URL]
From the video description: "So, essentially... What I've done is that I recorded EVERY note on my guitar, multiple times (open and muted notes, both left and right to "dual track" the guitars, multiple variations to increase humanization etc), edited every single strum of the guitar into individual files, reamped, mixed and mastered it and exported it out as separate .wav files (a couple of thousand files just for the guitars... (:). I did the same with the different drum parts with multiple velocities and the bass, although those samples I didn't record myself. Also did the same with multiple FX sounds and ambiance loops. Loaded all of those individual sound files into my program. And then ran it through a reasonably complex (or dumb, depending on how you see it (:) process to produce something resembling music. I also wrote a random song name generator, so that it picks a name for each "song" that it generates. (:
So back to the song generation - for each section it needs to generate, it gathers a list of suitable section generators, depending on the parameters it set up prior to the song generation. Then it picks one of the suitable section generators, and lets it fill in the section provided.
But it doesn't end there! Every section generator can call back to the song generation system to ask for a "compliment" section generator to generate something on top of the section. So for example, a rythm section generator can ask for a lead to be placed on top of the rythm. It can also ask for some FX to be added on top of the section, or some ambient layers.
And then the song generation system just keeps adding sections on top of each other until the song is finished. Every song takes around ~100 milliseconds to generate."