Working with viewpoints » History » Version 8

Jeremy Gow, 2013-04-09 02:19 PM

1 1 Jeremy Gow
h1. Working with viewpoints
2 1 Jeremy Gow
3 6 Jeremy Gow
{{>toc}}
4 6 Jeremy Gow
5 3 Jeremy Gow
A number of functions are provided to help the user work with viewpoints and viewpoint data.
6 1 Jeremy Gow
7 5 Jeremy Gow
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 that file and [[Adding Viewpoints]] should help you get started.
8 5 Jeremy Gow
9 8 Jeremy Gow
h2. Vewpoint values
10 1 Jeremy Gow
11 4 Jeremy Gow
<code>music-data:composition-viewpoint</code> will return the viewpoint values for a specific composition.  For example, for composition 3 of dataset 0, pitch interval has the following values:
12 1 Jeremy Gow
13 1 Jeremy Gow
<pre>
14 4 Jeremy Gow
CL-USER> (music-data:composition-viewpoint 0 3 'cpint)
15 4 Jeremy Gow
(0 -300 0 -200 -200 0 -100 100 200 -200 500 0 0 0 -100 100 200 -700 0 0 0 400 0
16 4 Jeremy Gow
 100 200 0 -700 700 0 200 -200 -300 -400 200 -200)
17 4 Jeremy Gow
</pre>
18 4 Jeremy Gow
19 4 Jeremy Gow
And the linked viewpoint <code>'(cpint ioi)</code> has:
20 4 Jeremy Gow
21 4 Jeremy Gow
<pre>
22 1 Jeremy Gow
CL-USER> (music-data:composition-viewpoint 0 3 '(cpint ioi))
23 1 Jeremy Gow
((0 12) (-300 12) (0 12) (-200 12) (-200 24) (0 12) (-100 12) (100 12) (200 12)
24 1 Jeremy Gow
 (-200 24) (500 12) (0 12) (0 12) (0 12) (-100 12) (100 12) (200 12) (-700 60)
25 1 Jeremy Gow
 (0 12) (0 12) (0 12) (400 12) (0 12) (100 12) (200 12) (0 24) (-700 12)
26 1 Jeremy Gow
 (700 24) (0 12) (200 12) (-200 12) (-300 12) (-400 12) (200 12) (-200 12))
27 1 Jeremy Gow
</pre>
28 4 Jeremy Gow
29 4 Jeremy Gow
Similarly, <code>music-data:dataset-viewpoint</code> returns the values for all compositions in a specific dataset, as a list of lists:
30 4 Jeremy Gow
31 4 Jeremy Gow
<pre>
32 4 Jeremy Gow
CL-USER> (music-data:dataset-viewpoint 0 'cpint)
33 4 Jeremy Gow
((-300 -200 0 0 0 500 0 0 400 0 0 0 0 -200 -200 0 0 -300 -200 0 500 400 0 -200
34 4 Jeremy Gow
  ...)
35 4 Jeremy Gow
 (300 -300 100 -300 200 -200 -300 -400 1200 -300 100 -300 0 200 100 200 -300
36 4 Jeremy Gow
  ...)
37 4 Jeremy Gow
...)
38 4 Jeremy Gow
 </pre>
39 4 Jeremy Gow
40 4 Jeremy Gow
You can also count the frequency of each symbol in a dataset (currently only implemented for numeric viewpoints):
41 4 Jeremy Gow
42 4 Jeremy Gow
<pre>
43 4 Jeremy Gow
CL-USER> (utils:numeric-frequencies (music-data:dataset-viewpoint 0 'cpint))
44 4 Jeremy Gow
((-1400 . 3) (-1200 . 24) (-1100 . 1) (-1000 . 5) (-900 . 28) (-800 . 58)
45 4 Jeremy Gow
 (-700 . 125) (-500 . 251) (-400 . 324) (-300 . 589) (-200 . 1408) (-100 . 341)
46 4 Jeremy Gow
 (0 . 2127) (100 . 414) (200 . 1318) (300 . 432) (400 . 309) (500 . 435)
47 4 Jeremy Gow
 (700 . 120) (800 . 11) (900 . 38) (1000 . 12) (1200 . 25) (1400 . 1)
48 4 Jeremy Gow
 (1900 . 1))
49 6 Jeremy Gow
</pre>
50 6 Jeremy Gow
51 8 Jeremy Gow
h2. Viewpoint definitions
52 6 Jeremy Gow
53 6 Jeremy Gow
<code>viewpoints:list-viewpoints</code> returns a list of currently defined viewpoints::
54 6 Jeremy Gow
55 6 Jeremy Gow
<pre>
56 6 Jeremy Gow
CL-USER> (viewpoints:list-viewpoints)
57 6 Jeremy Gow
(VIEWPOINTS::ARTICULATION VIEWPOINTS::COMMA VIEWPOINTS::VOICE
58 6 Jeremy Gow
                          VIEWPOINTS::ORNAMENT VIEWPOINTS::DYN
59 6 Jeremy Gow
...)
60 4 Jeremy Gow
</pre>
61 7 Jeremy Gow
62 7 Jeremy Gow
Similarly, particular kinds 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>.