• 検索結果がありません。

ADX2LE OSC Player で再生する

サウンドデザイン インタラクションデザイン

サウンド再生

ADX2LE_OSCBasicPlayer アプリケーション /adx2/0/playcueid

OSC (udp) localhost通信

/StremingAssets/

NewProject.acf

CueSheet_0.acb

CRI Atom Craft

ビルド 出力ファイル

差し替え Processing

ProcessingのoscP5

インゲーム プレビュー

作成中 最終出力

ADX2LE OSC Player

を起動

ブロックを解除する

起動する

ファイルをコピーする

以下のバッチを実行する

C:\ADX2LE_Workshop\AtomCraftData\copy.bat

• ACF,ACB

ファイルを コピーしました。

ADX2LEOSCBasicPlayer_Data

を開く

StreamingAssets

を開く

ACBACF

を差し替える

先ほど出力したフォルダから

inGamePreview

を開く

【参考】もしも手動でやる場合は以下のような手順になります。

ADX2LE OSC Player

を一度終了して再起動

もう一度起動して

0:tri

に変化していたら

OK

♪を押すと音が鳴る、

で停止

真ん中のスライダーでピッチが変わる

左のスライダーで音量が変わる

いちいちバッチを実行するのは面倒なので、

ビルド時に呼び出すようにします。

2 1

もっと直感的に

プレーヤーでも2つコントロールができましたが、

同時にコントロールしたいので、

マウスの位置が反応するような、簡単なプログラムを 用意しました。

サウンドデザインする上で簡単なプロトタイプを作 ると捗ります。

プログラムからどんな風にコントロールされるか理 解を深めると、データ作成に有利な点が見つかるか もしれません。

音以外のインタラクションを作る

processing

インタラクティブ サウンドを

コントロールします。

サウンドデザイン インタラクションデザイン

サウンド再生

ADX2LE_OSCBasicPlayer アプリケーション /adx2/0/playcueid

OSC (udp) localhost通信

/StremingAssets/

NewProject.acf

CueSheet_0.acb

CRI Atom Craft

ビルド 出力ファイル

差し替え Processing

ProcessingのoscP5

インゲーム プレビュー

作成中 最終出力

proessing

が起動します

sketch_AISACXY.pde

を開く

 を押して実行

 を押して停止

import oscP5.*;

import netP5.*;

OscP5 oscP5;

NetAddress myRemoteLocation;

void setup() {

size(480,240);

oscP5 = new OscP5(this,9000);

myRemoteLocation = new NetAddress("127.0.0.1",8000);

}

int playerState = 0;

int mouseState = 0;

