fmr and xfmr controllers for MediaForte SF16-FMR =================================== Kevin Boone, August 1998 About the programs ================== fmr and xfmr are simples controllers for the MediaForte SF16-FMR FM radio tuner for PCs. By `simple' I mean that they do not provide any support for automatic tuning or scanning. `fmr' is a command-line utility for changing volume and station, while `xfmr' is an X-window version with the same facilities. Why? ==== At the time of writing there is no Linux software that will control the SF16-FMR. Other, similar, products are supported, but none are similar enough that the same software can be used. Scope ===== These programs control the SF16-FMR radio. I have looked at the source of programs that control the SF16-FMi and, despite the similar name, they do not appear to use the same protocol. Therefore I doubt this program will control the SF16-FMi. I have no information about whether it would work with other MediaForte products, but I suspect not. Installation ============ To install the binaries, unpack the distribution, edit the Makefile if necessary, and type `make install'. All this does is copy the two programs `fmr' and `xfmr' into /usr/local/bin. You can change this behaviour by editing the line that starts `BINDIR=' in the Makefile, but it may be easier to copy the files manually. xfr and xfmr MUST be run as root; my preference is to set the SUID flags on the executables to make this happen. This restriction is necessary because the programs write dirctly to the IO port used by the radio board. If you want to recompile the program (a good reason for doing this is to make the executable link the forms library dynamically) you will probably have to edit the first few lines of the Makefile to indicate where the various libraries are. The default setup is for the forms library to be linked statically and the X11 library dynamically. For static linking you will need the xforms development package; for dynamic linking you won't. To re-build, type `make clean; make'. That's it. Good luck. Usage ===== Both fmr and xfmr will display a list of command-line switches if you enter `fmr -?' or `xfmr -?' (they are both the same). If xfmr is run without switches, it brings up a graphical user interface. I hope it is self-explanatory. Settings file ============= xfmr saves its configuration in a file called `.fmr' in the user's home directory. fmr does not save configuration, but will read the station information from .fmr when used with the `-s' switch. If you don't want to use xfmr, but do want to be able to select stations by name, you can create a .fmr file manually. The distribution contains a sample called `fmr.sample'; the format should be self-explanatory. Notes ===== 1. `fmr' has an `-e' (enable) switch. This should only be needed the first time the program is used after switch-on. fmr doesn't do this automatically because it makes a horrible `thump' if you do it while the radio is working (there doesn't seem to be any way of stopping it). xfmr, on the other hand, does an `enable' every time it starts, on the assumption that it will run continuously in the background. So if you use `fmr' and nothing seems to happen, try using the `-e' switch. 2. The IO port used by the radio is hardwired, so no configuration is required in this respect. 3. If you feed the radio output through a soundboard, remeber that you may have to adjust the input level with a mixer program as well as the volume of the radio itself. On my system, the 'line' input to the soundboard is automatically set to zero volume at power-up. 4. The FMR board has a frequency resolution of 10 kHz. So if you ask for a frequency of 111.234 MHz, you'll get 111.23 MHz. You can ask for a frequency outside the tuning range, but I doubt the radio board will be able to tune it. Bugs ==== I don't know of any, but I'm sure there are plenty. Licence ======= This is free software; do with it as you will, provided this notice of authorship remains attached. Naturally there is no warranty of any kind. Author ====== Kevin Boone, School of Computer Science, Middlesex University London, UK http://www.cs.mdx.ac.uk/staffpages/kevin k.boone@mdx.ac.uk