Turning Nintendo Switch Joy-Con into a Musical Instrument via Python

I participated in the development of `joycon-python`, a Python library that retrieves information from a Bluetooth-connected Joy-Con via hid. Using `joycon-python`, I created a script called `joycon-osc` to send signals via OSC (Open Sound Control), and then received the transmitted information in Max to generate sound.


I participated in the development of joycon-python, a Python library that retrieves information from a Bluetooth-connected Joy-Con via hid. Using joycon-python, I created a script called joycon-osc to send signals via OSC (Open Sound Control), and then received the transmitted information in Max to generate sound.

Here is what it looks like.

joy-con to Python

People are often surprised when I say this, but I don't own a Nintendo Switch, yet I have Joy-Cons, the controllers for the Nintendo Switch. That's because I only bought (or was made to buy) the Joy-Cons.

So, when I was thinking about connecting the Joy-Cons to my Mac to play around with them, I found an article titled Qiita: Connecting to Joy-Con via Bluetooth from Python to get 6-axis sensor and input information. I immediately visited the repository published by the author, forked it, packaged it, and submitted a PR (and was moved by the very polite code review I received). That is the repository below.

tokoroten-lab/joycon-python

driver for Joy-Con (Nintendo Switch). Contribute to tokoroten-lab/joycon-python development by creating an account on GitHub.

It is now published on PyPi and can be used with pip install joycon-python.

joy-con to osc

Next, I created a script that monitors the state of the Joy-Con and sends OSC. That is also published as the repository below.

atsukoba/joycon-osc

Send OSC (Open Sound Control) by Joy-Con (Nintendo Switch). Contribute to atsukoba/joycon-osc development by creating an account on GitHub.

joy-con to Max/MSP

Once you are ready to send OSC, all you have to do is receive it in Max and turn it into sound.