void draw() {

background(204);

if(mousePressed) {

if(mouseState == 0){

if(playerState == 0){

OscMessage myMessage = new OscMessage("/adx2/0/playcueid 0");

oscP5.send(myMessage, myRemoteLocation);

playerState = 1;

} else if(playerState == 1){

OscMessage myMessage = new OscMessage("/adx2/0/stop");

oscP5.send(myMessage, myRemoteLocation);

playerState = 0;

}

mouseState = 1;

} } else {

mouseState = 0;

}

if(playerState == 0){

} else {

OscMessage myMessage

   = new OscMessage("/adx2/0/aisac 0 "+mouseX/480f);

oscP5.send(myMessage, myRemoteLocation);

myMessage = new OscMessage("/adx2/0/aisac 1 "+(1f-mouseY/240f));

oscP5.send(myMessage, myRemoteLocation);

ellipse(mouseX,mouseY,60,60);

描画処理

ウィンドウを

480x240

で表示

背景を

204

色(グレー)で

2

import oscP5.*;

import netP5.*;

OscP5 oscP5;

NetAddress myRemoteLocation;

void setup() {

size(480,240);

oscP5 = new OscP5(this,9000);

myRemoteLocation = new NetAddress("127.0.0.1",8000);

}

int playerState = 0;

int mouseState = 0;

void draw() {

background(204);

if(mousePressed) {

if(mouseState == 0){

if(playerState == 0){

OscMessage myMessage = new OscMessage("/adx2/0/playcueid 0");

oscP5.send(myMessage, myRemoteLocation);

playerState = 1;

} else if(playerState == 1){

OscMessage myMessage = new OscMessage("/adx2/0/stop");

oscP5.send(myMessage, myRemoteLocation);

playerState = 0;

}

mouseState = 1;

} } else {

mouseState = 0;

}

if(playerState == 0){

} else {

OscMessage myMessage

   = new OscMessage("/adx2/0/aisac 0 "+mouseX/480f);

oscP5.send(myMessage, myRemoteLocation);

myMessage = new OscMessage("/adx2/0/aisac 1 "+(1f-mouseY/240f));

oscP5.send(myMessage, myRemoteLocation);

プログラムの流れ

起動直後一度呼ばれる

描画は毎度呼ばれる

2

import oscP5.*;

import netP5.*;

OscP5 oscP5;

NetAddress myRemoteLocation;

void setup() {

size(480,240);

oscP5 = new OscP5(this,9000);

myRemoteLocation = new NetAddress("127.0.0.1",8000);

}

int playerState = 0;

int mouseState = 0;

void draw() {

background(204);

if(mousePressed) {

if(mouseState == 0){

if(playerState == 0){

OscMessage myMessage = new OscMessage("/adx2/0/playcueid 0");

oscP5.send(myMessage, myRemoteLocation);

playerState = 1;

} else if(playerState == 1){

OscMessage myMessage = new OscMessage("/adx2/0/stop");

oscP5.send(myMessage, myRemoteLocation);

playerState = 0;

}

mouseState = 1;

} } else {

mouseState = 0;

}

if(playerState == 0){

} else {

OscMessage myMessage

   = new OscMessage("/adx2/0/aisac 0 "+mouseX/480f);

oscP5.send(myMessage, myRemoteLocation);

myMessage = new OscMessage("/adx2/0/aisac 1 "+(1f-mouseY/240f));

oscP5.send(myMessage, myRemoteLocation);

ellipse(mouseX,mouseY,60,60);

通信処理

OSC

インポート

OSC

アドレスをセット

再生メッセージ

停止メッセージ

AISAC0

メッセージ

1 3

2

4

import oscP5.*;

import netP5.*;

OscP5 oscP5;

NetAddress myRemoteLocation;

void setup() {

size(480,240);

oscP5 = new OscP5(this,9000);

myRemoteLocation = new NetAddress("127.0.0.1",8000);

}

int playerState = 0;

int mouseState = 0;

void draw() {

background(204);

if(mousePressed) {

if(mouseState == 0){

if(playerState == 0){

OscMessage myMessage = new OscMessage("/adx2/0/playcueid 0");

oscP5.send(myMessage, myRemoteLocation);

playerState = 1;

} else if(playerState == 1){

OscMessage myMessage = new OscMessage("/adx2/0/stop");

oscP5.send(myMessage, myRemoteLocation);

playerState = 0;

}

mouseState = 1;

} } else {

mouseState = 0;

}

if(playerState == 0){

} else {

OscMessage myMessage

   = new OscMessage("/adx2/0/aisac 0 "+mouseX/480f);

oscP5.send(myMessage, myRemoteLocation);

myMessage = new OscMessage("/adx2/0/aisac 1 "+(1f-mouseY/240f));

oscP5.send(myMessage, myRemoteLocation);

ellipse(mouseX,mouseY,60,60);

}

判定の処理

マウス押されたら

再生中なら 再生中かどうか

マウス状態

2

3

チャレンジ(課題) 30 分

内容: 絵にあった変化を音に加えてみる。

どちらか好きなものを選んで音をデザインしてみる。

分からない事があれば、質問も受け付けます。

内容:どんな音の変化があるか動かしながら考えてみる。

ヒント:残響を増やすにはバスセンドを使う

ヒント

2

:バスセンドは閉じるのみのコントロール

C:\ADX2LE_Workshop\processingSample

\sketch_test1\ sketch_test1.pde

どんな音の変化があるか動かしながら考えてみる。

ヒント:

2つの音をクロスフェードするにはボリュームを使う

C:\ADX2LE_Workshop\processingSample

\sketch_test2\sketch_test2.pde

インゲームプレビュー

【インゲームプレビュー】とは、

ツール側で音を加工、編集した結果を

【実行中のゲーム】に送信し、

音を即時に差し替える技術です。

ゲームを中断させる事なく音の加工を反映させる事ができ るため、非常に細かい微調整が可能です。

インゲーム接続

インゲームプレビューの開始

F10

キー】を押す

または、【プレビューメニュー】から【インゲームプレビューの開 始】を選択

発音数や

CPU%

が変化していれば

これからのサウンドデザインに 求められるもの

楽器や身の周りの音のなるも のも

デザインの参考になります。

なぜ、その音が鳴っているの か?

どう変化するのか?

意識してみます。

シンプルである事

なるべく少ない操作

で、最大の効果を求め ます。

演奏しやすいインタラ クティブサウンドを

デザインする事が良い です。

難しいと練習(ルール 設定)が必要になる

音はこだわるべき

めっちゃ【凝って】良い。

こだわりを捨てずに

気持ちよい音を探求する。

それが面白さや、楽しさに繋がる。

サウンドデザインで リッチに!

シンプル

プログラマを困らせな い

分かりやすさ

効果的か、理論的か 客観的に判断

サウンドデザイン

ADX2

を使うと楽にデ ザインできます。

関連したドキュメント