音楽テスト(more用)


環境
spalm more iアプリ版
確認機種
SH-06B
内容
スレ情報を元に試行錯誤で音楽テストを作成。
spalm more専用です。
play中に別なplayを実行すると、エラーになるようです。
この場合、演奏が終わるまで待つか、stopで演奏を停止する必要があるようです。

'***** スレ477
docomoでも音が使えるようにした。ただ、beepみたいに気軽には使えないかも。。
makesound(a1)
a1に楽曲型変数(仮)を代入
addnt(a1,a2,a3,a4,a5[,a6])
a1(のチャンネルa6)に音符を加える。a2:音程。60がドa3:音の強さ。%ではない。a4:前の音符からの時間。0だったら和音。a5:発音の長さ。(a6:ch番号)
addrest(a1,a2[,a3])
a1(のチャンネルa3)に長さa2の休符を加える。
changp(a1,a2[,a3])
a1(のチャンネルa3)の楽器をNOa2に変える。
play(a1)
a1を演奏(非同期)
*****'

'***** スレ478
次にリッチな演奏関数
xset(a1)
組み込みプレイヤーに楽曲型変数をセット
xplay(a1)
セットされた楽曲を演奏。a1が0以外だとリピート演奏
xstop(),xpause(),xrestart()  そのまんま
xtempo(a1) テンポを0-200%で指定
xvolume(a1) 音量を0-100%で指定。

以上。これでゲームサウンド的なものがSPALMでもできるかな、と。
*****'

'***** 以下は動いた
makesound(a1)
changp(a1,1)
addnt(a1,60,100,48,40)
addnt(a1,62,100,48,40)
addnt(a1,64,100,48,40)
addnt(a1,65,100,48,40)
addnt(a1,67,100,48,40)
addnt(a1,69,100,48,40)
addnt(a1,71,100,48,40)
addnt(a1,72,100,48,40)
play(a1,0)
input()
*****'
'***** 以下は動かなかった
xset(a1)
xplay(1)
xtempo(200)
xvolume(50)
*****'

makesound(a1);
changp(a1,1,1);
changp(a1,1,2);
changp(a1,1,3);
addnt(a1,60,100,0,40,1);
addnt(a1,64,100,0,40,2);
addnt(a1,67,100,0,40,3);
addrest(a1,100,1);
addrest(a1,100,2);
addrest(a1,100,3);
addnt(a1,62,100,0,40,1);
addnt(a1,65,100,0,40,2);
addnt(a1,69,100,0,40,3);
addrest(a1,100,1);
addrest(a1,100,2);
addrest(a1,100,3);
addnt(a1,60,100,0,40,1);
addnt(a1,64,100,0,40,2);
addnt(a1,67,100,0,40,3);
'tempo(200);'
'volume(80);'
play(a1,0);
input(3200);
stop();
dissound(a1);


soft2("end");
k=0;
@(nth,0,60,62,64,65,67,69,71,72,74,76,77,79);
ntv=100;
ntr=48;
ntn=40;
pf=0;
for(i=0;i<=12;i++){
makesound(snd[i]);
changp(snd[i],1);
addnt(snd[i],nth[i],ntv,ntr,ntn);
}

text("簡易キーボード",0,0,0);
text("1-#:ドレミファソラシドレミファソ",0,40,0);

label 1001;
k=input();
if(k==262144){end;}
nt=1*(k==2)+2*(k==4)+3*(k==8)+4*(k==16)+5*(k==32)+6*(k==64)+7*(k==128)+8*(k==256)+9*(k==512)+10*(k==1024)+11*(k==1)+12*(k==2048);
if(pf==1){stop();}
play(snd[nt],0);
pf=1;
sleep(1);
goto 1001;