void testWriteToMemory() { CAudioData* w1; CAudioData* w2; CAudioData* combo; synth_sin(&w1, 300, 2.0, 0.8); synth_sin(&w2, 303, 2.0, 0.8); //Left channel is w1, right channel is w2 combo = caudiodata_new(); combo->length = w1->length; combo->sampleRate = w1->sampleRate; combo->data = w1->data; combo->data_right = w2->data; //~ errormsg msg = caudiodata_savewave(combo, "outsines.wav", 16); char *inmemory; uint inmemorylength; errormsg msg = caudiodata_savewavemem(&inmemory, &inmemorylength, combo, 16); FILE*f=fopen("outsines.wav","wb"); fwrite(inmemory, 1, inmemorylength, f); fclose(f); if (msg != OK) puts(msg); caudiodata_dispose( combo); caudiodata_dispose( w1); caudiodata_dispose( w2); free(inmemory); }
void example_mix() { CAudioData* w1 = caudiodata_new(); CAudioData* w2 = caudiodata_new(); synth_sin(&w1, 300, 4.0, 0.8); //sine wave, 300Hz synth_sin(&w2, 430, 4.0, 0.8); //sine wave, 430Hz CAudioData* mix=NULL; char* msg = effect_mix(&mix, w1, w2, 0.5, 0.5); if (msg!=OK) puts(msg); msg = caudiodata_savewave(mix, "testout\\out_mix.wav", 16); if (msg != OK) puts(msg); caudiodata_dispose(mix); caudiodata_dispose(w1); caudiodata_dispose(w2); }
void testSynth() { CAudioData* audio; synth_sin(&audio, 300, 10.0, 0.8); FILE * f = fopen("out.wav", "wb"); errormsg msg = caudiodata_savewave(audio, f, 16); if (msg != OK) puts(msg); fclose(f); caudiodata_dispose( audio); }
void testSynth() { CAudioData* audio; synth_sin(&audio, 300, 10.0, 0.8); errormsg msg = caudiodata_savewave(audio, "testout\\out.wav", 16); if (msg != OK) puts(msg); caudiodata_dispose( audio); }
void testTremelo() { CAudioData* audio; synth_sin(&audio, 300, 4.0, 0.3); //sine wave, 300Hz inplaceeffect_tremelo(audio, 4, 0.2); msg = caudiodata_savewave(audio, "testout\\out.wav", 16); if (msg != OK) puts(msg); caudiodata_dispose( audio); }
void example_mix() { CAudioData* w1 = caudiodata_new(); CAudioData* w2 = caudiodata_new(); synth_sin(&w1, 300, 4.0, 0.8); //sine wave, 300Hz synth_sin(&w2, 430, 4.0, 0.8); //sine wave, 430Hz CAudioData* mix; msg = effect_mix(&mix, w1, w2, 0.5, 0.5); if (msg!=OK) puts(msg); FILE * f = fopen("out_mix.wav", "wb"); msg = caudiodata_savewave(mix, f, 16); if (msg != OK) puts(msg); fclose(f); caudiodata_dispose(mix); caudiodata_dispose(w1); caudiodata_dispose(w2); }
void testTremelo() { CAudioData* audio; synth_sin(&audio, 300, 4.0, 0.3); //sine wave, 300Hz inplaceeffect_tremelo(audio, 4, 0.2); FILE * f = fopen("out.wav", "wb"); msg = caudiodata_savewave(audio, f, 16); if (msg != OK) puts(msg); fclose(f); caudiodata_dispose( audio); }
void testfadein() { CAudioData* audio; synth_sin(&audio, 300, 4.0, 0.3); //sine wave, 300Hz inplaceeffect_fade(audio, 0, 2.5); //fade out //~ inplaceeffect_fade(audio, 1, 2.5); // fade in msg = caudiodata_savewave(audio, "testout\\out.wav", 16); if (msg != OK) puts(msg); caudiodata_dispose( audio); }
// Intentional beat frequencies "smoothen" the sound and make it more musical. errormsg synth_sineorgan(CAudioData**out,double freq, double lengthSeconds, double amp) { CAudioData* audio; audio = *out = caudiodata_new(); //use audio as an alias for the output, *out. if (lengthSeconds<0) return "Invalid length"; if (freq<=0) return "Invalid frequency"; int length = (int)(lengthSeconds * SampleRate); errormsg msg = caudiodata_allocate(audio, length, 1, SampleRate); if (msg!=OK) return msg; CAudioData* w1; CAudioData* w2; synth_sin(&w1, freq, lengthSeconds, amp); synth_sin(&w2, freq* 1.0006079, lengthSeconds, amp); int i; for(i=0; i<audio->length; i++) audio->data[i] = 0.6*w1->data[i] + 0.4*w2->data[i]; caudiodata_dispose(w1); caudiodata_dispose(w2); return OK; }
void testfadein() { CAudioData* audio; synth_sin(&audio, 300, 4.0, 0.3); //sine wave, 300Hz inplaceeffect_fade(audio, 0, 2.5); //fade out //~ inplaceeffect_fade(audio, 1, 2.5); // fade in FILE * f = fopen("out.wav", "wb"); msg = caudiodata_savewave(audio, f, 16); if (msg != OK) puts(msg); fclose(f); caudiodata_dispose( audio); }
void appendandclone() { CAudioData * wsine; CAudioData* wsinelouder = NULL;CAudioData* out; synth_sin(&wsine, 300, 1.0, 0.3); //sine wave, 300Hz caudiodata_clone(& wsinelouder, wsine); inplaceeffect_volume(wsinelouder, 3); msg = effect_append(&out, wsine, wsinelouder); if (msg != OK) { puts(msg); return 0;} msg = caudiodata_savewave(out, "testout\\out.wav", 16); if (msg != OK) puts(msg); caudiodata_dispose( wsine); caudiodata_dispose( wsinelouder); caudiodata_dispose( out); }
void mixwithsine() // or modulate, or append, an easy change { CAudioData * w1; CAudioData* w2;CAudioData* out; FILE*fin = fopen("..\\..\\media\\bitrates\\d22k8bit1ch.wav", "rb"); errormsg msg = caudiodata_loadwave(&w1, fin); if (msg != OK) puts(msg); fclose(fin); synth_sin(&w2, 300, caudiodata_getLengthInSecs(w1), 0.8); //sine wave, 300Hz msg = effect_mix(&out, w1, w2, 0.5, 0.1); //effect_append(&out, w2, w1); if (msg != OK) { puts(msg); return 0;} msg = caudiodata_savewave(out, "testout\\out.wav", 16); if (msg != OK) puts(msg); caudiodata_dispose( w1); caudiodata_dispose( w2); caudiodata_dispose( out); }
void mixwithsine() // or modulate, or append, an easy change { CAudioData * w1; CAudioData* w2;CAudioData* out; FILE*fin = fopen("C:\\pydev\\yalp\\Subversion\\csaudio\\WaveAudio\\WaveAudioTests\\test_media\\d22k8bit1ch.wav", "rb"); errormsg msg = caudiodata_loadwave(&w1, fin); if (msg != OK) puts(msg); fclose(fin); synth_sin(&w2, 300, caudiodata_getLengthInSecs(w1), 0.8); //sine wave, 300Hz msg = effect_mix(&out, w1, w2, 0.5, 0.1); //effect_append(&out, w2, w1); if (msg != OK) { puts(msg); return 0;} FILE * f = fopen("out.wav", "wb"); msg = caudiodata_savewave(out, f, 16); if (msg != OK) puts(msg); fclose(f); caudiodata_dispose( w1); caudiodata_dispose( w2); caudiodata_dispose( out); }