home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaMiscModsCD3.iso / _PROGRAMME / PLAYER / SOURCECODE / ps3msrc.lha / PS3M / demo / ps3m.i < prev   
Encoding:
Text File  |  1995-09-20  |  6.3 KB  |  273 lines

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