1 2 3 #include <stdbool.h> 4 5 #ifndef WAVETABLE 6 #define WAVETABLE 7 8 typedef struct 9 { 10 int length; 11 float *buffer; 12 } wave; 13 14 typedef struct 15 { 16 float frequency; 17 float index; 18 float increment; 19 bool start_phase; 20 int wave1_number; 21 int wave2_number; 22 float wave_mix; 23 unsigned int bandlimit_offset; 24 } oscillator; 25 26 void wavetable_initialise(); 27 void wavetable_cleanup(); 28 float* wavetable_get_buffer(int); 29 float wavetable_tick(oscillator*); 30 void wavetable_set_oscillator_frequency(oscillator*,float); 31 void wavetable_set_oscillator_wave_number(oscillator*,int,int); 32 33 void wavetable_make_wave(int, const char*, const char*); 34 void wavetable_set_oscillator_wave_mix(oscillator*,float); 35 void wavetable_set_sample_rate(int); 36 37 #endif 38