26#ifndef _XSYNTH_VOICE_H
27#define _XSYNTH_VOICE_H
34#define XSYNTH_NUGGET_SIZE 64
38#define MINBLEP_PHASES 64
40#define MINBLEP_PHASE_MASK 63
42#define STEP_DD_PULSE_LENGTH 72
44#define SLOPE_DD_PULSE_LENGTH 71
46#define LONGEST_DD_PULSE_LENGTH STEP_DD_PULSE_LENGTH
49#define MINBLEP_BUFFER_LENGTH 512
51#define DD_SAMPLE_DELAY 4
118#define _PLAYING(voice) ((voice)->status != XSYNTH_VOICE_OFF)
119#define _ON(voice) ((voice)->status == XSYNTH_VOICE_ON)
120#define _SUSTAINED(voice) ((voice)->status == XSYNTH_VOICE_SUSTAINED)
121#define _RELEASED(voice) ((voice)->status == XSYNTH_VOICE_RELEASED)
122#define _AVAILABLE(voice) ((voice)->status == XSYNTH_VOICE_OFF)
136 unsigned char velocity);
142 unsigned char rvelocity);
153 float *
out,
unsigned long sample_count,
154 int do_control_update);
SYNTH_T * synth
Definition LocalZynAddSubFx.cpp:47
float out
Definition lilv_test.c:1461
float_value_delta step_dd_table[MINBLEP_PHASES *STEP_DD_PULSE_LENGTH+1]
Definition minblep_tables.c:49
float slope_dd_table[MINBLEP_PHASES *SLOPE_DD_PULSE_LENGTH+1]
Definition minblep_tables.c:1207
struct _nekobee_patch_t nekobee_patch_t
Definition nekobee_types.h:28
struct _nekobee_synth_t nekobee_synth_t
Definition nekobee_types.h:26
struct _nekobee_voice_t nekobee_voice_t
Definition nekobee_types.h:27
nekobee_voice_status
Definition nekobee_voice.h:66
@ XSYNTH_VOICE_RELEASED
Definition nekobee_voice.h:70
@ XSYNTH_VOICE_SUSTAINED
Definition nekobee_voice.h:69
@ XSYNTH_VOICE_ON
Definition nekobee_voice.h:68
@ XSYNTH_VOICE_OFF
Definition nekobee_voice.h:67
nekobee_voice_t * nekobee_voice_new()
Definition nekobee_voice.c:41
#define MINBLEP_BUFFER_LENGTH
Definition nekobee_voice.h:49
void nekobee_voice_render(nekobee_synth_t *synth, nekobee_voice_t *voice, float *out, unsigned long sample_count, int do_control_update)
Definition nekobee_voice_render.c:273
void nekobee_voice_release_note(nekobee_synth_t *synth, nekobee_voice_t *voice)
Definition nekobee_voice.c:244
void nekobee_voice_update_pressure_mod(nekobee_synth_t *synth, nekobee_voice_t *voice)
void nekobee_voice_note_on(nekobee_synth_t *synth, nekobee_voice_t *voice, unsigned char key, unsigned char velocity)
Definition nekobee_voice.c:56
static void nekobee_voice_off(nekobee_voice_t *voice)
Definition nekobee_voice.h:165
float nekobee_pitch[128]
Definition nekobee_voice_render.c:25
#define XSYNTH_NUGGET_SIZE
Definition nekobee_voice.h:34
void nekobee_init_tables(void)
Definition nekobee_voice_render.c:38
void nekobee_voice_set_ports(nekobee_synth_t *synth, nekobee_patch_t *patch)
void nekobee_voice_note_off(nekobee_synth_t *synth, nekobee_voice_t *voice, unsigned char key, unsigned char rvelocity)
Definition nekobee_voice.c:182
void nekobee_voice_remove_held_key(nekobee_synth_t *synth, unsigned char key)
Definition nekobee_voice.c:160
static void nekobee_voice_start_voice(nekobee_voice_t *voice)
Definition nekobee_voice.h:177
Definition nekobee_voice.h:54
float cutoff
Definition nekobee_voice.h:57
float resonance
Definition nekobee_voice.h:58
float envmod
Definition nekobee_voice.h:59
float accent
Definition nekobee_voice.h:61
float decay
Definition nekobee_voice.h:60
float tuning
Definition nekobee_voice.h:55
unsigned char waveform
Definition nekobee_voice.h:56
float volume
Definition nekobee_voice.h:62
Definition nekobee_voice.h:86
float prev_pitch
Definition nekobee_voice.h:98
float delay3
Definition nekobee_voice.h:107
unsigned char status
Definition nekobee_voice.h:89
unsigned char key
Definition nekobee_voice.h:90
float vcf_eg
Definition nekobee_voice.h:103
struct blosc osc1
Definition nekobee_voice.h:101
float delay1
Definition nekobee_voice.h:105
unsigned char vca_eg_phase
Definition nekobee_voice.h:110
unsigned char vcf_eg_phase
Definition nekobee_voice.h:111
float accent_slug
Definition nekobee_voice.h:104
unsigned char rvelocity
Definition nekobee_voice.h:92
float c5
Definition nekobee_voice.h:109
float freqcut_buf[XSYNTH_NUGGET_SIZE]
Definition nekobee_voice.h:114
float delay2
Definition nekobee_voice.h:106
int osc_index
Definition nekobee_voice.h:112
float vca_buf[XSYNTH_NUGGET_SIZE]
Definition nekobee_voice.h:115
float target_pitch
Definition nekobee_voice.h:99
unsigned char velocity
Definition nekobee_voice.h:91
float vca_eg
Definition nekobee_voice.h:102
float delay4
Definition nekobee_voice.h:108
float pressure
Definition nekobee_voice.h:95
float osc_audio[MINBLEP_BUFFER_LENGTH]
Definition nekobee_voice.h:113
float lfo_pos
Definition nekobee_voice.h:100
unsigned int note_id
Definition nekobee_voice.h:87
Definition nekobee_voice.h:74
int bp_high
Definition nekobee_voice.h:77
float pw
Definition nekobee_voice.h:79
float pos
Definition nekobee_voice.h:78
int waveform
Definition nekobee_voice.h:76
int last_waveform
Definition nekobee_voice.h:75
Definition nekobee_voice.h:126
float value
Definition nekobee_voice.h:126
float delta
Definition nekobee_voice.h:126
ZCONST char * key
Definition crypt.c:587