signal-generator/main/waveform.h

24 lines
450 B
C

#pragma once
#include <stdint.h>
#define SAMPLE_RATE 48000
#define AMPLITUDE_24BIT 0x3FFFFF
typedef enum {
WAVE_NONE = 0,
WAVE_SINE,
WAVE_SQUARE,
WAVE_SAW,
} wave_type_t;
typedef struct {
wave_type_t type;
float freq;
float duty;
} channel_state_t;
void waveform_init(void);
void waveform_set(int ch, wave_type_t type, float freq, float duty);
void waveform_fill_buffer(int32_t *buf, int frames);