3 ms·
Well, I just tried googling "rnn generated music": https://youtu.be/A2gyidoFsoI?t=1m44s https://youtu.be/A2gyidoFsoI?t=1m44s Sounds like a pretty good polyphony
by p1esk 9y ago
Well, I just tried googling "rnn generated music":
https://youtu.be/A2gyidoFsoI?t=1m44s https://youtu.be/A2gyidoFsoI?t=1m44s
Sounds like a pretty good polyphony, but of course, it could be just overfitting on Bach training samples.
Here are a couple of more sophisticated (and original) pieces:
https://soundcloud.com/user-95265362/op-1-for-piano-solo-in-d-major https://soundcloud.com/user-95265362/op-1-for-piano-solo-in-...
https://soundcloud.com/user-95265362/op-21-for-piano-solo-genesis https://soundcloud.com/user-95265362/op-21-for-piano-solo-ge...
- stevehiehn 9y agoThose do sound amazing! My goal is to create interactive music. If you noticed in my UI it can change at any point. In order to do that I think I need to premeditate the harmonic structure. i.e chord progression. I suspect that those RNN are not conforming to a predetermined harmonic structure. I doubt if you ask it say generate a piece following Dmaj9/Amaj/Bmin/Bmin it will understand that but I dont know.
- p1esk 9y agoif you ask it say generate a piece following Dmaj9/Amaj/Bmin/Bmin it will understand that Dmaj9/Amaj/Bmin/Bmin will be the seed sequence to the RNN. Of course, the network might ignore the seed, or if it's overfitting it will produce a chunk of the training sample which has this sequence in it, but you can definitely specify the starting point (and you usually do with RNNs).
- stevehiehn 9y agoIn order to use RNN in the way you suggest I think I would have to create a very large data set with annotated chord progressons. Which is something I would like to do but it would take a very long time to create the training sets.
- p1esk 9y agoNo need to annotate the chords. If you start from a midi file, you just encode the piece as a binary matrix (time range x frequency range). It gets trickier if different instruments are not separated because you would want to specify different instruments as separate channels (so your matrix becomes time range x frequency range x number of channels), but even this could be automated with ML (e.g. using image segmentation methods). The most time-consuming part is finding enough training compositions with labels (such as composer, genre, mood, style, etc), and data cleanup.