スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

MIDI→C言語

MIDI→C言語プログラムが完成しました!!

使用言語はVB、開発環境はMicrosoft Visual Basic 2008 Express Editionです。

使い方は簡単。

まずmf2tというソフトをダウンロードします。
解凍してでてきたmf2tフォルダ内の"mf2t.exe"をコピーし、私が作った"midi変換君.exe"と一緒のフォルダに入れます。
更に同じフォルダに変換したいMIDIファイルを置きます。




midi変換君を起動し、MIDIファイルをドラッグ&ドロップした後変換ボタンを押します。

複数ファイルに対応、変換中のファイル番号を表示します。



変換が終了するとC言語ソースファイルが生成されます。



ファイルの中はこんな感じです。

void music(){
beep(MIDI_NOTE,DELAY_MS);
beep(MIDI_NOTE,DELAY_MS);
.
.
.
beep(MIDI_NOTE,DELAY_MS);
}




MIDI_NOTEはMIDIノート番号です。
ピアノの真ん中のドの音を60として番号が一つ増えると半音上がります。
休符の場合はbkという文字が入ります。適当にdefineしちゃってください。
DELAY_MSは音の長さです。マイクロセックのつもりです・・・

mf2tというのはMIDIファイルをある規則性のある文字列に変換してくれるソフトで、それで生成されたファイルを元にC言語ソースファイルを生成するのが私のソフトです。

私はMIDIをそのまま読んだわけではないので大したことはしていませんが、その文字列を理解するのにすっごく苦労しましたwww

出力ファイルの仕様に関する説明が付いてこなかったので、驚きでしたよ。
作った人に聞きたいです。なんの為に配布してるんですか?
ああ、でも感謝はしていますよ^^

マザボスピーカは単音しか出せないので私のソフトでは単音への変換しか対応しておりません。
主旋律の一番高い音を探して変換するようにしています。
オーケストラとか複数パートが入ったMIDIの変換も可能ですが、たぶん変な感じになります。
そういうファイルはDTMソフトとかで編集してから変換するといいでしょう。

MIDIノートからはこの計算式で周波数が計算できます。
f=440*2^((d-69)/12);
チープなマイコンですと、計算処理が重すぎてお話になりませんので注意。

要望があれば配布しようと思います。仕様変更に関しても同様です^^



にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

コメントの投稿

非公開コメント

プロフィール

回路師

Author:回路師
趣味がロボットと動画製作です。
便利な機械やあほなマシンの動画を投稿しています.

最新記事
最新コメント
カテゴリ
電子工作キット








月別アーカイブ
書籍






Twitter
リンク
RSSリンクの表示
ソーシャル

検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。