Skip to content

Bri9uy/PS4midi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PS4 Controller to MIDI Bridge for Korg Wavestation

This package lets you use a PS4 controller to control the vector joystick in Korg Wavestation (or any synth supporting MIDI CC16/17) via macOS and Python.

Features

  • Live vector joystick control with PS4 controller
  • Toggle freeze/unfreeze with the X button
  • Easy setup for any user
  • Enable L Joystick or R Joystick independently or together with summing, using L3 and R3 to enable and disable the joysticks

Bugs/Improvements to make

  • Moving the joystick while a project is playing results in a variable sample rate error code in Logic Pro
  • To use Korg Wavestation with a mouse after using a controller, Logic Pro's preference settings must be reset to reflect the changes
  • Unable to use the mouse and controller functionality at the same time
  • Untested on DAWs other than Logic Pro
  • Untested on Synths other than Korg Wavestation
  • Untested on OS other than Mac Sequoia 15.7.2
  • Untested on controllers other than PS4 controllers

Setup Instructions

  1. Install Python 3

    • macOS usually includes Python 3. If not, download from https://www.python.org or use Homebrew: brew install python
  2. Create and activate a virtual environment

    python3 -m venv ps4env
    source ps4env/bin/activate
  3. Install dependencies

    pip install -r requirements.txt
  4. Enable IAC Driver (Virtual MIDI Port)

    • Open Audio MIDI Setup (Applications > Utilities)
    • Show MIDI Studio (Window > Show MIDI Studio)
    • Double-click IAC Driver, check "Device is online"
    • Optionally rename to "Virtual Midi Port"
  5. Connect PS4 Controller via USB or Bluetooth

    • Hold PS + Share to pair via Bluetooth
    • Or plug in via USB
  6. Run the script (source version)

    python3 ps4midi.py
  7. Run the standalone app (frozen version)

    • After building with PyInstaller, run:
      ./dist/ps4midi
    • You should see output about available MIDI ports and MIDI CC messages in the terminal.
  8. Open your DAW and load Korg Wavestation

    • Make sure "Virtual Midi Port" is enabled as a MIDI input
    • Move the PS4 stick to control the vector joystick
    • Press X to freeze/unfreeze position

Building the Standalone App (PyInstaller)

If you want to distribute a standalone app:

  1. Make sure your ps4midi.spec file points to the correct script and includes the rtmidi binary:
    • The Analysis section should look like:
      a = Analysis([
          '/Users/YOURUSERNAME/ps4midi_package/ps4midi.py'],
          ...
          binaries=[('/Library/Frameworks/Python.framework/Versions/3.14/lib/python3.14/site-packages/rtmidi/_rtmidi.cpython-314-darwin.so', 'rtmidi')],
          ...
      )
  2. Build with:
    pyinstaller ps4midi.spec
  3. Share the resulting dist/ps4midi binary with other macOS users.
    • Note: The binary is only guaranteed to work on similar macOS versions and architectures.

Distribution Notes

  • For GitHub, upload only the source code (not the dist or build folders).
  • Add a Release if you want to share the pre-built binary.
  • Other users can build their own binary by following the instructions above.

Troubleshooting

  • If the controller is not detected, check connection and try both USB/Bluetooth.
  • If MIDI is not received, check IAC Driver and DAW MIDI input settings.

License

MIT

About

This application allows for the use of a controller's joysticks to control a Vector Synth in a DAW and a button input to freeze the position of the joystick.

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors