見出し画像

ハンドトラッキングセンサーを使ってテルミン演奏

こんにちは、開発グループのA.Tです。

今月2日についにAppleから「Apple Vision Pro」が登場しましたね。
ヘッドセットで操作する空間コンピューティングが今後さらに普及していくのか気になるところですが、日本での発売は2024年末予定、早く使ってみたいという気持ちを抑えながら最近は購入した方のレビュー動画を見て過ごしております。

この投稿ではそんなVR/ARデバイスに関連した製品で、昨年、11年ぶりに最新モデルがリリースされたUltraleap社のハンドトラッキングセンサー「Leap Motion Controller 2」を紹介します。

Leap Motion Controller 2

Leap Motion Controller 2

初代のLeap Motion Controllerが発売されたのは2012年です。
当時から、小型で高性能なハンドトラッキングが可能なデバイスとして人気を集めていましたが、2023年7月には製品版Leap Motion Controller 2が登場しました。

この新モデルは初代からさらに小型化され、高解像度のカメラが搭載されて視野角も広がりました。リアルタイムで両手の手指を検出し、複雑なジェスチャーも認識可能となり、その性能の向上が図られています。

PCの入力デバイスとしての利用も可能ですが、Leap Motion Controller 2は主に以下のような用途で使用されています。

  • AR/VRへのハンドトラッキング機能の追加

  • デジタルサイネージの非接触入力

  • 医療や公共施設での衛生管理

  • エンターテインメント分野

  • 人材教育

これらの用途は、Leap Motion Controller 2の多様性とその技術が提供する幅広い可能性を示しており、様々な分野での応用が期待されています。

腕を使ったジェスチャー操作をトラッキングするデバイスは、キーボードやマウス、タッチ操作などの従来の入力デバイスに加えて、使用頻度が増えてきそうです。しかし、昔から指摘されている「ゴリラアーム現象」の問題や、使いこなすために肉体的な慣れ(訓練)がある程度必要になる可能性があります。

VRの空間で腕や指を使って操作する人の姿を客観的に見ると、しばしば近未来のSF映画『マイノリティ・リポート』のあるシーンを思い出したりするのですが、しかし、一方でもう一つ懐かしいレトロな電子楽器の演奏シーンも連想させます。

テルミン(Theremin)は1920年(1919年ともいわれる)にロシアの物理学者レフ・テルミン博士(Lev Termen; 1896-1993)によって発明された世界最古の電子楽器。楽器に直接触れずに演奏します。垂直、水平方向に伸びたアンテナの周囲には微弱な電磁場が形成されており、アンテナに手を近づけたり遠ざけたりすることで音の高さ、大きさをそれぞれ制御します。

https://www.mandarinelectron.com

現在でも、アナログシンセサイザーで名高いMoog社からテルミンが販売されています。

今回はLeap Motionを入力デバイスとして使用し、テルミンの演奏をシミュレートすることを目指します。ただし、Leap Motion単体では音を出すことができないため、音楽制作ソフトウェアを組み合わせることにします。

Max/MSP

MaxはCycling '74によって開発されているビジュアルプログラミング言語であり、統合開発環境でもあります。これを使用すると、ビジュアルパッチを用いてオブジェクト同士を接続することで、音や映像などのメディアを開発することができます。

Maxでは、オシレーター(発振器)をソフトウェア上で再現しており、これを音源として利用します。Leap Motion Controller 2を用いて、これらのオシレーターを直接操作し、音楽を奏でることが可能になります。

Leap Motion Controller 2をMaxで使用するために必要なソースコード(Max externalと呼ばれる拡張機能)が公開されています。この拡張機能をダウンロードし、Maxのプロジェクトに組み込むことで、Leap Motion Controller 2をMax上で操作するオブジェクトとして扱うことができます。

MaxでLeap Motionの情報を受け取る

ultraleapオブジェクトを使ったMaxパッチ

Max内で[ultraleap]オブジェクトを使用することが可能になり、これによりLeap Motion Controllerの機能を直接活用できます。Leap Motionのセンサカメラは160°×160°の広い視野角を持ち、10cmから110cmの範囲内での動作を検出します。この範囲内で、右手と左手の位置情報をMax上で別々に取得することができます。

右手(z軸)奥行き - 音程

音程は本物のテルミンでG2(低い×2 ソ)からC7(高い×3 ド)ぐらいまで、4オクターブほどカバーしていればよさそうなので、z軸の座標を周波数の値に直し97.999〜2093.005Hzのだいたいの範囲で右手の位置によって変化するように調整。

左手(y軸)垂直 - 音量

入力信号が規定のレベル(0dB)を超えないよう、左手のy座標の値がMax上で扱うシグナル値0.〜1.の数値に収まるよう調整、手が近づくと消音するようにします。

あとはオシレーターに右手の音程の値が流れるように繋ぎ、その出力のシグナル値を左手の音量で調節できるようにすればほぼ完成。

演奏としては程遠い内容ですが、↓の動画で手の動きに合わせて音が制御されているのが確認できます。

※クリックすると別サイトに移動して音声動画が流れます

さいごに…

いかがでしたでしょうか。
Leap Motion Controller 2は精度が高く、指の動きまでそれぞれ細かくトラッキングしてくれるので、他にもアイデア次第でおもしろいものが作れそうです。
楽器のように扱うには至難の業ですが、「白鳥」を練習しながら年末のApple Vision Proを楽しみに待ちたいと思います(あまり関係ないかもしれませんが…)


今回の投稿で使った環境はこちら