JMPX
A software-based FM stereo encoder.
If you have a sound card that is fast enough, (192000Hz ideally) you can encode a stereo signal to modulate a simple FM transmitter to broadcast in stereo. that's pretty much what this program I wrote does. The program runs on Windows or Linux. Figure 1 shows a screenshot of the program.

Figure 1: Screenshot program on Linux.
Figure 2 shows a block diagram of the software, and figure 3 a block diagram of how the FM stereo encoder part works. Listing 1 shows the main routine of the code.

Figure 2: A block diagram of JMPX.

Figure 3: A block diagram of the stereo encoder.

Listing 1: Main routine of the code. This must be run 192,000 times a second!!!
Although quite a simple program, I decided to investigate and write down how to write a pre-emphasis (preemp) filter for FM radio. It makes interesting reading, and even if you can only understand a fraction of it, then it's well worth the read. Also it's interesting to note what sort of amount of effort goes into understanding just a little of something. You can read the document here at http://wwwjontio.zapto.org/download/preempiir.pdf. If after reading that you want to employ me to be your DSP engineer you've got my e-mail address.
Of course, to use this program your soundcard will need to be able to, as a bare minimum do 96000Hz sample rate and still be able to select 192000Hz. My motherboard is a Gigabyte GA-MA785GMT-UD2H. I use the inbuilt soundcard which is supposed to be able to do 192000Hz. However, on Linux I have no problem and it will do this, but on Windows XP I'm only able to get it up to 96000Hz even though I can still select 192000Hz it just downsamples.
I also suggest you take a look at
JQAM if you have
not already. It's a far more complicated program and it does some way more
cooler stuff than JMPX.
Note that QT4 libraries are needed from Nokia. They can be found at
http://qt.nokia.com/downloads/downloads#lgpl. If you run Windows and don't
have them and don't want to download the full library from Nokia, then just the
ones necessary can be downloaded from the
JQAM download
section under QT4 libraries needed for JQAMv3.
I have included the source which is the most reliable way to get it working on Linux. Also I've compiled the Linux binary version with 4.5.3 QT lib instead of 4.6 which seems to help compatibility wise. The Linux version also has Jack support. The handy thing about Jack with this application is the flexibility. Below is a screenshot of me using Jack to send the output of music from Audacious2 to JMPX then to the FM transmitter (Just one soundcard).

Figure 4: Using JMPX, Audacious2 and Jack to transmit FM Stereo music using one
soundcard.
JMPX downloads.
JMPX Version 1 source (11/6/10)
JMPXEncoder
Source
JMPX Version 1 32bit Windows binary (24/4/10)
JMPXEncoderV1.zip
JMPX Version 1 32bit Linux binary (Mandriva 2010 wt Qt4.5.3) (19/6/10)
JMPXEncoderV1.tar.gz
Jonti Olds.
19 June 2010