PCDJコントローラを自作してみたい(構想編)
12年ほど前から趣味でDJをやっています。
元々はPCDJ使いで、MixxxやRekordboxをPCで動かし、それをPCDJコントローラで操作する形で演っていました。歴代のコントローラを挙げると、BEHRINGER BCD3000→Numalk DJ2Go→Pioneer DDJ-RB。
しかし、GODJ Plusというオールインワンの機器を手に入れてからは一切使わなくなり、いずれも親しい友人に売ったり譲ったりしてしまい、手元にはひとつも残っていません。
時は流れて令和6年。戯れに自宅でGODJ Plusで配信をやったところ、ちょっと面倒になりまして。
というのもGODJ Plusの出力をオーディオI/Fの入力端子から受け取って、それを配信ソフトの音声入力に当てているのですが、オーディオI/Fの仕様の都合か、PC側でモニターできないんですよ。幸いオーディオI/Fにヘッドホン端子があったのでそこで確認していましたが、最終的にどのくらいの音量で配信されているのか、音が割れたりしてないかというのが分からず、配信しながら手元のスマホで聴いてみたりとか。もっとも観客はほぼ0人だったのでどうでも良かったんですけど。
なので、だったら自宅配信だけはPCDJでやろうかと思ったものの、先述の通りPCDJコントローラは手元になく、買い直すにしてもまあまあな出費です。
バグか?いいえ、お小遣い制です。(久川凪)
ないなら作ればいいんじゃないか。
PCDJコントローラがいわゆるMIDI入力デバイスであるという事は知っています。つまりはボタンやツマミの操作をMIDIメッセージに変換して、PCに送るようにすればいいということになります。
その仲介は、RP2040マイコン搭載の安価かつ高性能なマイコンボード、Raspberry Pi Picoにやらせるのが今の時流なんじゃないでしょうか。
製作構想
1. 疎通
まずはRaspberry Pi Pico単体でボタン1個の入力を取り込み、MIDI信号を送ってRekordboxに反応させるところまでを作ります。
詳しくは後述しますが、MicroPython等を使わず、Arduino IDE上でC/C++で実装します。
このあたりを参考にさせて頂く予定。
2. ハードウェア製作
実際にコントローラ類を並べて筐体を作り、Raspberry Pi Picoと配線するまでを行います。
実は気が逸ってもうほとんど作ってしまったのですが、それはいずれ。
3. ソフトウェア製作
Raspberry Pi Picoを使うとなると、たいていの場合はMicroPythonを使うようですが、私はPythonが書けないのと、あまり環境に悩まずとっとと作りたいので、ある程度慣れているArduino IDE上でC/C++で実装します。
ただこれは横着したいだけでなくて、タイマ割込みで入力監視を行い、通常のメインループで入力データをMIDI信号に置き換えてPCに出力する、という構成にするため。MicroPythonに同じことができるか分かりませんし、C/C++でビルドした方がインタプリタより高速かなと。
このあたりを参考にさせて頂く予定。
4. 実運用向けのチューニング
出来上がったら実際に使ってみて、仕上げのチューニングを行っていきます。テスト操作は勿論のこと、実際に配信してみたり、馴染みのお店で鳴らさせてもらったりしようかなと。
少し長いシリーズになるかもしれませんが、お付き合いいただければ幸いです。
Discussion