OmniPlayer 0.99 (c) 1993-94, Edward Schlunder All Rights Reserved Zilym Limms/OTM zilym@hndymn.stat.com Contents: 1 . . Introduction 2 . . OmniPlayer Usage 3 . . Internal Modules 4 . . Implementation List 5 . . Greetings 6 . . Beta Testing Team 7 . . Disclaimer 8 . . Closing Notes OP is a multiformat digital music player for your 386+ computer. If you find any bugs or other anomalies, please get in contact with us so that it will get fixed for the future. If you find a module format that OP doesn't currently support or doesn't play correctly, please contact us so that it can be added!! We intend to make OP support as many modules formats as they are available! In addition, if you find this program useful in any way, *please* send a short piece of email or snail mail to the author so that I will know how much this program is really being used and whether it is worth the trouble of continuing it. email: zilym@hndymn.stat.com snail mail: Edward Schlunder 554 N. Acacia Road Apache Junction, Arizona 85219-4313 USA ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ OmniPlayer Usage OP filespec [options] filespec File to play.. Extension not required options -EMS Force EMS use (even if not detected) -NOEMS Disables EMS use (even when detected) -F Use Foreground mixing This is mainly only useful when playing under Windows or DesqView. It seems to help Windows steady the mouse a bit. -L Disallow any module looping. When the modules stops, exit OmniPlayer. Useful in batch files. [0] -Ax Amplification (x=0 to 9) Note that too high a value will cause clicks and cracks, way high values produce pure trash. Use very small numbers in most cases (1 or 2) [4024 Bytes] -Bxxxxx Buffer Size (x=256 to 32767) [Max of Dev] -Sxx xxKHz oversampling rate (x=5KHz to 45KHz) [Autodetect] -Ixx Device IRQ number [Autodetect] -Dx Device DMA channel [Autodetect] -Pxxx Device Base I/O Address (x=xxxh) -Cx Select Output Device (x=device number) No: Sound Card: 0 Gravis Ultrasound [Default] 1 Sound Blaster 1.xx 2 Sound Blaster 2.xx 3 Sound Blaster Pro 4 Sound Blaster 16 5 Pro AudioSpectrum -Vx Visual Display Mode (x=display number) No: Name: 1 Help 2 Scope(s) [Default] 3 VU Meters 4 Sample List [Offset 0] -Oxxxxx Load module from file offset x (see section below) Example: C:\SOUND\OP>OP DEAF -C3 [enter] <- Plays the example module in stereo on a SBPro ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Internal Modules OmniPlayer has a neat little feature to help you play modules from inside demos and games. This section will try to explain how to use this feature. Included with OmniPlayer is a small utility to scan EXEs for modules within (MODSCAN.EXE). MODSCAN only checks for specail module signatures, so module formats without signatures can not be detected (ie, 15 instrument MODs). In addition, if the EXE is compressed with PKLite or a similar compression program, MODSCAN won't be able to read the signatures that might be present. Use UNP (not included) or another similar utility for uncompressing EXEs so that they can be scanned. Okay, the first thing you need to do now that you've got an EXE file with an embedded module unpacked, you need to find out what offset(s) into the file are the locations for your modules. Use: MODSCAN filename [Enter] Example: C:\DEMOS>MODSCAN PANIC.EXE Internal Module Scanner Version x.xx By Edward Schlunder (C)1994 55076 S3M Scan complete This first column lists the module's title (if any), the second is the modules offset, and the last is the module type. Generally, if a module has a title filled with garbage, it is probably not a module and shouldn't try to play it (would result in crashing OP possibly). To actually play the module we type: Use: OP filename.EXE -Ooffset [Enter] Example: C:\DEMOS>OP PANIC.EXE -o55076 Once that's done, OmniPlayer will attempt to load the specified module at the offset it was told. Note that the EXE extension is required because we wouldn't want to try loading EXEs as 15 instrument MOD files during normal usage now would we? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Implementation List Key: þ Implementation completed ú Implementation incomplete Not implemented at all ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÍÍÍ File Formats ÍÍÍÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ >>>MOD/OCT/WOW þProtracker variants 4..32 þ0xx Arpeggio/None þBxx Order Jump þE7x Tremolo Control þ1xx Porta Up þCxx Set Volume þE8x Set Pan þ2xx Porta Down þDxx Pattern Break þE9x Retrigger Note þ3xx Porta Note þFxx Set Tempo/BPM þEAx Fine Vol Up þ4xy Vibrato E0x Filter On/Off þEBx Fine Vol Down þ5xy Porta Note+Vol Slide þE1x Fine Porta Up þECx Note Cut þ6xy Vibrato+Vol Slide þE2x Fine Porta Down þEDx Note Delay þ7xy Tremolo E3x Glissando Control úEEx Pattern Delay ú8xx Set Pan/Surround þE4x Vibrato Control þEFx Invert Loop þ9xx Sample Offset þE5x Set Finetune þAxy Volume Slide þE6x Pattern Loop >>>MED þMED Editor/OctaMED Pro 4 þ0xy Arpeggio/None Exx Synth Jump þ11xx Fine Porta Up þ1xx Porta Up þF00 Pattern Break þ12xx Fine Porta Down þ2xx Porta Down Fxx Set BPM þ14xy Vibrato þ3xx Porta to Note FF1 Play 2*Row þ150x Set Finetune 4xy PT v1.0 Vibrato FF2 Delay Row/2 þ16xx Pattern Loop þ5xy Porta Note+Vol Slide FF3 Play 3*Row þ18xx Note Cut þ6xy Vibrato+Vol Slide FF8 Filter Off þ19xx Sample Offset þ7xy Tremolo FF9 Filter On þ1Axx Fine Vol Up 8xy Set Hold/Decay FFA MIDI Hold Pedal On þ1Bxx Fine Vol Down þ9xx Set Tempo FFB MIDI Hold Pedal Off 1Cxx Change MIDI Preset þAxy Volume Slide FFD Change Note þ1Dxx Pattern Break þBxx Order Jump þFFE Stop Song ú1Exx Pattern Delay þCxx Set Volume þFFF Note Cut 1Fxy Delay+Retrigger þDxy Volume Slide 10xx Send MIDI Message >>>STM þScream Tracker 2.x 4 >>>S3M þScream Tracker 3.x 1..16 Notes: If a module sounds out of tune or off key, it's probably because of ST3's nonstandard Amiga clock rate and the period values, not the portamento commands. There's not really anything to do about this problem except grin and bear it. The most notable module with this problem is probably Satellite One by Purple Motion/FC. þAxx Set Tempo þGxx Porta Note þS3x Vibrato Control þBxx Order Jump þHxy Vibrato þS4x Tremolo Control þCxx Pattern Break Ixy Tremor þS8x Set Pan þDxy Volume Slide þJxy Arpeggio þSBx Pattern Loop þDFx Vol Slide Down þKxy Vibrato+Vol Slide þSCx Note Cut þDxF Vol Slide Up þLxy Porta Note+Vol Slide þSDx Note Delay þExx Porta Down þOxx Sample Offset úSEx Pattern Delay þEFx Fine Porta Down þQxy Retrigger+Vol Slide þSFx Invert Loop þEEx Xtra Fine Porta Down þRxy Tremolo þTxx Set BPM þFxx Porta Up S0x Filter On/Off þVxx Set Global Volume þFFx Fine Porta Up S1x Glissando Control þFEx Xtra Fine Porta Up þS2x Set Finetune >>>ULT þUltraTracker v1.0 to v1.5 1..32 þ1xx Porta Up þB0y Set Pan þE2y Fine Porta Down þ2xx Porta Down þCxx Set Volume þE9y Retrigger þ3xx Porta Note þDxx Pattern Break þEAy Fine Vol Up þ4xy Vibrato þFxx Set Tempo/BPM þEBy Fine Vol Down 501 Forwards/No Loop þE0y Vibrato Depth þECy Note Cut 502 Backwards/No Loop þE1y Fine Porta Up þEDy Note Delay þAxy Volume Slide >>>MTM þMultiTracker 1..32 þ0xx Arpeggio/None þBxx Order Jump þE7x Tremolo Control þ1xx Porta Up þCxx Set Volume þE8x Set Pan þ2xx Porta Down þDxx Pattern Break þE9x Retrigger Note þ3xx Porta Note þFxx Set Tempo/BPM þEAx Fine Vol Up þ4xy Vibrato E0x Filter On/Off þEBx Fine Vol Down þ5xy Porta Note+Vol Slide þE1x Fine Porta Up þECx Note Cut þ6xy Vibrato+Vol Slide þE2x Fine Porta Down þEDx Note Delay þ7xy Tremolo E3x Glissando Control úEEx Pattern Delay ú8xx Set Pan/Surround þE4x Vibrato Control þEFx Invert Loop þ9xx Sample Offset þE5x Set Finetune þAxy Volume Slide þE6x Pattern Loop >>>669 þComposer 669/Unis 669 8 úAx Porta Up úDx Frequency Adj. G0 Pan Left úBx Porta Down úEx Vibrato G1 Pan right úCx Porta Note þFx Set Tempo úHx Retrigger >>>FAR þFarandole Composer 16 ú1x Porta Up þ8x Fine Volume Down þFx Set Tempo ú2x Porta Down 9x Sustained Vibrato ú3x Porta Note Ax Slide to Volume ú4x Retrigger þBx Set Pan þ5x Vibrato Depth Cx Sample Offset þ6x Vibrato Dx Fine Tempo Down þ7x Fine Volume Up Ex Fine Tempo Up ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÍÍÍ Sound Devices ÍÍÍÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ >>>GUS.MSE úGravis UltraSound (does not work with SBOS) Stereo 44KHz >>>SB1X.MSE þSound Blaster 1.xx Mono 21KHz >>>SB2X.MSE þSound Blaster 2.xx Mono 43KHz >>>SBPRO.MSE þSound Blaster Pro Stereo 22KHz >>>SB16.MSE þSound Blaster 16 Stereo 45KHz >>>PAS.MSE þPro AudioSpectrum Stereo 45KHz ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Greetings go to: Renaissance - Thanks for all your help, DareDevil and StarScream. WildCat - Thanks for your help too. Alex Chalfin - Thanks for helping with the TP support. Clint Holeman - Thanks for the great player name idea. Sonic PC - Love your music, Mellow-D. Esp: Frequencies Phil Inch - Can I place an ad in the GDM (heheh) for BWSB? Future Crew - Scream Tracker ]I[ is awesome. Triton - CD ][ is great. Stalker/OTM - Special thanks to these two fine guys who Tek/OTM provided me with lots of modules to test OP on. Voltaire/OTM - Provided me Protracker 2.3a playroutine for effects. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Beta Testing Team: Clint Holeman Andrew Bartels Steve Govenar Alex Chalfin John Peasley All of OTM More are highly welcomed, send email if you wish to join the beta testing team. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Disclaimer In no event shall the authors of this program be held responsible for any undesired effects caused by this program. If something should go wrong, it is your problem, not ours. Use at your own risk! ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Closing Notes Well, it's been over a year since I first began this project.. My, my, how fast the time did go.. At least now I have something to show for all those months of seemingly stupid experiments. Have fun with the program and make sure to spread it around to all your favorite BBSes! Just make sure you don't charge for the program, I'm releasing it as freeware/noteware and don't expect others to profit any more than I do from this program. This is a little prerelease version, so not everything is totally finished and finetuned yet. Some examples of this is the fact that the FAR ULT STM runtime loading isn't implemented just yet. Same thing goes for effects, as Glissando is not implemented. Some have little problems, like Porta Up/Down that work fine with S3Ms, but may allow MODs to porta beyond their normal limit. These things will be completed and more by version 1.00. About the music routines... All sound device music engines are kept in separate runtime loadable modules that have the extension MSE (MSE stands for Music and Sound Engine). Since they are all runtime loaded, routines for other sound devices don't get stuffed in memory when you don't need them! It also has some other nice features to this.. Sometime in the near future I will be releasing another package directed towards programmers only. This package will include OBJ files to the music/sound routines and source code to some example programs (such as OP) that use these music routines. You'll be able to play around with it all and see how you like it, and once you're done, you can register the music routines for a full license allowing you to distribute freeware/shareware programs created using my music/sound engine royalty free (commercail programs will require a small royalty). Expected cost for registering is currently $35+S&H for the non-commercail distribution license (I do not consider shareware as commercail distribution) only and $55+S&H if you would like both the license and full source code to ALL code used in this library. That includes the music processing routines, sound device output, stereo/mono mixing routines, and all other source code used to develop OmniPlayer and the MSEs. Please send me email for further answers and for details on when this will be ready for public distribution. Zilym Limms/OTM 1994 zilym@hndymn.stat.com