# Solo Tool This tool is designed to facilitate learning songs, and solos in particular, by slowing down playback and automatically repeating short sections of the file. ## 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, just use `make`: ``` make ``` The GUI can then be executed in the venv: ``` ./venv/bin/solo_tool_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 can be established by clicking on "Connect MIDI" in the GUI or running the headless binary. 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`.