::  Posts  ::  RSS  ::  ◂◂RSS  ::  Contact

Game Controller MIDI

June 20th, 2018
music  [html]
Expression controllers can make synthesized instruments sound much better, but they're generally pretty expensive. For example, the breath controller I've been playing with cost me EUR 132. There's nothing fundamentally expensive about it, just a low volume product. Which got me thinking: is there some commonly mass produced device that gives a smooth range of outputs? What about a game controller?

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
    
It presents as a virtual MIDI controller named "game controller" with ten continuous controller outputs on CC-20 through CC-29.

Comment via: google plus, facebook, r/WeAreTheMusicMakers

Recent posts on blogs I like:

The Private Sector’s Role in Transit Innovation

The United States has long had private success and public failure – not just the sense of private affluence and public squalor, in which household income is high but the state of public services lags, but also in that the private sector is more productive…

via Pedestrian Observations June 17, 2019

Unintended pregnancy in folk songs

I’ve been listening to a lot of the Watersons and Waterson:Carthy this week. It’s reminded me how absolutely full British folk music is of songs about unintended pregnancy. Most commonly the result is unhappy motherhood: “But if I had kent that I now ken …

via The whole sky June 1, 2019

Programmer migration patterns

I made a little flow chart of mainstream programming languages and how programmers seem to move from one to another. There's a more common kind of chart, which shows how the languages themselves evolved. I didn't want to show the point of view of …

via apenwarr March 18, 2019

more     (via openring)

More Posts:


  ::  Posts  ::  RSS  ::  ◂◂RSS  ::  Contact