음계에 해당하는 글 1

c언어 - 음계의 주파수를 화면에 출력

IT/c / c++|2014. 8. 2. 21:01

c언어 - 음계의 주파수를 화면에 출력

<소스파일>
#include <stdio.h>
#include <math.h>
void print_frequency(int octave);
int main(void)
{
 char *scale[]={"도","도#","레","레#","미","파","파#","솔","솔#","라","라#","시","도"};
 int i,octave,count=0;
 printf("음계와 주파수\n\n음계\t     ");
 for(i=0;i<13;i++)
  printf("%-5s",scale[i]);
 printf("\n");
 for(i=0;i<=75;i++)
  printf("-");
 printf("\n");
 for(octave=1;octave<7;octave++)
  print_frequency(octave);
 return 0;

}

void print_frequency(int octave)
{
 double do_scale=32.7032;
 double ratio=pow(2.,1/12.), temp;
 int i;
 temp=do_scale*pow(2.,octave-1);
 printf("%d옥타브 : ",octave);
 for(i=0;i<13;i++)
 {
  printf("%5ld",(unsigned long)(temp+0.5));
  temp*=ratio;
 }
 printf("\n");
}

<실행화면>

 


 

중학교 때 트롬본을 하면서 음악에 사실 관심이 많아요 (클래식 음악) 이번 프로그램을 공부하면서 옥타프의 주파수를 공부하게되는 점이 왠지 신선하게 다가왔습니다. 실제 제가 트롬본을 할때 제 트롬본의 음역대가 궁금해서 여러가지 실험해봤던것들이 생각나더라구요

사실 음악과 주파수가 그렇게 많이 관계가 있는것인지는 잘모르겠지만 컴퓨터 상에선 엄청나게 관계가 많아 이렇게 한번 구현해봤습니다.

댓글()