salu133445 / muspy

A toolkit for symbolic music generation
https://salu133445.github.io/muspy/
MIT License
426 stars 49 forks source link

Request support for REMI and Compound Words representations #63

Open 15805383399 opened 3 years ago

15805383399 commented 3 years ago

Recently, I found two new representations for symbolic music generation. But using their open source code is not as easy as using muspy. I hope that these two representations could be added to muspy's built-in representations.

REMI

https://ailabs.tw/human-interaction/pop-music-transformer/ image The MIDI-like representation is actually the event-based representation in muspy And of course, the REMI representation got beter performance in their paper

Compound Words

https://ailabs.tw/human-interaction/compound-word-transformer-generate-pop-piano-music-of-full-song-length/ image The Compound Words representation further improves the REMI representation. The most import point I think is that, Compound Words representation makes the sequence much shorter. And this makes it posible for attention window to cover the whole sequence. image

salu133445 commented 3 years ago

Added in 28afd97. The implementation of the REMI representation is different from what described in the paper though.

15805383399 commented 3 years ago

For chord events in REMI, there is a way to recognize chords from midi, offered in compound-word-transformer They uses their open source library chorder to recognize chord events, and also offers an example of processing the dataset they used in their experiment. But their is also one problem for their code. It could only recognize 60 kinds of chords, which is not enough, especially for classical music. And in my own experiment, I found that the chord event can really help the model to understand chord, and to generate music with more precise chords. But limit the number of chords used in generation under 60(in fact, only a part of them).I think adding recognizable chord types may help.