Skip to content

jonathan-legrand/remi

 
 

Repository files navigation

ReMi: A Reservoir Computing MIDI Arpeggiator for Ableton

This project was developed during the Hack'1'Robo hackathon and received special recognition from the jury.

Presentation

ReMi provides the following features:

  • Generate arpeggios with a Reservoir Computing neural network
  • Control reservoir hyperparameters in real time through MIDI
  • Visualise reservoir states and processing steps in real time

Usage

  1. Add remi.amxd to a MIDI Ableton track
  2. Run app.py to start communication between Max for Live and Python
  3. Run liveplot.py to visualise reservoir states
  4. Run gui.py to visualise processing steps
  5. Press keys, and enjoy riding the edge of chaos :)

Future features

Here are some useful features that could be implemented in the future. Don't hesitate to either help us implementing them or propose some new ideas!

  • Add a pulse as an extra input to the reservoir, control its gain and periodicity. A more sophisticated approach would be to add a step sequencer as input (multiple pulses with their own rhythmic pattern).
  • Add a parameter that controls the probability of playing no note (silence). Currently, silence is represented in the same way as a note. Hence its probability of being selected for the beat cannot be differentially modulated.
  • Save/load reservoir weights and dynamics

Demo

This quick preliminary demo is just meant for you to hear what ReMi can sound like. Four keys were pressed constantly and the order of the notes was chosen by ReMi. Drums were not played by ReMi (although it could have).

NB: Keep in mind that this is just an example. A Reservoir is a universal dynamical system approximator. ReMi could therefore generate any possible melody.

demo_remi.mp4

image

Requirement

Use the Requirement file:

  • pip install -r requirements.txt or pip3 install -r requirements.txt Tkinter should be installed on your system:
  • for Linux: ``sudo apt-get install python3-tkor sudo apt-get install python-tk```
  • for Mac OS: brew install python-tk

About

ReMi: A Reservoir Computing MIDI Arpeggiator for Ableton

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%