Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Fiddler: An AI Music Composer

The goal of the project is to model music compositions by capturing temporal dependencies in classical music composi- tions and eventually generate novel music compositions from the learned model. We use approximately 24000 music com- positions transcribed in ABC notation. We implement count- based n-gram language model, use its results as a baseline for recurrent neural network based methods and assess their abil- ity to generate structurally coherent, human-pleasing music. We achieved test accuracy of 69.78% for char-RNN and 73% for seq2seq model with both methods generating valid music compositions.

Detailed experiments, methodlogies and results are discussed in paper.pdf.


In order to install fiddler run the following command:

python install

This will install fiddler as a command line tool.


Training Recurrent Neural Network

fiddler train_rnn [options]

train_rnn command supports following options:

Usage: fiddler train_rnn [OPTIONS]
  Train neural network

  -f, --file PATH            Train Data File Path
  -b, --batch-size INTEGER   Batch size
  -l, --layers INTEGER       Number of layers in the network
  -r, --learning-rate FLOAT  Learning Rate
  -n, --num-steps INTEGER    No. of time steps in RNN
  -s, --cell-size INTEGER    Dimension of cell states
  -d, --dropout FLOAT        Dropout probability for the output
  -e, --epochs INTEGER       No. of epochs to run training for
  -c, --cell [lstm|gru]      Type of cell used in RNN
  -t, --test-seed TEXT       Seed input for printing predicted text after each
                             training step
  --delim / --no-delim       Delimit tunes with start and end symbol
  --save / --no-save         Save model to file
  --help                     Show this message and exit.

If fiddler is not installed as command-line tool, you can use the same command using python src/ with same arguments.

Generate music using a trained RNN model

Usage: fiddler generate [OPTIONS]

  -m, --model_path PATH  Directory path for saved model
  --help                 Show this message and exit.


Manthan Thakar - Character-level Recurrent Neural Network and Sequence to Sequence Implementation

Rashmi Dwarka - Character-level Recurrent Neural Network and Sequence to Sequence Implementation

Tirthraj Parmar - Character-level n-gram language model implementation


No releases published


No packages published