Text lines are as you want to see them on the screen apart from a syllable separator. Valid separators are: blank - , ; . The '-' separator is not displayed. For example the line 'I be-come la-zy' is displayed as 'I become lazy' but is 'karaoked' as 'I be come la zy'. It's more easy to understand than to explain.In conclusion: TXK files are not defined very precisely. This does no harm as long as there is only one product making use of these files (and only one person or company producing them). But Midi Karaoke is now spreading rapidly all over the Midi place. And the need for Karaoke-editor programs was uttered several times in the alt.binaries.sounds.midi newsgroup (where is it nowadays?).
Edwin van Veldhoven and/or Han de Bruijn (myself) have produced several KARaoke
files, such as 'Er is iets aan de hand (Something
Strange)', 'Die blik in je ogen (That Look
in Your Eyes)' and 'Eurydice'. This work was
accomplished with help of clumsy programming and work-arounds. In October 1995,
it was decided to tackle the problem more seriously.
That is: to develop a 'Midi + Text -> Karaoke' conversion program
But we did such rather independently of each other. And the inevitable
happened: our Song Texts turned out to be mutually incompatible. Hence we
concluded that a somewhat more accurate definition of what is called a
'Song Text Format' (STF) would be desirable. Here comes what we considered
as our best shot at that time.
With my 'MIDIDOOS', the Header material simply consists of the following:
Silent Night Words and Music by Joseph Mohr & Franz GruberNote:
Within the bulk material, empty lines also mark the boundaries between 'verses'. (A new verse corresponds with a '\' character in the Karaoke file.) A new verse is visualized by a clear screen, two empty lines, or one empty line: it all heavily depends upon the Karaoke Player used.
There will be NO pure syntax checking on the contents of the bulk part. Certain symbols have a special meaning, however, as was suggested already by Cocatrix. In the first place, the notion of a separator, between syllables, is important. Now I think it is desirable to stay as close as possible to conventional music practice (: sol-fa). I've checked out several song-books - as they are used in church, for example - and it is conjectured that there will be little dispute about the validity of the following separators (between syllables).
Name typed as ASCII displayed ----------------------------------------------- - NewLine '' (13) 10 yes - Blank ' ' 32 yes - Tab ' ' 9 yes, as a blank - Hyphen '-' 45 no - Underscore '_' 95 noSeparators serve as marks for synchronization with the music. To be more precise: (the beginning or the end of) a separator (depending on the player) corresponds with a Note-ON event in the MIDi file. As follows:
separator syllable separator syllable separator syllable ... Note ON ---------^------------------^------------------^--------Whereby it is assumed that people can sing only one note at a time: no chords. (Note that this is in fact a serious limitation!)
Any separator, except a NewLine, can be 'escaped'. The backslash symbol '\' is reserved for this purpose. A separator which is preceded by a backslash is NOT a separator anymore; it must be considered as part of a syllable (which is the stuff between two separators). Definition:
Name typed as ASCII displayed ----------------------------------------------- - Escape '\' 92 noBlanks deserve some special attention. What about a series of blanks, a blank preceding a newline or a blank following a newline? The following arrangement about blanks is proposed (where it is assumed that they are not '\' escaped):
Ad-di-ti-o-nal blanks are ig-noredwill be found to be to be entirely equivalent to
Ad-di-ti-o-nal blanks are ig-noredIf you insist on displaying additional blanks, escapes must be used:
Ad-di-ti-o-nal blanks are NOT \ \ ig-nored here\ ...This sentence is karaoked as:
'Ad','di','ti','o','nal ','blanks ','are ','NOT ',' ig','nored ','here ...'Though blanks may serve as separators, they nevertheless are always displayed on the computer screen. Such is contrary with the hyphen and underscore signs, which, as a default, are NOT displayed. Here is where the Escape character '\' comes in again. With help of it, hyphens and underscores can yet be displayed, but only as as part of a syllable. The escape sign itself is never displayed.
Take the sentence: 'I've checked out several song-books - as they are used in church - and I've learned how lyrics are used in practice'. This text might be translated in STF language (apart from any newlines) as follows: 'I've checked out se-ve-ral song\--books \-\ as they are used in church \-\ and I've learned how ly-rics are used in prac-tise'.
It often occurs that More than One note is associated with just one syllable. Extensive examples of this are found in the Latin music of the catholic church. Looking up the lyrics, one finds that they are printed as follows:
De _ o _ _ _ gra _ ti _ asThis brings up the idea of an empty syllable. It's basically simple: everything between two separators is a syllable, even if it's ... just nothing! Let's make use of such empty syllables, for making the above example more computer minded:
De____o_________________ gra_ti_asIt is remarked that Proper Counting of everything between two '_' is necessary, in order to stay in tempo with the music. The above example shows that such is not always simple. It would be of great help if empty syllables, yet, could be visible, let it be in the STF file alone! This can be made possible, if only people are willing to agree upon the following convention: cipher's may be included in Song Texts as syllables, but they will never be displayed on a PC screen. Definition:
Name typed as ASCII displayed ------------------------------------------------- - Cipher '0' - '9' 48 - 57 noLet's try on the above example:
De_2_3_4_o_2_3_4_5_1_2_3_4_5_6_7_1_2_3_4_5_6 gra_ti_asWhich is, indeed, much less sensitive to error making than the preceding one.
Let 'Silent Night' serve as a well known application of the above theory.
It's not so difficult after all !!