wav'чик записать с микрофона, с оцифровкой 44kHz, mono? (sound example)
Ключевые слова: sound, example, (найти похожие документы)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Dima Simakov 2:5000/106.4 11 May 98 16:25:40
Subj : wav'чик записать с микрофона, с оцифровкой 44kHz, mono?
________________________________________________________________________________
Hello, Mike !
Thursday May 07 1998 22:05, Mike Iokhvin wrote to All:
MI> А не подскажете ли, чем мне под эхотагом wav'чик записать с
MI> микрофона, с оцифровкой 44kHz, mono? cat /dev/audio > file.au -- не
MI> катит, у меня качество какое-то ущербное получается, да и степень
MI> оцифровки не задать.. Может научите, а то до зарезу надо!
MI> Если есть какая-нибудь софтина -- подскажите URL, pls!
Быть может я извpащенец,но быстpее было самому написать...
Фильтpуешь чеpез sox - на выходе получаешь то,что тебе нужно(wav) ;)
int main(int argc,char *argv[])
{
int i;
if(argc<2) usage();
for(i=1;i<argc;i++)
{
if(strncmp(argv[i],"-f",2)==0) frequency=atoi(argv[i]+2);
else
if(strncmp(argv[i],"-s",2)==0) stereo=atoi(argv[i]+2);
else usage();
}
signal(SIGINT,sig_quit);
if((audio_fd = open ("/dev/dsp", O_RDWR, 0))==-1)error("unable to open
file");
msg("nSetting up dsp data format:");
if(ioctl(audio_fd, SNDCTL_DSP_SETFMT,&play_fmt))error("unable set
FMT");msg("Ok");
msg("nSetting up mode");
switch(stereo){
case 0: msg(" mono");break;
case 1: msg(" stereo");break;
default: error("Unknown mode... must be 0(mono) or 1(stereo)");
}
if(ioctl(audio_fd, SNDCTL_DSP_STEREO, &stereo))error("unable
set");msg("Ok");
msg("nSetting up frequency:");
if(ioctl(audio_fd, SNDCTL_DSP_SPEED, &frequency))error("unable
set");msg("Ok");
msg("nTrying to get audio buffer size:");
if(ioctl(audio_fd, SNDCTL_DSP_GETBLKSIZE, &audio_buf_size))error("unable to
get audio buffer suze");msg("Ok");
if(audio_buf_size<1024) audio_buf_size=1024;
buffer=(int *)malloc(audio_buf_size);
if(!buffer) error("cannot allocate buffer");
msg("npress Ctrl-C to stop recording...");
while(1)
{
read(audio_fd,buffer,audio_buf_size);
write(1,buffer,audio_buf_size);
}