Adlib-S3M player for QuickBasic, with effects support | ||||||||||||||||||||||||||||||||||||||||||||
1. Purpose
Some entirely in QuickBasic written subroutines for playing Adlib-S3M
or MidiS3M files in a QuickBasic program.
2. Short example
'$INCLUDE: 'fmengine.bi' Could it any way be simpler than this? (Note you must copy FMinit() , MPUDetect() , MPUvol() , VibVal() , note2period() , BeSilent() , FMend() , FMload() , FMnoteoff() , FMplayeffect() , FMplayrowfrom() , FMtimer() , FMtouch() , FMupdate() , FMwrite() and MPUwrite() to the program, but these do not bother your editing, do they? :)
)
As an alternative, there is a shorter file "fm.inc" which can be simply concatenated
to your program. it works even in QBasic (the stripped version of QuickBasic, distributed
with MS-DOS 4 and 5). 3. Neat features
4. Notes4.1. Example songs
The archive contains some example songs and one example effect file. Two of the example songs are made by Future Crew, four by me, and two by Warp. 4.2. Hazards
The current version just assumes you have MPU-401 too. If you don't have,
just edit the MPUwrite subroutine and add a EXIT SUB
clause there to be the first command.
4.3. How does its timer handler work?
It uses ON PLAY event mechanism for the timing,
and plays short silent pause commands. Therefore you can not make
speaker beeps while the player is playing. This does not affect
the performance of the main program.This causes some problems with dosemu though. 4.4. If it does not play anything
In the example program, you must press a key
(try a,b,c,d,e,f,i,j,g,h,v,0,1 keys). Note that your sound card must really be Adlib compatible. Creative Sound Blaster AudioPCI 128, for example, is not. 4.5. Memory usage
The player uses following global static tables, and nothing else:
The engine loads and keeps only one pattern at time from the file to memory. This means that the engine accesses the media every time the pattern changes. Patterns usually are about 1kB long per average. 5. Discussion
Okay, who uses QuickBASIC today? If you find this program useful,
you are strongly encouraged to tell me. However I'm planning to make a QuickBASIC compiler for *nix systems like Linux. See the project page for details. You are encouraged to join as a developer if possible :) 5.1. Feedback
If you have problems using this program or ideas how to
develop it, email me your questions or ideas. Please do not omit the details. My email address (sigh) is: bisqwit at iki dot fi 6. Copying
fmengineqb has been written by Joel Yliluoma, a.k.a.
Bisqwit, and is distributed under the following terms:
7. See also
8. DownloadingDownloading help
Date (Y-md-Hi) acc Size Name 2010-0122-0952 r-- 37622 fmengineqb-1.1.0.tar.bz2 2010-0122-0952 r-- 39712 fmengineqb-1.1.0.tar.gz 2010-0120-1327 r-- 35943 fmengineqb-1.0.3.tar.bz2 2010-0120-1327 r-- 38523 fmengineqb-1.0.3.tar.gz 2003-0530-0004 r-- 34649 fmengineqb-1.0.2.5.tar.bz2 2003-0805-2016 r-- 39830 fmengineqb-1.0.2.5.zip 2003-0530-0004 r-- 8735 patch-fmengineqb-1.0.2.4-1.0.2.5.bz2 2002-1210-0002 r-- 33263 fmengineqb-1.0.2.4.tar.bz2 2002-1210-0002 r-- 4894 patch-fmengineqb-1.0.2.3-1.0.2.4.bz2 2002-0721-2257 r-- 32884 fmengineqb-1.0.2.3.tar.bz2 2002-0721-2257 r-- 3025 patch-fmengineqb-1.0.2.2-1.0.2.3.bz2 2002-0716-1304 r-- 32753 fmengineqb-1.0.2.2.tar.bz2 2002-0716-1304 r-- 2168 patch-fmengineqb-1.0.2.1-1.0.2.2.bz2 2002-0515-0823 r-- 32520 fmengineqb-1.0.2.1.tar.bz2 2002-0515-0823 r-- 5945 patch-fmengineqb-1.0.2-1.0.2.1.bz2 2002-0402-1435 r-- 29809 fmengineqb-1.0.2.tar.bz2 2002-0402-1435 r-- 33085 fmengineqb-1.0.2.zip 2002-0402-1435 r-- 13314 patch-fmengineqb-1.0.1-1.0.2.bz2 2002-0318-1102 r-- 20066 fmengineqb-1.0.1.tar.bz2 2002-0318-1102 r-- 2770 patch-fmengineqb-1.0-1.0.1.bz2 2002-0221-2256 r-- 19164 fmengineqb-1.0.rar 2002-0318-1000 r-- 19652 fmengineqb-1.0.tar.bz2 2002-0221-2256 r-- 21042 fmengineqb-1.0.zip← Back to the source directory index at Bisqwit's homepage | ||||||||||||||||||||||||||||||||||||||||||||