Home

Awesome

Signls

GitHub release (latest SemVer) GitHub Workflow Status

:notebook: User Manual • :tv: See it in action

Signls (pronounced signals) is a non-linear, generative midi sequencer designed for music composition and live performance. It's cross-platform (Linux, macOS et Windows) and it runs in the terminal (TUI).

It takes inspiration from Orca and Nodal.

Signls is still in development, but it is expected to be relatively stable.

Feel free to open an issue.

signls screenshot

Installation

Download the last release for your platform.

Then:

# Extract files
mkdir -p signls && tar -zxvf signls_VERSION_PLATFORM.tar.gz -C signls
cd signls

# Run signls
./signls

Build it yourself

You'll need go 1.23 minimum. Although you should be able to build it for either linux, macOS or Windows, it has only been tested on linux.

# Linux
sudo apt-get install libasound2-dev
make GOLANG_OS=linux build

# macOS
make GOLANG_OS=darwin build

# Windows
make GOLANG_OS=windows build

# Raspberry Pi OS
sudo apt install libasound2-dev
make GOLANG_OS=linux GOLANG_ARCH=arm64 build

Usage

# Run signls
./signls

# Display current version
./signls --version

Hit ? to see all keybindings. esc to quit.

Some companion apps that receive MIDI for testing Signls:

Keyboard mapping

Keys mapping is fully customizable. After running signls for the first time, a config.json is created. You can edit all the keys inside it.

You can select one of the default keyboard layouts available:

# QWERTY
./signls --keyboard qwerty

# AZERTY
./signls --keyboard azerty

# QWERTY MAC
./signls --keyboard qwerty-mac

# AZERTY MAC
./signls --keyboard azerty-mac

Default keyboard mapping

For qwerty keyboards, here's the default mapping:

Bank management

Each time you start Signls, a json file (default: default.json) containing 32 grid slots is loaded. For selecting a different file, use the --bank flag:

./signls --bank my-grids.json

Each time you change grid or quit the program, the current grid is saved to the file.

Acknowledgments

Signls uses a few awesome packages: