プロが教える店舗&オフィスのセキュリティ対策術

プログラム内からMIDIファイルの再生は、mciSendString関数を使うことで可能ですが、一部分だけ、例えば、「14小節目から17小節を再生」する方法がわかりません。
OSはWin10、プログラムはC言語でお願いします。

なお、midiOutShortMsg関数とSleep関数の組み合わせで、MIDIファイルの当該部分を再生する方法を試しましたが、Sleep関数の精度が低いため、まともな再生になりませんでした。

A 回答 (1件)

mciSendString("status music position track", buffer, sizeof(buffer), NULL);


int start_time = atoi(buffer) + (14 * 1000); // 14小節の開始時間を取得

char play_command[128];
sprintf(play_command, "play music from %d to %d", start_time, start_time + (4 * 1000 * 4)); // 17小節の終了時間を計算
mciSendString(play_command, NULL, 0, NULL);
    • good
    • 0
この回答へのお礼

回答ありがとうございます

なるほど、mciSendString()関数で、
play music from %d to %d
で演奏区間が指定できるのですね!

お礼日時:2023/02/25 07:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!