{"id":16274628,"url":"https://github.com/ojacques/synthesiakontrol","last_synced_at":"2026-03-08T21:06:07.358Z","repository":{"id":54391502,"uuid":"127979382","full_name":"ojacques/SynthesiaKontrol","owner":"ojacques","description":":musical_keyboard: Use Native Instruments Komplete Kontrol mk2 light guide in Synthesia","archived":false,"fork":false,"pushed_at":"2023-06-06T21:15:58.000Z","size":52,"stargazers_count":116,"open_issues_count":14,"forks_count":21,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-16T02:47:21.411Z","etag":null,"topics":["komplete-kontrol","native-instruments","synthesia"],"latest_commit_sha":null,"homepage":"","language":"Python","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/ojacques.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["ojacques"]}},"created_at":"2018-04-03T23:15:28.000Z","updated_at":"2025-02-28T10:02:37.000Z","dependencies_parsed_at":"2024-11-03T17:01:34.282Z","dependency_job_id":null,"html_url":"https://github.com/ojacques/SynthesiaKontrol","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojacques%2FSynthesiaKontrol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojacques%2FSynthesiaKontrol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojacques%2FSynthesiaKontrol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojacques%2FSynthesiaKontrol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ojacques","download_url":"https://codeload.github.com/ojacques/SynthesiaKontrol/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243875122,"owners_count":20361951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["komplete-kontrol","native-instruments","synthesia"],"created_at":"2024-10-10T18:29:29.712Z","updated_at":"2026-03-08T21:06:02.336Z","avatar_url":"https://github.com/ojacques.png","language":"Python","funding_links":["https://github.com/sponsors/ojacques"],"categories":[],"sub_categories":[],"readme":"# Synthesia Kontrol Guide\nUse Native Instruments Komplete Kontrol MK1 and MK2 light guide in Synthesia to learn keyboard.\n\n[![Synthesia Kontrol](https://img.youtube.com/vi/R143-vSd6Eg/0.jpg)](https://www.youtube.com/watch?v=R143-vSd6Eg)\n\nThis is a project for my son, which you may find useful.\n\nThis program listens to light events from Synthesia sent to a virtual `LoopBe1` midi port\nand lights the keys on Komplete Kontrol keyboard accordingly.\n\n# Install\n\n## Pre-requisites\n\n- Install [LoopBe1](http://www.nerds.de/en/download.html) virtual midi port driver.\n\n  💡 On Mac, you can use the built in \"IAC Driver\" - open \"Audio midi setup\" to create a device named \"LoopBe\" as [explained by D-One](https://www.youtube.com/watch?v=8fCx9_58kjU\u0026t=220)\n\n  **🆕New**: Since January 2023, check out [KompleteSynthesia](https://github.com/tillt/KompleteSynthesia): a MAC native project from [@tillt](https://github.com/tillt)\n- In [Synthesia](https://synthesiagame.com):\n  - Go to settings/Music Devices\n  - Select \"LoopBe Internal MIDI\" from \"Music Output\"\n  - In Keylight section of that output, select \"Finger-based channel\" (the last mode after 'channel 16')\n  \n## SynthesiaKontrol\n\n### Windows\n\n- Download the Windows package locally on your PC from [releases](https://github.com/ojacques/SynthesiaKontrol/releases/)\n- Extract in a new folder\n- Run SynthesiaKontrol\n\n### Linux, MAC\n\nUse the [Developer method](#developer).\n\n# Developer\n\nIf you want to contribute to the project, you need to setup your Python environment.\n\n⚠ SynthesiaKontrol only works with Python3. One of the symptom when using Python2 is that you will get an error message saying that the keyboard is not supported yet.\n\n## SynthesiaKontrol\n\n- Install Python's module:\n\n```\npip3 install -r requirements.txt\n```\n\n- Run the program: \n\n```\npython3 SynthesiaKontrol.py\n```\n\n- Build executable (Windows)\n\n  - Install cx_Freeze: `pip3 install cx_Freeze`\n  - Run build\n    ```\n    python3 setup.py build\n    ```\n  - Result is in build directory.\n\n# Status\n\n- [X] Proof of concept: light keys from Komplete Kontrol MK2 S61\n- [X] Figure out all the possible colors - see `color_scan.py`\n- [X] Python app to listen to midi events from Synthesia and light keys - see `SynthesiaKontrol.py`\n- [X] Leverage finger based channel light mode from Synthesia, introduced in r4376 to show left and right hands on KK\n- [X] Address issue where notes are turned off too quickly (Forum post [here](https://www.synthesiagame.com/forum/viewtopic.php?p=45032#p45032))\n- [X] Package as simple executable\n- [X] All notes off\n- [ ] Customizable note colors\n- [ ] Rainbow mode: when playing a note, make a rainbow on that note\n- [X] Simpler / better instructions\n- [X] Support all Komplete Kontrol MK2 keyboard sizes (currently only S61)\n- [X] Support Komplete Kontrol MK1 keyboards\n- [ ] Use different colors per channel\n\n# Getting help\n\nI prefer [GitHub issues](https://github.com/ojacques/SynthesiaKontrol/issues).\nOtherwise, there is a Synthesia forum thread [here](https://www.synthesiagame.com/forum/viewtopic.php?f=16\u0026t=9220).\n\n# Acknowledgements\nThanks to\n- [Nicholas Piegdon](https://github.com/npiegdon) for his dedication to Synthesia, and the great help he provides for his user community\n- [AnykeyNL](https://github.com/AnykeyNL) to figure out an initial scheme for Komplete \nKontrol MK1 USB protocol as well as the structure of an app\n- [Jason Bret](https://github.com/jasonbrent) to have figured out the MK2 version, and the `0x81` endpoint which I use.\n- [a1vv](https://github.com/a1vv/KompleteKontrolLightGuide) for the fork, and figuring out the changes for MK1 - which allowed me to create a version with support of MK1 and MK2\n- [Nabume](https://www.synthesiagame.com/forum/memberlist.php?mode=viewprofile\u0026u=115379) for the S88 MK2 info.\n- [KompleteSynthesia](https://github.com/tillt/KompleteSynthesia): a MAC native project from @tillt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fojacques%2Fsynthesiakontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fojacques%2Fsynthesiakontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fojacques%2Fsynthesiakontrol/lists"}