Hola H. M. a vos que te gusta experimentar con sonido, prob� este programa
de efecto especi�l. Interesante no!

-------------------------------------------------------------------------
/*
 * Sonido.c
 * Para experimentar con sonido
 * OSS/FREE
 */
#include<sys/types.h>
#include<sys/stat.h>
#include<sys/soundcard.h>
#include<sys/ioctl.h>
#include<unistd.h>
#include<fcntl.h>
#include<errno.h>
#include<stdlib.h>
#define VELOZ 22050
/* Variable globales */
int manipulador=-1;
/*---------------------------*/
void ExitProc(void)
{
   if(manipulador!=-1) close(manipulador);
}
int main(){
   int i;
   int setting=0x0003000C; /* 3 fragmentos de 4kb */
   int canales=1; /* 0=mono 1=estereo */
   int formato=AFMT_U8;
   int rate=VELOZ;
   unsigned char *data;
   unsigned char *ptr;
   unsigned char v=128;
   if((manipulador=open("/dev/dsp",O_WRONLY))==-1){
      perror("no abrir dsp");
      return 1;
   }

/* int atexit(void(*)(void)) manipulador de final de programa */

   if(atexit(ExitProc)==-1){
      ExitProc();
      return 1;
   }
   if(ioctl(manipulador,SNDCTL_DSP_SETFRAGMENT,&setting)==-1){
      perror("ioctl set");
      return errno;
   }
   if(ioctl(manipulador,SNDCTL_DSP_STEREO,&canales)==-1){
      perror("ioctl canales");
      return errno;
   }
   if(ioctl(manipulador,SNDCTL_DSP_SETFMT,&formato)==-1){
      perror("ioctl formato");
      return errno;
   }
   if(ioctl(manipulador,SNDCTL_DSP_SPEED,&rate)==-1){
      perror("ioctl rate(velocidad)");
      return errno;
   }
   /* generaci�n de sonido */
   data=(unsigned char*)malloc(VELOZ*2*2L);
   ptr=data;
   for(i=0;i<VELOZ;i++){
      *ptr++=v++; /* diente de sierra canal izquierdo */
      *ptr++=128; /* Silencio Canal derecho */
   }
   for(i=VELOZ;i<2*VELOZ;i++){
      *ptr++=128;/* silencio derecho */
      *ptr++=v++;/* diente de sierra canal derecho */
   }
   write(manipulador,data,VELOZ*4L);
   if(ioctl(manipulador,SNDCTL_DSP_SYNC,&rate)==-1){
      perror("ioctl sync");
      return errno;
   }
   return 0;
}
-------------------------------------------------------------------------
Dr. Horacio Castellini, Dpto de F'isica, Facultad de Ingenier'ia, 
Ciencias Exactas y Agrimensura, Pellegrini 250, 2000 Rosario
Argentina, Usuario Linux Registrado #53602
Correo-e:[EMAIL PROTECTED] ICQ: 52244442

Responder a