I've uploaded Version 1.13 of freqgen to:

        http://healthalternative.freeyellow.com
and
        http://groups.yahoo.com/group/rifers/files

freqgen turns your PC into a frequency generator under
Windows 95/98/ME/NT/2000/XP.

freqgen is a "command line program".
The shortcuts are set up to run "freqgen -g -S".
This allows people who don't know what "command line program" means
to use freqgen with frequency data files that come with freqgen,
and to generate squarewaves to the best of your soundcard's ability.

freqgen uses your soundcard. The frequencies that are generated
are output from your soundcard's "line out" jack.
Older versions of freqgen used to support your PC's internal speaker,
but a PC's internal speaker has certain hardware limitations that cannot
be overcome via software. So I dropped support for the internal speaker.

Your PC, with freqgen and the hardware to turn the signal from
your soundcard into the right waveform/voltage, can be used either
to drive a Bare/Rife device, or as a pad/contact frequency device.

This software is free for non-commercial use.
If you want to include it in anything that you sell then
you have to license it from me first.

freqgen can be used in one of the four following ways:

   freqgen [X] -g
or
   freqgen [X] -f frequency_file [frequency_file [...]]
or
   freqgen [X] -s sweep_start,sweep_end,sweep_increment[,sweep_duration]
or
   freqgen [X] frequency[,duration] [frequency[,duration] [...]]

where [X] is:
   [[-b bracket] ...] [[-o offset] ...] [-v[lr] volume] [-V] [-r] [-S|-T]
   [[-e]|[-l frequency]|[-l=r]|[-P angle]] [-m MOR_output_file]
   [-p pulse_frequency[,pulse_duration]]

Options:
   "-g" uses a graphical means of selecting frequency files
   "-b bracket" outputs the specified frequencies by "+/-bracket"
       NOTE: this option can be repeated many times
       NOTE: a "bracket" of 0 means output the specified frequencies
   "-o offset" outputs the specified frequencies by "+offset"
       NOTE: "offset" can be negative
       NOTE: this option can be repeated many times
       NOTE: a "offset" of 0 means output the specified frequencies
   "-v[lr] volume" sets the volume of your sound card's output;
        possible values range from 0.0 (off) to 1.0 (full);
        default value is 0.5
        - if neither 'l' or 'r' are used then both channels are set
        - if 'l' used then you are setting the volume for the left channel
        - if 'r' used then you are setting the volume for the right channel
   "-V" prints version information
   "-e" means that you have frequency range extending hardware attached
       to the computer and tells freqgen to use the following protocol:
        - no sound on left speaker means use frequency from right speaker
        - 1000 Hz signal on left speaker means take frequency from
          the right speaker and divide it by 64
        - 18000 Hz signal on left speaker means take frequency from
          the right speaker and multiply it by 4
   "-l frequency" means that the left speaker is outputing 'frequency'
   "-l=r" means that the left speaker is outputing the same frequency
        as the right speaker
   "-P angle" outputs the same frequency on both speakers, but the left
        speaker's output is phase-shifted 'angle' degrees
        from the right speaker's output
   "-r" records a copy of the session (frequencies, durations, etc)
        in the file "session_DATE" where DATE is the current date/time
   "-S" generates a squarewave instead of a sinewave
       NOTE: what comes out of your soundcard won't be very square,
             but it might be better than nothing if you aren't using
             a waveshaper on the output of your soundcard
   "-T" generates a sawtooth wave instead of a sinewave
       NOTE: what comes out of your soundcard won't be very sawtoothish
   "-m MOR_output_file" reads input from the soundcard while frequencies
        are running, and after each frequency has run, appends the data
        to the MOR_output_file
   "-p pulse_frequency[,pulse_duration]" will cause the output to be
        pulsed/gated at "pulse_frequency" times per second
         - the minimum pulse frequency is 1; if you enter a smaller number
           then 1 is used as the pulse frequency
         - the minimum pulse frequency is 1000; if you enter a larger number
           then 1000 is used as the pulse frequency
         - only integral pulse frequencies are supported;
           if a decimal portion is entered then it is ignored
         - there might be unexpected interactions between this option
           and the "-e" option, depending on what the frequency extension
           hardware does when its controlling frequency is pulsed
         - if pulse_duration is specified then
             for [duration-pulse_duration] seconds the frequency is normal
             and is pulsed for the last [pulse_duration] seconds

NOTE: most soundcards support frequencies in the range 0-20000.
      For the ones that only support 20-20000 you have to use the
      "-e" option with the associated frequency range extention hardware

NOTE: if a duration is "X" seconds then the associated frequency will run
      for at least "X" seconds and no more than "X+1" seconds

NOTE: all durations are optional;
      if omitted then the default duration of 180 seconds is used

NOTE: while the frequencies are being generated use the following keys:
                 'q' to quit
                 's' to skip to next frequency in list
                 [down arrow] is the same as 's'
                 'p' to pause (eg. so people can take a washroom break)
                     - to resume press any key
                 'b' to go back one frequency
                 [up arrow] is the same as 'p'
                 'n' nuke'em; adds the current frequency plus
                     the following offsets to the frequency list,
                     with duration 180 seconds per frequency
                     -3, -2, -1, 1, 2, 3
                 'N' really nuke'em; adds the current frequency plus
                     the following offsets to the frequency list,
                     with duration 180 seconds per frequency
                     -3, -2, -1.5, -1, -0.75, -0.5, -0.25, -0.10, -0.05,
                     0.05, 0.10, 0.25, 0.5, 0.75, 1, 1.5, 2, 3
                 '+' add current frequency +1 Hz to the frequency list
                     with duration 180 seconds per frequency
                 '-' add current frequency -1 Hz to the frequency list
                     with duration 180 seconds per frequency

