Maxで作る自分専用パッチ〜Patch40 カメラで心拍を検出してMIDIをトリガーするパッチ

f:id:rittor_snrec:20200714194038j:plain

基礎的な機能ブロックをつなぎ合わせることで独自のソフトウェアを構築できるCYCLING '74 Max。現在ネット上では数え切れないほどのパッチがシェアされており、それらのプレーヤーとしても活用が可能だ。ここでは最先端のアーティストによるクールなパッチを紹介。ファイルを下記URLよりダウンロードして、新しい音楽の制作に役立ててほしい。

 

■パッチのダウンロード:

https://rittor-music.jp/soundlib/MAX_PATCH-FACE_BEAT-HIEI.zip

皮膚の色の変化で心拍を検出

 こんにちは、HIEIと申します。私はもともとDAWを中心とした音楽制作をしてきましたが、いつしか音楽を聴くのも買うのも制作するのもコンピューターの中で完結してしまうことに違和感を覚え、コンピューターを使った音の表現方法を模索する中でMaxと出会いました。私の手法は主に実空間とコンピューターを結び、インタラクティブに音楽を生成していきます。植物や水晶などを動かして音楽を奏でるシーケンサーや、煙の動きからサウンドを生成するなど、主に画像解析によって得た情報を元に音楽を生み出す作品を制作してきました。今回はこの連載のためにちょっと面白いパッチを用意しています。Webカメラに映った顔の映像から心拍を検出し、MIDIノートをトリガーするパッチ、Face Beatです。必要なのはラップトップと内蔵カメラ、そしてMaxだけ。もちろんデスクトップ型+外付けWebカメラにも対応しています。

 

 人間の皮膚の表面には多くの毛細血管が通っています。そのため、心拍に合わせて皮膚表面に微細な色の変化が起きるのですが、それをMaxで検出してMIDIノートをトリガーしていきます。パッチ構成はとてもシンプルで、①CAMERA(カメラ・デバイスから画像を取得)、②TRIM(検出範囲の選択)、③ANALYSIS(画像の解析)、④MIDI OUT(サウンドの出力)の4つのブロックで成り立っています。CAMERAでは[jit.grab]によりWebカメラから60msごとに画像を取得。次に、その画像データをTRIMが受け取り、ここで心拍を検出する範囲を指定します。[jit.matrix]のアトリビュート@usesrcdimを使って、マウスで選択された範囲に合わせて画像データを切り出し、マトリクスを次のブロックに送出。そして次のANALYSISで画像を解析します。

 

 光の色はRGB(Red/Green/Blue)のバランスによって構成されています。そこで、Webカメラで取得した画像を[jit.unpack]を用いて、透明度(Alpha)を加えたARGBに色分解し、この中からRedの成分を抽出します。ポイントなのは、光の三原色はRGBで構成されているため、Rの成分のみを解析してもその色が赤(255,0,0)なのか白(255,255,255)なのか判別することができません。そこで、同時に[jit.rgb2luma]を使って画像をモノトーン化したマトリクスを作成し、R成分の画像とモノトーンの画像の比率を求めることで“赤さ”を表す数値を算出します。

 

 本パッチでは、[jit.op @op /]を用いてピクセルごとに比率を計算し、[jit.3m]によりそのマトリクスの平均値を求めています。この値は60msごとに更新され、波形となって出力されます。これを0を中心とした交流波形になるように低周波をフィルタリングし視覚化。それが画面右側中央の波形です。次に、波形の頂点を求めやすくするため、この波形を微分したものが画面右側のピンク色の波形です。ここからゼロ・クロス・ポイントを見つけることで心拍を検出し、bangメッセージを次のブロックへ送信。そして最後にMIDI OUTのブロックでMIDIノートまたはサウンドを出力しています。認識率は選択する場所や範囲によって変化するので、顔のさまざまな場所を選択して、心拍の取りやすい場所を探してみてください。さらに、メディア・デザイナーのペルティエ・ジャン=マルク氏が開発した[cv.jit]などを使ってOpenCVを組み込めば、自動的に顔に追従して認識範囲を選択可能になるでしょう。

心拍に合わせてDAWへMIDIを送信可能

 使い方は非常に簡単で、次の手順で操作します。①“POWER”でパッチのスイッチをONに→②“SELECT CAMERA”で使用するカメラを選択→③“CAMERA BRIGHTNESS”でカメラの明るさを調整→④“RANGE SELECTTION”で解析する顔の範囲をマウスで選択(鼻などのあまり動かない器官を中心に選択すると検出率が上がります)→⑤“OUTPUT”からBEEP音/MIDI出力/VOICE出力を選択→⑥MIDIを選択した場合は“MIDI OUT PORT SELECT”で出力ポートを選択(ほかのDAWと内部接続ができます)→⑦“KEYBOARD”から鳴らしたいピッチを選択し、必要に応じてVELOCITYとOCTAVEを設定……これで準備は完了です。あとはできるだけ動かずに最適化が行われるまで数秒間待ってください。Webカメラの映像から心拍を検出しMIDIノートまたはサウンドがトリガーされます。

 

 当初はWebカメラに指を接触させる接触型のパッチを作成していましたが、指を離しても心拍らしき波形が微妙に検出されていることに気が付き、非接触型のパッチを作成してみました。このように、Maxを使えば音とそのほかの情報を簡単に結びつけることが可能です。私たちの世界はあらゆるものがお互いに影響を及ぼしながら存在しています。芸術は自然を模倣すると言いますが、固定されたメディア作品の制作だけでなく、コンピューターを用いたアート表現にインタクションを取り入れることはとても“自然”なことだと思いますし、さらなる可能性を私は感じるのです。ぜひ、このパッチを試していただき、何か面白い作品ができましたら教えていただけたらうれしいです。使用動画も作成したので参考にしてみてください。

 

youtu.be

HIEI

f:id:rittor_snrec:20200714194516j:plain

1990年代からDAWを使った音楽制作を開始し、macrophage lab.名義での音楽制作を行う。またMaxを使った制作では音とさまざまな情報をインタラクティブに結び、ZKM、SCOPE Art Showなどで作品を発表。名古屋芸術大学、名古屋大学、中京大学非常勤講師も務める。

hiei-music.com

 

製品情報

www.mi7.co.jp

 

関連記事

www.snrec.jp

www.snrec.jp

www.snrec.jp