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