taglinefilesource code
voice89drivers/sound/dev_table.hint (*kill_note) (int dev, int voice, int velocity);
voice90drivers/sound/dev_table.hint (*start_note) (int dev, int voice, int note, int velocity);
voice91drivers/sound/dev_table.hint (*set_instr) (int dev, int voice, int instr);
voice96drivers/sound/dev_table.hvoid (*aftertouch) (int dev, int voice, int pressure);
voice97drivers/sound/dev_table.hvoid (*controller) (int dev, int voice, int ctrl_num, int value);
voice98drivers/sound/dev_table.hvoid (*panning) (int dev, int voice, int value);
voice160drivers/sound/gus_wave.cstatic void     compute_and_set_volume (int voice, int volume, int ramp_time);
voice162drivers/sound/gus_wave.cstatic void     compute_volume (int voice, int volume);
voice329drivers/sound/gus_wave.cgus_select_voice (int voice)
voice331drivers/sound/gus_wave.cif (voice < 0 || voice > 31)
voice334drivers/sound/gus_wave.cOUTB (voice, u_Voice);
voice435drivers/sound/gus_wave.cgus_voice_init (int voice)
voice440drivers/sound/gus_wave.cgus_select_voice (voice);
voice447drivers/sound/gus_wave.cvoices[voice].panning = 0;
voice448drivers/sound/gus_wave.cvoices[voice].mode = 0;
voice449drivers/sound/gus_wave.cvoices[voice].orig_freq = 20000;
voice450drivers/sound/gus_wave.cvoices[voice].current_freq = 20000;
voice451drivers/sound/gus_wave.cvoices[voice].bender = 0;
voice452drivers/sound/gus_wave.cvoices[voice].bender_range = 200;
voice453drivers/sound/gus_wave.cvoices[voice].initial_volume = 0;
voice454drivers/sound/gus_wave.cvoices[voice].current_volume = 0;
voice455drivers/sound/gus_wave.cvoices[voice].loop_irq_mode = 0;
voice456drivers/sound/gus_wave.cvoices[voice].loop_irq_parm = 0;
voice457drivers/sound/gus_wave.cvoices[voice].volume_irq_mode = 0;
voice458drivers/sound/gus_wave.cvoices[voice].volume_irq_parm = 0;
voice459drivers/sound/gus_wave.cvoices[voice].env_phase = 0;
voice460drivers/sound/gus_wave.cvoices[voice].main_vol = 127;
voice461drivers/sound/gus_wave.cvoices[voice].patch_vol = 127;
voice462drivers/sound/gus_wave.cvoices[voice].expression_vol = 127;
voice466drivers/sound/gus_wave.cstep_envelope (int voice)
voice471drivers/sound/gus_wave.cif (voices[voice].mode & WAVE_SUSTAIN_ON && voices[voice].env_phase == 2)
voice477drivers/sound/gus_wave.cif (voices[voice].env_phase >= 5)
voice483drivers/sound/gus_wave.cgus_voice_init (voice);
voice487drivers/sound/gus_wave.cprev_vol = voices[voice].current_volume;
voice489drivers/sound/gus_wave.cphase = ++voices[voice].env_phase;
voice491drivers/sound/gus_wave.ccompute_volume (voice, voices[voice].midi_volume);
voice493drivers/sound/gus_wave.cvol = voices[voice].initial_volume * voices[voice].env_offset[phase] / 255;
voice494drivers/sound/gus_wave.crate = voices[voice].env_rate[phase];
voice497drivers/sound/gus_wave.cvoices[voice].volume_irq_mode = VMODE_ENVELOPE;
voice501drivers/sound/gus_wave.cstep_envelope (voice);  /* Continue with the next phase */
voice519drivers/sound/gus_wave.cvoices[voice].current_volume = vol;
voice523drivers/sound/gus_wave.cinit_envelope (int voice)
voice525drivers/sound/gus_wave.cvoices[voice].env_phase = -1;
voice526drivers/sound/gus_wave.cvoices[voice].current_volume = 64;
voice528drivers/sound/gus_wave.cstep_envelope (voice);
voice532drivers/sound/gus_wave.cstart_release (int voice)
voice537drivers/sound/gus_wave.cvoices[voice].env_phase = 2;  /* Will be incremented by step_envelope */
voice539drivers/sound/gus_wave.cvoices[voice].current_volume =
voice540drivers/sound/gus_wave.cvoices[voice].initial_volume =
voice543drivers/sound/gus_wave.cvoices[voice].mode &= ~WAVE_SUSTAIN_ON;
voice545drivers/sound/gus_wave.cstep_envelope (voice);
voice549drivers/sound/gus_wave.cgus_voice_fade (int voice)
voice551drivers/sound/gus_wave.cint             instr_no = sample_map[voice], is16bits;
voice561drivers/sound/gus_wave.cif (voices[voice].mode & WAVE_ENVELOPES)
voice563drivers/sound/gus_wave.cstart_release (voice);
voice574drivers/sound/gus_wave.cgus_voice_init (voice);
voice581drivers/sound/gus_wave.cvoices[voice].volume_irq_mode = VMODE_HALT;
voice793drivers/sound/gus_wave.cguswave_set_instr (int dev, int voice, int instr_no)
voice800drivers/sound/gus_wave.cif (voice < 0 || voice > 31)
voice804drivers/sound/gus_wave.cpatch_map[voice] = -1;
voice808drivers/sound/gus_wave.cprintk ("GUS: Undefined patch %d for voice %d\n", instr_no, voice);
voice814drivers/sound/gus_wave.cprintk ("GUS: Sample #%d not loaded for patch %d (voice %d)\n", sample_no, instr_no, voice);
voice818drivers/sound/gus_wave.csample_map[voice] = sample_no;
voice819drivers/sound/gus_wave.cpatch_map[voice] = instr_no;
voice824drivers/sound/gus_wave.cguswave_kill_note (int dev, int voice, int velocity)
voice829drivers/sound/gus_wave.cgus_select_voice (voice);
voice830drivers/sound/gus_wave.cgus_voice_fade (voice);
voice837drivers/sound/gus_wave.cguswave_aftertouch (int dev, int voice, int pressure)
voice844drivers/sound/gus_wave.cif (voice < 0 || voice > 31)
voice847drivers/sound/gus_wave.cif (voices[voice].mode & WAVE_ENVELOPES && voices[voice].env_phase != 2)
voice853drivers/sound/gus_wave.cgus_select_voice (voice);
voice855drivers/sound/gus_wave.ccompute_and_set_volume (voice, 255, 0);  /* Back to original volume */
voice860drivers/sound/gus_wave.chi_limit = voices[voice].current_volume;
voice866drivers/sound/gus_wave.cgus_select_voice (voice);
voice879drivers/sound/gus_wave.cguswave_panning (int dev, int voice, int value)
voice881drivers/sound/gus_wave.cif (voice >= 0 || voice < 32)
voice882drivers/sound/gus_wave.cvoices[voice].panning = value;
voice886drivers/sound/gus_wave.ccompute_volume (int voice, int volume)
voice890drivers/sound/gus_wave.cvoices[voice].midi_volume = volume;
voice895drivers/sound/gus_wave.cvoices[voice].initial_volume =
voice896drivers/sound/gus_wave.cgus_adagio_vol (volume, voices[voice].main_vol,
voice897drivers/sound/gus_wave.cvoices[voice].expression_vol,
voice898drivers/sound/gus_wave.cvoices[voice].patch_vol);
voice902drivers/sound/gus_wave.cvoices[voice].initial_volume = volume_base + (volume * volume_scale);
voice906drivers/sound/gus_wave.cif (voices[voice].initial_volume > 4095)
voice907drivers/sound/gus_wave.cvoices[voice].initial_volume = 4095;
voice911drivers/sound/gus_wave.ccompute_and_set_volume (int voice, int volume, int ramp_time)
voice915drivers/sound/gus_wave.ccompute_volume (voice, volume);
voice916drivers/sound/gus_wave.cvoices[voice].current_volume = voices[voice].initial_volume;
voice919drivers/sound/gus_wave.ctarget = voices[voice].initial_volume;
voice959drivers/sound/gus_wave.cdynamic_volume_change (int voice)
voice965drivers/sound/gus_wave.cgus_select_voice (voice);
voice972drivers/sound/gus_wave.cif (!(voices[voice].mode & WAVE_ENVELOPES))
voice974drivers/sound/gus_wave.ccompute_and_set_volume (voice, voices[voice].midi_volume, 1);
voice983drivers/sound/gus_wave.cgus_select_voice (voice);
voice989drivers/sound/gus_wave.ccompute_and_set_volume (voice, voices[voice].midi_volume, 1);
voice993drivers/sound/gus_wave.cif (voices[voice].env_phase < 0)
voice996drivers/sound/gus_wave.ccompute_volume (voice, voices[voice].midi_volume);
voice999drivers/sound/gus_wave.cvoices[voice].current_volume =
voice1002drivers/sound/gus_wave.cvoices[voice].env_phase--;
voice1003drivers/sound/gus_wave.cstep_envelope (voice);
voice1008drivers/sound/gus_wave.cguswave_controller (int dev, int voice, int ctrl_num, int value)
voice1013drivers/sound/gus_wave.cif (voice < 0 || voice > 31)
voice1019drivers/sound/gus_wave.cvoices[voice].bender = value;
voice1020drivers/sound/gus_wave.cfreq = compute_finetune (voices[voice].orig_freq, value, voices[voice].bender_range);
voice1021drivers/sound/gus_wave.cvoices[voice].current_freq = freq;
voice1024drivers/sound/gus_wave.cgus_select_voice (voice);
voice1030drivers/sound/gus_wave.cvoices[voice].bender_range = value;
voice1035drivers/sound/gus_wave.cvoices[voice].expression_vol = value;
voice1036drivers/sound/gus_wave.cdynamic_volume_change (voice);
voice1041drivers/sound/gus_wave.cvoices[voice].main_vol = value;
voice1042drivers/sound/gus_wave.cdynamic_volume_change (voice);
voice1051drivers/sound/gus_wave.cguswave_start_note (int dev, int voice, int note_num, int volume)
voice1058drivers/sound/gus_wave.cif (voice < 0 || voice > 31)
voice1066drivers/sound/gus_wave.cif (voices[voice].mode & WAVE_ENVELOPES)
voice1068drivers/sound/gus_wave.cvoices[voice].midi_volume = volume;
voice1069drivers/sound/gus_wave.cdynamic_volume_change (voice);
voice1073drivers/sound/gus_wave.ccompute_and_set_volume (voice, volume, 1);
voice1077drivers/sound/gus_wave.cif ((patch = patch_map[voice]) == -1)
voice1122drivers/sound/gus_wave.cvoices[voice].mode = samples[sample].mode;
voice1123drivers/sound/gus_wave.cvoices[voice].patch_vol = samples[sample].volume;
voice1125drivers/sound/gus_wave.cif (voices[voice].mode & WAVE_ENVELOPES)
voice1131drivers/sound/gus_wave.cvoices[voice].env_rate[i] = samples[sample].env_rate[i];
voice1132drivers/sound/gus_wave.cvoices[voice].env_offset[i] = samples[sample].env_offset[i];
voice1136drivers/sound/gus_wave.csample_map[voice] = sample;
voice1143drivers/sound/gus_wave.cvoices[voice].orig_freq = freq;
voice1150drivers/sound/gus_wave.cfreq = compute_finetune (voices[voice].orig_freq, voices[voice].bender, voices[voice].bender_range);
voice1151drivers/sound/gus_wave.cvoices[voice].current_freq = freq;
voice1153drivers/sound/gus_wave.cpan = (samples[sample].panning + voices[voice].panning) / 32;
voice1173drivers/sound/gus_wave.cgus_select_voice (voice);
voice1176drivers/sound/gus_wave.cif (voices[voice].mode & WAVE_ENVELOPES)
voice1178drivers/sound/gus_wave.ccompute_volume (voice, volume);
voice1179drivers/sound/gus_wave.cinit_envelope (voice);
voice1182drivers/sound/gus_wave.ccompute_and_set_volume (voice, volume, 0);
voice1209drivers/sound/gus_wave.cvoices[voice].loop_irq_mode = LMODE_FINISH;  /* Ramp it down at the
voice1211drivers/sound/gus_wave.cvoices[voice].loop_irq_parm = 1;
voice1509drivers/sound/gus_wave.cint             voice, cmd;
voice1514drivers/sound/gus_wave.cvoice = event[3];
voice1524drivers/sound/gus_wave.cgus_select_voice (voice);
voice1530drivers/sound/gus_wave.cguswave_set_instr (dev, voice, p1);
voice1535drivers/sound/gus_wave.cgus_select_voice (voice);
voice1543drivers/sound/gus_wave.cgus_select_voice (voice);
voice1550drivers/sound/gus_wave.cgus_select_voice (voice);
voice1551drivers/sound/gus_wave.cgus_voice_fade (voice);
voice1557drivers/sound/gus_wave.cgus_select_voice (voice);
voice1565drivers/sound/gus_wave.cgus_select_voice (voice);
voice1572drivers/sound/gus_wave.cgus_select_voice (voice);
voice1579drivers/sound/gus_wave.cgus_select_voice (voice);
voice1585drivers/sound/gus_wave.cvoices[voice].initial_volume =
voice1586drivers/sound/gus_wave.cvoices[voice].current_volume = p1;
voice1590drivers/sound/gus_wave.cif (voices[voice].mode & WAVE_ENVELOPES)
voice1593drivers/sound/gus_wave.cgus_select_voice (voice);
voice1599drivers/sound/gus_wave.cif (voices[voice].mode & WAVE_ENVELOPES)
voice1602drivers/sound/gus_wave.cgus_select_voice (voice);
voice1608drivers/sound/gus_wave.cif (voices[voice].mode & WAVE_ENVELOPES)
voice1611drivers/sound/gus_wave.cgus_select_voice (voice);
voice1618drivers/sound/gus_wave.cif (voices[voice].mode & WAVE_ENVELOPES)
voice1621drivers/sound/gus_wave.cgus_select_voice (voice);
voice1628drivers/sound/gus_wave.cif (voices[voice].mode & WAVE_ENVELOPES)
voice1631drivers/sound/gus_wave.cgus_select_voice (voice);
voice2361drivers/sound/gus_wave.cdo_loop_irq (int voice)
voice2368drivers/sound/gus_wave.cgus_select_voice (voice);
voice2374drivers/sound/gus_wave.cmode = voices[voice].loop_irq_mode;
voice2375drivers/sound/gus_wave.cvoices[voice].loop_irq_mode = 0;
voice2376drivers/sound/gus_wave.cparm = voices[voice].loop_irq_parm;
voice2387drivers/sound/gus_wave.cgus_voice_init (voice);
voice2393drivers/sound/gus_wave.cvoices[voice].volume_irq_mode = VMODE_HALT;
voice2428drivers/sound/gus_wave.cdo_volume_irq (int voice)
voice2436drivers/sound/gus_wave.cgus_select_voice (voice);
voice2442drivers/sound/gus_wave.cmode = voices[voice].volume_irq_mode;
voice2443drivers/sound/gus_wave.cvoices[voice].volume_irq_mode = 0;
voice2444drivers/sound/gus_wave.cparm = voices[voice].volume_irq_parm;
voice2449drivers/sound/gus_wave.cgus_voice_init (voice);
voice2454drivers/sound/gus_wave.cstep_envelope (voice);
voice2469drivers/sound/gus_wave.cunsigned char   src, voice;
voice2474drivers/sound/gus_wave.cvoice = src & 0x1f;
voice2480drivers/sound/gus_wave.cvoice_bit = 1 << voice;
voice2483drivers/sound/gus_wave.cif (!(wave_ignore & voice_bit) && voice < nr_voices)  /* Not done yet */
voice2486drivers/sound/gus_wave.cdo_loop_irq (voice);
voice2490drivers/sound/gus_wave.cif (!(volume_ignore & voice_bit) && voice < nr_voices)  /* Not done yet */
voice2493drivers/sound/gus_wave.cdo_volume_irq (voice);
voice79drivers/sound/opl3.cstatic int      opl3_kill_note (int dev, int voice, int velocity);
voice237drivers/sound/opl3.copl3_kill_note (int dev, int voice, int velocity)
voice241drivers/sound/opl3.cif (voice < 0 || voice >= nr_voices)
voice244drivers/sound/opl3.cmap = &physical_voices[logical_voices[voice]];
voice246drivers/sound/opl3.cDEB (printk ("Kill note %d\n", voice));
voice251drivers/sound/opl3.copl3_command (map->ioaddr, KEYON_BLOCK + map->voice_num, voices[voice].keyon_byte & ~0x20);
voice253drivers/sound/opl3.cvoices[voice].keyon_byte = 0;
voice254drivers/sound/opl3.cvoices[voice].bender = 0;
voice255drivers/sound/opl3.cvoices[voice].bender_range = 200;  /* 200 cents = 2 semitones */
voice256drivers/sound/opl3.cvoices[voice].orig_freq = 0;
voice257drivers/sound/opl3.cvoices[voice].current_freq = 0;
voice258drivers/sound/opl3.cvoices[voice].mode = 0;
voice283drivers/sound/opl3.copl3_set_instr (int dev, int voice, int instr_no)
voice285drivers/sound/opl3.cif (voice < 0 || voice >= nr_voices)
voice291drivers/sound/opl3.cactive_instrument[voice] = &instrmap[instr_no];
voice339drivers/sound/opl3.cset_voice_volume (int voice, int volume)
voice345drivers/sound/opl3.cif (voice < 0 || voice >= nr_voices)
voice348drivers/sound/opl3.cmap = &physical_voices[logical_voices[voice]];
voice350drivers/sound/opl3.cinstr = active_instrument[voice];
voice358drivers/sound/opl3.cif (voices[voice].mode == 0)
voice361drivers/sound/opl3.cif (voices[voice].mode == 2)
voice429drivers/sound/opl3.copl3_start_note (int dev, int voice, int note, int volume)
voice436drivers/sound/opl3.cif (voice < 0 || voice >= nr_voices)
voice439drivers/sound/opl3.cmap = &physical_voices[logical_voices[voice]];
voice446drivers/sound/opl3.cset_voice_volume (voice, volume);
voice462drivers/sound/opl3.cinstr = active_instrument[voice];
voice471drivers/sound/opl3.cvoice);
voice553drivers/sound/opl3.cvoices[voice].mode = voice_mode;
voice555drivers/sound/opl3.cset_voice_volume (voice, volume);
voice557drivers/sound/opl3.cfreq = voices[voice].orig_freq = note_to_freq (note) / 1000;
voice564drivers/sound/opl3.cfreq = compute_finetune (voices[voice].orig_freq, voices[voice].bender, voices[voice].bender_range);
voice565drivers/sound/opl3.cvoices[voice].current_freq = freq;
voice575drivers/sound/opl3.cvoices[voice].keyon_byte = data;
voice747drivers/sound/opl3.copl3_panning (int dev, int voice, int pressure)
voice758drivers/sound/opl3.copl3_aftertouch (int dev, int voice, int pressure)
voice764drivers/sound/opl3.cif (voice < 0 || voice >= nr_voices)
voice767drivers/sound/opl3.cmap = &physical_voices[logical_voices[voice]];
voice769drivers/sound/opl3.cDEB (printk ("Aftertouch %d\n", voice));
voice778drivers/sound/opl3.cinstr = active_instrument[voice];
voice783drivers/sound/opl3.cif (voices[voice].mode == 4)
voice824drivers/sound/opl3.copl3_controller (int dev, int voice, int ctrl_num, int value)
voice830drivers/sound/opl3.cif (voice < 0 || voice >= nr_voices)
voice833drivers/sound/opl3.cmap = &physical_voices[logical_voices[voice]];
voice841drivers/sound/opl3.cvoices[voice].bender = value;
voice844drivers/sound/opl3.cif (!(voices[voice].keyon_byte & 0x20))
voice847drivers/sound/opl3.cfreq = compute_finetune (voices[voice].orig_freq, voices[voice].bender, voices[voice].bender_range);
voice848drivers/sound/opl3.cvoices[voice].current_freq = freq;
voice857drivers/sound/opl3.cvoices[voice].keyon_byte = data;
voice862drivers/sound/opl3.cvoices[voice].bender_range = value;
voice645include/linux/soundcard.h#define SEQ_START_NOTE(dev, voice, note, vol)  {_SEQ_NEEDBUF(8);\
voice649include/linux/soundcard.h_seqbuf[_seqbufptr+3] = (voice);\
voice656include/linux/soundcard.h#define SEQ_STOP_NOTE(dev, voice, note, vol)  {_SEQ_NEEDBUF(8);\
voice660include/linux/soundcard.h_seqbuf[_seqbufptr+3] = (voice);\
voice667include/linux/soundcard.h#define SEQ_CHN_PRESSURE(dev, voice, pressure)  {_SEQ_NEEDBUF(8);\
voice671include/linux/soundcard.h_seqbuf[_seqbufptr+3] = (voice);\
voice678include/linux/soundcard.h#define SEQ_PANNING(dev, voice, pos)  {_SEQ_NEEDBUF(8);\
voice682include/linux/soundcard.h_seqbuf[_seqbufptr+3] = (voice);\
voice689include/linux/soundcard.h#define SEQ_CONTROL(dev, voice, controller, value)  {_SEQ_NEEDBUF(8);\
voice693include/linux/soundcard.h_seqbuf[_seqbufptr+3] = (voice);\
voice699include/linux/soundcard.h#define SEQ_PITCHBEND(dev, voice, value) SEQ_CONTROL(dev, voice, CTRL_PITCH_BENDER, value)
voice700include/linux/soundcard.h#define SEQ_BENDER_RANGE(dev, voice, value) SEQ_CONTROL(dev, voice, CTRL_PITCH_BENDER_RANGE, value)
voice701include/linux/soundcard.h#define SEQ_EXPRESSION(dev, voice, value) SEQ_CONTROL(dev, voice, CTRL_EXPRESSION, value)
voice702include/linux/soundcard.h#define SEQ_MAIN_VOLUME(dev, voice, value) SEQ_CONTROL(dev, voice, CTRL_MAIN_VOLUME, value)
voice710include/linux/soundcard.h#define SEQ_SET_PATCH(dev, voice, patch)  {_SEQ_NEEDBUF(8);\
voice714include/linux/soundcard.h_seqbuf[_seqbufptr+3] = (voice);\
voice92include/linux/ultrasound.h#define _GUS_CMD(chn, voice, cmd, p1, p2) \
voice95include/linux/ultrasound.h_seqbuf[_seqbufptr+3] = voice;\
voice101include/linux/ultrasound.h#define GUS_VOICESAMPLE(chn, voice, p1)    _GUS_CMD(chn, voice, _GUS_VOICESAMPLE, (p1), 0)  /* OBSOLETE */
voice102include/linux/ultrasound.h#define GUS_VOICEON(chn, voice, p1)    _GUS_CMD(chn, voice, _GUS_VOICEON, (p1), 0)
voice103include/linux/ultrasound.h#define GUS_VOICEOFF(chn, voice)    _GUS_CMD(chn, voice, _GUS_VOICEOFF, 0, 0)
voice104include/linux/ultrasound.h#define GUS_VOICEFADE(chn, voice)    _GUS_CMD(chn, voice, _GUS_VOICEFADE, 0, 0)
voice105include/linux/ultrasound.h#define GUS_VOICEMODE(chn, voice, p1)    _GUS_CMD(chn, voice, _GUS_VOICEMODE, (p1), 0)
voice106include/linux/ultrasound.h#define GUS_VOICEBALA(chn, voice, p1)    _GUS_CMD(chn, voice, _GUS_VOICEBALA, (p1), 0)
voice107include/linux/ultrasound.h#define GUS_VOICEFREQ(chn, voice, p)    _GUS_CMD(chn, voice, _GUS_VOICEFREQ, \
voice109include/linux/ultrasound.h#define GUS_VOICEVOL(chn, voice, p1)    _GUS_CMD(chn, voice, _GUS_VOICEVOL, (p1), 0)
voice110include/linux/ultrasound.h#define GUS_VOICEVOL2(chn, voice, p1)    _GUS_CMD(chn, voice, _GUS_VOICEVOL2, (p1), 0)
voice111include/linux/ultrasound.h#define GUS_RAMPRANGE(chn, voice, low, high)  _GUS_CMD(chn, voice, _GUS_RAMPRANGE, (low), (high))
voice112include/linux/ultrasound.h#define GUS_RAMPRATE(chn, voice, p1, p2)  _GUS_CMD(chn, voice, _GUS_RAMPRATE, (p1), (p2))
voice113include/linux/ultrasound.h#define GUS_RAMPMODE(chn, voice, p1)    _GUS_CMD(chn, voice, _GUS_RAMPMODE, (p1), 0)
voice114include/linux/ultrasound.h#define GUS_RAMPON(chn, voice, p1)    _GUS_CMD(chn, voice, _GUS_RAMPON, (p1), 0)
voice115include/linux/ultrasound.h#define GUS_RAMPOFF(chn, voice)      _GUS_CMD(chn, voice, _GUS_RAMPOFF, 0, 0)
voice116include/linux/ultrasound.h#define GUS_VOLUME_SCALE(chn, voice, p1, p2)  _GUS_CMD(chn, voice, _GUS_VOLUME_SCALE, (p1), (p2))