見出し画像

#12 複数の音を同時に出す : poly~ オブジェクト その② | Max サウンドプログラミングの可能性

このシリーズでは、音楽や映像、アートやイベントなどいろんな分野で活用されているプログラミング環境「Max」を中心に、サウンドプログラミングについて紹介していきたいと思います。

我らが井出所長による、JR新宿駅の元祖発車音について語るポッドキャストが、現在大好評配信中です。
その中の重要なキーワード「鐘の音」を、正弦波を重ねることでシミュレーションしたパッチを参考にし、前回はpoly~オブジェクトについて解説しました。今回は、poly~オブジェクトのデータ入力について見ていきたいと思います。

データ入力の方法

同じサブパッチが複数重なっているため、データの入れ方にクセがあります。
・「note」メッセージを先頭につけて入力。(数字等のデータ。公式のヘルプパッチで最初に紹介されているが、少々わかりにくい)
・send, recieve オブジェクトを使用し入力。(重なったサブパッチ全てに送信)
・「target」メッセージで受け取り先を何番目のサブパッチにするか決め、入力。
など、色々な方法がありますが、まずは前回の参考パッチで使用した「target」メッセージを使用したデータ入力の方法を見ていきます。

受け取り先を決めてデータを入れる: target メッセージ

こんなパッチを用意しました。

受け取り先を決めてデータを入れるには、「target」と数字をセットにしてpoly~オブジェクトにメッセージを一度入れます。例えば「target 7」とします。
すると、7番目のサブパッチにデータが入るように設定されます。
この後にデータを入れてあげると、無事7番目のサブパッチにだけデータが送られます。

poly~ 内部。 ウィンドウ上部にある(7)が、7番目のサブパッチを開いていることを示している。

ちなみに、「target 0」とすると、重なったすべてのサブパッチにデータが送られます。
ぜひ試してみてください。

busy状態でないサブパッチを自動で選択し、データを送信: note メッセージ

少しややこしいですが、ヘルプパッチで最初に紹介されている note メッセージの使い方です。
こちらのメッセージを使うためには、poly~のサブパッチの方で設定が必要です。

こんなパッチを用意しました。
「note 0」を入力すると、ランダムな音高のサイン波が鳴るパッチです。

サブパッチの中はこんな感じ。
サイン波の鳴る長さは3000msとしました。

ここで重要なのが、thispoly~オブジェクトです。
このオブジェクトに「1」を入力するとbusy状態となり、データの入力ができなくなります。「0」を入力するとbusy状態が解除され、データの入力が可能になります。

サイン波の鳴っている3000msの間をbusy状態とし、入力を受け付けなくなるようにしてみました。
動かすとこんな感じです。

右アウトレットからの「voice」メッセージは現在のサブパッチの番号ですが、時折動かなくなりbusy状態になっていることがわかると思います。
しばらく時間をおいたり、入力中に時間が経ったりすると、また動き始めます。
(GIFだとわかりにくいかもしれませんが…)

また、ヘルプパッチで使用されている「mute」メッセージを thispoly~ オブジェクトに入力すると、そのサブパッチのサウンド処理を停止することができるため、CPU負荷の軽減になります。

次回はこのコントロールの方法など、少し詳しく見ていきたいと思います。



田中文久 FUMIHISA TANAKA
ソニフィケーションアーティスト、サウンドプログラマー
東京芸術大学音楽環境創造科、同大学院修士課程修了。音楽に関する様々な技術やテクノロジーを駆使し、楽曲制作のみならず、空間へのアプローチや研究用途、最近では、あらゆるものを音に変換する「ソニフィケーション」を用いた制作・研究・開発等、音楽の新しい在り方を模索・提示している。

いいなと思ったら応援しよう!