LMMS
Loading...
Searching...
No Matches
nekobee_voice.h File Reference
#include <string.h>
#include "nekobee_types.h"

Go to the source code of this file.

Classes

struct  _nekobee_patch_t
struct  blosc
struct  _nekobee_voice_t
struct  float_value_delta

Macros

#define XSYNTH_NUGGET_SIZE   64
#define MINBLEP_PHASES   64
#define MINBLEP_PHASE_MASK   63
#define STEP_DD_PULSE_LENGTH   72
#define SLOPE_DD_PULSE_LENGTH   71
#define LONGEST_DD_PULSE_LENGTH   STEP_DD_PULSE_LENGTH
#define MINBLEP_BUFFER_LENGTH   512
#define DD_SAMPLE_DELAY   4
#define _PLAYING(voice)
#define _ON(voice)
#define _SUSTAINED(voice)
#define _RELEASED(voice)
#define _AVAILABLE(voice)

Enumerations

enum  nekobee_voice_status { XSYNTH_VOICE_OFF , XSYNTH_VOICE_ON , XSYNTH_VOICE_SUSTAINED , XSYNTH_VOICE_RELEASED }

Functions

nekobee_voice_tnekobee_voice_new ()
void nekobee_voice_note_on (nekobee_synth_t *synth, nekobee_voice_t *voice, unsigned char key, unsigned char velocity)
void nekobee_voice_remove_held_key (nekobee_synth_t *synth, unsigned char key)
void nekobee_voice_note_off (nekobee_synth_t *synth, nekobee_voice_t *voice, unsigned char key, unsigned char rvelocity)
void nekobee_voice_release_note (nekobee_synth_t *synth, nekobee_voice_t *voice)
void nekobee_voice_set_ports (nekobee_synth_t *synth, nekobee_patch_t *patch)
void nekobee_voice_update_pressure_mod (nekobee_synth_t *synth, nekobee_voice_t *voice)
void nekobee_init_tables (void)
void nekobee_voice_render (nekobee_synth_t *synth, nekobee_voice_t *voice, float *out, unsigned long sample_count, int do_control_update)
static void nekobee_voice_off (nekobee_voice_t *voice)
static void nekobee_voice_start_voice (nekobee_voice_t *voice)

Variables

float nekobee_pitch [128]
float_value_delta step_dd_table []
float slope_dd_table []

Macro Definition Documentation

◆ _AVAILABLE

#define _AVAILABLE ( voice)
Value:
((voice)->status == XSYNTH_VOICE_OFF)
@ XSYNTH_VOICE_OFF
Definition nekobee_voice.h:67

◆ _ON

#define _ON ( voice)
Value:
((voice)->status == XSYNTH_VOICE_ON)
@ XSYNTH_VOICE_ON
Definition nekobee_voice.h:68

◆ _PLAYING

#define _PLAYING ( voice)
Value:
((voice)->status != XSYNTH_VOICE_OFF)

◆ _RELEASED

#define _RELEASED ( voice)
Value:
((voice)->status == XSYNTH_VOICE_RELEASED)
@ XSYNTH_VOICE_RELEASED
Definition nekobee_voice.h:70

◆ _SUSTAINED

#define _SUSTAINED ( voice)
Value:
((voice)->status == XSYNTH_VOICE_SUSTAINED)
@ XSYNTH_VOICE_SUSTAINED
Definition nekobee_voice.h:69

◆ DD_SAMPLE_DELAY

#define DD_SAMPLE_DELAY   4

◆ LONGEST_DD_PULSE_LENGTH

#define LONGEST_DD_PULSE_LENGTH   STEP_DD_PULSE_LENGTH

◆ MINBLEP_BUFFER_LENGTH

#define MINBLEP_BUFFER_LENGTH   512

◆ MINBLEP_PHASE_MASK

#define MINBLEP_PHASE_MASK   63

◆ MINBLEP_PHASES

#define MINBLEP_PHASES   64

◆ SLOPE_DD_PULSE_LENGTH

#define SLOPE_DD_PULSE_LENGTH   71

◆ STEP_DD_PULSE_LENGTH

#define STEP_DD_PULSE_LENGTH   72

◆ XSYNTH_NUGGET_SIZE

#define XSYNTH_NUGGET_SIZE   64

Enumeration Type Documentation

◆ nekobee_voice_status

Enumerator
XSYNTH_VOICE_OFF 
XSYNTH_VOICE_ON 
XSYNTH_VOICE_SUSTAINED 
XSYNTH_VOICE_RELEASED 

Function Documentation

◆ nekobee_init_tables()

void nekobee_init_tables ( void )

◆ nekobee_voice_new()

nekobee_voice_t * nekobee_voice_new ( )

◆ nekobee_voice_note_off()

void nekobee_voice_note_off ( nekobee_synth_t * synth,
nekobee_voice_t * voice,
unsigned char key,
unsigned char rvelocity )

◆ nekobee_voice_note_on()

void nekobee_voice_note_on ( nekobee_synth_t * synth,
nekobee_voice_t * voice,
unsigned char key,
unsigned char velocity )

◆ nekobee_voice_off()

void nekobee_voice_off ( nekobee_voice_t * voice)
inlinestatic

◆ nekobee_voice_release_note()

void nekobee_voice_release_note ( nekobee_synth_t * synth,
nekobee_voice_t * voice )

◆ nekobee_voice_remove_held_key()

void nekobee_voice_remove_held_key ( nekobee_synth_t * synth,
unsigned char key )
inline

◆ nekobee_voice_render()

void nekobee_voice_render ( nekobee_synth_t * synth,
nekobee_voice_t * voice,
float * out,
unsigned long sample_count,
int do_control_update )

◆ nekobee_voice_set_ports()

void nekobee_voice_set_ports ( nekobee_synth_t * synth,
nekobee_patch_t * patch )

◆ nekobee_voice_start_voice()

void nekobee_voice_start_voice ( nekobee_voice_t * voice)
inlinestatic

◆ nekobee_voice_update_pressure_mod()

void nekobee_voice_update_pressure_mod ( nekobee_synth_t * synth,
nekobee_voice_t * voice )

Variable Documentation

◆ nekobee_pitch

float nekobee_pitch[128]
extern

◆ slope_dd_table

float slope_dd_table[]
extern

◆ step_dd_table

float_value_delta step_dd_table[]
extern