home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Large Pack of OldSkool DOS MOD Trackers
/
mtraker2_3.zip
/
mtraker2_3
/
AKMTRK2.DOC
< prev
next >
Wrap
Text File
|
1995-05-05
|
10KB
|
219 lines
;┌──────────────────────────────┐
;│MASTER TRACKER 1.1 AKMTRK1.OBJ│
;│BY [PYRO-FYRE]/ARKHAM 06/05/95│
;└──────────────────────────────┘
This document is intended for the experienced programmer with knowledge of
a good deal of assembly and the 386.
This is the documentation for the MASTER TRACKER 2.x AKMTRK1.OBJ sound
routine.
I realise that several ADLIB players exist on the PC but the editors was never
present with the routines for using in demos.
And i think the Sound Blaster is not a good device to play several digitized
voices when you have a slow PC because this system use a lot of time of the
CPU.
The FM music is quite fast when you use only 4 voices with an ADLIB or SB.
With the new fast registers of the SBPRO/SB16 and GUS, you can use 9 voices
without spend a lot of CPU time!
I think a demo is more good when you use FM music. I think the only GUS demos
are not fantastic without song when you haven't a GUS (arrrg, I haven't got
a GUS) and a simple FM music is welcommed!
This code and the .OBJ file were writen by [PYRO-FYRE] from ARKHAM.
If you want to use this thing as it is though, you will have to code in 100%
ASM. But it could be adapted on other language easilly: my editor
MASTERTRACKER use these routines with a simple BASIC language.
This program don't support the mtr files larger than 64 Kb because of the
segmentation in real mode.
In fact, MASTERTRACKER 2.x use the REAL FLAT MODE for making music larger
than 64 Kb.
The old music files formats .MTR (v1.x) consist of:
---------------------------------------------------
'-------------------------
'FILE FORMAT: LENGTH
'-------------------------
'INFORMATION | 0050 | MTRACK NOM_MUSIQUE (20 CHAR) 00 (NBVOICES%-1) 00 (NB PATTERN-1) 00 (LENGTH) 01F3 (RESTART) 00000000 (LONGUEUR) + CHR(1AH)
'SPEED | 0002 |
'DEVICE | 0001 | 0=SPK 1=ADL 2=SBP ;NOT USED NOW
'POSITIONS | 0256 |
'VOICES TYPE | 0256 |
'-------------------------
'INSTRUMENTS: | 4096 | (TOTAL BYTES, 64 INSTRUMENTS)
'-------------------------
'INSTRUM NAME | 0020 |
'DATAS | 0044 | (TOTAL BYTES, 1 INSTRUMENT
'IDENTIFICATION---|------|------|
' | 0001 | 0001 | IDENTIFICATION: THIS BYTE=02 WHEN IT IS USED OR 00 WHEN NOT.
'1° OPPERATOR-----|------|------|
' | | 0004B| MODULATOR FREQUECY MULTIPLE
' | | 0001B| KSR
' | | 0001B| EG TYPE
' | | 0001B| VIBRATO
' | | 0001B| AMPLITUDE MODULATION
' | | |
' | | 0006B| TOTAL LEVEL
' | | 0002B| SCALING LEVEL
' | | |
' | | 0004B| DECAY RATE
' | | 0004B| ATTACK RATE
' | | |
' | | 0004B| RELEASE RATE
' | | 0004B| SUBSTAIN LEVEL
' | | |
' | | 0001B| ALGORITHM
' | | 0003B| CONNECTION
' | | |
' | | 0002B| WAVEFORM SELECT
' | | 0004B| MODULATOR FREQUECY MULTIPLE
' | | 0001B| KSR
' | | 0001B| EG TYPE
' | | 0001B| VIBRATO
' | | 0001B| AMPLITUDE MODULATION
'2° OPPERATOR-----|------|------|
' | | 0006B| TOTAL LEVEL
' | | 0002B| SCALING LEVEL
' | | |
' | | 0004B| DECAY RATE
' | | 0004B| ATTACK RATE
' | | |
' | | 0004B| RELEASE RATE
' | | 0004B| SUBSTAIN LEVEL
' | | |
' | | 0001B| ALGORITHM
' | | 0003B| CONNECTION
' | | |
' | | 0002B| WAVEFORM SELECT
' OTHER BYTES UNUSED | |
'-------------------------
'PATTERN | ???? | ????=NUMBER OF VOICES * NUMBER OF PATTERN * 256 -> MAX=65536
'-------------------------
The new music files formats .MTR (v2.x) consist of:
---------------------------------------------------
'-------------------------
'FILE FORMAT: LENGTH
'-------------------------
'INFORMATION | 0050 | MTRACK MUSICNAME (20 CHAR) 00 (NBVOICES%-1) 00 (NBDIGITVOICES%) 00 (NB PATTERN-1) 00 (LENGTH) 00 (NB INSTRUM) 01F3 (RESTART) 00000000 (LENGHT) + CHR(1AH)
'POSITIONS | 0256 |
'-------------------------
'INSTRUM NAME | 0020 |
'DATAS | 0044 | (TOTAL BYTES, 1 INSTRUMENT
'IDENTIFICATION---|------|------|
' | 0001 | 0001 | IDENTIFICATION: THIS BYTE=02 WHEN IT IS USED OR 00 WHEN NOT.
'1° OPPERATOR-----|------|------|
' | | 0004B| MODULATOR FREQUECY MULTIPLE
' | | 0001B| KSR
' | | 0001B| EG TYPE
' | | 0001B| VIBRATO
' | | 0001B| AMPLITUDE MODULATION
' | | |
' | | 0006B| TOTAL LEVEL
' | | 0002B| SCALING LEVEL
' | | |
' | | 0004B| DECAY RATE
' | | 0004B| ATTACK RATE
' | | |
' | | 0004B| RELEASE RATE
' | | 0004B| SUBSTAIN LEVEL
' | | |
' | | 0001B| ALGORITHM
' | | 0003B| CONNECTION
' | | |
' | | 0002B| WAVEFORM SELECT
' | | 0004B| MODULATOR FREQUECY MULTIPLE
' | | 0001B| KSR
' | | 0001B| EG TYPE
' | | 0001B| VIBRATO
' | | 0001B| AMPLITUDE MODULATION
'2° OPPERATOR-----|------|------|
' | | 0006B| TOTAL LEVEL
' | | 0002B| SCALING LEVEL
' | | |
' | | 0004B| DECAY RATE
' | | 0004B| ATTACK RATE
' | | |
' | | 0004B| RELEASE RATE
' | | 0004B| SUBSTAIN LEVEL
' | | |
' | | 0001B| ALGORITHM
' | | 0003B| CONNECTION
' | | |
' | | 0002B| WAVEFORM SELECT
' OTHER BYTES UNUSED | |
'-------------------------
'PATTERN | ???? | ????=NUMBER OF VOICES * NUMBER OF PATTERN * 256 -> MAX=65536
'-------------------------
'-------------------------
'NEW FILE FORMAT MTRACK NC 00 00 00 00 00 00 0000 00000000
'-------------------------
'INFORMATIONS | 0050 | MTRACK NC (NO CRUNCHED) MUSICNAME (20 CHAR) 00 (NBVOICES%-1) 00 (NBDIGITVOICES%) 00 (NB PATTERN-1) 00 (LENGTH) 00 (NB INSTRUM) 01F3 (RESTART) 00000000 (LENGHT) + CHR(1AH)
'MUSIC NAME | 0020 |
'POSITIONS | 0256 |
'-------------------------
'INSTRUMENTS:
'-------------------------
'SAMPLENAME | 0020 | SAMPLES TOTAL MAX=16384, 1 SAMPLE=64 BYTES
'DATAS | 0044 | (TOTAL BYTES, 1 INSTRUMENT
'IDENTIFICATION---|------|------|
' | 0001 | 0001 | IDENTIFICATION: THIS BYTE=02 WHEN IT IS USED OR 00 WHEN NOT.
'1° OPPERATOR-----|------|------|
' | | 0004B| MODULATOR FREQUECY MULTIPLE
' | | 0001B| KSR
' | | 0001B| EG TYPE
' | | 0001B| VIBRATO
' | | 0001B| AMPLITUDE MODULATION
' | | |
' | | 0006B| TOTAL LEVEL
' | | 0002B| SCALING LEVEL
' | | |
' | | 0004B| DECAY RATE
' | | 0004B| ATTACK RATE
' | | |
' | | 0004B| RELEASE RATE
' | | 0004B| SUBSTAIN LEVEL
' | | |
' | | 0001B| ALGORITHM
' | | 0003B| CONNECTION
' | | |
' | | 0002B| WAVEFORM SELECT
' | | 0004B| MODULATOR FREQUECY MULTIPLE
' | | 0001B| KSR
' | | 0001B| EG TYPE
' | | 0001B| VIBRATO
' | | 0001B| AMPLITUDE MODULATION
'2° OPPERATOR-----|------|------|
' | | 0006B| TOTAL LEVEL
' | | 0002B| SCALING LEVEL
' | | |
' | | 0004B| DECAY RATE
' | | 0004B| ATTACK RATE
' | | |
' | | 0004B| RELEASE RATE
' | | 0004B| SUBSTAIN LEVEL
' | | |
' | | 0001B| ALGORITHM
' | | 0003B| CONNECTION
' | | |
' | | 0002B| WAVEFORM SELECT
' OTHER BYTES UNUSED | |
'-------------------------
'PATTERN | ???? | NB VOICES * NB PATTERN * 256 -> MAX=256 PATTERN 2097152 BYTES
'-------------------------
Now you can use easilly this new ADLIB player in your demos and create
yourself your music.
Attention: if you encounter some synchro problem when you do some animation,
you can increment or decrement the value of the 'PUBLIC SPEED:WORD' because
the interruption is generaly called 70 times per second as your monitor in
several screens modes!
See you for new quality production from ARKHAM!
[PYRO-FYRE]/ARKHAM
(Sorry for my bad english.)