M8 Trackerのheadless環境をできる限り楽に動かしたい。

概要

Dirtywave M8 Trackerという機器がある。
M8 Tracker – Dirtywave

これは、いわゆるスタンドアロンで動く音楽機材なのだが、当該機器(実機)を購入する他に、オープンソースのファームウェアをマイコンボードに書き込むことでPC上でコントロールできる、所謂Headless環境が存在する。

MachiaWorksも当然のように購入ししばらく放置していたが、指がうまく動かなくなってから改めて環境を見直してみたところ、M8を使うと割と楽に曲を作れるのではないかと思い始めた。

そこで、M8 trackerのHeadless環境構築に2022/06時点で一番手っ取り早くかつ確実に動きそうな環境をメモるもの。

環境構築

マイコン

Teensy4.1を利用する。
お値段は5000円くらい。

これでSDカード読み込みも可能なので実機にもポート可能。

ファームウェア

M8 Tracker Headlessを用意する。

M8Docs/M8HeadlessSetup.md at main · Dirtywave/M8Docs (github.com)

手順のStep2まで行う。
書き込みはTyToolsが早い。

ディスプレイ環境

M8 WebDisplayを利用する。

M8 Display (derkyjadex.github.io)

次にURL欄から「M8Displayをインストールする」を選択する。

これで、デスクトップ上でPWA機能によりアプリとしてインストール可能。

PWAとは
プログレッシブウェブアプリ (PWA) | MDN (mozilla.org)

最初Node.jsが動く環境構築しなきゃかなと思っていたけど、これなら楽にオフラインでも動かせそう。

トラブルシューティング

  • デバイスが認識しない
    ファームウェア書き込みが行われているか確認する
    また、正常にUSB Microケーブルが刺さっているか確認する
    環境によっては電力供給が不足しているためNGになる可能性もあるので、PCと直に接続しているか確認する
  • 音が出ない
    左上のメニューから、Enable Audioを選択、音が出ない場合はOFF→ONとしてみると動くことがある
    出ない場合はサウンドデバイス→M8を選択して音が鳴るかを確認
  • シーケンスの保存
    基本的に電力が供給されてる=動作していると考える
    よって、電源を抜いたら予備電源とかはないのでシーケンスが保存される保証はない
    保存するデータがある場合はSDカードに書き込むのが確実
  • 使い方がわからない
    マニュアル参照
    Resources & Downloads – Dirtywave
    ファームウェアの更新によって機能が追加されるので、日本語訳待つよりPDFを翻訳して読むのが早い
  • 発音が遅れることがある
    描画周りに引っ張られて発音処理が遅れるケースが存在する
    実機のほうはディスプレイ処理があるから、PC接続してブラウジングしてると割と処理が遅れる(自分の環境がブラウザのタブ100個以上起動しててアホほどブラウザの処理が重くなってる可能性はあるが)
    アプリケーション切り替えが顕著
    そのため、ブラウジングしながらの再生等はあまりしない方がいい。録音の必要があるならDAWだけ起動するとかが確実かと。
    本体側だけで作業しているなら、Render機能で書き出しもいい
  • TouchDesigner使わないの?
    使ってもいいんだけど、「容量の大きなアプリを追加でインストールするのが面倒」「開発環境も兼ねているので変な操作するとエディタに移行する」「接続が不安定」等もあってあまり使う気になれない

まとめ

Headlessという便利な環境があるのでこれ使わない手はないなと思った。

あとがき

上記記事をまとめたあとにこんなのを見つけた。

laamaa/m8c: クロスプラットフォーム M8 トラッカーヘッドレスクライアント (github.com)

こっちのほうが安定しているかもしれない。(SDLで動作する)
デバイス周りは内部ルーティングでスピーカから出すなりしないとだめだけど。