home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / music / songdump / songdump.doc < prev    next >
Text File  |  1987-07-03  |  3KB  |  89 lines

  1. SONGDUMP.TTP songdump.c
  2.  
  3. Dump a music studio song, playing the notes as they occur.
  4.  
  5. The source is provided so a true player can be made, or a better dumper or
  6. converter for different sequencer formats.  Read the source for some details
  7. which will not be documented here.
  8.  
  9. Song dump:
  10. key:xx,                key signature
  11. tempo, quarter note = n,    tempo marking (M.M.)
  12. time:x/x,            time signature
  13. loud=xx                loudness, pp 15-127 ff
  14.  
  15.  n*[    begin n times repeat
  16.  ]    end repeat
  17. |    bar
  18. {instrument:note(marks) duration(marks)}
  19.     note is not pitch, if no incidentals #,(nat),b adjust for key.
  20.     (    begin tie
  21.     )    end tie
  22.     -    rest
  23.     >    accent
  24.     .    dotted note
  25.     (3)    triplet
  26.  
  27. lines correspond to vertical columns in the normal display
  28.  
  29. Things that don't work well (yet), mainly in the player
  30.  
  31.     The pause does not compensate for processing time, so 32nd notes will
  32.     go slower.
  33.  
  34.     Ties aren't supported, it sounds as discrete notes.
  35.  
  36.     accents are not supported
  37.  
  38.     all notes are quieted at the end of the bar's duration, so if it has
  39.     both a half and a quarter note, it will cut the half note off when
  40.     the quarter note ends.
  41.  
  42.     I am using my own pause routine compatible with Micro RTX from
  43.     Beckemeyer Development Tools
  44.  
  45. ---------------------------------------------------------------------------
  46. Song file structure
  47.  
  48. 512 byte header structure:
  49.     10 byte header CD,'Mstudio',CD,02
  50.     15*10 byte atari instrument names (null terminated)
  51.     15*8 byte atari instrument settings
  52.     15*10 byte casio instrument names (null terminated)
  53.     15 bytes casio settings
  54.     15 bytes casio settings
  55.     5 pointers (file displacement) to lyric lines
  56.     32 byte null terminated title string
  57.  
  58. after the 512 byte header (hexadecimal unless noted):
  59.  
  60. track 1-4 bitmap (4 * 1 word)
  61.     instrument active, [15:14:13...2:1:track enable]
  62. 00:80:01:key
  63.     1= C G D A E B F# C# F Bb Eb Ab Db Gb Cb =15
  64. 83:time
  65.     1= 2/2 3/2 2/4 3/4 4/4 5/4 6/8 =7
  66. 81:tempo
  67.     quarternote = tempo, 57..200
  68. 84:01:volume
  69.     0F pianissimo .. fortissimo 7F
  70.  
  71. music, 00 delimits beginning of column data, 0xff marks end of music info
  72. 82
  73.     bar
  74. 85:number
  75.     repeat number of times
  76. 86
  77.     end repeat
  78.  
  79. note format
  80.  0 : tie start : tie end : rest(not note) : [instrument:4]
  81.  [0=inkey 1=nat 2=sharp 3=flat :2] : accent : [duration:5]
  82.  pitch in C major midi coding (18(24d)=C2)
  83.  
  84.   duration: 12d = quarter note, (+2 for dotted(*3/2) , -2 for triplet (*2/3) )
  85.     9d = 1/8th , 6d = 1/16th  15d = half, 18d = whole, etc.
  86.   pitch is always the natural note, later adjusted for key, or explicit sharp,
  87.     natural, or flat.
  88.   d means decimal.  all other numbers in hex.
  89.