Exemple #1
0
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);
}
Exemple #3
0
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);
}
Exemple #6
0
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);
}
Exemple #7
0
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;
}
Exemple #10
0
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);
}
Exemple #13
0
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);
}