PAULA ][ (Paula, take two!) An Amiga-MODfile-Player for the Atari TT & STE Version 2.4 15.9.1994 Shareware by: Pascal Fellerich Shareware ========= Starting with version 2.0 Paula is shareware. That means that you may distribute and test this software freely. But if you use it regularly you have to register. At the beginning Paula was a little utility to play modfiles which I wrote in some weeks. As the reactions on this little piece of software were very positive, I decided to rewrite the player completely which made it possible to integrate many new features. Paula has become a real powerful program which has no equivalent until now. So I decided to release it as shareware. You'll find details in the paragraph 'Registration Procedure'. The following files are part of the 'PAULA'-package and must remain unchanged and be distributed together: 1. PAULA.APP The main program (alternative names are PAULA.ACC or PAULA.PRG) 2. PAULA_D.TXT the german manual 3. PAULA_E.TXT the english manual 4. MP.TTP ModPlay: a little utility to play modules even from CLI's. 5. MP.C the source code of ModPlay 6. MP.PRJ Project-File for use with Pure-C 7. CHECKMOD.TTP Checks if a module is OK and repairs corrupted modfiles as far as this is possible. If your version of PAULA needs a key(** The versions 2.0 to 2.3 and possibly also versions from 2.5 on need a key to reenable some blocked features.**): The file 'PAULA.INF' must not be given away as this file contains your registration data. Of course all modifications to one of these files are forbidden! Paula may be distributed via BBS and on 'Public Domain' disks; however the shareware status of this software is not affected! All rights reserved by P. Fellerich.. Contact address: Pascal Fellerich 45, rue des Genˆts L-3482 Dudelange (Luxembourg) E-Mail: 2:270/16.3 (Fido-Net) fellerich@fido.lu (Internet) Registration procedure ====================== Paula is shareware. This means that you have to pay for it when you use it regularly. The versions 2.0 up to 2.3 needed a key to enable all the features, a key you could only obtain by paying your registration fee. The version 2.4 does not have a key or any similar restrictions. To prevent excessive illegal use of this program it's up to you to decide how much to pay! If you want to register, please send me: ú Your address (legible, please) Name: (30 chars maximum) Addr: (30 chars maximum) City: (30 chars maximum) ú The shareware fee with a remark that it's for Paula. To avoid any complications I only accept cash money (BEF/LUF, DM, US$, UKœ...) I'll send you your personal key for Paula ][ which is needed for older and perhaps also newer releases. If you have any questions and/or suggestions I'll be glad to help you. Why Paula? ========== Paula plays the so-called 'modfiles' using the STE/TT PCM sound chip. These modfiles, also called 'modules', originate from the Amiga which has a special four-channel PCM soundchip called 'Paula'. Paula doesn't claim to be the only or the fastest modplayer available for the Atari, but it has a unique combination of a perfect GEM user interface and a highly sophisticated sound processing unit. What does Paula? =============== To avoid a rather lengthy description, here is a short list with Paula's features: ú Compatible to really all MOD-formats, ranging from the old Soundtracker format to the new Protracker format. ú Three sampling frequencies are available: 12.5, 25, 50 KHz (when using Paula on ST's with a little help from the sound-driver 'PETRA' it's 6, 9.6 and 12 KHz). ú Linear interpolation option giving a great improvement in sound quality. ú Booster option, rising the S/N ratio by 6 dB. ú Completely independent pitch and speed tuning. ú Supports LZ5 or AFX packed modules. ú Real GEM - consequently it will run on any TOS-machine. This also includes Atari's MultiTOS, Magix ... ú Simple and intuitive control ú Supports extended selection features of Selectric¿ and Gemini ú Programmable like a simple CD player ú Random: random play of several modules. ú Repeat-switch: one module or a whole selection may be repeated indefinitely ú CPU Load and position display How it began... =============== When I got my TT I wanted to hear the new sound chip. So I downloaded some modplayers for the STE and tried them. Unfortunately most of them crashed, and those which ran on the 68030 produced 'lo-fi' (low fidelity) sound. So I had to write a player on my own. But that was easier said than done - I had to acquire the knowledge of the 'real' PAULA-chip in the Amiga and of course of the STE/TT sound hardware simply because I wanted to port an old replay routine from the Amiga (D.O.C. replayroutine 2.0 from june 1986). Some weeks later Paula 1.0 was 'up and running'. This release was still buggy and had limited capacities but it finally worked fine on the TT. After several optimizations and improvements I concluded the development at v1.5. In april 92 a discussion in the fidonet BBS re-ignited the global interest in the module player, and I decided to continue the development. The versions 1.7 and 1.8 were released. In the meantime, the sound quality was greatly enhanced but still the user interface was lousy. So I rewrote the whole thing - that's it... System requirements =================== Paula runs on any machine that has: 1. a TOS-compatible operating system, starting with TOS 1.4 2. an STE-compatible sound hardware - or the sound driver PETRA However, only the faster machines allow decent background use of Paula; a stock STE running at 8 MHz won't do 25 KHz sampling frequency. A MegaSTE at 16 MHz is fine, a TT is better. To be able to run Paula on ST's without the PCM sound chip you need PETRA - a sound driver for Paula by Christian Limpach. Installation ============ Paula may run as an accessory or as an application. With normal TOS versions the accessory mode is useful, under MultiTOS you may find it better to use it as a program. Of course you may use 'the Chameleon' (or any other good accessory loader) to load the ACC.. Under MultiTOS or Magix Paula may also run as a background task, but then you may not close it's main window without leaving the program! Another useful thing is XCONTROL - you should have installed the 'SOUND' cpx-module so that you can change the volume, treble, bass and balance. Moreover you should connect your computer to your stereo equipment (via the RCA jacks) to get the best possible sound. User's Guide ============ After you have launched Paula you get a window containing the main dialog. This one is subdivided into 6 areas: 1. the info line 2. the Player & Sound Setup 3. SampleFreq 4. CPU Load 5. Position 6. the player's control keys The control keys These controls are hopefully the simplest. They carry the commonly used symbols you also find on a cassette tape recorder, so you should be familiar with those. Note that every key is marked with a little letter in the upper left corner - that's the keyboard shortcut. Press 'L' to Load a file. LOAD: First you must load a module. When you click on the LOAD-button you get the file selector in order to select a module. On 'OK' Paula immediately loads the module. If this operation was successful the info line of the window will show the text 'Stopped: '. If an error occurred you will be informed by a standard alert box. If you have installed 'Selectric¿' as a file selector, you may also specify more than one module! STOP: Well, this one stops a module and resets the player. This also clears Paula's memory - if you had selected several modules Paula will forget them. The info bar shows 'Stopped: ...'. In accessory mode, closing the window in the stopped state also releases the memory allocated for the last loaded module. PLAY: Starts the player. If you haven't selected a module Paula will prompt you to do so. If you press 'PLAY' when Paula is busy playing one of several modules it will skip to the next module. (Skip function). PAUSE: Stops the player temporarily. The player is not reset! In that state you may also quit the accessory (close the window) without losing the current module. To continue, press PAUSE or PLAY. REW: (REWIND) Jumps to the previous position in the module. This function works only if Paula is in the 'playing' or 'paused' state. FF: (FAST FORWARD) Jumps to the next position in the module. This function too only works in play- or pause-mode. !: (Exclamation sign) Invokes the SETUP-dialog which offers some more functions like pitch and speed tuning. ?: (Question mark) Some general informations about Paula. Through this dialog you also get the registration dialog. How to register is described some pages later (title: Registration procedure) Try to familiarize yourself with these commands by simply trying them out! Whatever you do, you will not succeed in crashing Paula - even not on machines with memory protection. The info line ============= Paula uses the info line of the window to display it's current status as well as the title of the currently loaded module. Currently four states are defined: Inactive: Paula does nothing. No file is loaded and no memory is allocated. When you change resolutions Paula should preferably be in this mode to avoid memory loss or system crashes. Stopped: Paula has loaded a module. If you change resolution now you will lose the allocated memory because you didn't give Paula a chance to release it. Paused: Paula is waiting to continue. The FF and REW buttons work. Playing: Paula is busy - don't you hear that? If another program accesses the sound hardware Paula is stopped, of course. But as soon as the soundchip gets freed Paula tries to continue, which may take up to 1 second. If not, this is a bug and should be reported. However you may manually relaunch the player by pressing the PAUSE-button twice. SampleFreq ========== You may choose the sampling frequency used by Paula. Currently there are three possibilities: 12.5, 25 and 50 KHz. The higher the sampling frequency the better the high frequency response. Theoretically the highest sound frequency is half the value of thesampling frequency (cf Shannon's sampling theorem). On the Atari hardware it's about 40% of the sampling frequency. When using 25 KHz samplefreq you get up to 10 KHz sound frequency. Changes in the sampling frequency are immediately effective. During the switching the sound is muted for a very short moment to avoid chirping and click noises. Player & Sound Setup ==================== In that area you find two types of switches: ú switches to influence the sound synthesizer ú switches to change the replay modes Ä Interpolate: Enables the realtime interpolation of the samples. This gives a much better sound quality but it requires a lot of CPU power. On a TT this is a must because the 68030 does multiplication and shift ops much faster than the 68000 CPU. By the way, this also applies to the 68020 - so if you have a 020- board installed in your STE... Ä Booster: Increases the output signal by 6 dB using a little trick. This improves the signal to noise ratio but it also introduces a certain amount of distorsions, especially when playing high-level signals. As these distorsions are mainly of the second order it shouldn't sound too awful. Ä Protracker: Enables the protracker compatibility. In general, sound modules are upwards compatible so that a new player should play correctly an old module, but unfortunately the protracker introduced some features which are more critical. So you have the possibility to switch off some of the new protracker commands. However, old 15- instrument modules are played with protracker-mode disabled, regardless of the switch position. Ä Repeat: This switch has two meanings, depending on how many modules you have selected. If you have selected a single module, this module is repeated, else the whole bunch of modules is repeated. By the way, there are some modules which use 'jump' commands to build an endless loop. Paula recognizes these and interrupts them. Ä Random: This is the random play function. If you have selected several modules, they will be played in random order - but every module only one time! After every module has been played, Paula stops or restarts the whole process, depending on the 'Repeat' switch. CPU-Load display ================ This bargraph shows the amount of cpu time Paula needs for the sound synthesis. It is a relative display, 100% are always the total cpu time, no matter what processor you have. No Landmark or Norton - that's simply not informative enough. At the right edge of the cpu load bargraph there is a little red box which flashes every time your machine was not fast enough. Position ======== This display shows the current position in the module. It's using the hexadecimal format - you know, programmers do it in hex! General instructions ==================== The main commands are mainly intuitive and should be easy to use. But there are also some special functions which are not so evident. These are: ú leaving the main dialog ú selecting multiple modules ('multiplay mode') ú key command logic ú hidden features When you close the main window and Paula is an accessory, the player will continue. Moreover you may close this window by simply pressing the key - the same as in XCONTROL.ACC. But if Paula runs as a program, closing the main window will terminate the program and the player will of course be stopped. so in PRG mode you can't quit by pressing - you must click on the closer-gadget of the window. Multiple choice... The simplest way to select more than one module is to use wildcards. Instead of selecting a file in the file selector simply choose the right path then type the file specification, e.g. 'A*.MOD'. This would play any module whose name starts with 'A'. If you simply want to have all modules played which are located in one directory, simply select that directory but don't enter a name. Paula will then automatically select any file which matches '*.MOD'. ...using Selectric: If you use 'Selectric¿' as a file selector you may select multiple files (shift-key + mouse click), Paula will load them. You'll find details in the Selectric-manual. ...with the Desktop, Gemini, EASE etc: Install PAULA as an application for the files of the type 'MOD'. Paula does not only evaluate its command line but also understand VA_START (or MP_START) messages. Some words about the key command logic: Paula always tries to stay in the current mode. If a module is running and you load another one, the newly loaded module is immediately played. If Paula was stopped when you select multiple modules, it will go into the 'pause'-mode. This has to be done that way because Paula will forget everything as soon as it enters the 'Stopped' mode. I suggest that you try these commands to familiarize yourself with it. Extras: Paula is prepared for multitasking environments. This means: ú Paula evaluates its command line. ú Paula understands VA_START and own (MP_...) messages. ú Paula identifies already running copies of itself and passes the command line to the running copy, so that there's only one instance of the program running at the time(** Not true for the accessory version: Paula can be installed as often as you like as an accessory.**). Setup-Page dialog ================= This dialog box is called with the '!'-command. It offers some nice features to manipulate the sound as well as the 'save'- function. Pitch Bend (cent): This is a fine tuning function. 100 cent is one half tone, and you may (fine-)detune Paula by one half tone. The standard tuning corresponds to a 'NTSC'-Amiga with 7.15909 MHz clock frequency. To get the 'PAL'-Amiga tuning, set the pitch bender to - 10..-15 cent. The steps are 5 cent, a finer step is not needed as the human ear has already problems to detect a detuning by 5 cent.. Transpose: This is the coarse tuning function. It changes the tuning in half tone steps, maximum is 12 half tones which corresponds to one octave. Frame Speed: This is the 'ticker' speed used as a speed reference in the module. On the Amiga this is the 50 Hz VBlank interrupt, so the standard setting is 50 Hz. Paula allows any value from half to double speed (25..100 Hz). Save: Saves the current setup into the 'PAULA.INF' file and then leaves the dialog. Note that all settings are saved, the main dialog settings as well as your registration data. Exit: Leaves the dialog without changing anything. However the changes you have made will not be undone. Reset: Resets the three settings (Pitch fine/coarse, Speed) and leaves the dialog. Info Page dialog: ================= The unavoidable info box... and also a nice way to remind you sometimes of the fact that you are still using an unregistered copy! Packed modules! =============== Paula 2.1 supports LZ5 or AFX packed modules. To make such packed modules you can use LHARC 2.01 or higher! Suppose that you have all your modules gathered in the directory C:\MODFILES and your hard disk is getting full. Then launch LHARC.TTP and enter as a commandline: 'c C:\MODFILES\*.MOD'. The LHARC program will then pack all your modules, reducing them to approximatively to 75% of their original size. Paula will not make any difference between packed and unpacked modules, so this is completely transparent to the user. Error messages ============== Paula normally reports errors using standard alert boxes. To avoid problems with unwanted alert boxes popping up Paula won't complain about it's problems if it's main window is closed. Let's assume you selected the modules, A.MOD, B.MOD and C.MOD; random mode is off. Paula starts playing A.MOD, the you close the window. After finishing with A.MOD, Paula tries to load B.MOD. If this does not succeed Paula will stop any further activities and will go into the 'Inactive' state. If you invoke Paula and select 'LOAD', you will see the name an path of the module which caused the error. If you get the message 'Corrupted MODfile' this means that the selected module cannot be played. In that case try the utility 'CHECKMOD.TTP' which analyzes a module and also repairs it - if possible. More informations ================= A module contains up to 31 different samples which are also called 'instruments'. To play a given sample at different pitches the Amiga simply varies the replay sampling frequency. The higher the sampling frequency the higher the note. As the Amiga has four independent sound channels, each one having it's own D/A converter it can play four different samples simultaneously without the help of the CPU. The Atari has only two channels (stereo L + R) which are not independent and only four fixed sampling rates. So another trick must be used to simulate the Amiga Chip - the 'direct digital synthesis', or 'resampling' as this process is more widely called. It's not difficult to understand: the sample data is not replayed at a 1:1 rate but with an 1:R rate where R is a floating point number. If you want to play a sample at half speed R is 2 - every byte of the sample is output twice. If you want it to be at 75% of it's original speed, R is 1.5 - this time one byte is output twice, the second is output once and so on. Unfortunately the sampling data is output irregularly - which gives a distorted sound. There are two ways of eliminating these distorsions. Either make the step 'R' rather big (this would require very large samples originally sampled at a very high rate) or interpolate the output data. The best thing would be a spline interpolation but unfortunately this requires matrix operations, so Paula uses a simple linear interpolation. Don't confuse it with the 'oversampling' of some other module players - they only double the output data and set the sound hardware to the double sampling frequency. The resulting sound is of a very high quality - at 50 KHz sampling rate even better than the Amiga! This is due to the fact that the TT/STE has no 7 KHz low pass filter which cuts off the high frequencies. If the Amiga switches of this filter it also prod uces more trebles but also more aliasing components. If you doubt about that take an Amiga, listen to it and read about the facts in the Hardware Reference Manual [2]. However the Amiga has a larger dynamic range due to it's four volume registers which introduce another 36 dB dynamic - but that is not the same thing as the signal-to-noise ratio which is always 48 dB for 8 bit systems (theoretically of course; some systems are disturbed by the RF present in the computer). The D/A converters used in the Amiga are sometimes called 'floating point converters'. In order to cope with this Paula has the 'Boost' option. This option simply simulates a 9 bit D/A converter by using a nonlinear conversion scheme. The result is OK for low volume MODs but it introduces additional distorsion at high output levels. If you don't mind about how the interpolation routine works, skip the following paragraph. If not - I hope you know how to read a C routine. /* Fix-Point number, representing the replay step size */ typedef struct fxp { int ip; /* integer part (1/1) */ int fp; /* fractional part (1/65536) */ } fixpoint; /* Fetch a byte from the sample data and calculate the correct * in-between value. * Param: spl: pointer to the sample * index: index inside the sample as fixpoint number * volume: Amiga-Volumeregister value, 0..64 * Return: resulting sample value. * Bereich: 14 bit (8 bit sample + 6 bit volume info) */ int get_samplevalue( char *spl, fixpoint index, int volume ) { int s1,s2; /* sample values sn and sn+1 */ s1 = volume * spl[index.ip]; s2 = volume * spl[index.ip+1]; return (((s2-s1)*index.fp)/65536 + s1); } Besides in this routine the index has to be incremented (addition of two fix point numbers), the return value must be scaled and saved, and the sample must be checked if it has reached the end. As there are four channels which must be calculated the above routine is called 200,000 times per second. To make this run in real time a lot of optimizations must be done. Even the 68030 would be totally overworked if these routines were really written in C (that means: I am better than my C compiler...). A really nice chapter: BUGS & LIMITATIONS! ========================================== Collisions: Normally Paula should not interfere with any other program - but problems with other utilities accessing the sound hardware are unavoidable. As long as the 'opponent' is well programmed nothing will happen - except that Paula is stopped as long as the other program uses the sound chip. A simple test: run two Paulas... (if you can!) Overload: When your computer is totally overloaded the internal timing is somewhat confused. As a consequence the moment when Paula writes into the sound registers is undetermined. So it may happen that the sound chip starts playing the wrong data - however the registers contain the right values! In that case, choose a lower sampling frequency or switch of the interpolation. Or have you forgotten to turn on the 68030 cache?? Resolution change: Before you change resolutions make sure that Paula is inactive. Call Paula, press 'STOP' and leave Paula again. Under MultiTOS the problem might be solved if the OS sends an AP_TERM message to every application - because this tells Paula to stop all activities. Protracker 'CIA'-replay-speed: From version 2.2 on the CIA speed setup works exactly as in the original. The disadvantage is that some Noisetracker modules are now played incorrectly; so you have to switch off the protracker mode when you play such modules. System crash on STE's: I know of two 1040STE computers on which Paula doesn't run. The symptoms: the computer freezes, the only escape being the reset button. This is likely to be a hardware problem as there is absolutely no link between the crashes and the modules played. Similar symptoms were experienced on a 1040STE with a 16MHz processor card - it crashed due to a cache problem. If you have such an STE - sorry, no remedy, it's a hardware bug! The version 2.4 has a TAS opcode removed, so the chance of being able to run Paula increases somewhat on these machines... Internals ========= GEM-message interface: Paula responds to the 'VA_START'-message (introduced by Gemini). This message contains a pointer (in msg[3] and msg[4]) which is evaluated by Paula: ú Null pointer or Pointer to an empty string: Same reaction as for AC_OPEN ú Pointer to a string with a filename: Paula tries to load and play that file. ú Pointer to a string with multiple filenames: Paula goes into multiplay mode and plays all of these files. The string is copied internally by Paula, so it may be local on the writer's side. However the memory must be readable - beware of the MultiTOS memory protection!!! The string also must contain complete path and name indications, NO WILDCARDS. The source code of MP (ModPlay) may serve you as an example. From version 2.4 on there are more messages: ú MP_ACK (0x4800): Paula says OK! The previous command was understood.msg[7] contains the version number of the program; 0x204 = v2.4 ú MP_NAK (0x4801): Paula says NOT OK! The previous command wasn't understood or rejected. msg[7] contains the version number of the program. ú MP_START (0x4802): works identical to VA_START, but after having taken over the command string Paula replies with a MP_ACK or MP_NAK message, thus signalling the the memory area for the string may be used for other purposes. This is very important in multitasking systems. ú MP_STOP (0x4803): stops Paula and releases the memory. The window stays open. Paula replies with MP_ACK. ú MP_SHUTDOWN (0x4804): Stops and terminates Paula. In accessory mode only the memory is released and the window is closed. Vector stealing... Paula uses the IO7 interrupt of the 68901-MFP. Of course the 'XBRA' protocol is used, it's magic is 'PAUL'. Memory usage: Paula needs some 45 KB for it's program code and data. On machines with a 68000 processor another 15 KB are used for the volume tables. Emergency stop: Want to kill Paula? Well, don't forget to send an MP_SHUTDOWN message (GEM msg #0x4804) to it before doing so. Speeeeed! To save CPU time on your TT Paula should be loaded into FastRAM and the processor cache should be enabled. Without cache Paula will probably have problems doing 50 KHz with interpolation... May the schwartz be with you! Hardware: Timer A and the wonderful Yamaha sound chip are not touched. The key click and the wonderful 'bell' sound won't be affected. Moreover you may also use STSPEECH or any other utility to produce digital sound effects on the Yamaha chip. Development: Paula 2 was developed using the Pure C compiler and the Pure Assembler. The 'real MODplayer', the replay routine is based on the 'Protracker 2.1B Player' of the Amiga Freelancers. Thanx for the help...: helpful people were: Joel Fran‡ois: Amiga documentation, D.O.C. Replay Routine Fridolin Koch: Protracker Replay Routine, good mods Georges Kesseler: beta tester, optimization ideas, repeat-killer Christian Limpach: beta tester, ST-Sound driver! MP - ModPlay Interface ====================== MP.PRG is a simple utility which gives you the possibility to launch modules from a command shell. MP simply sends a MP_START message to Paula. MP doesn't evaluate wildcards but it is aware of the ARGV method to deal with large command lines (link it with 'PCVSTART.O' when compiling it with Pure C). This is ideal for use with MintShel or Mupfel. Also try to install MP as a application for '*.MOD'-files in the standard DeskTop - you may then listen to modules by double clicking them, provided PAULA is installed as an accessory! MP is not an example for a good C programming style - it is very simple and straightforward. MP.TTP and MP.C are public domain. CHECKMOD - repair corrupted mods ================================ Eventually Paula will refuse a module with the comment 'Corrupted MODfile'. In that case use CHECKMOD to check and maybe repair the module in question. Simply start CHECKMOD and type in the name of the module to test. Under TOS 2.06/3.06 drag the module's icon onto the CHECKMOD icon. Checkmod will then read the module and control it's internal structures. It displays a list with the used instruments and reports the error. These may be: Corrupted Pattern List: Sorry, but this module cannot be repaired. Short Sample: A sample is too short. If this affects only the last sample and if the difference isn't too big Checkmod will probably be successful. Paula tolerates 4 lacking bytes. Superfluous Data in MODfile: No problem - this module simply has some garbage appended. Checkmod cuts it off, because Paula tolerates only up to 256 bytes of garbage. After running Checkmod you get the text 'Save Module as:'. Press to leave, or enter a single dot '.' to save the module under it's current name. Or enter a new path and name to save the module using another name. Bibliography ============ [1] Jankowski/Rabich/Reschke Atari Profibuch ST/STE/TT Sybex Verlag, ISBN 3-88745-888-5 [2] Amiga Hardware Reference Manual Addison-Wesley, ISBN 0-201-18157-6 [3] Thomsen Digitale Audiotechnik Franzis' Verlag, ISBN 3-7723-7151-5 [4] DDS - Direkte Digitale Synthese Elektor No257, Mai 1992, s.52ff [5] Ulrich Michels dtv Atlas zur Musik, Band 1 (Akustik, Wellenlehre, Tonparameter) Deutscher Taschenbuch Verlag, ISBN 3-423-03022-4 Registration form ================= I use PAULA, Version 2._ _ and want to register. First, Last name: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Street: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Zip, City: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Some room for comments, ideas and bug reports (please tell me about your hardware when you have problems with the MOD player, this helps a lot):