Panel Design

Please see visual PDF manual attached. The Panel features 2 oscillators with shape control, feedback, colorizer and much more. There is also a modulation matrix if the buttons are held allowing you to feed oscillators into the feedback scan and each other.

Hardware

PROCESSOR

Hypno Is essentially a fancy Pi Zero Hat. It uses Rasbian as its operating system and the pi zero GPIO to interface with an OpenGL Engine.

THE CV INPUTS

Hypno utilizes a common MCP3008 ADC via SPI to take in control voltages (scaled from -5 to 5v to a more acceptable 0 to 5V)

THE KNOBS

Knobs are taken into a single channel of the MCP3008 through a multiplexer. The knob values are offset in software based on the CV inputs.

Software

The system is written with C++ & GLSL. This part is open source: https://github.com/teafella/VIDOS Im especially excited to see how people will implement NDI into digital video hardware.

OpenGL

The Engine runs on a basic engine with one plane in OpenGL where it draws the output of a GLSL shader. CVs + Knob values are fed into shader uniforms which are used in the engine to change things. 

GLSL Shaders

The Shader system is inspired by analog video synthesis, every shape has a simulated "scan" over the screen and a function is mapped to it. This function can be rotated and the scan smoothly transformed into polar coordinates.

WiringPi

WiringPi is used for GPIO interactions because Arduino is fun and Im used to it already.

NDI

While this is not currently supported on the panel. The device sends Its video feed over NDI which means it can easily be used with existing VJ software like Resolume.

OTHER SOFTWARE

OSC

I used Lemur to prototype the panel before committing to panel layout. This lets you go through quick panel design iterations without sinking your paycheck into china. Some layouts are provided in the repo (but aren't guaranteed to work). The basic mapping is "/vidos/N" controlls "N"th CV. So to control cv 0 you would send a float value to "/vidos/0"

RTMIDI

The codebase receives midi and logs it but doesn't current have a mapping to the Shader uniforms.