aboutsummaryrefslogtreecommitdiffstats
path: root/sound/synth/emux
diff options
context:
space:
mode:
authormaximilian attems <max@stro.at>2008-05-09 07:43:09 -0400
committerTakashi Iwai <tiwai@suse.de>2008-05-13 08:47:43 -0400
commitbf91141d3565b35fb2a44364bfb874a3be3c12b6 (patch)
treece935acdf57873608f1edf82670b8ec4da97140c /sound/synth/emux
parentc714a534d85576af21b06be605ca55cb2fb887ee (diff)
[ALSA] emux midi synthesizer doesn't honor SOFT_PEDAL-release event
When the hardware wavetable synthesizer of an Creative SB Audigy or SB Live! card (with emu10k chip) receives the MIDI SOFT_PEADAL-press event (?? 67 127) the appropriate voice is attenuted. Unfortunately when the pedal is released (event ?? 67 0) the voice does not get it's original volume again. Boolean MIDI controls should interpret 0..63 as false and 64..127 as true. Thanks to Clemens Ladisch for review and correction. Original patch from "Uwe Kraeger" <uwe_debbug@arcor.de> Submitted to http://bugs.debian.org/474312 Signed-off-by: maximilian attems <max@stro.at> Cc: uwe_debbug@arcor.de Cc: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/synth/emux')
-rw-r--r--sound/synth/emux/emux_synth.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/synth/emux/emux_synth.c b/sound/synth/emux/emux_synth.c
index 478369bb38c3..b343818dbb96 100644
--- a/sound/synth/emux/emux_synth.c
+++ b/sound/synth/emux/emux_synth.c
@@ -341,8 +341,12 @@ snd_emux_control(void *p, int type, struct snd_midi_channel *chan)
341 case MIDI_CTL_SOFT_PEDAL: 341 case MIDI_CTL_SOFT_PEDAL:
342#ifdef SNDRV_EMUX_USE_RAW_EFFECT 342#ifdef SNDRV_EMUX_USE_RAW_EFFECT
343 /* FIXME: this is an emulation */ 343 /* FIXME: this is an emulation */
344 snd_emux_send_effect(port, chan, EMUX_FX_CUTOFF, -160, 344 if (chan->control[type] >= 64)
345 snd_emux_send_effect(port, chan, EMUX_FX_CUTOFF, -160,
345 EMUX_FX_FLAG_ADD); 346 EMUX_FX_FLAG_ADD);
347 else
348 snd_emux_send_effect(port, chan, EMUX_FX_CUTOFF, 0,
349 EMUX_FX_FLAG_OFF);
346#endif 350#endif
347 break; 351 break;
348 352