# Solo Tool This tool is designed to facilitate learning songs, and solos in particular, by slowing down playback and automatically jumping to predefined points in the song. ## Dependencies Python dependencies are listed in the pyproject.toml files of the different projects and should be automatically installed by `pip`. Non-Python dependencies are listed in pacman.txt and should be manually installed before running `make`. ## Usage To set up the environment and run the tests, run `make`: ``` make ``` The web GUI can also be run with `make`: ``` make gui ``` Alternatively, the tool can be executed in headless mode. In this case all it does is load the provided session and connect to the MIDI controller: ``` ./venv/bin/solo_tool_cli ``` ## MIDI It is currently possible to control the tool with MIDI. With the device plugged in, a connection is automatically established by the CLI. Currently the only device supported is the Novation Launchpad Mini Mk II. The MIDI device button mapping is documented in `doc/diagram.drawio`. ## Tests For the automated tests, run: ``` make test ``` or just ``` make ``` ## Architecture More details on the architecture are available in `doc/diagram.drawio`.