******************************************************************************** * Document File For FeenixPlayer Object (FPO) * ******************************************************************************** * * * The FeenixPlayer Object Is Pure PD. You May Use It Freely In * * Your Productions, As Long As It Is NOT Used In Any Commercial Software!! * * If You Want To Use It In A Commercial Program, Contact The Author * * BEFOREHAND And Get a Permission. * * * * If You Use The Object In Your Productions, Please Mention It In Your * * Production. No Fees Are Needed But It Is Very Lame To Use Software * * Someone Else Has Created Without Mentioning About It. * * * * To Contact The Author, Use One Of The Following Methods: * * * * By E-Mail: feenix@freenet.hut.fi (NOT Always The Fastest!) * * feenix@freeport.hut.fi * * By Mail: Feenix * * Myllym„entie 24 * * 63700 Žht„ri * * Finland, Europe * * * * !If You Want A Reply Through Mail, Include A Pre-Filled Envelope And Stamps! * * * * By Phone: + 358-65-5331002 (Ask For Sami) * * Faxing Is Also Possible, Just Use The Same Number. * * !!Remember Timezones, So DON'T Call/Fax In The Middle Of The Night!! * * * * Signed: Feenix / Epical 94-11-14 * * * ******************************************************************************** ----------------------------------- Glossary ----------------------------------- 0 What Is FPO? 1 Where Can I Use FPO? 2 How To Use FPO? --------------------------- Chapter 0 - What Is FPO? --------------------------- FeenixPlayer Object is a moduleplayer program that can play 4,6,8,16-channel Modules that are ProTracker(tm) compatible. Up to 127 patterns are supported in 4-channel mode and 63 in 8-channel mode. All 31 samples and 128 orders are supported. FPO can play only via Gravis Ultrasound(tm) card, other cards might follow, if there is demand for them. FPO will load the samples straight to GUS's memory and if You play too big a module for your card... It won't sound right but don't blame me. I might make it possible to play large modules with 256kb memory on board, but only if it's needed. FPO loads all samples to GUS's memory, so it requires much less memory than some other players. Only code and patterns will be held in machines memory. FPO needs an additional 64kb memory at startup, but it will release it when module starts playing. FPO supports almost all ProTracker commands and also few FeenixTracker(tm) commands. FeenixTracker is not published software. Here is a list of commands FPO supports: ÚÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Command ³ Command name ³ ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 0xx ³ Arpeggio ³ ³ 1xx ³ Portamento Up ³ ³ 2xx ³ Portamento Down ³ ³ 3xx ³ Toneportamento ³ ³ 4xx ³ Vibrato ³ ³ 5xx ³ TonePorta & Volumeslide ³ ³ 6xx ³ Vibrato & Volumeslide ³ ³ 7xx ³ Tremolo ³ ³ 8xx ³ FeenixTracker Commands ³ ³ 9xx ³ Sample Offset ³ ³ Axx ³ Volumeslide ³ ³ Bxx ³ Jump Order ³ ³ Cxx ³ Set Volume ³ ³ Dxx ³ Break Pattern ³ ³ Exx ³ ProTracker Commands ³ ³ Fxx ³ Set Speed / Tempo ³ ÀÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ProTracker Commands (Exx) * Not Supported ÚÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Command ³ Command name ³ ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ E0x ³ Filter * ³ ³ E1x ³ FinePortamento Up ³ ³ E2x ³ FinePortamento Down ³ ³ E3x ³ Set Glissando Control * ³ ³ E4x ³ Set Vibrato Control ³ ³ E5x ³ Set Finetune ³ ³ E6x ³ Loop Pattern ³ ³ E7x ³ Set Tremolo Control ³ ³ E8x ³ Set Pan Position ³ ³ E9x ³ Retrig Note ³ ³ EAx ³ Fine Volumeslide Up ³ ³ EBx ³ Fine Volumeslide Down ³ ³ ECx ³ Cut Note ³ ³ EDx ³ Delay Note ³ ³ EEx ³ Delay Pattern ³ ³ EFx ³ Funk It * ³ ÀÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ FeenixTracker Commands (8xx) ÚÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Command ³ Command name ³ ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 80x ³ Set Pan Position ³ ³ 81x ³ Play Sample Backwards ³ ³ 82x ³ Scratch ³ ÀÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ New commands will be added in future versions. Four Vibrato / Tremolo WaveForms Are Supported. The Waveforms Are: Sine, Ramp, Pulse And Saw. ----------------------- Chapter 1 - Where Can I Use FPO? ----------------------- You can use FPO in every program You make, but You may NOT use it in commer- cial products, if You haven't got a permission from me. FPO may be used in demos/intros (non-commercial), but do inform people about the author of this player. In this packet there are two examples for using FPO. One is in assembler and the other is in Pascal. Those of You who code in C must try to find out how to call it from C language. It shouldn't be impossible, but as I don't have a C compiler, I couldn't make it myself. I would be very pleased if someone could inform me of the way it can be called from C. ------------------------- Chapter 2 - How To Use FPO? -------------------------- The usage of FPO is very simple. There are two example files in this packet, there You should find out the way it is called. I'll also give You a short list of commands: Procedure Play : Far Initializes the player and plays the module Parametres needed: The Segment and Offset of the module filename should be in DS:DX The Address of GUS should be put in CX (220h,240h...) If You want GUS detection, put 0 into CX Return values: AX=Segment to Patterndata BX:CX -> Info Block (Explained Below) Procedure Stop : Far Uninitializes FPO and stops playing Parametres needed: None Return values: None Interrupt FFh Gives You the order and place where FPO Parametres needed: currently is playing None Return Values: AL : Order AH : Place in the pattern Format Of Info Block: ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Offset ³ Length ³ Explanation ³ * Explained Later ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 0000h ³ 0014h ³ Song Name ³ ³ 0014h ³ 03A2h ³ Sample Data * ³ ³ 03B6h ³ 0001h ³ Song Length ³ ³ 03B7h ³ 0001h ³ Song Repeat ³ ³ 03B8h ³ 0080h ³ Pattern Order ³ ³ 0438h ³ 0004h ³ Module Type * ³ ³ 043Ch ³ 0001h ³ Last Pattern In File ³ ³ 043Dh ³ 0001h ³ Current Speed ³ ³ 043Eh ³ 0001h ³ Current Tempo ³ ³ 043Fh ³ 0001h ³ Current Order ³ ³ 0440h ³ 0001h ³ Current Pattern ³ ³ 0441h ³ 0001h ³ Current Place ³ ³ 0442h ³ 0001h ³ Number Of Channels ³ ³ 0443h ³ 0010h ³ Equalizers ³ ³ 0453h ³ 0004h ³ GUS Memory Available ³ ³ 0457h ³ 0004h ³ GUS Memory On Board ³ ³ 045Bh ³ 0010h ³ Pan Positions ³ ³ 046Bh ³ 0001h ³ Module Playing (0/1) ³ ³ 046Ch ³ 0001h ³ Global Volume (0-64) ³ ³ 046Dh ³ 0002h ³ GUS's Base Register ³ ³ 046Fh ³ ³ --END OF INFO BLOCK-- ³ ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Format Of Sample Data: The Sample Data consists of 31 similar blocks, one for each instrument, respectively. The length of one block is 30 bytes. ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Offset ³ Length ³ Explanation ³ ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 0000h ³ 0016h ³ Sample Name ³ ³ 0016h ³ 0002h ³ Sample Length /2 ³ ³ 0018h ³ 0001h ³ Finetune ³ (0..7,-8..-1) ³ 0019h ³ 0001h ³ Volume (00-64) ³ ³ 001Ah ³ 0002h ³ Repeat Start /2 ³ ³ 001Ch ³ 0002h ³ Repeat Length /2 ³ ³ 001Eh ³ 0000h ³ ----END OF BLOCK---- ³ ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Module Type: The Module Type -variable is a string of four characters. The meanings are: 'M.K.' : 4 channel Module 'FLT8' : 4 channel OldTracker Module '8CHN' : 8 channel Module '6CHN' : 8 channel Module '16CH' : 16 channel module 'CH16' : 16 channel module 'MTM ' : MultiTracker Module If You have any questions or suggestions, contact me! --------------------------------------------------------------------------------