#include "emux_voice.h"
#include <sound/asoundef.h>
struct nrpn_conv_table { … };
#define FX_CUTOFF …
#define FX_RESONANCE …
#define FX_ATTACK …
#define FX_RELEASE …
#define FX_VIBRATE …
#define FX_VIBDEPTH …
#define FX_VIBDELAY …
#define FX_NUMS …
static int send_converted_effect(const struct nrpn_conv_table *table,
int num_tables,
struct snd_emux_port *port,
struct snd_midi_channel *chan,
int type, int val, int mode)
{ … }
#define DEF_FX_CUTOFF …
#define DEF_FX_RESONANCE …
#define DEF_FX_ATTACK …
#define DEF_FX_RELEASE …
#define DEF_FX_VIBRATE …
#define DEF_FX_VIBDEPTH …
#define DEF_FX_VIBDELAY …
static const int gs_sense[] = …;
static const int xg_sense[] = …;
static int fx_delay(int val);
static int fx_attack(int val);
static int fx_hold(int val);
static int fx_decay(int val);
static int fx_the_value(int val);
static int fx_twice_value(int val);
static int fx_conv_pitch(int val);
static int fx_conv_Q(int val);
#define fx_env1_delay …
#define fx_env1_attack …
#define fx_env1_hold …
#define fx_env1_decay …
#define fx_env1_release …
#define fx_env1_sustain …
#define fx_env1_pitch …
#define fx_env1_cutoff …
#define fx_env2_delay …
#define fx_env2_attack …
#define fx_env2_hold …
#define fx_env2_decay …
#define fx_env2_release …
#define fx_env2_sustain …
#define fx_lfo1_delay …
#define fx_lfo1_freq …
#define fx_lfo1_volume …
#define fx_lfo1_pitch …
#define fx_lfo1_cutoff …
#define fx_lfo2_delay …
#define fx_lfo2_freq …
#define fx_lfo2_pitch …
#define fx_init_pitch …
#define fx_chorus …
#define fx_reverb …
#define fx_cutoff …
#define fx_filterQ …
static int fx_delay(int val)
{ … }
static int fx_attack(int val)
{ … }
static int fx_hold(int val)
{ … }
static int fx_decay(int val)
{ … }
static int fx_the_value(int val)
{ … }
static int fx_twice_value(int val)
{ … }
static int fx_conv_pitch(int val)
{ … }
static int fx_conv_Q(int val)
{ … }
static const struct nrpn_conv_table awe_effects[] = …;
static int gs_cutoff(int val)
{ … }
static int gs_filterQ(int val)
{ … }
static int gs_attack(int val)
{ … }
static int gs_decay(int val)
{ … }
static int gs_release(int val)
{ … }
static int gs_vib_rate(int val)
{ … }
static int gs_vib_depth(int val)
{ … }
static int gs_vib_delay(int val)
{ … }
static const struct nrpn_conv_table gs_effects[] = …;
void
snd_emux_nrpn(void *p, struct snd_midi_channel *chan,
struct snd_midi_channel_set *chset)
{ … }
static int xg_cutoff(int val)
{ … }
static int xg_filterQ(int val)
{ … }
static int xg_attack(int val)
{ … }
static int xg_release(int val)
{ … }
static const struct nrpn_conv_table xg_effects[] = …;
int
snd_emux_xg_control(struct snd_emux_port *port, struct snd_midi_channel *chan,
int param)
{ … }
void
snd_emux_sysex(void *p, unsigned char *buf, int len, int parsed,
struct snd_midi_channel_set *chset)
{ … }