• ベストアンサー

javaでMIDIファイルの取り出しかたについて

javaでMIDIファイルの中身(音の高さやノートオンなどの情報)を 取り出したいと思っています。 MidiFileReaderが使えるのかなとは思いますが、 具体的なプログラムの書き方が分かりません。 MIDIファイルの作成はサンプルをよく見るのですが、 取り出しのほうが見つけられないので 具体的に教えていただけると助かります。 よろしくお願いします。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんな感じになるはず。(テスト用MIDIファイル,javaファイル,classファイル,出力結果をzipにした) https://cid-b89cb784f5346675.office.live.com/browse.aspx/TestCase/Q6477485 -112はunsigned 8-bit int で 256 - 112 = 144で、10010000だから、先頭4bitは9でノートオン、どうやらベロシティ0でノートオフの代用をしている模様。 #ただ、MIDIに詳しくないので、-80が先頭のノートオンのあとにしかついていないのはよくわからん。調べる気はない。

poshiru
質問者

お礼

ありがとうございました。 -80のことも調べながら理解したいと思います。

関連するQ&A

  • JavaでMIDIを使って音を出したい

    私は今大学でプログラミングの入門講座を履修していて、1月18日までに自分でプログラムを自作する課題に追われて困っています。 今のところ、ある二次方程式から導き出される数値を使って音程を決めていき、それを順次MIDIで吐き出すプログラムを想定しています。 ところが、既にあるMIDIファイルを再生するJavaアプレットのサンプルならいたるところにあるのに、JavaでMIDI音源を直接操作して音を出すサンプルはなかなか見当たりません。プログラミングは初心者で、基本をざっとやっただけなので、APIガイドを見つつプログラムが組めるほどの力はありません。javax.sound.midiパッケージを使うと出来そうなのですが、APIガイドには例文が載っているわけでもないので… せめて、PCのMIDI音源で「ドレミ」と鳴らしたいのですが、何かよい本やサイトがありましたらぜひ教えてください。調子のいい質問とは思いますが、よろしくお願いします。

    • ベストアンサー
    • Java
  • JAVAでMIDIを吐き出すプログラム

    JAVAを少し習っただけの初心者で、 上手く説明できていなかったらすみません。 JAVAでマイクの音声をリアルタイムで取り込んで、 リアルタイムMIDI吐き出しするプログラムを 探しています。 どなたか分かる方がいらっしゃったら教えてください。 よろしくお願いします。

  • C++でMIDIファイルを作成

    Windows XP、Visal C++でMIDIを作成するプログラムを作成しようと考えているプログラム初心者です。 1小節で1トラックだけ使ってるMIDIを前もって自分でたくさん作ってあり、そのMIDIファイルを使ってトラック1の1小節目、2小節目…に貼り付けていって、トラック2の1小節目、2小節目…と張り付けていって…という作業をして、新たに複数小節で複数トラックあるMIDIファイルを一つのMIDIファイルとして作成する、みたいなことをしたいんですが、そういうことはできるんでしょうか? どうかご教授お願いします。

  • Javaアプレットについての質問です

    Javaアプレット関係の質問です。 Eclipseで「Sample_01.java」ファイルを作成します。→ コマンドプロンプトでコンパイルします。→ 作成した「Sample_01.class」ファイルをデスクトップに移動します→ HTMLファイルを開きます。 …この手順だと問題なくアプレットを表示できるのですが、 Eclipseで「Sample_01.java」ファイルを作成します。→ 「保管」します。→ ナビゲータービューから「Sample_01.class」ファイルを取りだします→ デスクトップに移動します。→ HTMLファイルを開きます。 …この手順だとなぜか×マークが表示されエラーになります。 繰り返しになりますが、どちらのファイルも名前・中身は全く同じものとなっています。コンパイルの方法が違うだけです。 なぜEclipseで自動作成された方のclassファイルだけエラー?が出たのでしょうか?エラーが出ない対策とかはありませんかね? Javaアプレットに詳しい方いましたら教えてください。 //一応ソース乗せておきます import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.util.*; public class Sample_01 extends Applet{ private static final long serialVersionUID = 1L; public void init(){ } public void paint(Graphics g){ g.drawRect(200,200,25,30); } }

  • C言語でMIDIを鳴らしたいです。

    C言語でMIDIを鳴らしたいです。 現在Microsoft Visual C++ Express Edition 2010(または2008)を使ってC言語(C++ではなく)の勉強をしているのですが、 Express EditionではMIDIを鳴らすことはできないのでしょうか? midiファイルを読み込んで再生するのではなく、Win32APIなどで特定の音を鳴らすようにしたいです。 例えば、ボタンを押したらドの音が鳴るという程度のプログラムです。 サンプルプログラムをいくつか検索してコンパイルしてみたのですが、バージョンが古いからなのか、Express Editionでは無理なのかエラーが出てしまいます。 どのようなプログラムを作れば音を鳴らすことができるのでしょうか? できればソースを示していただけるとありがたいです。

  • ブラウザ上でMIDIを演奏したいのですが。

    Sequencerクラスのstart()メソッドを用いて、 MIDIを演奏するプログラムを組みました。 アプリケーションではMIDIファイルを演奏できるのですが、 同様のことをブラウザ上(アプレット)で行おうとすると、 エラーメッセージは出ないのですが、音が鳴りません。 アプレットビューアで実行すると音が鳴るので、 ブラウザ側に原因があると思うのですが、解決法がわかりません。 ブラウザ上でMIDIを扱う命令(JAVA2)を実行できるように、 JAVA2に対応させるためのプラグインをブラウザ(IE5,5)に組み込み、 アプレットを起動するhtmlファイルをJava2に対応するように、 Sunのホームページにあるコンバータを使ってコンバートしました。 何か解決策があったら教えてください。お願いします。

  • C++でMIDIを作成するプログラム

    Windows XP、Visal C++でMIDIを作成するプログラムを作成しようと考えているプログラム初心者です。 1小節で1トラックだけ使ってるMIDIを前もって自分でたくさん作ってあり、そのMIDIファイルを使ってトラック1の1小節目、2小節目…に貼り付けていって、トラック2の1小節目、2小節目…と張り付けていって…という作業をして、新たに複数小節で複数トラックあるMIDIファイルを一つのMIDIファイルとして作成する、みたいなことをしたいんですが、そういうことはできるんでしょうか? と前に質問したところ、できると言われたのですが、具体的な方法とか、利用できそうな関数などないでしょうか?あれば教えていただきたいです。 本当にまだ未熟な初心者なもので調べてもわからない言葉が出てくるばかりで一向に進まず困っています。

  • javaの覚え方

    私はjavaの勉強をしている初心者ですが、困っていることがあります。 数冊のjavaの本を読んで、オブジェクト指向のことや、基本的な事 は理解したつもりですが、自分でプログラムを作成する際、 用意されているクラスだけを使い終わってしまうのです。 これは、本のサンプルをうちこんでいるだけなのです。 一からつくろうとしても、実際サンプルプログラムの ようになるのだからと思ってしまうのですが、どうすれば 自分で作ったと実感できるのでしょうか?

  • MIDIファイルをCDに焼きたいのですが

    どうも、はじめまして。今回、PCで作成したドラムのみのMIDIファイルをCDに焼くとうとしたのですが焼けませんでした。調べたところによるとwav形式に変換する必要があるようなのですが、やってみるとドラムの音がだいぶ変わってしまい困っています。MIDI→WAV変換の良いソフトがあれば教えていただきたいです。またはその他の方法があればそれでも十分構いませんので、よろしくお願いします。

  • MIDIファイル

    MIDIで作成したファイルを、MP3のファイルに変換する、フリーソフトがあったら教えてください

専門家に質問してみよう