home *** CD-ROM | disk | FTP | other *** search
/ Audio Version 4.94 / audioversion4.94knowledgemediaresourcelibraryoctober1994.iso / amiga / utils / exp_iv / song.h < prev    next >
C/C++ Source or Header  |  1991-05-12  |  2KB  |  95 lines

  1. /* song.h */
  2.  
  3. /* internal data structures for the soundtracker player routine....
  4.  * will have little in common with the binary format
  5.  */
  6.  
  7. /* $Author: Espie $
  8.  * $Date: 91/05/12 19:55:19 $
  9.  * $Revision: 1.12 $
  10.  * $Log:    song.h,v $
  11.  * Revision 1.12  91/05/12  19:55:19  Espie
  12.  * Shortened events.
  13.  * 
  14.  * Revision 1.11  91/05/06  23:35:29  Espie
  15.  * Changed finetune from UBYTE to BYTE.
  16.  * 
  17.  * Revision 1.10  91/05/05  04:00:56  Espie
  18.  * Changed the definition of the number of samples.
  19.  * 
  20.  * Revision 1.9  91/05/02  01:31:31  Espie
  21.  * A new sample.
  22.  * 
  23.  * Revision 1.8  91/04/30  00:35:59  Espie
  24.  * Stable version III.
  25.  * 
  26.  * Revision 1.7  91/04/28  22:54:07  Espie
  27.  * Changed the misleading command to parameters.
  28.  * 
  29.  * Revision 1.6  91/04/23  21:30:12  Espie
  30.  * New cleanup field (see load.c).
  31.  * 
  32.  * Revision 1.5  91/04/21  20:05:58  Espie
  33.  * Notes added.
  34.  * 
  35.  * Revision 1.4  91/04/21  12:11:57  Espie
  36.  * Stable version, known as bunch II.
  37.  * Also features ``right'' log description.
  38.  * 
  39.  * Revision 1.3  91/04/19  13:22:27  Espie
  40.  *
  41.  * Revision 1.2  91/04/18  02:25:13  Espie
  42.  * bunch I.
  43.  * 
  44.  * Revision 1.1  91/04/17  18:52:32  Espie
  45.  * Initial revision
  46.  *
  47.  */
  48.  
  49. #define NUMBER_SAMPLES 32
  50. #define BLOCK_LENGTH 64
  51. #define NUMBER_TRACKS 4
  52.  
  53. struct sample_info
  54.     {
  55.         char *name;
  56.         UWORD length, rp_offset, rp_length;
  57.         UBYTE volume;
  58.         BYTE finetune;
  59.         UWORD *start, *rp_start;
  60.     };
  61.  
  62. struct event
  63.     {
  64.         UBYTE sample_number;
  65.         UBYTE note;
  66.         UBYTE effect;
  67.         UBYTE parameters;
  68.     };
  69.  
  70. struct block
  71.     {
  72.         struct event e[NUMBER_TRACKS][BLOCK_LENGTH];
  73.     };
  74.     
  75.         
  76. struct song_info
  77.     {
  78.         UBYTE length;
  79.         struct block * *pblocks;
  80.         
  81.         UBYTE total;
  82.         struct block *physical;
  83.         UBYTE thing;
  84.     };
  85.  
  86. struct song
  87.     {
  88.         char *title;
  89.         CLEAN clear;
  90.             /* sample 0 is always a dummy sample */
  91.         struct sample_info *samples[NUMBER_SAMPLES];
  92.         struct song_info *info;
  93.     };
  94.  
  95.