{"id":19678718,"url":"https://github.com/tillt/kompletesynthesia","last_synced_at":"2025-06-10T19:13:41.867Z","repository":{"id":65237360,"uuid":"584965340","full_name":"tillt/KompleteSynthesia","owner":"tillt","description":"Native Instruments Komplete Kontrol Light Guide support for Synthesia","archived":false,"fork":false,"pushed_at":"2024-04-27T21:12:44.000Z","size":19284,"stargazers_count":30,"open_issues_count":8,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-29T04:42:33.353Z","etag":null,"topics":["komplete-kontrol","macos","native-instruments","synthesia"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","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/tillt.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":"2023-01-04T01:08:23.000Z","updated_at":"2025-04-01T06:26:13.000Z","dependencies_parsed_at":"2023-12-30T15:26:26.932Z","dependency_job_id":"841b7dc1-7c90-4356-b92d-32c1b1c56d3d","html_url":"https://github.com/tillt/KompleteSynthesia","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tillt%2FKompleteSynthesia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tillt%2FKompleteSynthesia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tillt%2FKompleteSynthesia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tillt%2FKompleteSynthesia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tillt","download_url":"https://codeload.github.com/tillt/KompleteSynthesia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tillt%2FKompleteSynthesia/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259132949,"owners_count":22810511,"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","macos","native-instruments","synthesia"],"created_at":"2024-11-11T17:39:17.748Z","updated_at":"2025-06-10T19:13:41.843Z","avatar_url":"https://github.com/tillt.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"site/images/Logo.png\" /\u003e\u003c/p\u003e\n\nNative Instruments Komplete Kontrol Light Guide and Screen Mirroring Support for Synthesia.\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://youtu.be/bJiGqRVU9uU\"\u003e\u003cimg src=\"site/images/VideoThumb_Large.png\" /\u003e\u003c/a\u003e\n    \u003csmall\u003eRunning on Komplete Kontrol MK2 S\u003c/small\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://youtu.be/XK_dgRA3lPM\"\u003e\u003cimg src=\"site/images/VideoThumb_Large_MK1.jpg\" /\u003e\u003c/a\u003e\n    \u003csmall\u003eRunning on Komplete Kontrol MK1 S\u003c/small\u003e\n\u003c/p\u003e\n\n## Features\n\nRoutes Synthesia lighting information to your Native Instruments keyboard controller USB device. Mirrors the Synthesia application window onto your Komplete Kontrol MK2 displays.\n\nAuto-detects a Native Instruments S-series keyboard controller USB device. Listens on the 'LoopBe' MIDI input interface port. Notes received are forwarded to the keyboard controller USB device as key lighting requests adhering to the Synthesia protocol.\n\nAdditionally supports jogwheel and the 'Play' button for starting and stopping a session in Synthesia.\n\n![In Action](site/images/ButtonsAndLightGuide.png)\n\nChose your favorite lightguide colors or work with the defaults.\n\n![Lightguide Setup](site/images/Setup_Dialog.png)\n\n## Setup\n\nYou first need to configure your system and Synthesia to support our way of routing the lighting information to KompleteSynthesia. Please follow [SETUP.md](SETUP.md).\n\n## Use\n\nSimply run `KompleteSynthesia.app`. First thing you will have to permit a bunch of rather intrusive application capabilities.\n\nWhen running it the first time, the first thing you will be asked by your system is:\n\n- Allow for 'Input Monitoring'\n    - this is needed for receiving button events from the Komplete Kontrol controller\n\n- Allow for 'Screen Recording'\n    - this is needed for mirroring the Synthesia application window onto the Komplete Kontrol LCD screens\n\nThen, when pushing the 'Play' button or using the jogwheel, the system will ask you for:\n\n- Allow for 'Accessibility'\n    - this is needed for sending out virtual keyboard events to your system, recognized by Synthesia\n\nKomplete Synthesia will detect your controller and show a little rainbow swoosh on the keyboard lights, signalling that it is up and running. The 'Play' button should be illuminated now just like the jogwheel. You will also recognise a little MIDI cable icon on the top right of your screen.\n\nFor finding out about the detected controller, click on the icon which will show a menu which contains its name. The displayed menu will additionally tell you if Synthesia was detected running.\n\n![Komplete Synthesia](site/images/KompleteSynthesia.png)\n\n## Problems\n\n- No Native Instruments keyboard controller detected\n    - Komplete Synthesia currently supports the Komplete Kontrol S-series\n    - Make sure the keyboard is connected and powered on\n  \n- MIDI interface port 'LoopBe' not found\n    - Make sure you followed the [Setup](#setup) documentation on [Creating the virtual MIDI interface](SETUP.md#creating-the-virtual-midi-interface)\n    \n- Synthesia lighting only ever shows green keys (right hand), never blue (left hand)\n    - Synthesia isn't setup the way we need it - we need \"Finger-based channel\" lighting\n    - Make sure you followed the [Setup](#setup) documentation on [Configuring Synthesia](SETUP.md#configuring-synthesia)\n\n- All Keyboard LEDs show blue lights\n    - Are you running any other NI applications while running KompleteSynthesia?\n        - Some NI tools like KompleteKontrol.app do set the keyboard into something KompleteSynthesia just can not work with\n        - Exit KompleteKontrol.app - you wont need it while using Synthesia\n    - Use the \"Reset\" function in KompleteSynthesia drop-down menu\n\n## Background and Motivation\n\nThe approach and implementation of Komplete Syntesia in its early inceptions was closely following a neat little Python project called [SynthesiaKontrol](https://github.com/ojacques/SynthesiaKontrol).\nKudos and many thanks to Olivier Jacques [@ojacques] for sharing!\n\nThe inspiration for re-implementing this as a native macOS appllication struck me when I had a bit of a hard time getting that original Python project to build on a recent system as it would not run on anything beyond Python 3.7 for me. Another driver here is that I always took great pleasure from controlling hardware via code. As a result no third party dependencies are made use of - pure, native macOS code that will compile without hassle in 10 years from now.\n\n## Credits\n\n- Olivier Jacques [@ojacques] for the inspiring [SynthesiaKontrol](https://github.com/ojacques/SynthesiaKontrol) project\n- GoaSkin [@GoaSkin] for the inspiring [qKontrol](https://github.com/GoaSkin/qKontrol) project\n- Thanks for invaluable help in achieving MK1 compatibility, Daniel Demmel [@daaain]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftillt%2Fkompletesynthesia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftillt%2Fkompletesynthesia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftillt%2Fkompletesynthesia/lists"}