----- Original Message ----- From: "Christoph Reichenbach" <[EMAIL PROTECTED]> To: "Alexander R Angas" <[EMAIL PROTECTED]> Sent: Monday, September 24, 2001 1:37 AM Subject: Re: sci0_soundserver() questions > Hi Alex, > > > > In the SOUND_COMMAND_INIT_SONG switch case, what do these comments mean? > > /* set default reverb */ > > /* midi_reverb(-1); */ > > /* midi_allstop(); */ > > Hmm, my guess (they're not from me, IIRC) would be that they mean that we > should, at this point, disable reverb and stop all active notes, but > aren't doing so because the functionality for this hasn't been implemented > yet (and because no one has complained so far). > I'm not sure it this is relevant or even correct. Only way to try this out > would be to implement it and see if something sounds different. > > > > In SOUND_COMMAND_SET_MUTE, why should this never happen? > > I used to think that we'd need a mute command; apparently, we don't (SCI > probaly sets the volume to 0). Interestingly, kSound() indeed sends a MUTE > message- apparently, this command is never (or only very rarely) used. > > It's a missing feature, as far as I can tell. > > > > In SOUND_COMMAND_FADE_HANDLE, what does it mean if event.handle == 0x0000? > > Does this mean fade everything? > > "Fade current song". This was IIRC determined by experimenting and seems > to work fine. > > > I'm trying to work out the difference between newsong, song, and oldsong. > > Please correct me if I'm wrong: I think newsong is the currently playing > > song, oldsong is the last song that was played. I'm still not sure what song > > is - the currently playing song as well? > > This is quite confusing indeed. Again, I must apologize for the poor > quality of this code... anyway, here it goes: > > oldsong is either the current song, or, if the current song just changed, > the song we just abandoned. > > song is the currently playing song. > > newsong is either the currently playing song, or, temporarily, the new > song, if the current song just changed. > > This is crap, though- two song pointers should be sufficient. > > > In the 'Handle output' section, the first block of code checks if the song > > has been changed and sets up polyphony, etc. values. Why isn't this done in > > SOUND_COMMAND_INIT_SONG? Similarly for the last block of code in > > sci0_soundserver() where oldsong is compared to newsong. > > The reason for this is that there are other causes that might trigger a > song change, like the current song (or sound effect) running out and a > song with a lower priority (such as the background music) taking over. A > good example is casting a spell in the bear/kobold cave in HQ. > > > I hope I've been helpful. Please consider this with a small grain of salt, > as it's been a while since I last touched this code for any substantial > changes. > > llap, > Christoph > >
