signal-generator/main/waveform.h

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);