학습 내용

조 : 2조

작성자 : 김동영

작성일 : 2011. 6. 1

제목 : 주파수 생성

 

주파수를 생성하여 주파수에 해당 하는 음을 재생하는 wav파일을 만들어 보았다.

 

 

아래의 이미지는 음에 관한 주파수이다.

 

 

C3에 해당하는 주파수를 생성하여 wav파일로 만들어 재생하였다.

생성된 wav파일을 midi파일로 변환해보니 미디 60에 해당하는 C3가 재생되었다.

 

 

 

private void button1_Click(object sender, EventArgs e)

{

double amplitude = 0.25 * short.MaxValue;

 

double frequency = double.Parse(textBox2.Text);

double samplerate = double.Parse(textBox1.Text);

 

for (int i = 0; i < buf.Length; i++)

{

buf[i] = (short)(amplitude * Math.Sin((2 * Math.PI * i * frequency) / samplerate));

}

 

Invalidate();

}

주파수를 생성하는 부분이다.

 

 

private void MakeFile(string filename,double sampleRate, int channelCount)

{

FileStream fs = new FileStream(filename, FileMode.Create);

BinaryWriter bw = new BinaryWriter(fs);

 

bw.Write(0x46464952); // RIFF

bw.Write((buf.Length*sizeof(short)+44));

bw.Write(0x45564157); // WAVE

bw.Write(0x20746d66); // fmt_

bw.Write(16);

bw.Write((Int16)1);

bw.Write((Int16)channelCount);

bw.Write((Int32)sampleRate);

bw.Write((Int32)sampleRate * 2 * channelCount);

bw.Write((Int16)(channelCount * 2));

bw.Write((Int16)(16));

 

bw.Write(0x61746164); // data

bw.Write(buf.Length*sizeof(short));

for (int i = 0; i < buf.Length; i++)

{

bw.Write(buf[i]);

}

bw.Close();

}

파일을 생성하는 부분이다.

 

참조 : [기술 및 구현]2010.10.20 주파수 생성하기 - 유진명

'기타 > Wave' 카테고리의 다른 글

Wave 파일 분석  (0) 2012.11.02
Wave파일 구조  (0) 2012.11.02

+ Recent posts