DIY MIDI controllers

From Helpful
Revision as of 20:38, 25 November 2022 by Helpful (talk | contribs)
Jump to navigation Jump to search

Intro

Gametrak rev1 modified for MIDI (and CV)

GameTrak is a controller that was used by a few games on Playstation 2, and later also PC, and Xbox.

See images, but more interestingly, look at videos like

Game Trak Theory
Ge Wang: The DIY orchestra of the future
Line of voice and string -for Game-trak controller, Kyma system.

See also:



Gametrak internals

Device internals are fairly simple, two copies of:

a wire spool (middle area) that rotates a potentiometer as it is pulled out
...physically threaded through the middle of an analog joystick (on the sides) much like those in gamepads.
Which is one pot per axis

All pots are 5kOhm.


There's also a chunky weight that keeps the thing on the floor.



Board

rev2 board, with the markings of what to bridge for PC and Xbox

The IC on the board is epoxy-blob'd, so presumably custom.

While PS2, PC, and XBox variants all look the same and are all connected through USB, they are not quite interchangeable out of the box.

Some revisions can be easily tweaked, others not.


Board revisions

All boards are USB, so all are detected fine on a PC (name, HID, layout).

...but Rev 1 is PS2-only will in that it will not seem to output any values on PC. (I've always assumed such incompatibility between consoles was intentional, and at data level rather than USB level).

....while Rev 2 can be bridged for PS2, Xbox, and PC - it's even silkscreened as such.


They probably developed it for PS2 initially, then decided they wanted to release it for other platforms.


Interfacing one with software

If you have a rev2, then you take a few minutes to solder-bridge it for PC and you're ready.

...ready for for anything that takes joystick style input, that is, which e.g. most music production software allows in some way or other, be it any DAWs that can take joystick-like input, or software like ChucK or Kyma or Max.


I also have a rev1.

It's presumably possible to create a PS2-gametrak-specific driver to deal with the different format, but not really a convenient solution in that most platforms do not make custom drivers very easy to use (and it being HID doesn't actually make that easier).

So this became a DIY project instead:

Your own hardware

The potmeters are all 5kOhm, so putting them across Vcc and Gnd is fine (consumers 1mA each at 5V).

Wiring the middle to an ADC doesn't even need any extra components. You want some board with an ADC that muxes to at least 6 pins (because six pots). Which describes most arduino-style boards, though you probably want a Nano or Micro (or some other small board - Teensy, ESP, blue pill) to fit it into the case.


Which means the electronics work is little more than wires. My version is little more than a bunch of cutting, soldering, heat-shrinking, and hotsnotting down the Arduino Micro.


You can go a more custom if you want. For example, this project made a PCB (for a PIC microcontroller) and the same sized board and the same sockets as the original, so that you don't even need to cut anything.

There's a number of similar projects and plans you can find around.


The things you want to plan up front:

  • how and where to fasten the microcontroller
  • and how to expose the USB
  • tension relief on the cable you have/add
  • what you want to output - serial MIDI, USB-MIDI, CV, or such.
I went for
serial MIDI because I didn't have a ATmega8U2 style board on hand
and prepared for CV
could be PWM-based
could even be basically (buffered, voltage-divided and possibly shifted versions of) the pot outputs themselves



Generic output towards a DAW would probably map each axis to its own CC, so that you can decide on the DAW end what to do with it.


I wanted it to be more of an instrument that doesn't need heavy DAW-internal mapping, so experimented with

  • one side controlling
    • which note is being played (remembered for next note trigger)
    • quantizing that to different scales (remembered for next note trigger)
    • pitch bending (sent as CC)
  • the other side
    • triggering notes pluck-style (sent as NoteOn), or bow-style (sent as CC)
    • have otherwise unused axes send CC

It turns out that imitating motions of a real instrument makes a lot more intuitive sense than six degrees of freedom that do seemingly arbitrary things.