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)
|