Esempio n. 1
0
INLINE void StartSound(SPUCHAN * pChannel)
{
 StartADSR(pChannel);
 StartREVERB(pChannel);      
                          
 pChannel->pCurr=pChannel->pStart;                     // set sample start
                         
 pChannel->s_1=0;                                      // init mixing vars
 pChannel->s_2=0;
 pChannel->iSBPos=28;

 pChannel->bNew=0;                                     // init channel flags
 pChannel->bStop=0;                                   
 pChannel->bOn=1;

 pChannel->SB[29]=0;                                   // init our interpolation helpers
 pChannel->SB[30]=0;

 if(iUseInterpolation>=2)                              // gauss interpolation?
      {pChannel->spos=0x30000L;pChannel->SB[28]=0;}    // -> start with more decoding
 else {pChannel->spos=0x10000L;pChannel->SB[31]=0;}    // -> no/simple interpolation starts with one 44100 decoding
}
Esempio n. 2
0
INLINE void StartSound(int ch)
{
 StartADSR(ch);
 StartREVERB(ch);

 s_chan[ch].pCurr=s_chan[ch].pStart;                   // set sample start

 s_chan[ch].s_1=0;                                     // init mixing vars
 s_chan[ch].s_2=0;
 s_chan[ch].iSBPos=28;

 s_chan[ch].bNew=0;                                    // init channel flags
 s_chan[ch].bStop=0;
 s_chan[ch].bOn=1;

 s_chan[ch].SB[29]=0;                                  // init our interpolation helpers
 s_chan[ch].SB[30]=0;

 s_chan[ch].spos=0x10000L;s_chan[ch].SB[31]=0;  	   // -> no/simple interpolation starts with one 44100 decoding

 dwNewChannel&=~(1<<ch);                               // clear new channel bit
}
Esempio n. 3
0
INLINE void StartSound(int ch)
{
 StartADSR(ch);
 StartREVERB(ch);

 // fussy timing issues - do in VoiceOn
 //s_chan[ch].pCurr=s_chan[ch].pStart;                   // set sample start
 //s_chan[ch].bStop=0;
 //s_chan[ch].bOn=1;

 s_chan[ch].s_1=0;                                     // init mixing vars
 s_chan[ch].s_2=0;
 s_chan[ch].iSBPos=28;

 s_chan[ch].SB[29]=0;                                  // init our interpolation helpers
 s_chan[ch].SB[30]=0;

 if(iUseInterpolation>=2)                              // gauss interpolation?
      {s_chan[ch].spos=0x30000L;s_chan[ch].SB[28]=0;}  // -> start with more decoding
 else {s_chan[ch].spos=0x10000L;s_chan[ch].SB[31]=0;}  // -> no/simple interpolation starts with one 44100 decoding

 dwNewChannel&=~(1<<ch);                               // clear new channel bit
}