任天堂SwitchのジョイコンをPython経由で楽器にする

Bluetooth接続したJoy-Conからhid経由で情報取得するPythonライブラリ`joycon-python`の開発に参加し,その`joycon-python`を用いて信号をOSC (Open Sound Control)に飛ばすスクリプト`joycon-osc`を作成し,その`joycon-osc`を用いて送信した情報をMaxで受け取って音にしました。


Bluetooth接続したJoy-Conからhid経由で情報取得するPythonライブラリjoycon-pythonの開発に参加し,そのjoycon-pythonを用いて信号をOSC (Open Sound Control)に飛ばすスクリプトjoycon-oscを作成し,そのjoycon-oscを用いて送信した情報をMaxで受け取って音にしました。

こんなものです。

joy-con to Python

こう言うと人に驚かれるのだが,僕は任天堂Switchを持っていないのに任天堂Switchのコントローラーであるジョイコンを持っています。なぜならジョイコンだけ買った(買わされた)から。

ということで,ジョイコンをmacにつなげて何か遊べないかと考えていたときに,Qiita: Joy-ConにPythonからBluetooth接続をして6軸センサーと入力情報を取得するという記事を発見。すぐさま著者が公開していたリポジトリを訪問し,forkし,パッケージ化し,PRを出した(らめっちゃ丁寧なコードレビューをしてもらい感動した)。それが以下のリポジトリ。

tokoroten-lab/joycon-python

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

今ではPyPiへの公開もされており,pip install joycon-pythonで使える。

joy-con to osc

次に,ジョイコンの状態を監視してOSCを送るスクリプトを作成した。それも以下のリポジトリとして公開している。

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

OSCを飛ばす準備をしたら,あとはMax上で受け取って音にする。