1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
.\" $NetBSD: bww2tex.1,v 1.2 2003/01/24 10:11:28 wiz Exp $
.\" -*- nroff -*-
.Dd January 24, 2002
.Dt BWW2TEX 1
.Os
.Sh NAME
.Nm bww2tex
.Nd Bagpipe Music Writer Gold to BagpipeTeX converter
.Sh SYNOPSIS
.Nm
.Op Ar infile.bww Op Ar outfile
.Sh DESCRIPTION
.Nm
is designed to translate BWW/BMW source as specified in the Bagpipe
Music Writer Gold help, or the BMWDM Version 5.0/BMWPS Version 2.0
manual.
I infer from the archives that earlier BMW versions were more
tolerant of non-conforming code than this release.
(Actually I think it is that BMWDM is more tolerant than BMWPS or BMW gold).
I have not found it convenient to emulate all of these unknown (to me)
abilities, but have accommodated a few of the more common deviations.
.Nm
is less accomodating than bmw2tex.
I have implemented the old symbols which
have new names so that both old and new symbols will work.
This version successfully parses all but a dozen of the tunes in the
Peter Mohr and Michael Bell collections and the sample tunes in the
BMW Gold distribution.
The translated files (at least those free of blatant
copyright problems) are available on the Ceolas archive.
The failing input files have fairly gross errors (at least as they
arrive on my machine), e.g., no tabs whatsoever.
I have only spot checked that the files produced TeX properly.
.Pp
The code is written in flex and bison source.
These are processed into C *.c and *.h files which can then be compiled
into the executable.
The final program can be used as a UNIX filter, that is, it uses standard
input and output.
Alternatively, input and output files may be specified on the command line.
Enter
.Dq Ic bww2tex help
to get the details.
This should be easy to use on UNIX boxes, and in Win32 console mode.
Windows GUI mode and MAC systems are another story.
Such programs require additional App wrapper code, a developers
environment, or a shell program to use on MACs or as a Windows application.
The MAC application uses the DropUNIX app-wrapper.
In the current version the drag and drop feature still does not work, but
you can convert files using the select file menu item.
The result is awkward in that one has to restart the application for each
file converted, but at least it can be used.
.Sh USAGE
.Nm
does not add information that is not in the BWW/BMW source.
For example, it does not generate sloped beams.
It also does not adjust the spacing.
Many strathspeys will have overfull hboxes when TeXed.
See bagdoc.tex for solutions for crowded music.
There are a small number of items which BWW/BMW does that MusicTeX does not.
I have made reasonable substitutions.
The formatting instructions in BWW files are mostly ignored.
The font size is reduced to two sizes, and the landscape spec is honored.
.Nm
can't, of course, handle user defined BMW tokens.
musicsize16 (small music) is specified and the note spacing is set to a
minimal value.
The TeX output may edited to improve the appearance of tunes which do
attempt to crowd the lines.
.Pp
Unrecognized tokens are echoed to the output between bagpipe.tex lines.
Recognized tokens in an unrecognized order cause the parser to fail and
drop the current line.
Sometimes this is the fault of
.Nm
and sometimes of the BWW/BMW source.
The most common cause is a missing tab.
Other problems I've seen in archived BMW tunes include missing CLEFTs,
missing spaces, missing line termination, missing beam (l,r) characters,
capitalization errors, and tokens between a note and its dot.
.Pp
Once the input file has been parsed, the next question is will it TeX?
The most likely cause for a TeX failure is an unknown beamed group macro.
Often the only solution to this is to add the appropriate definition to
the TeX file.
Sometimes the note grouping may be rearranged so that an existing macro
may be used.
Another cause is a beamed group of a single note.
This can result an unknown macro or a misused macro.
These are usually due to errors in the BWW/BMW source,
either an inappropriate beam character or tabs in mid-beam.
.Pp
A parser trace may be generated by using a debugger to set the global
variable yydebug to 1 after breaking at yyparse.
.Pp
Please test only plausible BWW/BMW source, not arbitrary combinations of
tokens.
If you get a parsing error please verify that the BWW/BMW file is legal.
This is best done by running the source through the current version
of BMW gold.
The most common problem is that something happened to the tabs.
There must be a tab separating every beat, and none in the
middle of a beamed note group.
(The "group" may include things like trailing dots, ties, and triplet
signs, trailing embellishments, and first/second time indicators).
.Sh SEE ALSO
.Xr bagpipetex 1 ,
.Xr musixflx 1 ,
.Xr musixtex 1
.Sh AUTHORS
.Nm
was written by
.An Walt Innes Aq walt@slac.stanford.edu
in 2002.
Content of the manpage is also by him.
.Pp
Manpage created by David Griffith
.Aq dgriffi@cs.csubak.edu
using the
README from
.Nm
2.00 for inclusion in the
.Nx
pkgsrc tree.
.Sh CAVEATS
In UNIX, if the input director
.Pq Sq \*[Lt]
is intended, but the output director
.Pq Sq \*[Gt]
is typed, the bmw file will be wiped out.
This can be avoided by using an explicit file argument.
|