「なでしこ」でフォトmusic その4
「なでしこ」でフォトmusic、昨日までは、RGBの値を一定の範囲のノートナンバーに変換していたのだが、この方法では音階がいわゆる12音階になってしまう。これはこれで面白いのだが、今日は、ある決まった音階の中から音を選ぶようにしてみる。方法は、前にやった「文字を素材に音を作る」で使った方法と同じだ。最初は、琴の調弦の「平調子」の音階を作り、RGBの値に、この13個の音を対応させてみる。
//フォトmusic 4 三面の箏のための絵音
Xsize=20; Ysize=10
言う("画像を選択してください")
画像WKとはイメージ; FN=ファイル選択("*.jpg"); 画像WKの画像=FN
画像リサイズ(画像WK,Xsize,Ysize)
表示("{ファイル名抽出(FN)} を 横={Xsize} 縦={Ysize} に変換しました")
RGBリスト="連番,X座標,Y座標,色コード,R,G,B,TR(1),TR(2),TR(3)"
N=0;Y=0
Ysize 回
X=0
Xsize 回
N=N+1
C=画像色取得(画像WK,X,Y); RGB分解(C,R,G,B)
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=96"
楽譜[1]="TR(1) P(64-40) @(Koto) v.Random(40) REV(80) "
楽譜[2]="TR(2) P(64-00) @(Koto) v.Random(40) REV(80) "
楽譜[3]="TR(3) P(64+40) @(Koto) v.Random(40) REV(80) "
P=0
Xsize*Ysize 回
T=1
3 回
音程=(RGBリスト[P,T+3]%13); 音長=RandomSelect("2,4,8"); 音符=音階[音程]&音長
楽譜[T]=楽譜[T]&音符; RGBリスト[P+1,T+6]=音符
T=T+1
ここまで
P=P+1
ここまで
RGB表示とはグリッド; そのW=480; RGB表示のアイテム=RGBリスト
表示(楽譜[0])
3 回
表示(LEFT(楽譜[回数],72)&"・・・・")
ここまで
演奏ボタンとはボタン
演奏ボタンをクリックした時は
楽譜をMML演奏
●RandomSelect(N)
A=区切(N,",");R=配列要素数(A);戻る(A[乱数(R)])
●RGB分解(C,{参照渡し}R,{参照渡し}G,{参照渡し}B)
R=INT(C/(256*256))
G=INT((C-R*256*256)/256)
B=C-R*256*256-G*256
//ここまで
「三面の箏のための絵音」MP3で聞いてみる
http://db1.voiceblog.jp/data/mugen_blog/1166177645.mp3
0 Comments:
コメントを投稿
<< Home