On Tue, Jul 26, 2005 at 11:52:55PM +0200, Johannes Koch wrote:
The pitch value was wrongly converted and has to be centered around zero.
Changelog
Fixed pitch bending in the alsa midi driver.
? patch.diff
Index: dlls/winmm/winealsa/midi.c
===
RCS file: /home/wine/wine/dlls/winmm/winealsa/midi.c,v
retrieving revision 1.16
diff -u -p -r1.16 midi.c
--- dlls/winmm/winealsa/midi.c27 Apr 2005 09:39:56 - 1.16
+++ dlls/winmm/winealsa/midi.c26 Jul 2005 21:31:05 -
@@ -833,7 +833,7 @@ static DWORD modData(WORD wDevID, DWORD
snd_seq_ev_set_controller(event, evt0x0F, d1, d2);
break;
case MIDI_CMD_BENDER:
- snd_seq_ev_set_pitchbend(event, evt0x0F, ((WORD)d1 7) |
(WORD)d2);
+ snd_seq_ev_set_pitchbend(event, evt0x0F, ((WORD)d2 7 |
(WORD)d1) - 0x2000);
This is not correct, you need extra ( ) around the 7, like this perhaps:
+ snd_seq_ev_set_pitchbend(event, evt0x0F, (((WORD)d2 7) |
(WORD)d1) - 0x2000);
Ciao, Marcus