Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[6187] wav파일 안 읽히는 이유좀...
khnet [] 8364 읽음    2008-04-15 13:43
// turbo c code

#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include "graphics.h"


FILE *fp1, *fp2;

void main()
{

int channel1=2, amplitude=3, epd=100, pixel=2, y=300, r=3, pronun1, pronun2;
char *volume[10000]; //, filename[30], *fnstring="c:\tc";
unsigned long sample=1, frmnum=1, zcrnum=1, i;
long frame[10000], zcr[10000], zcrslope[10000], frmslope[10000];
short mode;
int frmsize=128*channel1, overlap=64*channel1;


frame[1]=0, zcr[1]=0, frmslope[0]=0, zcrslope[0]=0;

// file I/O

void clrscr();

// printf("Input file name : ");
// scanf("%s", &filename);
// strcat(fnstring, filename);

//if((fp1=fopen("c:chil.wav", "r"))!=NULL)
//fp2=fopen("sound.dat", "w+");

//else
//{
//printf("File not found\n");
//exit(1);
//}

fp1=fopen("chil.wav", "r");
// fp2=fopen("sound.dat", "w");
fseek(fp1, 44L, 0);

while((fread(volume[sample], channel1 , 1, fp1))!=NULL)
{

long prevol=(atol(volume[sample-1]));
long nowvol=(atol(volume[sample]));

// fwrite(volume[sample], channel1, 1, fp2);
i=0;
frame[frmnum]=frame[frmnum]+(labs(nowvol));

if(prevol*nowvol<=0)
zcr[zcrnum]=zcr[zcrnum]+1;

if(sample==(frmsize+(i*overlap)))
{
frmnum=frmnum+1;
zcrnum=zcrnum+1;
fseek(fp1, -overlap, 1);
sample=sample-overlap;
}

sample=sample+1;
i=i+1;

}  // file I/O end

fclose(fp1); // fclose(fp2);

// 1

unsigned long preslope=frmslope[i-1]*zcrslope[i-1];
unsigned long nowslope=frmslope[i]*zcrslope[i];

for(i=1;i<=(ceil(frmnum/2));i++)
{
zcrslope[1]=(labs(zcr[i+1]-zcr[i]));
frmslope[i]=(labs(frame[i+1]-frame[i]));

if(preslope<=nowslope)
pronun1=i;
}

// 2

for(i=((frmnum/2)+1);i<=(frmnum-1);i++)
{
zcrslope[i]=(labs(zcr[i+1]-zcr[i]));
frmslope[i]=(labs(frame[i+1]-frame[i]));

if(preslope<=nowslope)
{
if(zcr[i]>epd){
pronun2=i;
goto graph; }
}

}

// graph

graph:

int graphdriver=DETECT, graphmode;
initgraph(&graphdriver, &graphmode, " ");
cleardevice();

//int gdr, gmode;
//gdr=DETECT; // autodetect of graphic driver
//initgraph(&gdr,&gmode,"..\\bgi");

for(mode=1;mode<=3;mode++)
{
line(pixel, y*mode, sample*pixel, y*mode);

switch(mode)
{

case 1:  // timbre

for(i=1;volume[i+1]!=NULL;i++)
{
if(volume[i+1]!=NULL)
line(pixel*i, (y*mode)-(amplitude*(*volume[i])), pixel*(i+1), (y*mode)-(amplitude*(*volume[i+1])));
}
break;

case 2:  // volume

for(i=1;i<=frmnum;i++)
{
circle(pixel*(frmsize+((i-1)*overlap)), (y*mode)-(amplitude*frame[i]), r);

if ((i+1)<=frmnum)
line(pixel*(frmsize+((i-1)*overlap)), (y*mode)-(amplitude*frame[i]), pixel*(frmsize+(i*overlap)), (y*mode)-(amplitude*frame[i+1]));
}
break;

default:  // zcr

for(i=1;i<=zcrnum;i++)
{
circle(pixel*(frmsize+((i-1)*overlap)), (y*mode)-(amplitude*zcr[i]), r);

if((i+1)<=zcrnum)
line(pixel*(frmsize+((i-1)*overlap)), (y*mode)-(amplitude*zcr[i]), pixel*(frmsize+(i*overlap)), (y*mode)-(amplitude*zcr[i+1]));
}
break;

} // switch end

} // for end

line(pixel*pronun1, y-(y*(3/4)), pixel*pronun1, (y*3)+(y*(1/4)));
line(pixel*pronun2, y-(y*(3/4)), pixel*pronun2, (y*3)+(y*(1/4)));

void closegraph();

} // main end

여기서 wav파일이 안읽히는 이유가 뭔지 모르겠네요... 에러랑 경고는 다 제거 했는데....
전 도저히 모르겠네요.... 부탁드려요.... 제발 가르쳐주세요....

+ -

관련 글 리스트
6187 wav파일 안 읽히는 이유좀... khnet 8364 2008/04/15
6188     Re:wav파일 안 읽히는 이유좀... kylix 10557 2008/04/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.