Javaで音を作る(WAVE)

Java、メモ書き。
どうも音楽関係のjavax.soundのパッケージがあるらしいと分かったので
いろいろ調べて使ってみます。

import java.io.*;
import javax.sound.sampled.*;
public class MakeWave {
  public static void main(String[] args) throws IOException{
    //time
    int t = 10;
    //data
    byte[] data = new byte[44100*2*2*t];
    int f = Integer.parseInt(args[0]);
    for(int i=0; i         data[i] = (byte)(Math.sin(i/2.0/Math.PI/f)*17);
    //Audio Format
    AudioFormat af = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
                           44100.0F, // sample rate
                           16, // sample bit
                           2, // channnel
                           4, // frame size
                           44100.0F, // frame rate
                           false // big endian
               );
    //outout
    InputStream in = new ByteArrayInputStream(data);
    //inputstream(data), audioformat,frame
    AudioInputStream ais = new AudioInputStream(in, af, 44100*t);
    //kind of audio file
    AudioFileFormat.Type ttype = AudioFileFormat.Type.WAVE;
    //output file
    File file = new File(args[1]);
    //write
    AudioSystem.write(ais, ttype, file);
  }
}

このプログラムを次みたいに使う

java MakeWave 10 out10.wav
java MakeWave 20 out20.wav
java MakeWave 40 out40.wav

「ぶーん」
っていう何にも使えない意味不明な音がでけた。

返信を残す

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