音声音楽スポンサーリンクJavaで読み込むwavファイルを解析します。情報の表示wavファイルを読み込むにはAUdioInputStreamというオブジェクトをAudioSystemから取得します。このオブジェクトからフォーマットを取得できます。ais.getFormat();以下はこの二つのオブジェクトからファイルの情報を取得して出力する処理です。ais.markSupported());以下はあるファイルを指定して実行した結果です。falseJavaのオーディオフォーマットここからわかるのは以下のようなことです。サンプルの数は240000個あることサンプルレートが48000つまり一秒あたり48000個のサンプルが収められている一つのサンプルが16ビットつまり2バイトの量であること二つのチャンネルがあること、つまりステレオであることデータの並び方がビッグ・エンディアンでないこと、つまりリトル・エンディアンであることマークをサポートしない、つまり巻き戻しや早送りができないことさらに以下のようなこともわかります。チャンネル)ビッグ・エンディアンとリトル・エンディアンについて一つのサンプルの音量を求める時データの並びが重要になります。ここではサンプルサイズが16ビットか24ビットの場合です。これらのサンプルサイズはバイトにすると2バイトか3バイトなのでファイルに書き出す時には複数のバイトデータを並べる必要があります。ビッグエンディアンは大きい位から小さい位へ、リトルエンディアンは小さい位から大きい位へと並べます。音量の求め方さらに16ビットまたは24ビットの音声データは正負の情報を持っていてこれは一番大きいくらいが持つことになっています。24ビットの場合をまとめると以下のようになります。それぞれの位の値を合計すると音量が求められます。-603950となります。以下は16ビットの時です。調律の話(1)音階は振動数の比率の関係でできています。ピアノの真ん中のドから上のラは一般に440Hzです。その1オクターブ上のラの周波数はこの2倍の...記事を読むFM音源によるストリングスの作成DX7の音の設定値はネット上で探すと結構見つかります。FM音源による音作りは感覚的に作るのが難しいためこういう情報を参考にすると比較的近い音...記事を読むwavファイルの波形を表示させる(2)今回はwavファイルから必要なデータを抜き出す処理を作ります。前回ウィンドウを作りました。グラフの領域は横が余白をのぞいて780ピクセルあり...記事を読む標準入力からオプション選択を取得するユーティリティを作るユーザーから任意の値を取得するのではなくプログラム側の提示したオプションから選択してもらうケースを想定します。あるケースとしてはユーザー...記事を読むJavaとMIDI:MIDIの環境を調べるMIDIをJavaを経由で利用するにあたってまずやることは自分のPC上で使えるMIDIのデバイスを調べることです。認識...記事を読むJavaとMIDI:ハノンの練習曲第一番(2)実装の続きです。実装内容は以下の8音でフレーズを設定した後音程を1ずつ増やして14回繰り返すのでした。...記事を読むJavaとMIDI:フォリア(2)次にフレーズを作っていきたいと思います。前の譜例では16小節そのまま書いてありましたが以下のように繰り返しを使ってコー...記事を読むJavaで平均律の周波数を求める前回はドミソの和音を鳴らしました。このとき周波数は他から持ってきた数字をそのまま書いていました。今までは音は鳴りっぱなしでしたが音量を調節したいと思います。一つの音は始まりと終わりで音量が違います。最初は無音ですが音が大きく最大になって...記事を読むFM音源を利用した楽器の作成ここまでに作ったFM音源とエンベロープ・ジェネレーターを使って楽器を作りたいと思います。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。外国語としてのJavaと音楽%d人のブロガーが「いいね」をつけました。