Depending on your SoundCard and your CPU you may vary the parameters for samp_rate (eg. decreasing to 2M) and audio_samp_rate(eg. increasing to 96k)

The Frequency can be adjusted via the FFT Plot that opens when the script is started

FM Radio Broadcast

FM Broadcast can be illegal in your country depending on which frequency you broadcast. Be sure to check the local laws before broadcasting. It requires GNURadio, and either an extra antenna or broadcasting in the 2.4 Ghz band with the integrated antenna. It uses GNURadio Companion with the following flow graph:

The audio source has the device name pulse which means it will appear as a recording device for pulseaudio. It uses a sample rate of 48KHz, which is a common sample rate for an audio output. It could have been 44.1KHz. It's set in the audio_rate variable. The audio signal is passed to the WBFM Transmit module which gives the frequency modulated signal as the output. Its options Audio Rate and Quadrature Rate are the input sampling rate and the output sampling rate, respectively.

It then pass through the Rational Resampler Interpolation module that transforms its input signal INS in the output signal OUTS defined as OUTS=INS*(Interpolation/Decimation). It is used to transform our low frequency sample rate to one sample rate supported by the rad1o (it's defined in the samp_rate variable). The signal is then sent to the osmocom Sink (the rad1o) on the frequency specified in the variable frequency and piloted by a slider.

The sample rates supported by the rad1o can be listed using the hackrf_transfer command: