25 lines
456 B
C
25 lines
456 B
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
#define SAMPLE_RATE 48000
|
|
#define AMPLITUDE 16384
|
|
|
|
typedef enum {
|
|
WAVE_NONE = 0,
|
|
WAVE_SINE,
|
|
WAVE_SQUARE,
|
|
WAVE_SAW,
|
|
} wave_type_t;
|
|
|
|
typedef struct {
|
|
wave_type_t type;
|
|
float freq;
|
|
float duty;
|
|
float phase;
|
|
} channel_state_t;
|
|
|
|
void waveform_init(void);
|
|
void waveform_set(int ch, wave_type_t type, float freq, float duty);
|
|
int16_t waveform_next_sample(int ch);
|