木曜日, 12月 14, 2006

「なでしこ」でフォトmusic その2

今日の「なでしこ」でフォトmusicは、音の素材をピクセル毎のRGBの値にしてみる。ということは、ピクセル毎に3つの音ができる。

これを、3つのトラックに配分して、各トラックをマリンバで演奏させてみる。


//フォトmusic 2 3台のマリンバのための絵音

Xsize=20; Ysize=10

言う("画像を選択してください")
画像WKとはイメージ; FN=ファイル選択("*.jpg"); 画像WKの画像=FN
画像リサイズ(画像WK,Xsize,Ysize)
表示("{ファイル名抽出(FN)} を 横={Xsize} 縦={Ysize} に変換しました")

RGBリスト="連番,X座標,Y座標,色コード,R,G,B"

N=0;Y=0
Ysize 回
 X=0
 Xsize 回
  N=N+1
  C=画像色取得(画像WK,X,Y)
  R=INT(C/(256*256)); G=INT((C-R*256*256)/256); B=C-R*256*256-G*256
  RGBリスト[N,0]=N
  RGBリスト[N,1]=X
  RGBリスト[N,2]=Y
  RGBリスト[N,3]=C
  RGBリスト[N,4]=R
  RGBリスト[N,5]=G
  RGBリスト[N,6]=B
  X=X+1
 ここまで
 Y=Y+1
ここまで

画像高速リサイズ(画像WK,Xsize*10,Ysize*10)

楽譜[0]="Tempo=120"
楽譜[1]="TR(1) P(64-40) @(Marimba) v.Random(40) REV(80) "
楽譜[2]="TR(2) P(64-00) @(Marimba) v.Random(40) REV(80) "
楽譜[3]="TR(3) P(64+40) @(Marimba) v.Random(40) REV(80) "
P=0
Xsize*Ysize 回
 T=1
 3 回
  音程=(RGBリスト[P,T+3]%60)+40; 音長=RandomSelect("4,8")
  楽譜[T]=楽譜[T]&"n({音程}){音長}"
  T=T+1
 ここまで
 P=P+1
ここまで

表示(楽譜[0]); 表示(楽譜[1]); 表示(楽譜[2]); 表示(楽譜[3])

演奏ボタンとはボタン
演奏ボタンをクリックした時は
 楽譜をMML演奏


●RandomSelect(N)
 A=区切(N,",");R=配列要素数(A);戻る(A[乱数(R)])

//ここまで



「3台のマリンバのための絵音」MP3で聞いてみる
http://db1.voiceblog.jp/data/mugen_blog/1166028410.mp3