Game Controller MIDI |
June 20th, 2018 |
music |
I've never been into console gaming so I don't know much about controllers, but after looking at some pictures it looked like the PS4 one is well laid out for joystick use, so I ordered one ($26, shipped):
It connects via USB, and pygame can read from it out of the box:
>>> import pygame >>> pygame.init() (6, 0) >>> j = pygame.joystick.Joystick(0) >>> j.init() >>> while True: ... for event in pygame.event.get(): ... print(event) ... <Event(7-JoyAxisMotion { 'joy': 0, 'value': 0.003906369212927641, 'axis': 0})> <Event(7-JoyAxisMotion { 'joy': 0, 'value': -1.000030518509476, 'axis': 4})> ...
Since music is so latency sensitive (though maybe not for expression controllers?) I didn't want to have to go via python, so I decided to write something small against the OSX native API. The docs for the native API are pretty annoying, so the SDL source was a helpful guide.
It's ready and working, and you can try it out:
-
Build it from source (github):
$ git clone https://github.com/jeffkaufman/gcmidi.git $ cd gcmidi $ make run
-
Download a binary:
$ wget https://www.jefftk.com/gcmidi $ chmod ugo+x gcmidi $ ./gcmidi
Comment via: google plus, facebook, r/WeAreTheMusicMakers