MCIを使わずにMIDIを鳴らす – プログラミング – Home

MCIを使わずにMIDIを鳴らす
 
通知
すべてクリア

[解決済] MCIを使わずにMIDIを鳴らす


リジェ
 リジェ
(@リジェ)
ゲスト
結合: 19年前
投稿: 5
Topic starter  

MCIを使わずにMIDIを鳴らす方法を調べていたところ、
midiOutShortMsgを使わなければならないことは分かったのですが、
この関数ではドとかレとかしか鳴らせません。
曲を再生するにはどうしたらよいのでしょうか。


引用未解決
トピックタグ
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

Note OnとNote Offを時間を計りながら送ってやればよいです。
基本的にはマルチメディアタイマを使うことになります。
# 大惨事な演奏を再現したいならWM_TIMERも可ですが……。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

MCIを使えない理由って何でしょうか。
宜しければ教えて下さい。
僕でなくても使える方法があるかも知れません。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

修正です。
誤 僕でなくても使える方法があるかも知れません。
正 僕でなくても使える方法を知っている方がいるかも知れません。
すみませんですm(..)m


返信引用
リジェ
 リジェ
(@リジェ)
ゲスト
結合: 19年前
投稿: 5
Topic starter  

YuOさん、アドバイスありがとうございます。
問題はNote OnとNote OffをどうやってMIDIファイルから得るかですね。

ITOさん、MCIでMIDIを扱うと初期化やループ再生にかなりの時間が
かかってしまいます。
さらに、MCI_PAUEで音を一時停止して再開すると音の音色が変化してしまうのです。


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

> 問題はNote OnとNote OffをどうやってMIDIファイルから得るかですね。

MIDIファイルというのがSMFであれば,
いくつかのサイトに形式が載っています。
例えば
http://www.pluto.dti.ne.jp/~daiki/Midi/Midi.html
など。それほど難しいファイル形式ではないです。
# Big Endianなのを忘れないようにすれば,ですが。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

> MCIでMIDIを扱うと初期化やループ再生にかなりの時間が
> かかってしまいます。

スレッドを使うことで解消できませんか。
MIDIはどうか分りませんが通信など時間のかかる作業はスレッドを使うことで
解消されることが多いです。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

DirectX で再生ってのはどうでしょう。

MCIよりかなり軽いと思いますし、自作よりは楽なのでは?


返信引用
リジェ
 リジェ
(@リジェ)
ゲスト
結合: 19年前
投稿: 5
Topic starter  

EternalWindowsというサイトでMIDIプログラムを扱っていました。
http://www7a.biglobe.ne.jp/~lshen/EternalWindows/index.html
とりあえずここで頑張ってみます。

後、自己紹介が遅れましたがリジェと申します。
これからもよろくお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました