[ALSA] Fix emu10k1 synth problems.
Modules: EMU10K1/EMU10K2 driver,Common EMU synth This patch fixes problems with voices cutting off or not sounding at all. Signed-off-by: Tim <tedon@rogers.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Родитель
aa92c4af15
Коммит
fc20773329
|
@ -241,7 +241,7 @@ lookup_voices(snd_emux_t *emu, emu10k1_t *hw, best_voice_t *best, int active_onl
|
|||
else if (state == SNDRV_EMUX_ST_RELEASED ||
|
||||
state == SNDRV_EMUX_ST_PENDING) {
|
||||
bp = best + V_RELEASED;
|
||||
#if 0
|
||||
#if 1
|
||||
val = snd_emu10k1_ptr_read(hw, CVCF_CURRENTVOL, vp->ch);
|
||||
if (! val)
|
||||
bp = best + V_OFF;
|
||||
|
@ -349,7 +349,7 @@ start_voice(snd_emux_voice_t *vp)
|
|||
}
|
||||
|
||||
/* channel to be silent and idle */
|
||||
snd_emu10k1_ptr_write(hw, DCYSUSV, ch, 0x0080);
|
||||
snd_emu10k1_ptr_write(hw, DCYSUSV, ch, 0x0000);
|
||||
snd_emu10k1_ptr_write(hw, VTFT, ch, 0x0000FFFF);
|
||||
snd_emu10k1_ptr_write(hw, CVCF, ch, 0x0000FFFF);
|
||||
snd_emu10k1_ptr_write(hw, PTRX, ch, 0);
|
||||
|
|
|
@ -171,7 +171,6 @@ snd_emux_note_off(void *p, int note, int vel, snd_midi_channel_t *chan)
|
|||
vp = &emu->voices[ch];
|
||||
if (STATE_IS_PLAYING(vp->state) &&
|
||||
vp->chan == chan && vp->key == note) {
|
||||
vp->time = emu->use_time++;
|
||||
vp->state = SNDRV_EMUX_ST_RELEASED;
|
||||
if (vp->ontime == jiffies) {
|
||||
/* if note-off is sent too shortly after
|
||||
|
|
Загрузка…
Ссылка в новой задаче