{"id":36445734,"url":"https://github.com/emprcl/sektron","last_synced_at":"2026-01-11T22:43:06.432Z","repository":{"id":114960354,"uuid":"582152760","full_name":"emprcl/sektron","owner":"emprcl","description":"a midi step sequencer in the terminal, made with live performance in mind :loop:","archived":false,"fork":false,"pushed_at":"2024-10-25T15:05:02.000Z","size":784,"stargazers_count":52,"open_issues_count":7,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-12-25T20:59:28.464Z","etag":null,"topics":["bubbletea","cli","midi","midi-controller","music","musicmaking","sequencer","sequencer-midi","tui"],"latest_commit_sha":null,"homepage":"https://empr.cl/sektron/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emprcl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-25T22:28:00.000Z","updated_at":"2024-12-17T18:03:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"52b639a7-201e-4019-842f-61ee4b724ef2","html_url":"https://github.com/emprcl/sektron","commit_stats":null,"previous_names":["emprcl/sektron","xaviergodart/sektron"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/emprcl/sektron","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emprcl%2Fsektron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emprcl%2Fsektron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emprcl%2Fsektron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emprcl%2Fsektron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emprcl","download_url":"https://codeload.github.com/emprcl/sektron/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emprcl%2Fsektron/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28326144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T22:11:01.104Z","status":"ssl_error","status_checked_at":"2026-01-11T22:10:58.990Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bubbletea","cli","midi","midi-controller","music","musicmaking","sequencer","sequencer-midi","tui"],"created_at":"2026-01-11T22:43:05.937Z","updated_at":"2026-01-11T22:43:06.423Z","avatar_url":"https://github.com/emprcl.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sektron\n\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/emprcl/sektron) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/emprcl/sektron/build.yml)\n\n:notebook: **[User Manual](https://empr.cl/sektron/)**\n\nSektron is a midi step sequencer, made with live performance in mind, that runs in the terminal (TUI).\nIts main purpose is to mimic the fun and immediacity of hardware sequencers by being entirely controllable via keyboard.\n\nIt's heavily inspired by [elektron devices](https://www.elektron.se).\n\n**_Sektron has only been tested on linux (it should work on macOS as well) and you may experience some crashes here and there._**\n\n**_Feel free to [open an issue](https://github.com/emprcl/sektron/issues/new)._**\n\n![sektron screenshot](/docs/screenshot.png)\n\n### Features\n\n - Fully (and only) **controllable by keyboard**\n - **Customizable** keyboard mapping\n - Up to **10 midi tracks**, that can be attached to specific midi device and channel\n - Up to **128 steps per track**. The number of steps per track is independent, allowing complex polyrhythms\n - Parameters can be set per track or step (**parameter locking**)\n - Up to **64 patterns** can be loaded at the same time\n - **Pattern chaining**\n\nSee [Roadmap](https://github.com/emprcl/sektron#roadmap) for more.\n\n## Installation\n\n[Download the last release](https://github.com/emprcl/sektron/releases) for your platform.\n\nThen:\n```sh\n# Extract files\nmkdir -p sektron \u0026\u0026 tar -zxvf sektron_VERSION_PLATFORM.tar.gz -C sektron\n\n# Run sektron\n./sektron\n```\n\n### Build it yourself\n\nYou'll need [go 1.22](https://go.dev/dl/) minimum.\nAlthough you should be able to build it for either **linux**, **macOS** or **Windows**, it has only been tested on **linux**.\n\n```sh\n# Linux\nmake GOLANG_OS=linux build\n\n# macOS\nmake GOLANG_OS=darwin build\n\n# Windows\nmake GOLANG_OS=windows build\n\n# Raspberry Pi OS\nsudo apt install libasound2-dev\nmake GOLANG_OS=linux GOLANG_ARCH=arm64 build\n```\n\n## Usage\n\n```sh\n# Run sektron\n./sektron\n\n# Display current version\n./sektron --version\n```\n\nHit `?` to see all keybindings. `esc` to quit.\n\nSome companion apps that receive midi for testing Sektron:\n - [Enfer](https://neauoire.github.io/Enfer/) ([github](https://github.com/neauoire/Enfer))\n - [QSynth](https://qsynth.sourceforge.io/)\n\n![sektron gif](/docs/vhs.gif)\n\n### Keyboard mapping\n\nKeys mapping is fully customizable. After running Sektron for the first time, a `config.json` is created.\nYou can edit all the keys inside it.\n\nYou can select one of the default keyboard layouts available:\n```sh\n# QWERTY\n./sektron --keyboard qwerty\n\n# AZERTY\n./sektron --keyboard azerty\n\n# QWERTY MAC\n./sektron --keyboard qwerty-mac\n\n# AZERTY MAC\n./sektron --keyboard azerty-mac\n```\n\n### Default keyboard mapping\n\nThe default key mapping looks like this:\n\n![keyboard layout](/docs/keyboard-layout.png)\n\nFor qwerty keyboards, here's the default mapping:\n\n - `space` **play** or **stop**\n - `tab` **toggle parameter mode (track, record)**\n - `` ` `` **toggle pattern select mode**\n - `1` `2` `3` `4` `5` `6` `7` `8` `9` `0` **select track**\n - `!` `@` `#` `$` `%` `^` `\u0026` `*` `(` `)` **toggle track**\n - `q` `w` `e` `r` `t` `y` `u` `i` `q` `s` `d` `f` `g` `h` `j` `k` **select step** or **switch to pattern**\n - `Q` `W` `E` `R` `T` `Y` `U` `I` `Q` `S` `D` `F` `G` `H` `J` `K` **toggle step** or **chain pattern**\n - `,` **previous step**\n - `.` **next step**\n - `=` **add track**\n - `-` **remove track**\n - `+` **add step** to the selected track\n - `_` **remove step** from the selected track\n - `p` **page up** either steps or patterns if more than 16 items\n - `;` **page down** either steps or patterns if more than 16 items\n - `shift`+`up` **increase tempo**\n - `shift`+`down` **decrease tempo**\n - `ctrl`+`c` **copy selected step**\n - `ctrl`+`v` **paste selected step**\n - `ctrl`+`up` **add new midi control** to the selected track\n - `ctrl`+`down` **remove midi control**. It will remove the selected one\n - `enter` **validate selection**\n - `left` **move parameter selection to the left**\n - `right` **move parameter selection to the right**\n - `up` **increase selected parameter value**\n - `down` **decrease selected parameter value**\n - `?` **show help**\n - `escape` or `ctrl`+`q` **quit**\n\n### Patterns management\n\nEach time you start Sektron, a json file (default: `patterns.json`) containing 128 pattern slots is loaded.\nFor selecting a different file, use the `--patterns` flag:\n```sh\n./sektron --patterns my-patterns.json\n```\n\nEach time you change pattern or quit the program, the current pattern is saved to the file.\n\n\n## Acknowledgments\n\nSektron uses a few awesome packages:\n - [gomidi/midi](https://gitlab.com/gomidi/midi) for all midi communication\n - [charmbracelet/bubbletea](https://github.com/charmbracelet/bubbletea) as the main TUI framework\n - [charmbracelet/lipgloss](https://github.com/charmbracelet/lipgloss) for making things beautiful\n\n## Roadmap\n\nThe project isn't under active development right now. I may fix some bugs here and there. But I'll considerer adding more features if there's some interest. \n\nThings that I might consider adding at some point:\n - Step polyphony\n - Retrigs\n - LFOs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femprcl%2Fsektron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femprcl%2Fsektron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femprcl%2Fsektron/lists"}