マイクロフォンを使いmidiで録音をしてみる。下記のページからmidiデバイスの一覧を取得したが、肝心のマイクロフォンが含まれていない。
バイオリンのチューナーを作る – midiをさらに掘り下げた
確認してみるとmidiデバイスと入力デバイスは異なっている。入力デバイスの一部にmidiデバイスが含まれている。よってmidiで録音するために必要な機能は以下になる。
- 入力デバイスの一覧を取得する
- マイクロフォンを選択する
- レコードする
- midiで出力する。
まずは入力デバイスの一覧を取得してみた。
package midi09_mixer; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Line; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.Mixer; public class midi09 { public static void main(String[] args) { try { Mixer.Info[] mixerInfos = AudioSystem.getMixerInfo(); for (Mixer.Info info : mixerInfos) { Mixer m = AudioSystem.getMixer(info); Line.Info[] lineInfos = m.getSourceLineInfo(); for (Line.Info lineInfo : lineInfos) { System.out.println(info.getName() + "---" + lineInfo); Line line; line = m.getLine(lineInfo); System.out.println("\t-----" + line); } lineInfos = m.getTargetLineInfo(); for (Line.Info lineInfo : lineInfos) { System.out.println(m + "---" + lineInfo); Line line = m.getLine(lineInfo); System.out.println("\t-----" + line); } } } catch (LineUnavailableException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
ここから特定の入力機器を音源にするためにはgetMixerでミキサーオブジェクトを取得→Lineを取得する。