diff options
author | grm <grm@eyesin.space> | 2025-02-22 02:36:27 +0200 |
---|---|---|
committer | grm <grm@eyesin.space> | 2025-02-22 02:36:27 +0200 |
commit | 500b9a07b93d6cd3e771edc5698e06d163da60f1 (patch) | |
tree | 08aace91a7ec7600b254b986bf5458362dab33f3 /src/synth_engine.h | |
parent | 04b3dbe0a339c42d7b2085bcd6149e9277d699a1 (diff) | |
download | synth-project-500b9a07b93d6cd3e771edc5698e06d163da60f1.tar.gz synth-project-500b9a07b93d6cd3e771edc5698e06d163da60f1.tar.bz2 synth-project-500b9a07b93d6cd3e771edc5698e06d163da60f1.zip |
a year of changes (web, better soundcard handling, biquad)
Diffstat (limited to 'src/synth_engine.h')
-rw-r--r-- | src/synth_engine.h | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/src/synth_engine.h b/src/synth_engine.h index 3b0b238..5ff7d8d 100644 --- a/src/synth_engine.h +++ b/src/synth_engine.h @@ -64,6 +64,8 @@ typedef struct { int tmp_index; } synth_viz; +struct midi_t; + typedef struct { PaStream *stream; @@ -71,7 +73,7 @@ typedef struct { cc_t * ccs[128]; int cci; - + cc_t cc_pitch; cc_t cc_cutoff; cc_t cc_resonance; @@ -83,7 +85,15 @@ typedef struct { cc_t cc_adsr_s; cc_t cc_adsr_r; cc_t cc_gain; - + + cc_t cc_f_adsr_a; + cc_t cc_f_adsr_peak; + cc_t cc_f_adsr_d; + cc_t cc_f_adsr_s; + cc_t cc_f_adsr_r; + + int autogain; + float x; midi_note_t midi_note[MIDI_NOTES]; @@ -91,6 +101,7 @@ typedef struct { int midi_active_n; adsr_t adsr; + adsr_t f_adsr; lfo_t lfo; @@ -102,8 +113,12 @@ typedef struct { cc_t cc_del_time; cc_t cc_del_feedback; unsigned long long counter; - + + int f_adsr_enabled; int filter; + int biquad; + char biquad_type; + int clamp; int modifiers[16]; @@ -117,11 +132,21 @@ typedef struct { int active; int sound_active; - + + int soundcard_id; + int midi_device_id; + synth_viz viz; + + struct midi_t * midi; } synth_t; synth_t * init_synth(); -void free_synth(synth_t * synth); +void free_synth(synth_t *synth); +void change_soundcard(synth_t *synth); +void change_midi_device(synth_t *synth); + +int save_synth(synth_t *synth, const char *path); +int load_synth(synth_t *synth, const char *path); #endif /* SYNTH_ENGINE_H */ |