はじめに
この記事は、Node-RED Advent Calendar 2022 の 13日目の記事です。
内容は、以下の記事でも扱った「BOSS FS-1-WL(フットスイッチ)」 の話です。
●【今年のベストバイガジェット 2022】大垣でのメーカーフェア出展でも大活躍した「BOSS FS-1-WL(無線フットスイッチ)」 - Qiita
https://qiita.com/youtoy/items/715dd56fa756e18e87e6
それと、Node-RED で MIDI を扱う話の組み合わせになります。MIDI の話題については、過去に以下の記事を書いたこともある話です。
●p5.js Web Editor上で「Web MIDI API」を使って USB MIDIコントローラー(nanoKONTROL2)の入力を JavaScript で処理する - Qiita
https://qiita.com/youtoy/items/3abc6be12d9729157189
●Node-RED(enebular)でダッシュボード・リアルタイム通信を利用する【ハンズオン資料】 - Qiita
https://qiita.com/youtoy/items/61e4a6c9061d68f09e3b
それと「FS-1-WL の MIDIモード + Node-RED」という内容は、@1ft_seabass さん が 12/3 に試されたとツイートされてたりもする内容です。
これを自分もシンプルにやってみた、という流れを記事化しています。
今回使うもの
ノード
今回は、前に Node-RED で MIDIコントローラーを使った時にも利用した以下のノードを使います。
●node-red-contrib-midi (node) - Node-RED
https://flows.nodered.org/node/node-red-contrib-midi
Node-RED のノードを追加する画面で、「midi」というキーワードでフィルタをかけ、上記のノードを選びます。
以下の表示が出たら、追加完了です。
このあたりは、過去の記事でも書いていた、以下のお試しの際にも進めた流れと全く同じです。
デバイス
利用するデバイスは、冒頭にも書いた BOSS FS-1-WL というフットスイッチです。
こちらは、PC との接続では有線と無線(USB による接続と Bluetooth接続)が選択でき、動作するモードで HID か MIDI かを選べます(物理スイッチによる切り替え)。
なお、USB による有線接続の場合は、MIDIモードのみしか使えないらしいです(※ @1ft_seabass さんから情報をもらって、初めて気づいた内容でした)。
今回は、有線接続での MIDIモードを使います。USB接続の場合、USB から給電されるかなと思ってたのですが、電池駆動が必要そうだったのがこのとき気になりました(後で、きちんと説明書を見て確認してみようかと)。
なお、このデバイスを HIDモードにした状態で iPad との間で Bluetooth接続をして、それを展示イベントの作品に使った話があり、それについて以下の記事で少し触れています(FS-1-WL を HIDモードで使った際に用いた、専用アプリの話なども)。
●【今年のベストバイガジェット 2022】大垣でのメーカーフェア出展でも大活躍した「BOSS FS-1-WL(無線フットスイッチ)」 - Qiita
https://qiita.com/youtoy/items/715dd56fa756e18e87e6
実装環境
今回の実装環境は、ローカルの PC で動かしている Node-RED です。
ちなみに、以下の記事でも書いたのですが、Node.js でローカルインストールして、それを npxコマンドで呼び出すという構成にしていたりします。
●Node-RED で Teachable Machine を試す(Node-RED のセットアップ後にノードを追加してサンプルを動かす) - Qiita
https://qiita.com/youtoy/items/102c9ab8b5f25d542056
簡単なお試し
それでは、実際に BOSS FS-1-WL を Node-RED で使ってみます。
p5.js のプログラムで動作確認
USBケーブルで、BOSS FS-1-WL を PC に接続して、前に記事を書いた時に作った p5.js(JavaScript)のプログラムを使って、軽く動作確認をしてみました。
無事、USB で接続した BOSS の FS-1-WL が、USB接続の MIDIデバイスとして認識されているようです。
Node-RED で使う
それでは PC で Node-RED を起動して試していきます(※ 上で書いていた MIDI用のノード「node-red-contrib-midi」は追加済み)。
以下のように、MIDI用のノードの「midi in」のプロパティを開いてみたところ、「FS-1-WL USB-MIDI」という表示が出ていました。無事に FS-1-WL がが MIDIデバイスとして Node-RED でも認識されたようです。
そして、冒頭に書いていた @1ft_seabass さん が行っていたログ出力で、自分も Node-RED + FS-1-WL の連携動作を確認してみました。
フットスイッチのボタン押下で、MIDI関連の出力がログに出てきたことを確認できました(スイッチを 1回押すと、押した時と離した時で 1回ずつの出力がある)。
そして、サンプルとしてデバッグ出力の中の 1つに関し、パスと値を取得してみると、以下のような内容が得られています。
- パス: payload
- 値: [80,127]
以下のツイートでも書かれているように、反応は良い感じでした。
今回は Windows の Node-RED 。 MIDI で認識して 3 つのフットペダルを順に押すと、説明書に書いてあった MIDI CC ナンバーにある値が含まれて取得できた感じです。さすがフットペダル、足で押す想定なのでしっかりしてるし、楽器 MIDI らしくレスポンスも良い感じ。 #nodered #noderedjp pic.twitter.com/XL5LprSYDN
— Tanaka Seigo (@1ft_seabass) December 3, 2022
また、大垣のイベント出展で使い、来場者の方に 2日間の展示中に踏んで使ってもらってましたが、耐久性も良さそうでした(あと、小型で軽量なので、持ち運びも楽だった!)。
今後は、これを処理するノードをつなげてやれば、MIDIモードの FS-1-WL と Node-RED の組み合わせを、いろいろ試していけそうです。
追記
@1ft_seabass さん が「BOSS FS-1-WL」と「Node-RED」と他のデバイスを組み合わせた記事を公開されたようなので、以下に記事へのリンクを追加しておきます。
●フットスイッチ BOSS FS-1-WL を Windows Node-RED か MIDI データを取得し obniz と連携するメモ – 1ft-seabass.jp.MEMO
https://www.1ft-seabass.jp/memo/2022/12/14/boss-fs-1-wl-and-obniz-collaboration-with-nodered/