音声音楽スポンサーリンクいろいろ音を出せるようになったので録音をしたいと思います。そもそも録音とはJavaでできる録音は入力の音源からデータを読み込んでファイルに書き出すことです。どこから読み込むかとどのように書き出すかが重要なポイントです。Javaではjavax.sound.sampledというパッケージが用意されてこれを利用することで録音が簡単にできるようになります。書き出し部分では利用できるものを見ていきます。書き出す部分はjavax.sound.sampled.AudioSystemのwriteメソッドを使います。ここには三つのパラメータが必要です。読み込み元のAudioInputStreamインスタンスファイルタイプのAudioFileFormat.Type書き出す先のFileインスタンスこのうちファイルタイプはenumで通常はAudioFileFormat.Type.WAVEを使ってwav形式にします。書き出す先のFileクラスはよく使われるものでパスを指定してインスタンスをつくれば良いだけです。問題なのは読み込み元のAudioInputStreamインスタンスです。AudioInputStreamインスタンスの作成このインスタンスを作るにはオーディオフォーマットを決める必要があります。以前記事を書いたのでこちらを参照してください。JavaのオーディオフォーマットとりあえずCDの音質と同じオーディオフォーマットを作ります。BIG_ENDIAN);フォーマットを指定して元に読み込み元TargetDataLineオブジェクトを取得します。AudioSystemはコンピューター上の指定のフォーマットが使える読み込み元を探してきます。通常はマイク入力になります。AudioSystem.getTargetDataLine(format);読み込み元を開きます。データの読み込みを開始します。line.open(format);line.start();ここまできてようやくAudioInputStreamのインスタンスを作ることができます。引数に読み込み元のTargetDataLineオブジェクトを指定します。AudioInputStream(line);書き出しは最初に挙げたAudioSystemのwriteメソッドを使います。この処理は呼ぶと読み込み元を閉じるまでずっと続きます。このためスレッドを別につくり終了処理を工夫する必要があります。File("recording.wav"));読み込み元のデータの流れを止めて閉じると書き出しファイルも自動で終了します。line.stop();line.close();処理の流れがわかったところで次回は使えるように実装していきたいと思います。関連記事Javaによる録音:外部の音を録音する(1)録音に必要な技術は前に書いたもので揃いました。Javaでの簡単スレッド...記事を読む新しくディレクトリを作るファイルを書き出す時にすでにディレクトリがあればよいのですが無い場合に手動で作るのは面倒です。今回は指定のディレクトリのパスの通りにディレク...記事を読むJavaでサイン波のオシレーターを作成するサイン波の基本的な理解ができたところでJavaで使い勝手の良いオシレーターを作ります。サイン波は音を扱うときに多様な場所で使われています。スタンダードMIDIファイルをJavaで演奏します。前回は以下の3以降を実装しました。通常のプログラムは処理は順番通り行われます。ある一つの処理を待っている場合に他の処理を平行でしたい場合はどうすれば良いでしょうか。Ja...記事を読むIIRローパスフィルタの作成(1)フィルタのうち一番手軽に使えそうなIIRローパスフィルターをJavaで実装します。前回説明したがIIRローパスフィルターはIIRという方式で...記事を読むJavaとMIDI:音色を変更する(1)一般のシンセサイザーは色々な音色をMIDIメッセージによって切り替えられるように作られています。音色のことはプログラムと呼ばれ音色変更のこと...記事を読むJavaとMIDI:フォリア(3)今回で完成させます。最後の2小節はそれまでと違うので別に作ります。フレーズの定義はこんな感じです。P...記事を読むパッヘルベルのカノンと通奏低音(2)平均律クラヴィーアBWV846プレリュードの最後の和音をアルペジオのように少しづつずらして各音を鳴らすことがありました。和音をならす処理が洗...記事を読む標準入力からオプション選択を取得するユーティリティを作るユーザーから任意の値を取得するのではなくプログラム側の提示したオプションから選択してもらうケースを想定します。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。外国語としてのJavaと音楽%d人のブロガーが「いいね」をつけました。