Changeset 140:86cc22a8ed64 in roaraudio


Ignore:
Timestamp:
07/14/08 13:36:45 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

logscale parameter should ne float not int tu support 1/x-scaling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roarclients/roarfilt.c

    r130 r140  
    4444} 
    4545 
    46 void logs2 (void * data, int scale, int len) { 
     46void logs2 (void * data, float scale, int len) { 
    4747 int16_t * samples = (int16_t *) data; 
    4848 int i; 
    4949 float div = logf(scale); 
    50  int scalemul = scale - 1; 
     50 float scalemul = scale - 1; 
    5151 int neg; 
    5252 
    5353 len /= 2; 
    5454 
    55  printf("logs2(data=%p, scale=%i, len=%i): scalemul=%i, div=%f\n", data, scale, len, scalemul, div); 
     55 //printf("logs2(data=%p, scale=%f, len=%i): scalemul=%f, div=%f\n", data, scale, len, scalemul, div); 
    5656 
    5757 for (i = 0; i < len; i++) { 
     
    6060 
    6161 
    62   samples[i] = (neg ? 32768.0 : 32767.0)*logf(1 + ((float)scalemul*samples[i]/(neg ? 32768.0 : 32767.0))) / div; 
     62  samples[i] = (neg ? 32768.0 : 32767.0)*logf(1 + (scalemul*(float)samples[i]/(neg ? 32768.0 : 32767.0))) / div; 
    6363 
    6464  if ( neg ) 
     
    7777 int    i; 
    7878 int    mul = 1, div = 1; 
    79  int    logscale = 0; 
     79 float  logscale = 0; 
    8080 char buf[BUFSIZE]; 
    8181 
     
    102102   div  = atoi(argv[++i]); 
    103103  } else if ( strcmp(k, "--log") == 0 ) { 
    104    logscale = atoi(argv[++i]); 
     104   logscale = atof(argv[++i]); 
    105105  } else if ( strcmp(k, "--help") == 0 ) { 
    106106   usage(); 
Note: See TracChangeset for help on using the changeset viewer.