科学の箱

科学・IT・登山の話題

バイオリン

バイオリンのチューナーを作る – midiについて調べた

投稿日:2013年11月19日 更新日:

バイオリンのチューナーアプリを作ろうと思い立ち調査を開始。

PC上で音楽関連の操作をするにはmidiを利用する。javaではすでにjavax.soud.midiパッケージが提供されている。

midiではノートとベロシティで音を決める。

ノートについては以下のリンクが詳しい。

http://www.asahi-net.or.jp/~hb9t-ktd/music/Japan/Research/DTM/freq_map.html

では早速PC上で音を出してみる。

コードはこちらを参考にさせてもらった。

調弦に使うのは440HZのAであるから上記サイトよりノートが69となる。強度を最強にするのでベロシティは127である。コードは以下のようになった。


/*
 * midi02
 * 指定した音を連続して演奏してみる
 *
 */
package midi01;

import java.io.*;
import javax.sound.midi.*;

class Test {
    public static void main(String[] args) throws Exception {
    	Receiver midireceiver = null;
    	try {
	        midireceiver = MidiSystem.getReceiver();
	        ShortMessage smsg = new ShortMessage();

	        smsg.setMessage(ShortMessage.NOTE_ON, 69, 127);
	        midireceiver.send(smsg, -1);
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    	} finally {
    		if (midireceiver != null) midireceiver.close();
    	}
    }
}

とりあえず成功。今後の展開としては以下のようにして最終的にはスマフォ対応のバイオリンチューナーを開発する。

  • 連続的な音の再生
  • あらかじめ記録した音の再生
  • 音の取り込み
  • 取り込んだ音のmidi化
  • midi化した内容の表示
  • あらかじめ指定した音との比較
  • 違いの大きさを表示
  • GUIを整える

メタ情報

inarticle



メタ情報

inarticle



-バイオリン
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

midiシーケンサで調べたことをまとめる

シーケンサと対比するのはレシーバである。レシーバではリアルタイムに指定したノートを送信できる。例えばユーザーの入力に合わせて音を鳴らしたいときにはレシーバを使う。 それに対してシーケンサはあらかじめ作 …

no image

midiで入力デバイスの一覧を取得する

マイクロフォンを使いmidiで録音をしてみる。下記のページからmidiデバイスの一覧を取得したが、肝心のマイクロフォンが含まれていない。 バイオリンのチューナーを作る – midiをさらに …

no image

バイオリンのチューナーを作る – midiをさらに掘り下げた

midiについてさらに掘り下げてみた。 連続したノートの演奏 まず前日のソースコードから連続で違うノートを演奏してみた。連続で音を演奏するためには前の音を消す必要がある。消さないと同時に音が鳴り響くた …

2013年11月
« 10月   12月 »
 123
45678910
11121314151617
18192021222324
252627282930  

side bar top



no image

2019/09/11

CSS Depth – Day4

no image

2019/09/09

CSS Depth – Day3

no image

2019/09/08

CSS Depth – Day 2

no image

2019/09/07

MDN Day4

no image

2019/09/06

MDN Day3