blob: 566af1a4ce6cd91f6536348d0187850b3227a97c (
about) (
plain)
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
|
\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
@ignore
Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
@node divide-and-conquer
@unnumberedsec Plan de campagne
Since content and form of a score are separate, we have to match that
in the design of software. Hence, the basic blueprint of our program
should follow this scheme
@multitable @columnfractions .3 .3 .3
@item
@sourceimage{simple-notation,,,.png}
@tab
@strong{←}
@tab
@code{@{ c'4 d'8 @}}
@item
1. form
@tab
2. translation
@tab
3. content
@end multitable
In effect, we are conquering the problem by dividing it into
subproblems
@enumerate 1
@item
Typography: @strong{where} to put symbols
@item
Notation: @strong{what} symbols to produce
@item
Representation: how to @strong{encode} music
@end enumerate
Finally, whenever you subdivide a problem, a new problem is created,
@enumerate 4
@item
Architecture: glue everything @strong{together}
@end enumerate
@divClass{float-right}
@divEnd
Next: @ref{implementing-notation,Impressive, but does it also
work in theory}? A practical approach to capturing notation.
@bye
|