...Txt2Mid reference docs
Intro

Example

Snippets

Syntax

Txt2Mid - Syntax


Full Syntax:

I tried to make this notation as flexible as sheet music is
so the format is a bit complex.
(although limitations ARE there.  Esp note velocity, etc)


-
lines starting with the '-' character are comments.  They're ignored.


#
lines starting with the '#' character mean to include the named .txt file.
ex:  #drum 80     will include the drum.txt file 80 times


other lines are note event lines in this format:
    [this means optional]  {this means 0 or many}  (this means 1 or many)

notegroup[,notegroup]

notegroup    = duration {frequency}

duration     = [rolled](value[modifier])[articulation]

rolled       = ~  roll the notes (a 64th note gap in start times)

value        = W  hole note        H  alf
               Q  uarter           E  ighth
               S  ixteenth         T  hirtysecond
               6  tyfourth         1  hundred twenty eighth
               2  hundred fifty sixth...:)

               G  grace note - end note RIGHT before current time and start it
                  a legato 32nd note before that

modifier     = .  dotted
               3  triplet
                  ...else unaltered duration

articulation = <  stacatto  1/4
               =  portato   1/2
               >  leggerio  3/4    default unless tacked to end of current scale
               -  legato    1

frequency    = [Vvelo][octave]note[shFlNat][loud][fingering]
               [Vvelo]drumnote[loud]

octave       = 0 1 2 3 4 5 6 7 8       ...4 is middle octave 4c=middle c

note         = C D E F G A B

shFlNat      = #  sharpen it
               @  flatten it
               %  naturalize it   ...ignore current scale
                  ...else use current scale

velo         = 0 1 2 3 4 5 6 7 8 9

loud         = !  use velo=127 for prev note (only)
                  ...else use default velo

fingering    = ex:  [5]
                    [23]
                    ...etc

drumnote     = Kick  BassDrumAcoustic      Kik2  BassDrum1
               Stik  SideStick             Snar  SnareAcoustic
               Clap  HandClap              Snr2  SnareElectric
               TflL  TomFloorLo            HHCl  HiHatClosed
               TflH  TomFloorHi            HHPd  HiHatPedal
               TomL  TomLo                 HHOp  HiHatOpen
               TMdL  TomMidLo              TMdH  TomMidHi
               Cras  CymbalCrash1          TomH  TomHi
               Ride  CymbalRide1(Edge)     Chin  CymbalChinese
               RdBl  CymbalRideBell        Tamb  Tambourine
               Spla  CymbalSplash          Cowb  Cowbell
               Cra2  CymbalCrash2          Slap  Vibraslap
               Rid2  CymbalRide2           BonH  BongoHi
               BonL  BongoLo               ConM  CongaHiMute
               ConO  CongaHiOpen           ConL  CongaLo
               TimH  TimbaleHi             TimL  TimbaleLo
               AgoH  AgogoHi               AgoL  AgogoLo
               Caba  Cabasa                Mara  Maracas
               Whis  WhistleShort          WhiL  WhistleLong
               GuiS  GuiroShort            GuiL  GuiroLong
               Clav  Claves                BlkH  WoodBlockHi
               BlkL  WoodBlockLo           CuiH  CuicaHi
               CuiL  CuicaLo               TriM  TriangleMute
               TriO  TriangleOpen

$
lines starting with the '$' character define the scale and default articulation
   for example...
$##e###b<          will make all C,D,F,G and A notes into C#,D#,F#,G# and A# and
                   the default articulation stacatto
$cd@fga@>          will make all E and B notes into Eb and Bb (umm, flat) and
                   the default articulation leggerio

!
lines starting with the '!' character are control change events
for example...
!Vol=100
!PBnd=64
!Tmpo=120      (in BPM - which is actually defined as QUARTER NOTES per minute)
               (BPM ignores what the timesig says our beat is - by definition)
!TSig=6/8
!Hold=64

Here are all the controls:
   Prog, Prss, PBnd,
   Vol,  Expr, Pan,  Bal,
   Mod,  Brth, Pedl,
   Hold, Hld2, Soft, Sust, Lega,
   Sld1, Sld2, Sld3, Sld4,
   Btn1, Btn2, Btn3, Btn4,
   Tmpo

Duration breakout (for those into gory detail - timing 'ticks' per duration)
    normal  dotted=.  triplet=3
 w  768     1152      512
 h  384      576      256
 q  192      288      128
 e   96      144       64
 s   48       72       32
 t   24       36       16
 6   12       18        8
 1    6        9        4
 2    3        4? :/    1
________________________________________________________________________________

Ok, that's it for Txt2Mid (finally)
email stephen.hazel over at gmail.com