1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-08-10 16:19:59 +00:00

initial commit. This is icculus version 5542b94cae02a6333845854bbbd1abe0a259f1a4

This commit is contained in:
fgenesis 2011-08-03 22:05:33 +02:00
commit 3096eaf5e2
2519 changed files with 816064 additions and 0 deletions

View file

@ -0,0 +1,54 @@
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
void usage(){
fprintf(stderr,"tone <frequency_Hz>,[<amplitude>] [<frequency_Hz>,[<amplitude>]...]\n");
exit(1);
}
int main (int argc,char *argv[]){
int i,j;
double *f;
double *amp;
if(argc<2)usage();
f=alloca(sizeof(*f)*(argc-1));
amp=alloca(sizeof(*amp)*(argc-1));
i=0;
while(argv[i+1]){
char *pos=strchr(argv[i+1],',');
f[i]=atof(argv[i+1]);
if(pos)
amp[i]=atof(pos+1)*32767.f;
else
amp[i]=32767.f;
fprintf(stderr,"%g Hz, %g amp\n",f[i],amp[i]);
i++;
}
for(i=0;i<44100*10;i++){
float val=0;
int ival;
for(j=0;j<argc-1;j++)
val+=amp[j]*sin(i/44100.f*f[j]*2*M_PI);
ival=rint(val);
if(ival>32767.f)ival=32767.f;
if(ival<-32768.f)ival=-32768.f;
fprintf(stdout,"%c%c%c%c",
(char)(ival&0xff),
(char)((ival>>8)&0xff),
(char)(ival&0xff),
(char)((ival>>8)&0xff));
}
return(0);
}