v76d / glfw: PlaySound() fails if channel > 21
Monkey Forums/Monkey Bug Reports/v76d / glfw: PlaySound() fails if channel > 21| 
 | ||
| This one seems to happen whether the compiler is msbuild or gcc, and happens with 3 different test samples I used (two ogg, and one short wav).  Code to reproduce: Replace "Go.wav" with anything. Docs state the sound machine has 32 channels, I'm only able to get PlaySound to work on 22. (Interestingly: 22 is 16 in Hex. Perhaps there is an implicit type conversion going on somewhere?) (Oh, and if this helps, my build system is Windows XP 32-bit) | 
| 
 | ||
| Have you tried the latest version of Monkey? It works fine here on Xp/Windows 7 with shoot.wav and tinkle.wav samples from the mak/audiotest banana. | 
| 
 | ||
| I'm experiencing the same problem on v76f on mak/audiotest  (I altered line 119 to allow it to go up to 32 channels).  Hmm, I wonder what's wrong. | 
| 
 | ||
| Can you try starting chan at '10' or something? Anyone else having this problem? | 
| 
 | ||
| Okay here it gets weirder.  On line 121 I changed what was there to this: If shoot_chan = 31 shoot_chan = 10 and adjusted the variables on line 13 to look like this: Field shoot:Sound, shoot_chan = 10, shoot_loop and the problem "went away". However, when I changed line 121 to set shoot_chan back to 0 again, the problem came back! Only this time, the channels where the samples weren't playing were 1-9! The localized code block which told me this was: PlaySound shoot, shoot_chan Print "shoot_chan: " + shoot_chan shoot_chan+=1 If shoot_chan = 31 shoot_chan = 0 that's extremely weird! Even weirder, the ChannelState for the silent channels appears to always be 1 after the failed attempt to play on them! (maybe a clue?) This occurs regardless of msbuild or gcc again, maybe it's related to how channels are allocated for playback somehow? | 
| 
 | ||
| Looks like your audio 'hardware' only has 22 channels - please try the version I just pushed to github. | 
| 
 | ||
| Fixed in 78a.  Thanks! |