tillt / KompleteSynthesia

Native Instruments Komplete Kontrol Light Guide support for Synthesia
MIT License
25 stars 1 forks source link
komplete-kontrol macos native-instruments synthesia

Native Instruments Komplete Kontrol Light Guide and Screen Mirroring Support for Synthesia.

Running on Komplete Kontrol MK2 S

Running on Komplete Kontrol MK1 S

Features

Routes Synthesia lighting information to your Native Instruments keyboard controller USB device. Mirrors the Synthesia application window onto your Komplete Kontrol MK2 displays.

Auto-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.

Additionally supports jogwheel and the 'Play' button for starting and stopping a session in Synthesia.

In Action

Chose your favorite lightguide colors or work with the defaults.

Lightguide Setup

Setup

You first need to configure your system and Synthesia to support our way of routing the lighting information to KompleteSynthesia. Please follow SETUP.md.

Use

Simply run KompleteSynthesia.app. First thing you will have to permit a bunch of rather intrusive application capabilities.

When running it the first time, the first thing you will be asked by your system is:

Then, when pushing the 'Play' button or using the jogwheel, the system will ask you for:

Komplete 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.

For 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.

Komplete Synthesia

Problems

Background and Motivation

The approach and implementation of Komplete Syntesia in its early inceptions was closely following a neat little Python project called SynthesiaKontrol. Kudos and many thanks to Olivier Jacques [@ojacques] for sharing!

The 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.

Credits