2.4 KiB
Gitlab CI Launchpad Mini Controller
And it's in Rust 🦀!
Aim
I wanted to use my Launchpad Mini in a way that was original and useful to me, as I don't produce music. The Launchpad is a glorified MIDI pad with some LEDs, and as a MIDI device, it can be interfaced with to do pretty much anything with it.
I used mainly two libraries for this project:
These two libraries are maintained at the moment this README is being written.
Using
Open associated project
Clicking on a tile opens the corresponding web page for the project linked to this tile.
Retry/create pipeline for project
Clicking on the A
button will engage the restart
mode. As long as it is
lit up, the mode is engaged.
If you click on a tile while the A
button is lit up, it will retry or create a
new pipeline for this project and for this ref. You can disengage the mode by
pressing again the A
button.
Show project name on launchpad
Clicking on the B
button will engage the show text
mode. As long as it is
lit up, the mode is engaged.
If you click on a tile while the B
button is lit up, it will show the project
name. You can disengage the mode by pressing again the B
button.
Building
As any other cargo
project, it can be built with a simple command:
cargo build --release
Logging
This project uses the env_logger crate for logging. You can take a look at its documentation to see how to adjust the log level instead of using the default error log level.
Configuring
The configuration is done through a JSON file, named config.json
and located
in the current working directory. An example configuration file is provided,
config.json.example
.
The abs_x and abs_y coordinate are defined using the top-left grid tile as the origin.
Limitations
This project has some limitations right now, and some of them will be fixed:
- the program is able to talk to one and only one gitlab API right now
- the configuration file has to be in the current working directory
- only one page is allowed, but 8 could be leveraged later using the 8 selectors
- the refresh delay is fixed for all threads and is at 2 seconds
- the launchpad mini is the only launchpad that can be used with this project