...Txt2Mid reference docs
Intro

Example

Snippets

Syntax

Txt2Mid - Example


song Example:

   You'll need more than one .txt file to define a song,
      so it's best to make a directory for the song and
      put each of the files in it.  For example...
      Song\Txt\Nushooz_CantWait\
         CantWait.song
         CantWait.txt
         drum.txt
         left.txt
         right.txt
         vocal.txt
         bass_a.txt
         bass_b.txt
         bass_c.txt

Take a look at CantWait.song  (which is just a text file)...

      Track:
      . Drum\Drum        .DrumTrack
      . Bass\Syn1        .Left
      . SynLead\Sawtooth .Right
      . SynLead\Voice    .Vocal
      Control:
      Tmpo
      Vol
      Marker:
      1  intro
      9  verse
      25 chorus
      31 bridge1
      33 bridge2
      43 coda
      Section:
      intro
      verse
      chorus
      bridge1
      intro
      verse
      chorus
      bridge2
      coda
      coda


   We have 4 tracks that use the default midiout device and certain sounds.
      The last thing on the line is a track name/description
   The song uses 2 controls:  tempo and volume.
   Marker:  says that the intro starts at bar 1, verse at bar 9, etc.
   Section: says how to order and repeat these sections of the song.
________________________________________________________________________________

We also have CantWait.txt containing...

      $cd@fga@
      !Tmpo=120
      #Drum
      NextTrack
      #Left
      NextTrack
      #Right
      NextTrack
      #Vocal


   That's the top level .txt file to create our tracks.
   Mostly it just "includes" other .txt files for each individual track and
      then has a "NextTrack" to start the, umm, Next Track.

   Lines starting with - are comment lines.

   The  $cd@fga@  line sets the scale so that e and b notes always get flatted.
                                                              (unless natural'd)
   !Tmpo=120 sets the tempo control at 120

   Drum.txt is the first file to load in and "do".

   Txt2Mid looks for files in the same directory as the top .txt file
      AND in the PianoCheater\SongClip\* directories
   (You can put any common tracks in the Clip directory like drum patterns)
________________________________________________________________________________

Drum.txt in turn has the drum track referencing the drum clips in \SongClip...

      ------- intro
      -- 8 bars of drums in ABABABAC pattern using rock 5,7,f9
      -- (8 bars of non chorus)
      #Drum\Pat\1\Rock\05
      #Drum\Pat\1\Rock\07
      #Drum\Pat\1\Rock\05
      #Drum\Pat\1\Rock\07
      #Drum\Pat\1\Rock\05
      #Drum\Pat\1\Rock\07
      #Drum\Pat\1\Rock\05
      #Drum\Fill\Rock\09
      ------- verse
      #Drum\Pat\1\Rock\05
      #Drum\Pat\1\Rock\07
      #Drum\Pat\1\Rock\05
      #Drum\Pat\1\Rock\07
      #Drum\Pat\1\Rock\05
      #Drum\Pat\1\Rock\07
      #Drum\Pat\1\Rock\05
      #Drum\Fill\Rock\09
      #Drum\Pat\1\Rock\05
...etc...
________________________________________________________________________________

\SongClip\Drum\Pat\1\Rock\05.txt (for example) in turn has...

      --- Rock 5
      s kick      hhcl
      s
      s kick      hhcl
      s
      s      snar!hhcl!
      s
      s kick      hhcl
      s
      s           hhcl
      s
      s kick      hhcl
      s
      s      snar!hhcl!
      s
      s kick      hhcl
      s

   s means sixteenth note
   kick turns into the standard midi note of 2b
              (octave 2 note b maps to kick in general midi's standard drum map)
   hhcl "     "    "   "        "    "    "  3f#
   The ! means play the note at max velocity (127 instead of normal=100)
________________________________________________________________________________

After the full drum track is built, there's a
   NextTrack  command to, well, start the next track, derrr...

   We do the left hand piano track next.
   It uses 3 one bar bass patterns (bass_a, bass_b and bass_c.txt)
   Then right hand piano track and finally the vocal track.

   For example, right.txt has...

      !vol=80
      ---------------------------------------- intro 1
      e 4b,   h eg
      e b
      e 5d
      e c
      e 4gb,  q e
      s 5c
      s 4g
      e
      e b
      ----------
      e  4b,  q.s df
      e  b
      e  5d
      s  c
      sq 4dfgb
      e
      e  b
      ---------- 3
...etc...


   !vol=80
      means set volume control to 80  (of 127)
      and then we start the notes (remembering the scale we set)

   e 4b, h eg
      means play an eighth note on octave 4 note b    (oct 4 has middle c in it)
         (which will be flatted to 4a#=4b@(flat) per our scale)
      and at the same time start a half note with e and g  (same octave)

   in general, lines start with a Duration then OctaveNote.

   A trailing comma means that another note group starts at the same time
   with a different (usually longer) duration

   our leftmost duration was an eighth so
   the next line down's note starts RIGHT after that eigth
      (while the e and g keep sustaining for a bit).

   The articulation for the note defaults to leggerio (3/4 the full duration).
   You can set the default articulation (effecting ALL following notes, too) to
      staccato < (1/4 dur)
      portato  = (1/2 dur)
      leggerio > (3/4 dur - the default if ommitted) or
      legato   - (full dur)

   I tend to put -- lines at the bar boundaries
      and number the bars at the beginning of a line (row?) of sheet music
      (in the left margin on the sheet, and to right of -- bar marker)
________________________________________________________________________________

Next up, some example snippets
email stephen.hazel over at gmail.com