hawk800

module
v0.0.0-...-c854ba5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2021 License: MIT

README

HAWK800 Controller

Hardware MIDI controller for the Korg EX-800 with the HAWK-800 mod installed.

Background

The HAWK-800 adds a bunch of new MIDI CC messages to control various parameters in realtime, but they way it implements these messages makes it difficult to use a typical generic MIDI controller's CC support.

There are three different methods of sending CC messages that it will accept, but the simplest for our purposes is one that sends two CC messages per paraemter. The first CC message specifies the parameter you want to change, and the second CC message sets the value for that parameter.

Problem

I haven't found a cheap hardware controller that can send multiple CC messages per knob wiggle. Maybe there is one, IDK.

The purpose of this project is to provide a hardware interface that sends CC messages using this HAWK-800 specific method.

Hardware

I built a prototype using an Arduino UNO, a cheapo MIDI shield, six potentiometers (B10k I think), a cardboard box and some knobs.

This repo contains the code for the Arduino part.

Connections

It works sort of like a hardware MIDI proxy. Instead of plugging your controller keyboard's MIDI OUT directly into the EX-800's MIDI IN, plug this box in between the two.

Keyboard MIDI OUT -> MIDI IN on this box, MIDI OUT -> MIDI IN on EX-800

Then you can play the keys on a proper keybard controller, and use this arduino box to wiggle the HAWK-800 parameters at the same time.

Rando bits that might be useful for other projects.

I slapped together a ccmsgs.csv file that lists all of the parameters and the control number for each in a machine-readable format. I got tired of looking this stuff up in the HAWK800 pdf files so I automated that task with some code-gen.

To generate a .h file for all of the CC control numbers:

go run src/go/gen.go > whatever.h

This reads the ccmsgs.csv file and generates .h for named symbols. This is how I generated the CCMessages.h file in the Arduino project.

Directories

Path Synopsis
src
go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL