2026/02/01

受動的観客の即時参加を前提としたスマホ分散合奏の群制御

デモ動画

授業の最終課題で,スマホを動かすと音が変わるデバイスを作り,みんなで合奏させたいと考えた.スマホを左右へ傾けるとオクターブが変わり,持った人が回る速さによって音の出る頻度が変わる.

ただ,その場で参加する観客だけで能動的に合奏を組み立てるのは難しい.そこで,観客がどう動くのかをAbleton Liveから指揮することにした.スマホの画面には,どのくらいの速さで回ってほしいか,どちらへどのくらい傾けてほしいかが表示される.観客はその指示を見ながら身体とスマホを動かす.

人間の動きもスマホのセンサーも,指示された値にはぴったり揃わない.その精度の悪さが一人ずつ異なるずれを生み,合奏の音楽的な揺れになる.

曲の進行にはAbleton Live上のMIDIトラックを使い,Max for Liveから「誰に鳴らしてほしいか」と「どんな音にしてほしいか」を送る.全員,一人だけ,ランダムな25%,四分割した集団などを曲中で切り替えられるようにした.

システム構成
MIDIトラック曲の進行
Max for Live対象と音を指示
OSC制御命令
Node.jsIDごとに振り分け
Socket.IO各端末へ配信
観客のスマホRNBO + Web Audio
傾き:オクターブ回転速度:発音頻度

技術的に難しかったのはネットワークで,学内のWi-FiではOSCを飛ばせなかった.そこで会場にWi-Fiルーターを置き,観客全員にそこへ接続してもらうことで,演奏用のLANを作った.

各スマホでは,Maxで作った音源をRNBOからWebへ書き出して動かしている.中継プログラムが接続中の端末にIDを振り,Maxからの指示をそれぞれの端末へ配るため,参加人数が変わっても同じ進行を使える.

スマホ上で動作するRNBO音源のパッチ
スマホ上で動くRNBOパッチ

本番は20人程度でできたからよかったー.音が一台ずつではなく,観客の集団から立ち上がる感じをちゃんと聴けた.

出演