home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaMiscModsCD3.iso / _PROGRAMME / PLAYER / SOURCECODE / ps3msrc.lha / PS3M / ps3m.i < prev    next >
Encoding:
Text File  |  1996-02-22  |  6.2 KB  |  274 lines

  1. ** Include file for PS3M
  2. ** For version 0.960 020+ / 22.02.1996
  3. ** Copyright 1994-96 Jarno Paananen
  4.  
  5.     ifnd    PS3M_I
  6.  
  7. PS3M_I    set    1
  8.  
  9. ;/***************************************************************************\
  10. ;*       struct mChanBlock
  11. ;*       -----------------
  12. ;* Description:  PS3M mixer channel block
  13. ;\***************************************************************************/
  14.  
  15.  
  16.     STRUCTURE mChanBlock,0
  17.     LONG    mStart
  18.     LONG    mLength
  19.     LONG    mLStart
  20.     LONG    mLLength
  21.     UWORD    mPeriod
  22.     UWORD    mVolume
  23.     LONG    mFPos
  24.     UBYTE    mLoop
  25.     UBYTE    mOnOff
  26.     UBYTE    mPanning
  27.     UBYTE    Filler
  28.     LABEL    mChanBlock_SIZE
  29.  
  30.  
  31. ;/***************************************************************************\
  32. ;*       struct s3mChanBlock
  33. ;*       -------------------
  34. ;* Description:  S3M and XM player channel block
  35. ;\***************************************************************************/
  36.  
  37.     STRUCTURE s3mChanBlock,0
  38.     UBYTE    nt
  39.     UBYTE    inst
  40.     UBYTE    vol
  41.     UBYTE    cmd
  42.     UBYTE    info
  43.     UBYTE    flgs
  44.  
  45.     APTR    sample
  46.     UWORD    linst
  47.     UWORD    period
  48.     UWORD    volume
  49.     UBYTE    note
  50.     UBYTE    lastcmd
  51.  
  52.     UBYTE    tvalue
  53.     UBYTE    tcount
  54.     UWORD    ttoggle
  55.  
  56.     UWORD    loopcnt
  57.     UWORD    looprow
  58.  
  59.     UWORD    toperiod
  60.     UBYTE    notepspd
  61.  
  62.     UBYTE    panning
  63.  
  64.     UWORD    rVolume
  65.     UWORD    rPeriod
  66.     UWORD    fadeOut
  67.     UBYTE    fading
  68.     UBYTE    keyoff
  69.  
  70.     UBYTE    age
  71.     UBYTE    filler
  72.  
  73.     UBYTE    retrigcn
  74.     UBYTE    vibcmd
  75.     UBYTE    vibpos
  76.     UBYTE    lastOffset
  77.  
  78.     UBYTE    volEnvOn
  79.     UBYTE    volSustained
  80.     UWORD    volEnvX
  81.     UWORD    volEnvY
  82.  
  83.     UBYTE    panEnvOn
  84.     UBYTE    panSustained
  85.     UWORD    panEnvX
  86.     UWORD    panEnvY
  87.  
  88.     LABEL    s3mChanBlock_SIZE
  89.  
  90.  
  91. ;/***************************************************************************\
  92. ;*       struct s3mInstHdr
  93. ;*       -----------------
  94. ;* Description:  S3M instrument header
  95. ;\***************************************************************************/
  96.  
  97.  
  98.     STRUCTURE s3mInstHdr,0
  99.  
  100.     UBYTE    instype
  101.     STRUCT    insdosname,12
  102.     UBYTE    inssig1
  103.     UWORD    insmemseg
  104.     LONG    inslength
  105.     LONG    insloopbeg
  106.     LONG    insloopend
  107.     UBYTE    insvol
  108.     UBYTE    insdsk
  109.     UBYTE    inspack
  110.     UBYTE    insflags
  111.     UWORD    insloc2spd
  112.     UWORD    inshic2spd
  113.     STRUCT    inssig2,4
  114.     UWORD    insgvspos
  115.     UWORD    insint512
  116.     LONG    insintlastused
  117.     STRUCT    insname,28
  118.     STRUCT    inssig,4
  119.     LABEL    s3mInstHdr_SIZE
  120.  
  121.  
  122. ;/***************************************************************************\
  123. ;*       struct s3mHeader
  124. ;*       ----------------
  125. ;* Description:  S3M main header
  126. ;\***************************************************************************/
  127.  
  128.     STRUCTURE s3mHeader,0
  129.  
  130.     STRUCT    name,28
  131.     UBYTE    sig1
  132.     UBYTE    type
  133.     STRUCT    sig2,2
  134.     UWORD    ordernum
  135.     UWORD    insnum
  136.     UWORD    patnum
  137.     UWORD    flags
  138.     UWORD    cwtv
  139.     UWORD    ffv
  140.     STRUCT    s3msig,4
  141.     UBYTE    mastervol
  142.     UBYTE    initialspeed
  143.     UBYTE    initialtempo
  144.     UBYTE    mastermul
  145.     STRUCT    sig3,12
  146.     STRUCT    chanset,32
  147.     UBYTE    orders
  148.     ;UWORD    *parapins
  149.     ;UWORD   *parappat
  150.     LABEL    s3mHeader_SIZE
  151.  
  152.  
  153. ;/***************************************************************************\
  154. ;*       struct xmHeader
  155. ;*       ---------------
  156. ;* Description:  Extended Module file header
  157. ;\***************************************************************************/
  158.  
  159.     STRUCTURE xmHeader,0
  160.  
  161.     STRUCT    xmExtended,17        ; "Extended Module: "
  162.     STRUCT    xmName,20        ; module name
  163.     UBYTE    xmNum1A            ; 0x1A
  164.     STRUCT    xmTrackerName,20    ; tracker name
  165.     UWORD    xmVersion        ; version number, major-minor
  166.     LONG    xmHdrSize        ; header size
  167.     UWORD    xmSongLength        ; song length
  168.     UWORD    xmRestart        ; restart position
  169.     UWORD    xmNumChans        ; number of channels
  170.     UWORD    xmNumPatts        ; number of patterns
  171.     UWORD    xmNumInsts        ; number of instruments
  172.     UWORD    xmFlags            ; flags
  173.     UWORD    xmSpeed            ; initial speed
  174.     UWORD    xmTempo            ; initial tempo
  175.     STRUCT    xmOrders,256        ; pattern order table
  176.     LABEL    xmHeader_SIZE
  177.  
  178. ; Flag bits:
  179.  
  180. xmLinearFreq = 0            ; linear frequency table
  181.  
  182.  
  183. ;/***************************************************************************\
  184. ;*       struct xmPattHdr
  185. ;*       ----------------
  186. ;* Description:  Fasttracker 2 Extended Module pattern header
  187. ;\***************************************************************************/
  188.  
  189.     STRUCTURE xmPattHdr,0
  190.  
  191.     LONG    xmPattHdrLength        ; pattern header length
  192.     UBYTE    xmPackType        ; packing type (now 0)
  193.     UWORD    xmNumRows        ; number of rows
  194.     UWORD    xmPattDataSize        ; pattern data size
  195.     LABEL    xmPattData        ; packed pattern data
  196.     LABEL    xmPattHdr_SIZE
  197.  
  198.  
  199.  
  200. ;/***************************************************************************\
  201. ;*       struct xmInstHdr
  202. ;*       ----------------
  203. ;* Description:  Fasttracker 2 Extended Module instrument header
  204. ;\***************************************************************************/
  205.  
  206.     STRUCTURE xmInstHdr,0
  207.     
  208.     LONG    xmInstSize        ; instrument size
  209.     STRUCT    xmInstName,22        ; instrument filename
  210.     UBYTE    xmInstType        ; instrument type (now 0)
  211.     UWORD    xmNumSamples        ; number of samples in instrument
  212.     LABEL    xmInstHdr_SIZE
  213.  
  214. ; If numSamples > 0, this will follow
  215.  
  216.     LONG    xmSmpHdrSize        ; sample header size
  217.     STRUCT    xmSmpNoteNums,96    ; sample numbers for notes
  218.     STRUCT    xmVolEnv,48        ; volume envelope points
  219.     STRUCT    xmPanEnv,48        ; panning envelope points
  220.     UBYTE    xmNumVolPnts        ; number of volume points
  221.     UBYTE    xmNumPanPnts        ; number of panning points
  222.     UBYTE    xmVolSustain        ; volume sustain point
  223.     UBYTE    xmVolLoopStart        ; volume loop start point
  224.     UBYTE    xmVolLoopEnd        ; volume loop end point
  225.     UBYTE    xmPanSustain        ; panning sustain point
  226.     UBYTE    xmPanLoopStart        ; panning loop start point
  227.     UBYTE    xmPanLoopEnd        ; panning loop end point
  228.     UBYTE    xmVolType        ; volume envelope flags
  229.     UBYTE    xmPanType        ; panning envelope flags
  230.  
  231.     UBYTE    xmVibType        ; vibrato type
  232.     UBYTE    xmVibSweep        ; vibrato sweep
  233.     UBYTE    xmVibDepth        ; vibrato depth
  234.     UBYTE    xmVibRate        ; vibrato rate
  235.     UWORD    xmVolFadeout        ; volume fadeout
  236.     UWORD    xmReserved
  237.     LABEL    xmInstHdr2_SIZE
  238.  
  239.  
  240. ; Envelope flags:
  241.  
  242. xmEnvOn = 0                ; envelope on
  243. xmEnvSustain = 1            ; envelope sustain on
  244. xmEnvLoop = 2                ; envelope loop on
  245.  
  246.  
  247. ;/***************************************************************************\
  248. ;*       struct xmSmpHdr
  249. ;*       ---------------
  250. ;* Description:  Fasttracker 2 Extended Module sample header
  251. ;\***************************************************************************/
  252.  
  253.     STRUCTURE xmSmpHdr,0
  254.  
  255.     LONG    xmSmpLength        ; sample length
  256.     LONG    xmLoopStart        ; loop start
  257.     LONG    xmLoopLength        ; loop length
  258.     UBYTE    xmVolume        ; volume
  259.     BYTE    xmFinetune        ; finetune
  260.     UBYTE    xmSmpFlags        ; sample flags
  261.     UBYTE    xmPanning        ; sample panning
  262.     BYTE    xmRelNote        ; relative note number
  263.     UBYTE    xmReserved2
  264.     STRUCT    xmSmpName,22        ; sample name
  265.     LABEL    xmSmpHdr_SIZE
  266.  
  267.  
  268. ; sample flags
  269.  
  270. xmLoopType = 3
  271. xm16bit = $10
  272. xm16bitf = 4
  273.     endc
  274.