プログラム言語で、midiファイルを出力するための方法を教えて下さい。

優先順位:
C#>C++>C>VB>Java>その他の言語>prepmxを使う。>バイナリをごりごり書く。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/01/21 00:45:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:minesouta No.3

回答回数23ベストアンサー獲得回数2

ポイント100pt

おーぷんMIDIぷろじぇくと

のMIDIDataライブラリ(LGPL)で出力できるようです(*試してません)

概要:

MIDIDataライブラリは、完全にフリーでオープンソースの、MIDIデータ作成・編集用ライブラリである。このライブラリは、MIDIデータの作成・ファイル入出力(SMFフォーマット0/1/2)、MIDIトラックの作成・追加・変更・削除、MIDIイベントの作成・追加・変更・削除など、 MIDIデータのあらゆる要素に迅速にアクセスする機能を提供している。

 MIDIDataライブラリは普通のC言語で書かれているが、ソースのほか、ダイナミックリンクライブラリ(*.dll)の形で提供される。ゆえに、C/C++からはもちろんのこと、Visual BasicやDelphiから使用することもできる。最新のMIDIDataライブラリは、2007年現在おーぷんMIDIぷろじぇくとからダウンロードできる。


詳説MIDI規格

も参考になりそうです

id:ymlab

おぉ。Cでできそうな予感がします。

オープンソースということで、ソースを読んでみたら、特に特別なことはせず、

普通のCでOKっぽいので、C#にも移植できそうですね。

うれしいかぎりです。是非ためしてみることにします。

実は、Javaのほうは、どうやらVisual J#には、javax.sound.midi.*をimportできないようだったので、

こまっていました。

2008/01/17 02:04:05

その他の回答2件)

id:hiroshi4210 No.1

回答回数3ベストアンサー獲得回数0

ポイント50pt

http://gorry.haun.org/spice/

このあたりは利用できないでしょうか。


他にも色々あります。

http://lss.eternity.ne.jp/new/class.php?339

id:ymlab

回答ありがとうございました。

う~ん。spiceは、マニュアルがしっかりしていてわかりやすそうですが、prepmxとあまりかわらない感があります。

http://lss.eternity.ne.jp/new/class.php?339

のruby版もおもしろそうですね。ありがとうございます。

PHP版なら、

http://ymlabo.ddo.jp/~ymlab/score/workingarea/index.php

なサイトを作ってみたのですが・・・。

C#でプログラミングをしていて、

楽譜をよみとった後で、midiに自動的に変換するプログラムを書きたい。

というのが、目標です。

2008/01/16 00:56:25
id:kujirahand No.2

回答回数27ベストアンサー獲得回数2

ポイント90pt

私が書いたもので恐縮ですが、以下、参考になりませんか?

id:ymlab

回答ありがとうございました。

思い切り参考になりました。助かります。

JavaでAPIが提供されているとは知りませんでした。

ただ、クラスをAPIリファレンスから追っていったところ、

javax.sound.midi.MidiMessage.setMessage(byte[] data,int length)

で、どんなbyte[] dataを送ればよいのか不明です。

[勉強すれば解決できそうですが。]

これをVisual C#上で、Visual J#で作ったものを読み込ませれば

うまくいきそうですね。

あと、別サイトを見させていただきました。

AIRについても記述されているようで、一段落つきましたら、是非勉強させていただきます!

http://www.hakkaku.net/articles/20071219-120

2008/01/16 22:13:15
id:minesouta No.3

回答回数23ベストアンサー獲得回数2ここでベストアンサー

ポイント100pt

おーぷんMIDIぷろじぇくと

のMIDIDataライブラリ(LGPL)で出力できるようです(*試してません)

概要:

MIDIDataライブラリは、完全にフリーでオープンソースの、MIDIデータ作成・編集用ライブラリである。このライブラリは、MIDIデータの作成・ファイル入出力(SMFフォーマット0/1/2)、MIDIトラックの作成・追加・変更・削除、MIDIイベントの作成・追加・変更・削除など、 MIDIデータのあらゆる要素に迅速にアクセスする機能を提供している。

 MIDIDataライブラリは普通のC言語で書かれているが、ソースのほか、ダイナミックリンクライブラリ(*.dll)の形で提供される。ゆえに、C/C++からはもちろんのこと、Visual BasicやDelphiから使用することもできる。最新のMIDIDataライブラリは、2007年現在おーぷんMIDIぷろじぇくとからダウンロードできる。


詳説MIDI規格

も参考になりそうです

id:ymlab

おぉ。Cでできそうな予感がします。

オープンソースということで、ソースを読んでみたら、特に特別なことはせず、

普通のCでOKっぽいので、C#にも移植できそうですね。

うれしいかぎりです。是非ためしてみることにします。

実は、Javaのほうは、どうやらVisual J#には、javax.sound.midi.*をimportできないようだったので、

こまっていました。

2008/01/17 02:04:05

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません