Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dcervantes/scidle-midi-rnn
Generating MIDI music with Recurrent Neural Networks
https://github.com/dcervantes/scidle-midi-rnn
machine-learning machine-learning-algorithms midi music python
Last synced: about 1 month ago
JSON representation
Generating MIDI music with Recurrent Neural Networks
- Host: GitHub
- URL: https://github.com/dcervantes/scidle-midi-rnn
- Owner: dcervantes
- Created: 2017-08-22T13:29:06.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-08-24T13:32:26.000Z (over 7 years ago)
- Last Synced: 2024-08-05T06:04:33.505Z (5 months ago)
- Topics: machine-learning, machine-learning-algorithms, midi, music, python
- Language: Python
- Homepage: http://scidle.com
- Size: 635 KB
- Stars: 6
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
English
=======Generate MIDI Music with Recurrent Neural Networks
The project consists of the following files:
-
raw_music.py: More than 600 songs in text format converted from MIDI format. -
rnn_midi.py: Generator of the neural recurrent network model based on raw_music.py. -
keyboard2midi.py: Program that will load the model generated by rnn_midi.py and generate a MIDI file. -
rnn_midi_25_100_50000.dat : Model saved with 50,000 iterations. -
rnn_midi_25_100_200000.dat : Model saved with 200,000 iterations. -
rnn_midi_25_100_250000.dat : Model saved with 250,000 iterations.
The requirements to use this project are:
- Python 2.7or higher.
- Numpy:Mathematical library for python.
- Mido: MIDI file library for python.
Model Training
Although the project contains several models already trained with different number of iterations we can train it ourselves.
python rrn_midi.py
This generates the trained model in a file with .dat extension.
Generate MIDI Files with the trained model
python keyboard2midi.py
This generates a file with .mid extension.
Play MIDI files
To play MIDI files we have several options, although one of the simplest in timidity, which in addition to playing MIDI can convert them to WAV.
timidity song1.mid
Generate MIDI file, convert it to wav and play it on a single line.
python keyboard2midi.py; timidity --output-24bit --output-mono -A120 song1.mid -Ow -o song1.wav; aplay song1.wav
Convert MIDI files to MP3
ffmpeg -i song1.wav -acodec libmp3lame song1.mp3
Tests performed
These are several of the tests generated by our Artificial Intelligence.
Trumpet song created by Artificial Intelligence:
https://youtu.be/rc6b8yPH-uc
Harp song created by Artificial Intelligence:
https://youtu.be/KhDHeM8mW-M
Violin song created by Artificial Intelligence:
https://youtu.be/E1RZeuG0d78
Español
=======
Generar música MIDI con Redes Neuronales Recurrentes
El proyecto está formado por los siguientes archivos:
-
raw_music.py: Más de 600 caciones en formato texto convertidas desde formato MIDI. -
rnn_midi.py: Generador del modelo de red recurrente neuronal basado en raw_music.py. -
keyboard2midi.py: Programa que cargará el modelo generado por rnn_midi.py y genera un archivo MIDI. -
rnn_midi_25_100_50000.dat : Modelo guardado con 50.000 iteraciones. -
rnn_midi_25_100_200000.dat : Modelo guardado con 200.000 iteraciones. -
rnn_midi_25_100_250000.dat :Modelo guardado con 250.000 iteraciones.
Los requisitos necesarios para poder utilizar este proyecto son:
- Python 2.7 o superior.
- Numpy: Librería matemática para python.
- Mido: Librería de archivos MIDI para python
Entrenamiento del modelo
Aunque el proyecto contiene varios modelos ya entrenados con diferentes número de iteraciones podemos entrenarlo nosotros.
python rrn_midi.py
Esto genera el modelo entrenado en un archivo con extensión .dat.
Generar Archivos MIDI con el modelo entrenado
python keyboard2midi.py
Esto genera un archivo con la extensión .mid.
Reproducir archivos MIDI
Para reproducir archivos MIDI tenemos varias opciones, aunque una de las más sencillas en timidity, que además de reproducir MIDI puede convertirloas a WAV.
timidity song1.mid
Generar archivo MIDI, covertirlo a WAV y reproducirlo en una sola línea.
python keyboard2midi.py; timidity --output-24bit --output-mono -A120 song1.mid -Ow -o song1.wav; aplay song1.wav
Convertir archivos MIDI a MP3
ffmpeg -i song1.wav -acodec libmp3lame song1.mp3
Pruebas realizadas
Estas son varias de las pruebas generadas por nuesta Inteligencia Artificial.
Canción de trompeta creada por Inteligencia Artificial:
https://youtu.be/rc6b8yPH-uc
Canción de harpa creada por Inteligencia Artificial:
https://youtu.be/KhDHeM8mW-M
Canción de violín creada por Inteligencia Artificial:
https://youtu.be/E1RZeuG0d78