This only affects scanning, or specifically searching a range of frequencies.  I could hear it in the example from usage -f 118M:137M:25k.  For some reason the step changes as the loop executes so the frequencies look like:

118950000
118975000
119000000  ok to here
119257000
119282000
119307000
119332000
119357000
119382000
119407000
119432000
119457000
119482000
119507000
119532000
119789000
119814000
119839000
119864000

The frequencies should be at 25 KHz intervals.

I don't have a diff because I have several other changes in my version, but my frequency_range() now looks like:

void frequency_range(struct fm_state *fm, char *arg)
{
        char *start, *stop, *step;
        int i;
        int frst, frstp, frdelta;
        start = arg;
        stop = strchr(start, ':') + 1;
        stop[-1] = '\0';
        step = strchr(stop, ':') + 1;
        step[-1] = '\0';
        frst = (int)atofs(start);
        frstp = (int)atofs(stop);
        frdelta = (int)atofs(step);
        fprintf(stderr,"start: %i, stop: %i, step: %i\n",frst,frstp,frdelta);
// step was changing here somehow:
//      for(i=(int)atofs(start); i<=(int)atofs(stop); i+=(int)atofs(step))
        for (i=frst; i<=frstp; i+=frdelta)
        {
                fm->freqs[fm->freq_len] = (uint32_t)i;
                fm->freq_len++;
        }
        stop[-1] = ':';
        step[-1] = ':';
}

I added the fr* variables and used them in the loop.  It sounds better now that none of the frequencies are off.  I'm also logging and those frequencies look OK.

  Alan


-----
Radio Astronomy - the ultimate DX