The "-o offset" and "-b bracket" options were added because of the
following information found in the "Consumer Guide To Rife Generators":

:In any pure culture there are always mutant strains,
:typically about 20% of the microbes present.
:These do not respond to the center frequency,
:but to a frequency of 1 to 2 hertz off the center.

In the cfl directory you'll find cfl.exe, which attempts to convert
Turf's Consolidated Frequency List to data files that can be used with
the -f and the -g options of freqgen.

The Consolidated Frequency List is located at:

   http://www.electroherbalism.com/Bioelectronics/Frequencies%20and%20Anecdotes/CAFL.htm

Use your browser to "Select All" text on the Consolidated Frequency List page,
and then "Copy" your selection to the clipboard.
Then start up notepad and "Paste" the text to an empty document,
and save the document with a reasonable name (eg. cfl.txt).
Run "cfl cfl.txt" to generate data files that can be used with freqgen.

Note that I've included a slightly changed version of Turf's list
as cfl_v010426.txt, that is better understood by cfl.exe than
the file that you get if you follow my above instructions.

Note also that I've already run cfl.exe to produce the data/* files.

The ability to run a frequency_file means that you can create a custom
session by simply opening notepad (or your favorite editor),
typing in all the frequency information, and saving the result as a text file.

The frequency_file format is as follows:

- You can have as many lines as you want
  (within the limits of your hardware).

- If a line starts with "#" then it is assumed to be a comment
  otherwise the line is assumed to be of form

     frequency[, duration]

  where the frequency is in Hertz and the duration is in seconds
  (and the duration is optional).

Here is what I'd like to do with this program, when I find the time:

 - add support for a configuration file
 - add "-d duty_cycle"
 - add "-D duty_cycle_calibration_file"
 - add "-L" option to generate ZZZ Hz until a key is pressed,
   and then continue with the rest of the specified frequencies
   - this would be useful when trying to get a plasma tube to light up
 - graphical user interface

History:
   January 15, 2002
        1.13 - added support for the following keys: [down arrow], [up arrow]
   October 18, 2001
        1.12 - output the comments and blank lines in correct sequence
   September 25, 2001
        1.11 - added support for the following keys: 'b', 'n', 'N', '+', '-'
             - ignore garbage lines/blank lines in frequency files
   September 1, 2001
        1.10 - changed "-p angle" to "-P angle"
             - added "-p pulse_frequency[,pulse_duration]" pulse the output
        1.09 - added "-T" to generate a sawtooth wave instead of a sinewave
   August 14, 2001
        1.08 - added "-m MOR_output_file"
               added "-g" (graphical means of selecting frequency files)
   August 12, 2001
        1.07 - added "-p angle" to output the same frequency on both
               speakers, but the left speaker's output is phase-shifted
               'angle' degrees from the right speaker's output
             - added "-S" to generate a squarewave instead of a sinewave
   August 5, 2001
        1.06 - added support for the following keys:
                 'q' quit
                 's' skip to next frequency in list
                 'p' pause (eg. so people can take a washroom break)
                     - to resume press any key (except 's' or 'q')
             - added the "-r" record session option
             - added the "-l left_frequency" left speaker frequency option
             - added the "-l=r" left speaker frequency option
   June 22, 2001
        1.05 - if a soundcard is present then assume that it can handle
               the data format that I want to send it
               - I do this because some soundcards incorrectly report
                 the data formats that they support
             - change "-v volume" to "-v[lr] volume"
             - changed frequency range limits to 0 Hz to 20000 Hz
               - some soundcards only support 20 Hz to 20000 Hz;
                 owners of those cards have to use the "-e" option
                 with the appropriate hardware
   June 7, 2001
        1.04 - when sweeping, if (end-start) not a multiple of increment
               then we now generate the end frequency
             - disable upper extension until the hardware supports it
   June 6, 2001
        1.03 - removed internal speaker support because
                  "Ralph Hartwell" <ralph.hartwell@w...> wrote:
                   > the output frequency steps in discrete increments
                   > instead of advancing in 1 Hz steps.  This error
                   > CANNOT BE CORRECTED by adding any software fix,
                   > since this is caused by the hardware inside
                   > the computer!!!
             - changed frequency range limits to 20 Hz to 20000 Hz
               unless "-e" is used
             - added "-e" (frequency range extension) support
               - currently extends bottom of range to 20/64 = 0.3125 Hz
                 and the top of the range to 20000*4 = 80000 Hz
               - requires special hardware that monitors the left speaker
                 - no signal means use range 20 Hz to 20000 Hz
                 - 1000 Hz signal means take frequency from right speaker
                   and divide it by 64
                 - 18000 Hz signal means take frequency from right speaker
                   and multiply it by 4
             - support downward sweeps (eg. from 200 to 100 in steps of 10)
             - support non-integral frequencies (eg. 2182.5 Hz)
             - support non-integral offsets (eg. 0.5 Hz)
   May 27, 2001
        1.02 - changed the version option from "-v" to "-V"
               - now also displays the copyright information
                 and an email address
             - added the "-o offset" option
             - added support for sound cards (if one is present)
               - "-i" (use the internal speaker)
               - "-v volume"
   May 8, 2001
        1.01 - added "-v" (display the version)
             - added support for the speaker under Windows 95/98/ME
   May 1, 2001
        1.00 - first public release
