HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0921
mirmirMIDIファイルを順に再生する3解決


mirmir

リンク

2011/9/21(Wed) 23:16:05|NO.41581

過去ログやヘルプ等色々調べたのですが解決できなかったので質問させてください。
フォルダ内のMIDIファイルを一つずつ順番に再生したいと考えています。
最初にフォルダ内のMIDIファイル全部をロードして、入っている順(名前順でも可)にひとつずつ再生→キー取得→再生という形にしたいです。ファイル名は数字で"1.mid""2.mid"などです。
キー取得や記録は問題ないのですが"1.mid"しか再生できず、フォルダ内の内の順番を入れ替えてもそれしか再生できません。

今はrepeatで同じファイルしか再生できないのですが毎回次のファイルに進むためにはどう書けばよいか教えていただきたいです。
今のところ下記のようにしています。

//ファイル名の取得 dirlist files, "melodies\\*.*",3 N = 5 notesel files repeat N noteget mid(cnt),cnt loop //音源ファイルの読み込み repeat N mmload "melodies\\"+mid(cnt),0,2 loop repeat N cls 4:pos 300,300:color 255,255,255 mes "音楽が流れます" wait 50 mmplay 0 wait 50 color 0,0,0:boxf:pos 300,300:color 255,255,255 mes "評価してください" repeat;キー取得ループ開始 getkey res1,49 getkey res2,50 getkey res3,51 getkey res4,52 getkey res5,53 getkey res6,54 if res1|res2|res3|res4|res5|res6 >0 :break ;キー取得ループ終了 await 0 loop

アドバイスよろしくお願いします。



この記事に返信する


mirmir

リンク

2011/9/21(Wed) 23:17:56|NO.41582

すいません。最後が抜けていました。
この後にキーの記録のスクリプトがあり最後に最初のrepeatに対応したloopがあります。



とおりすがり

リンク

2011/9/21(Wed) 23:40:31|NO.41585

「音源ファイルの読み込み」のループでMIDIファイルにバッファを割り当て、
次のループでバッファを指定して再生する、という流れと受けとりましたがあっているでしょうか。
もしそうでしたら、次の部分でバッファ番号0しか割り当てていないのが問題と思われます。

repeat N mmload "melodies\\"+mid(cnt),0,2 ;ここ loop
バッファ番号0〜4を割り当てるには、お手軽にこれでどうでしょうか。

repeat N mmload "melodies\\"+mid(cnt),cnt,2 loop
もうお分かりと思いますが、再生時にも忘れずバッファ番号を指定してください。

mmplay cnt



mirmir

リンク

2011/9/22(Thu) 01:38:17|NO.41591

とおりすがりさん、丁寧にありがとうございます。

mmplayでcntを使うのは試してみたのですが、ヘルプにバッファ番号は0以上の整数とあったので
mmloadの方に割り当てるのを試していませんでした。
無事に順番に再生することができました。

今度はランダマイズに挑戦してみたいと思います。
ありがとうございました!!



ONION software Copyright 1997-2021(c) All rights reserved.