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
|