//aus http://www.ica1.uni-stuttgart.de/~hilfer/de/lehre/100-online/skriptum/node76.html #include #include #include "sound.cxx" using namespace std; int main() { // Deklarationen double *u; double u_0,uprv,t_max,dt,t,frq; short amp; int plckpt,len,i,iflg,next; // Parameter abfragen und einlesen cout << "Frequenz :"; cin >> frq; cout << "Gesamtdauer :"; cin >> t_max; dt=1./44100.; // Zeitschritt = Abtastrate len = int(44100./frq); // Laenge der Saite plckpt = int(0.1*len); // Zupfpunkt u_0 = 28000; // Anfangsauslenkung t=0.; // Zeit initialisieren // Initialisieren der Saite cout << " Initialisieren der Saite" << endl; u = new double[len]; // Speicher bereitstellen for( i=0; i<=plckpt; i++ ){ // Auffuellen mit Saegezahn u[i]=2*u_0*i/plckpt - u_0; } for( i=len-1; i>plckpt; i-- ){ u[i]=2*u_0*(len-1-i)/(len-plckpt) - u_0; } // Vorbereitung der binaeren Ausgabedatei ofstream outfile("zupf.raw",ios::out|ios::binary); // typedef struct _IO_FILE FILE; // std::FILE * f = new std::FILE; // f = fopen("test.wav","w"); i=0; uprv=u[0]; while(t