マイクロフォンを使い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を取得する。