$ show norbertrostaing/BlinderKitten
BlinderKitten is a professional-grade lighting control console application built on the JUCE framework. It provides fixture management, cue lists, effects, carousels, mappers, and a programmer for show control. The software supports multiple control protocols including DMX (ArtNet, sACN, Enttec, DMXKing), MIDI (with Mackie Control feedback), OSC, NDI video input, and serial devices. The architecture is monolithic with a central Brain singleton and many manager classes, heavily relying on JUCE's parameter and container system. The codebase shows skilled engineering but suffers from tight coupling, incomplete features, and significant commented-out code. It is a fork/derivative of the Chataigne show-control software, specialized for lighting.
The LLM identified 4 files worth highlighting for reuse:
Implements the E1.31 (Streaming ACN) protocol for DMX-over-Ethernet. Provides packet construction, validation, unicast/multicast socket setup, and sequence number tracking. Standalone C code that can be extracted and reused in any DMX-over-IP project without modification.
Consistent Overhead Byte Stuffing (COBS) encoder and decoder. A general-purpose serial framing technique that eliminates byte stuffing overhead. Zero external dependencies, self-contained, and suitable for any serial communication project that requires packet framing.
A cross-platform serial port abstraction using the pimpl pattern. Supports Windows, Linux, and macOS with configurable timeouts, baud rates, parity, flow control, and port enumeration. The public API is clean and the implementation is isolated from the rest of the application, making it reusable as a standalone serial library.
Steinberg ASIO audio driver initialization wrapper. Handles driver loading, callback setup, buffer management, and sample rate configuration. Written as a thin C API around the Complex ASIO SDK, this file can be reused in any Windows audio application needing low-latency ASIO support.