{"id":39496841,"url":"https://github.com/aminya/launchkey","last_synced_at":"2026-01-18T05:43:09.921Z","repository":{"id":311407047,"uuid":"1043624833","full_name":"aminya/launchkey","owner":"aminya","description":"Control Novation Launchkey MIDI keyboard","archived":false,"fork":false,"pushed_at":"2025-10-27T11:11:34.000Z","size":74,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-01T01:50:42.572Z","etag":null,"topics":["incontrol","launchkey","lunchpad","midi","novation"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/aminya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["aminya"],"polar":"aminya","patreon":"aminya"}},"created_at":"2025-08-24T09:11:09.000Z","updated_at":"2025-10-27T11:11:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"b119b3dc-ca2e-44d8-b280-e33b940344cd","html_url":"https://github.com/aminya/launchkey","commit_stats":null,"previous_names":["aminya/lunchkey","aminya/launchkey"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/aminya/launchkey","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aminya%2Flaunchkey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aminya%2Flaunchkey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aminya%2Flaunchkey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aminya%2Flaunchkey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aminya","download_url":"https://codeload.github.com/aminya/launchkey/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aminya%2Flaunchkey/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28531364,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["incontrol","launchkey","lunchpad","midi","novation"],"created_at":"2026-01-18T05:43:09.204Z","updated_at":"2026-01-18T05:43:09.916Z","avatar_url":"https://github.com/aminya.png","language":"JavaScript","funding_links":["https://github.com/sponsors/aminya","https://polar.sh/aminya","https://patreon.com/aminya"],"categories":[],"sub_categories":[],"readme":"# launchkey\n\nControl Novation Launchkey MIDI keyboard with LED animations and MIDI functionality in Studio One or via Python.\n\n![Animation](https://github.com/user-attachments/assets/7bc74796-42e6-432a-b0c4-b2bb83b66e5e)\n\n## StudioOne Support\n\nThis project includes a StudioOne extension that provides native support for Launchkey MK1 devices in Presonus Studio One.\n\nIt provides two devices that will be added automatically once the extension is installed. InControl buttons allow to switch between the two modes for the shared controls.\n\n- DAW Device:\n  - Transport controls\n  - Previous/Next track\n  - 9 Faders: volume of the tracks and master\n  - 8 Encoders: pan\n  - 9 Buttons: solo tracks and master\n  - 2 circular buttons: move the mixer's page 8 tracks left/right\n  - 16 pads: user asssignable in User mode, and works with launcher in Launcher mode (selectable from Studio One GUI)\n\n- Instrument Device: allows to use the keyboard as an instrument and use the faders and encoders for controlling any parameter.\n  - Keys of the keyboard\n  - 16 pads: note on/off\n  - 9 Faders: user assignable\n  - 9 Solo Buttons: user assignable\n  - 8 Encoders: user assignable\n  - 2 Circular Buttons: user assignable\n\n### Installing the StudioOne Extension\n\n1. Download the extension from [this link](https://github.com/aminya/launchkey/releases/download/v0.2.1/io.github.aminya.launchkeymk1.device.zip)\n2. Extract it and copy the extension folder to your Studio One under `C:\\Users\\\u003cusername\u003e\\AppData\\Roaming\\PreSonus\\Studio One 7\\User Devices`\n3. Restart Studio One\n4. The Launchkey MK1 will appear in your MIDI device list\n\nThe extension provides a complete surface mapping that transforms your Launchkey MK1 into a fully functional Studio One control surface.\n\n## Python Support\n\nIf not using StudioOne or you want to learn how Launchkey works, you can use the Python library:\n\n- **MIDI Integration**: Uses `mido` and `python-rtmidi` for robust MIDI communication\n- **LED Control**: Full control over all 18 LED lights (9 per row)\n- **Animation System**: Built-in LED sweep animation with customizable colors\n- **Model Detection**: Automatic detection of Launchkey model for proper MIDI channel usage\n- **Port Management**: Smart MIDI port connection with fallback strategies\n- **Command Line Interface**: Easy-to-use CLI for quick testing and control\n\n## Installation\n\n### Using pip (Recommended)\n\nInstall directly from PyPI:\n\n```bash\npip install launchkey\n```\n\nAfter installation, you can use the command-line tool:\n\n```bash\n# List available MIDI ports\nlaunchkey --list-ports\n\n# Connect to a specific MIDI port\nlaunchkey --port \"MIDIOUT2\"\n\n# Connect without running animation\nlaunchkey --port \"MIDIOUT2\" --no-animation\n```\n\n## Contributing\n\nFor detailed contributing guidelines, development setup, and project information, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nThis project is licensed under MIT as specified in the LICENSE file.\n\n\nThe [Novation programmer's guide](https://fael-downloads-prod.focusrite.com/customer/prod/s3fs-public/novation/downloads/10535/launchkey-mk2-programmers-reference-guide.pdf) was used to understand the MIDI protocol of the Launchkey.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faminya%2Flaunchkey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faminya%2Flaunchkey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faminya%2Flaunchkey/lists"}