Diff for /np2/sound/vermouth/midvoice.c between versions 1.1 and 1.5

version 1.1, 2003/10/16 17:58:13 version 1.5, 2007/12/29 12:56:22
Line 25 Line 25
   
 // ---- vibrate  // ---- vibrate
   
 static int vibrate_update(VOICE v) {  static int VERMOUTHCL vibrate_update(VOICE v) {
   
         int             depth;          int             depth;
         int             phase;          int             phase;
Line 52  static int vibrate_update(VOICE v) { Line 52  static int vibrate_update(VOICE v) {
         return((int)(step * (float)(1 << FREQ_SHIFT)));          return((int)(step * (float)(1 << FREQ_SHIFT)));
 }  }
   
 static SAMPLE resample_vibrate(VOICE v, SAMPLE dst, SAMPLE dstterm) {  static SAMPLE VERMOUTHCL resample_vibrate(VOICE v, SAMPLE dst,
                                                                                                                           SAMPLE dstterm) {
   
         SAMPLE  src;          SAMPLE  src;
         SAMPLE  dstbreak;          SAMPLE  dstbreak;
Line 95  static SAMPLE resample_vibrate(VOICE v,  Line 96  static SAMPLE resample_vibrate(VOICE v, 
                 } while(dstbreak < dstterm);                  } while(dstbreak < dstterm);
                 v->sampstep = step;                  v->sampstep = step;
         }          }
         v->vibrate.count = cnt - (dstterm - dst);          v->vibrate.count = cnt - (int)(dstterm - dst);
         do {          do {
                 RESAMPLING(dst, src, pos);                  RESAMPLING(dst, src, pos);
                 dst++;                  dst++;
Line 109  static SAMPLE resample_vibrate(VOICE v,  Line 110  static SAMPLE resample_vibrate(VOICE v, 
         return(dst);          return(dst);
 }  }
   
 static SAMPLE resample_vibloop(VOICE v, SAMPLE dst, SAMPLE dstterm) {  static SAMPLE VERMOUTHCL resample_vibloop(VOICE v, SAMPLE dst,
                                                                                                                           SAMPLE dstterm) {
   
         SAMPLE  src;          SAMPLE  src;
         SAMPLE  dstbreak;          SAMPLE  dstbreak;
Line 147  static SAMPLE resample_vibloop(VOICE v,  Line 149  static SAMPLE resample_vibloop(VOICE v, 
                 } while(dstbreak < dstterm);                  } while(dstbreak < dstterm);
                 v->sampstep = step;                  v->sampstep = step;
         }          }
         v->vibrate.count = cnt - (dstterm - dst);          v->vibrate.count = cnt - (int)(dstterm - dst);
         do {          do {
                 RESAMPLING(dst, src, pos);                  RESAMPLING(dst, src, pos);
                 dst++;                  dst++;
Line 161  static SAMPLE resample_vibloop(VOICE v,  Line 163  static SAMPLE resample_vibloop(VOICE v, 
         return(dst);          return(dst);
 }  }
   
 static SAMPLE resample_vibround(VOICE v, SAMPLE dst, SAMPLE dstterm) {  static SAMPLE VERMOUTHCL resample_vibround(VOICE v, SAMPLE dst,
                                                                                                                           SAMPLE dstterm) {
   
         SAMPLE  src;          SAMPLE  src;
         SAMPLE  dstbreak;          SAMPLE  dstbreak;
Line 212  rr_forward1:; Line 215  rr_forward1:;
                         dstbreak += cnt;                          dstbreak += cnt;
                 } while(dstbreak < dstterm);                  } while(dstbreak < dstterm);
         }          }
         v->vibrate.count = cnt - (dstterm - dst);          v->vibrate.count = cnt - (int)(dstterm - dst);
         do {          do {
                 RESAMPLING(dst, src, pos);                  RESAMPLING(dst, src, pos);
                 dst++;                  dst++;
Line 245  rr_backward1:; Line 248  rr_backward1:;
                         dstbreak += cnt;                          dstbreak += cnt;
                 } while(dstbreak < dstterm);                  } while(dstbreak < dstterm);
         }          }
         v->vibrate.count = cnt - (dstterm - dst);          v->vibrate.count = cnt - (int)(dstterm - dst);
         do {          do {
                 RESAMPLING(dst, src, pos);                  RESAMPLING(dst, src, pos);
                 dst++;                  dst++;
Line 269  rr_done: Line 272  rr_done:
   
 // ---- normal  // ---- normal
   
 static SAMPLE resample_normal(VOICE v, SAMPLE dst, SAMPLE dstterm) {  static SAMPLE VERMOUTHCL resample_normal(VOICE v, SAMPLE dst, SAMPLE dstterm) {
   
         SAMPLE  src;          SAMPLE  src;
         int             pos;          int             pos;
Line 298  static SAMPLE resample_normal(VOICE v, S Line 301  static SAMPLE resample_normal(VOICE v, S
         return(dst);          return(dst);
 }  }
   
 static SAMPLE resample_loop(VOICE v, SAMPLE dst, SAMPLE dstterm) {  static SAMPLE VERMOUTHCL resample_loop(VOICE v, SAMPLE dst, SAMPLE dstterm) {
   
         SAMPLE  src;          SAMPLE  src;
         int             pos;          int             pos;
Line 321  static SAMPLE resample_loop(VOICE v, SAM Line 324  static SAMPLE resample_loop(VOICE v, SAM
         return(dst);          return(dst);
 }  }
   
 static SAMPLE resample_round(VOICE v, SAMPLE dst, SAMPLE dstterm) {  static SAMPLE VERMOUTHCL resample_round(VOICE v, SAMPLE dst, SAMPLE dstterm) {
   
         SAMPLE  src;          SAMPLE  src;
         int             pos;          int             pos;
Line 376  rr_done: Line 379  rr_done:
   
 // ----  // ----
   
 int envlope_setphase(VOICE v, int phase) {  int VERMOUTHCL envlope_setphase(VOICE v, int phase) {
   
         do {          do {
                 if (phase >= 6) {                  if (phase >= 6) {
Line 402  int envlope_setphase(VOICE v, int phase) Line 405  int envlope_setphase(VOICE v, int phase)
         return(0);          return(0);
 }  }
   
 void envelope_updates(VOICE v) {  void VERMOUTHCL envelope_updates(VOICE v) {
   
         int             envl;          int             envl;
         int             envr;          int             envr;
Line 457  void envelope_updates(VOICE v) { Line 460  void envelope_updates(VOICE v) {
 }  }
   
 #if defined(ENABLE_TREMOLO)  #if defined(ENABLE_TREMOLO)
 static void tremolo_update(VOICE v) {  static void VERMOUTHCL tremolo_update(VOICE v) {
   
         int             depth;          int             depth;
         int             cnt;          int             cnt;
         int             vol;          int             vol;
           int             pos;
   
         depth = v->sample->tremolo_depth << 8;          depth = v->sample->tremolo_depth << 8;
         if (v->tremolo.sweepstep) {          if (v->tremolo.sweepstep) {
Line 476  static void tremolo_update(VOICE v) { Line 480  static void tremolo_update(VOICE v) {
         }          }
         v->tremolo.count += v->tremolo.step;          v->tremolo.count += v->tremolo.step;
         cnt = v->tremolo.count >> TRERATE_SHIFT;          cnt = v->tremolo.count >> TRERATE_SHIFT;
         vol = envsin12q[cnt & ((1 << (SINENT_BIT - 2)) - 1)];          pos = cnt & ((1 << (SINENT_BIT - 2)) - 1);
         if (cnt & (1 << (SINENT_BIT - 2))) {          if (cnt & (1 << (SINENT_BIT - 2))) {
                 vol = (1 << 12) - vol;                  pos ^= ((1 << (SINENT_BIT - 2)) - 1);
         }          }
           vol = envsin12q[pos];
         if (cnt & (1 << (SINENT_BIT - 1))) {          if (cnt & (1 << (SINENT_BIT - 1))) {
                 vol = 0 - vol;                  vol = 0 - vol;
         }          }
Line 514  static int envelope_update(VOICE v) { Line 519  static int envelope_update(VOICE v) {
   
 // ---- release  // ---- release
   
 static void mixrel_normal(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixrel_normal(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         int             samples;          int             samples;
         SINT32  voll;          SINT32  voll;
Line 523  static void mixrel_normal(VOICE v, SINT3 Line 529  static void mixrel_normal(VOICE v, SINT3
         SINT32  relr;          SINT32  relr;
         _SAMPLE s;          _SAMPLE s;
   
         samples = srcterm - src;          samples = (int)(srcterm - src);
         voll = v->envleft << RELBIT;          voll = v->envleft << RELBIT;
         rell = -(voll / samples);          rell = -(voll / samples);
         if (!rell) {          if (!rell) {
Line 548  static void mixrel_normal(VOICE v, SINT3 Line 554  static void mixrel_normal(VOICE v, SINT3
         } while(src < srcterm);          } while(src < srcterm);
 }  }
   
 static void mixrel_left(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixrel_left(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         SINT32  vol;          SINT32  vol;
         SINT32  rel;          SINT32  rel;
         _SAMPLE s;          _SAMPLE s;
   
         vol = v->envleft << RELBIT;          vol = v->envleft << RELBIT;
         rel = - (vol / (srcterm - src));          rel = - (vol / (int)(srcterm - src));
         if (!rel) {          if (!rel) {
                 rel = -1;                  rel = -1;
         }          }
Line 570  static void mixrel_left(VOICE v, SINT32  Line 577  static void mixrel_left(VOICE v, SINT32 
         } while(src < srcterm);          } while(src < srcterm);
 }  }
   
 static void mixrel_right(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixrel_right(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         mixrel_left(v, dst + 1, src, srcterm);          mixrel_left(v, dst + 1, src, srcterm);
 }  }
   
 static void mixrel_centre(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixrel_centre(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         SINT32  vol;          SINT32  vol;
         SINT32  rel;          SINT32  rel;
Line 583  static void mixrel_centre(VOICE v, SINT3 Line 592  static void mixrel_centre(VOICE v, SINT3
         SINT32  d;          SINT32  d;
   
         vol = v->envleft << RELBIT;          vol = v->envleft << RELBIT;
         rel = - (vol / (srcterm - src));          rel = - (vol / (int)(srcterm - src));
         if (!rel) {          if (!rel) {
                 rel = -1;                  rel = -1;
         }          }
Line 603  static void mixrel_centre(VOICE v, SINT3 Line 612  static void mixrel_centre(VOICE v, SINT3
   
 // ---- normal  // ---- normal
   
 static void mixnor_normal(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixnor_normal(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         SINT32  voll;          SINT32  voll;
         SINT32  volr;          SINT32  volr;
Line 619  static void mixnor_normal(VOICE v, SINT3 Line 629  static void mixnor_normal(VOICE v, SINT3
         } while(src < srcterm);          } while(src < srcterm);
 }  }
   
 static void mixnor_left(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixnor_left(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         SINT32  vol;          SINT32  vol;
         _SAMPLE s;          _SAMPLE s;
Line 632  static void mixnor_left(VOICE v, SINT32  Line 643  static void mixnor_left(VOICE v, SINT32 
         } while(src < srcterm);          } while(src < srcterm);
 }  }
   
 static void mixnor_right(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixnor_right(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         SINT32  vol;          SINT32  vol;
         _SAMPLE s;          _SAMPLE s;
Line 645  static void mixnor_right(VOICE v, SINT32 Line 657  static void mixnor_right(VOICE v, SINT32
         } while(src < srcterm);          } while(src < srcterm);
 }  }
   
 static void mixnor_centre(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixnor_centre(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         SINT32  vol;          SINT32  vol;
         _SAMPLE s;          _SAMPLE s;
Line 664  static void mixnor_centre(VOICE v, SINT3 Line 677  static void mixnor_centre(VOICE v, SINT3
   
 // ---- env  // ---- env
   
 static void mixenv_normal(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixenv_normal(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         int             cnt;          int             cnt;
         SINT32  voll;          SINT32  voll;
Line 701  static void mixenv_normal(VOICE v, SINT3 Line 715  static void mixenv_normal(VOICE v, SINT3
                 } while(srcbreak < srcterm);                  } while(srcbreak < srcterm);
         }          }
   
         v->envcount = cnt - (srcterm - src);          v->envcount = cnt - (int)(srcterm - src);
         do {          do {
                 s = *src++;                  s = *src++;
                 dst[0] += SAMPMULVOL(s, voll);                  dst[0] += SAMPMULVOL(s, voll);
Line 710  static void mixenv_normal(VOICE v, SINT3 Line 724  static void mixenv_normal(VOICE v, SINT3
         } while(src < srcterm);          } while(src < srcterm);
 }  }
   
 static void mixenv_left(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixenv_left(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         int             cnt;          int             cnt;
         SINT32  vol;          SINT32  vol;
Line 743  static void mixenv_left(VOICE v, SINT32  Line 758  static void mixenv_left(VOICE v, SINT32 
                 } while(srcbreak < srcterm);                  } while(srcbreak < srcterm);
         }          }
   
         v->envcount = cnt - (srcterm - src);          v->envcount = cnt - (int)(srcterm - src);
         do {          do {
                 s = *src++;                  s = *src++;
                 dst[0] += SAMPMULVOL(s, vol);                  dst[0] += SAMPMULVOL(s, vol);
Line 751  static void mixenv_left(VOICE v, SINT32  Line 766  static void mixenv_left(VOICE v, SINT32 
         } while(src < srcterm);          } while(src < srcterm);
 }  }
   
 static void mixenv_right(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixenv_right(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         mixenv_left(v, dst + 1, src, srcterm);          mixenv_left(v, dst + 1, src, srcterm);
 }  }
   
 static void mixenv_centre(VOICE v, SINT32 *dst, SAMPLE src, SAMPLE srcterm) {  static void VERMOUTHCL mixenv_centre(VOICE v, SINT32 *dst, SAMPLE src,
                                                                                                                           SAMPLE srcterm) {
   
         int             cnt;          int             cnt;
         SINT32  vol;          SINT32  vol;
Line 792  static void mixenv_centre(VOICE v, SINT3 Line 809  static void mixenv_centre(VOICE v, SINT3
                 } while(srcbreak < srcterm);                  } while(srcbreak < srcterm);
         }          }
   
         v->envcount = cnt - (srcterm - src);          v->envcount = cnt - (int)(srcterm - src);
         do {          do {
                 s = *src++;                  s = *src++;
                 d = SAMPMULVOL(s, vol);                  d = SAMPMULVOL(s, vol);
Line 812  static const RESPROC resproc[] = { Line 829  static const RESPROC resproc[] = {
 #endif  #endif
 };  };
   
 void voice_setphase(VOICE v, BYTE phase) {  void VERMOUTHCL voice_setphase(VOICE v, UINT8 phase) {
   
         int             proc;          int             proc;
         int             mode;          int             mode;
Line 843  static const MIXPROC mixproc[] = { Line 860  static const MIXPROC mixproc[] = {
                         mixenv_normal,  mixenv_left,    mixenv_right,   mixenv_centre,                          mixenv_normal,  mixenv_left,    mixenv_right,   mixenv_centre,
                         mixrel_normal,  mixrel_left,    mixrel_right,   mixrel_centre};                          mixrel_normal,  mixrel_left,    mixrel_right,   mixrel_centre};
   
 void voice_setmix(VOICE v) {  void VERMOUTHCL voice_setmix(VOICE v) {
   
         int             proc;          int             proc;
   

Removed from v.1.1  
changed lines
  Added in v.1.5


RetroPC.NET-CVS <cvs@retropc.net>