Viewpoints » History » Version 7

Marcus Pearce, 2014-06-03 09:02 PM

1 1 Marcus Pearce
h1. Viewpoints
2 2 Marcus Pearce
3 5 Marcus Pearce
{{>toc}}
4 1 Marcus Pearce
5 5 Marcus Pearce
Viewpoints are representations of musical structure. A number of functions are provided to help the user work with viewpoints and viewpoint data.
6 5 Marcus Pearce
7 5 Marcus Pearce
The [[List of Viewpoints|available viewpoints]] are described in "Pearce [2005]":http://webprojects.eecs.qmul.ac.uk/marcusp/papers/Pearce2005.pdf and implemented in the <code>derived-viewpoints/</code> directory in amuse-viewpoints. It is easy to implement new viewpoints, the examples in the code and [[Adding Viewpoints]] should help you get started.
8 5 Marcus Pearce
9 6 Marcus Pearce
h2. Viewpoint sequences
10 5 Marcus Pearce
11 5 Marcus Pearce
The function <code>viewpoint-sequence</code> returns a representation of a melody (composition 0 in dataset 0) corresponding to the supplied viewpoint (chromatic pitch: cpitch). The output corresponds to the pitch of each note in the melody.
12 5 Marcus Pearce
13 2 Marcus Pearce
<pre>
14 2 Marcus Pearce
CL-USER> (viewpoints:viewpoint-sequence
15 2 Marcus Pearce
          (viewpoints:get-viewpoint 'cpitch)
16 2 Marcus Pearce
          (md:get-event-sequence 0 0))
17 5 Marcus Pearce
(65 62 60 60 60 60 65 65 65 69 69 69 69 69 67 65 65 65 62 60 60 65 69 69 67 65
18 5 Marcus Pearce
 60 60 60 60 65 65 65 65 69 69 69 69 72 72 77 74 72 69 69 69 69 65 67 69 65 65
19 5 Marcus Pearce
 65 77 74 72 74 76 77 72 72 74 72 74 76 77 74 72 74 76 77 76 77 74 72 69 67 65
20 5 Marcus Pearce
 67 77 77 74 72 74 76 77 72 72 74 72 74 76 77 76 74 72 69 69 69 69 67 65 67 69
21 5 Marcus Pearce
 65 65)
22 2 Marcus Pearce
</pre>
23 2 Marcus Pearce
24 2 Marcus Pearce
h2. Derived viewpoints
25 4 Marcus Pearce
26 4 Marcus Pearce
We can also use viewpoints which represent derived features such as pitch interval (cpint) or IOI ratio (ioi-ratio). Note that because these two derived viewpoints represent relationships between notes, they are undefined for the first note in the sequence (which has no predecessor).
27 2 Marcus Pearce
28 2 Marcus Pearce
<pre>
29 2 Marcus Pearce
CL-USER> (viewpoints:viewpoint-sequence
30 2 Marcus Pearce
          (viewpoints:get-viewpoint 'cpint)
31 2 Marcus Pearce
          (md:get-event-sequence 0 0))
32 5 Marcus Pearce
(-3 -2 0 0 0 5 0 0 4 0 0 0 0 -2 -2 0 0 -3 -2 0 5 4 0 -2 -2 -5 0 0 0 5 0 0 0 4 0
33 5 Marcus Pearce
 0 0 3 0 5 -3 -2 -3 0 0 0 -4 2 2 -4 0 0 12 -3 -2 2 2 1 -5 0 2 -2 2 2 1 -3 -2 2
34 5 Marcus Pearce
 2 1 -1 1 -3 -2 -3 -2 -2 2 10 0 -3 -2 2 2 1 -5 0 2 -2 2 2 1 -1 -2 -2 -3 0 0 0
35 5 Marcus Pearce
 -2 -2 2 2 -4 0)
36 2 Marcus Pearce
</pre>
37 4 Marcus Pearce
38 4 Marcus Pearce
39 2 Marcus Pearce
<pre>
40 1 Marcus Pearce
CL-USER> (viewpoints:viewpoint-sequence
41 1 Marcus Pearce
          (viewpoints:get-viewpoint 'ioi-ratio)
42 1 Marcus Pearce
          (md:get-event-sequence 0 0))
43 1 Marcus Pearce
(1 1/2 1 1 1 2 1/2 1 1 1 1 1 2 1 1/2 1 2 1 1/2 1 2 1/2 1 3 1/3 1 1 1 1 1 1 1 1
44 1 Marcus Pearce
 1 1 1 1 1 1 1 1 1 1 1 1 2 1/2 1 1 1 2 3/2 1/3 1 1 1 1 2 1/2 1 1 1 1 1 4 1/4 1
45 1 Marcus Pearce
 1 1 1 1 1 1 1 1 1 1 2 1/2 1 1 1 1 1 2 1/2 1 1 1 1 1 2 1/2 1 1 1 1 1 1 1 1 1 2
46 1 Marcus Pearce
 1)
47 1 Marcus Pearce
</pre>
48 1 Marcus Pearce
49 1 Marcus Pearce
50 7 Marcus Pearce
h2. Linked viewpoints
51 1 Marcus Pearce
52 1 Marcus Pearce
Linked viewpoints are represented as a list of component viewpoints. Here is an example of linking pitch interval (cpint) with scale degree (cpintfref):
53 1 Marcus Pearce
54 1 Marcus Pearce
<pre>
55 1 Marcus Pearce
CL-USER> (viewpoints:viewpoint-sequence
56 1 Marcus Pearce
          (viewpoints:get-viewpoint '(cpint cpintfref))
57 1 Marcus Pearce
          (md:get-event-sequence 0 0))
58 5 Marcus Pearce
((-3 9) (-2 7) (0 7) (0 7) (0 7) (5 0) (0 0) (0 0) (4 4) (0 4) (0 4) (0 4)
59 5 Marcus Pearce
 (0 4) (-2 2) (-2 0) (0 0) (0 0) (-3 9) (-2 7) (0 7) (5 0) (4 4) (0 4) (-2 2)
60 5 Marcus Pearce
 (-2 0) (-5 7) (0 7) (0 7) (0 7) (5 0) (0 0) (0 0) (0 0) (4 4) (0 4) (0 4)
61 5 Marcus Pearce
 (0 4) (3 7) (0 7) (5 0) (-3 9) (-2 7) (-3 4) (0 4) (0 4) (0 4) (-4 0) (2 2)
62 5 Marcus Pearce
 (2 4) (-4 0) (0 0) (0 0) (12 0) (-3 9) (-2 7) (2 9) (2 11) (1 0) (-5 7) (0 7)
63 5 Marcus Pearce
 (2 9) (-2 7) (2 9) (2 11) (1 0) (-3 9) (-2 7) (2 9) (2 11) (1 0) (-1 11) (1 0)
64 5 Marcus Pearce
 (-3 9) (-2 7) (-3 4) (-2 2) (-2 0) (2 2) (10 0) (0 0) (-3 9) (-2 7) (2 9)
65 5 Marcus Pearce
 (2 11) (1 0) (-5 7) (0 7) (2 9) (-2 7) (2 9) (2 11) (1 0) (-1 11) (-2 9)
66 5 Marcus Pearce
 (-2 7) (-3 4) (0 4) (0 4) (0 4) (-2 2) (-2 0) (2 2) (2 4) (-4 0) (0 0))
67 5 Marcus Pearce
</pre>
68 5 Marcus Pearce
69 5 Marcus Pearce
<pre>
70 5 Marcus Pearce
CL-USER> (viewpoints:viewpoint-sequence
71 5 Marcus Pearce
          (viewpoints:get-viewpoint '(cpintfref dur metaccent))
72 5 Marcus Pearce
          (md:get-event-sequence 0 0))
73 5 Marcus Pearce
((0 24 5) (9 24 4) (7 12 5) (7 12 3) (7 12 4) (7 12 3) (0 24 5) (0 12 4)
74 5 Marcus Pearce
 (0 12 3) (4 12 5) (4 12 3) (4 12 4) (4 12 3) (4 24 5) (2 24 4) (0 12 5)
75 5 Marcus Pearce
 (0 12 3) (0 24 4) (9 24 5) (7 12 4) (7 12 3) (0 24 5) (4 12 4) (4 12 3)
76 5 Marcus Pearce
 (2 36 5) (0 12 3) (7 12 5) (7 12 3) (7 12 4) (7 12 3) (0 12 5) (0 12 3)
77 5 Marcus Pearce
 (0 12 4) (0 12 3) (4 12 5) (4 12 3) (4 12 4) (4 12 3) (7 12 5) (7 12 3)
78 5 Marcus Pearce
 (0 12 4) (9 12 3) (7 12 5) (4 12 3) (4 12 4) (4 12 3) (4 24 5) (0 12 4)
79 5 Marcus Pearce
 (2 12 3) (4 12 5) (0 12 3) (0 24 4) (0 36 5) (0 12 3) (9 12 5) (7 12 3)
80 5 Marcus Pearce
 (9 12 4) (11 12 3) (0 24 5) (7 12 4) (7 12 3) (9 12 5) (7 12 3) (9 12 4)
81 5 Marcus Pearce
 (11 12 3) (0 36 5) (9 12 5) (7 12 3) (9 12 4) (11 12 3) (0 12 5) (11 12 3)
82 5 Marcus Pearce
 (0 12 4) (9 12 3) (7 12 5) (4 12 3) (2 12 4) (0 12 3) (2 24 5) (0 12 4)
83 5 Marcus Pearce
 (0 12 3) (9 12 5) (7 12 3) (9 12 4) (11 12 3) (0 24 5) (7 12 4) (7 12 3)
84 5 Marcus Pearce
 (9 12 5) (7 12 3) (9 12 4) (11 12 3) (0 24 5) (11 12 4) (9 12 3) (7 12 5)
85 5 Marcus Pearce
 (4 12 3) (4 12 4) (4 12 3) (4 12 5) (2 12 3) (0 12 4) (2 12 3) (4 24 5)
86 5 Marcus Pearce
 (0 24 4) (0 36 5))
87 5 Marcus Pearce
</pre>
88 5 Marcus Pearce
89 5 Marcus Pearce
h2. Listing defined viewpoints
90 5 Marcus Pearce
91 5 Marcus Pearce
<code>viewpoints:list-viewpoints</code> returns a list of currently defined viewpoints::
92 5 Marcus Pearce
93 5 Marcus Pearce
<pre>
94 5 Marcus Pearce
CL-USER> (viewpoints:list-viewpoints)
95 5 Marcus Pearce
(VIEWPOINTS::ARTICULATION VIEWPOINTS::COMMA VIEWPOINTS::VOICE
96 5 Marcus Pearce
                          VIEWPOINTS::ORNAMENT VIEWPOINTS::DYN
97 5 Marcus Pearce
...)
98 5 Marcus Pearce
</pre>
99 5 Marcus Pearce
100 5 Marcus Pearce
Similarly, particular categories of viewpoints can be listed using <code>viewpoints:list-basic</code>, <code>viewpoints:list-derived</code>, <code>viewpoints:list-linked</code> and <code>viewpoints:list-threaded</code>.
101 5 Marcus Pearce
102 5 Marcus Pearce
The function <code>predictors</code> lists the viewpoints which are derived from (and therefore capable of predicting) the supplied basic viewpoints:
103 5 Marcus Pearce
104 5 Marcus Pearce
<pre>
105 5 Marcus Pearce
CL-USER> (viewpoints:predictors '(bioi))
106 5 Marcus Pearce
(VIEWPOINTS::BIOI-RATIO VIEWPOINTS::BIOI-CONTOUR VIEWPOINTS::BIOI)
107 1 Marcus Pearce
</pre>