Commit bf91141d3565b35fb2a44364bfb874a3be3c12b6

Authored by maximilian attems
Committed by Takashi Iwai
1 parent c714a534d8

[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>

Showing 1 changed file with 5 additions and 1 deletions Side-by-side Diff

sound/synth/emux/emux_synth.c
... ... @@ -341,8 +341,12 @@
341 341 case MIDI_CTL_SOFT_PEDAL:
342 342 #ifdef SNDRV_EMUX_USE_RAW_EFFECT
343 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 346 EMUX_FX_FLAG_ADD);
  347 + else
  348 + snd_emux_send_effect(port, chan, EMUX_FX_CUTOFF, 0,
  349 + EMUX_FX_FLAG_OFF);
346 350 #endif
347 351 break;
348 352