Exemple #1
0
void insert_rest(short waveform[], int notelength, FILE *f) {
	int i ;
	for ( i = 0 ; i < notelength ; i++) {
		waveform[i] = 0 ;
	}
	wavfile_write(f, waveform, notelength) ;
}
Exemple #2
0
void create_note(int volume, int length, double frequency, short waveform[NUM_SAMPLES], FILE *f)
{
	int i;
	for(i=0;i<length;i++)
	{
		double t = (double) i / WAVFILE_SAMPLES_PER_SECOND;
		waveform[i] = volume*sin(frequency*t*2*M_PI);
	}
	wavfile_write(f,waveform,length);
	
}
Exemple #3
0
void update_waveform(short waveform[], int maxvolume, double frequency, int notelength, FILE *f) {
	int i ;
	int volume ;
	float t ;
	for ( i = 0 ; i < notelength ; i++) {
		t = (float) i / WAVFILE_SAMPLES_PER_SECOND ;
		volume = maxvolume ;
		//volume = adjust_volume(maxvolume, t, notelength) ;  //not used in the final program because it will not produce sound
		waveform[i] = triangle_waveform(frequency, .4*volume, t) + triangle_waveform(2*frequency, .2*volume, t) + triangle_waveform(4*frequency, .6*volume, t) ;
	}
	wavfile_write(f, waveform, notelength) ;
}
Exemple #4
0
int main()
{
	short waveform[NUM_SAMPLES];
	double frequency = 440.0;
	int volume = 32000;
    FILE * f;
	int length = NUM_SAMPLES;

	int i;
	f = wavfile_open("sound.wav");
	if(!f) {
		printf("couldn't open sound.wav for writing: %s",strerror(errno));
		return 1;
	}

	for(i=0;i<length;i = i+4) {
		double t = (double) i / WAVFILE_SAMPLES_PER_SECOND;
		waveform[i] = volume*sin(frequency*t*2*M_PI);
	}

	for(i=1;i<length;i = i + 4) {
		double t = (double) i / WAVFILE_SAMPLES_PER_SECOND;
		waveform[i] = (volume*(.3333))*sin(frequency*(.3333)*t*2*M_PI);
	}
   
	for(i=2;i<length;i = i + 4) {
		double t = (double) i / WAVFILE_SAMPLES_PER_SECOND;
		waveform[i] = (volume*(.5))*sin(frequency*(.5)*t*2*M_PI);
	 }

	for(i=3;i<length;i = i+4) {
		double t = (double) i / WAVFILE_SAMPLES_PER_SECOND;
		waveform[i] = volume*.25*sin(frequency*.25*t*2*M_PI);
	}
    

	wavfile_write(f,waveform,length);
	wavfile_close(f);

	return 0;
}