Custom models used to generate the melodies

Here you can find a brief explanation of the models that you can used in Komposair to generate your melodies

  • lstm-folk-1:

    This was the first model I uploaded to Komposair. I did not document this model very well but this is some information that I remember:

    • Keras Model
    • Layers: keras.layers.LSTM(num_units[0])(input_layer) and keras.layers.Dropout(0.2)(x)
    • Learning rate: 0.001
    • Loss: "sparse_categorical_crossentropy"
    • Dataset: Deutscher Liederhort. Auswahl der vorzüglicheren Deutschen Volkslieder, originally collected by Ludwig Erk; revised and edited by Franz Magnus Böhme in 3 vols., Leipzig, 1893-94. Taken from KernScores website

  • lstm-folk-2:

    After training the first model, I decided to use the same structure but in the whole dataset of Europe folk songs in the KernWebsite

    • Keras Model
    • Layers: keras.layers.LSTM(num_units[0])(input_layer) and keras.layers.Dropout(0.2)(x)
    • Learning rate: 0.001
    • Loss: "sparse_categorical_crossentropy"
    • Epochs: 50
    • Final loss: 0.33
    • Final accuracy: 0.8917
    • Trained in Colab it took about two hours
    • Dataset: Folksongs from the continent of Europe. Taken from KernScores website
    • Model LSTM folk 2 Loss function of LSTM folk 2
  • lstm-folk-3:

    This is the same lstm-folk-2 model (please see above for details of this model). The only difference is that I kept on training for more EPOCHS until reaching an accuracy of 0.9305

    Model 2 and 3 are not superior of model 1 in my opinion. I think that the advantage of model 1 is that I trained this model in a specific subset of the dataset, so it contains more uniform samples (samples of the same region in Europe)

  • lstm-china-1:

    After training in folk European songs, I used here the dataset of Chine (same kern dataset) that can be found here

    • Keras Model
    • Layers: keras.layers.LSTM(num_units[0])(input_layer) and keras.layers.Dropout(0.2)(x)
    • Learning rate: 0.001 for the first 100 epochs then 0.0001 for the next 100 epochs
    • Loss: "sparse_categorical_crossentropy"
    • Epochs: 200
    • Final loss: 0.2254
    • Final accuracy: 0.9248
    • Trained in Colab it took about two hours
    • Dataset: Folksongs from Chine. Taken from KernScores website
    • Loss function of LSTM China music 1