Mercurial > hg > amuse
comparison base/charm/example/eg-constituent-constructors.lisp @ 253:b5ffec94ae6d
some very sketchy Charm constituent code
author | Jamie Forth <j.forth@gold.ac.uk> |
---|---|
date | Thu, 24 Feb 2011 11:23:18 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
252:b518b9f904e3 | 253:b5ffec94ae6d |
---|---|
1 (cl:in-package #:amuse-geerdes) | |
2 | |
3 ;;; The idea of Charm constituents here is closely tied up with the | |
4 ;;; database. The basic constructors below will work without a working | |
5 ;;; database, but obviously not the store and get stuff. | |
6 | |
7 (asdf:oos 'asdf:load-op 'amuse-geerdes) | |
8 (asdf:oos 'asdf:load-op 'geerdes-tools) | |
9 (asdf:oos 'asdf:load-op 'amuse-charm) | |
10 (use-package 'amuse-charm) | |
11 | |
12 (defparameter *charm-database* ; just for testing | |
13 (connect-to-database :database-name "amuse_charm" | |
14 :username "jamie" | |
15 :make-default nil)) | |
16 (disconnect-from-database *charm-database*) | |
17 | |
18 (connect-to-database) ; default amuse connection for getting geerdes data | |
19 (disconnect-from-database) | |
20 | |
21 ;(create-charm-db-tables *charm-database*) | |
22 ;(drop-charm-db-tables *charm-database*) | |
23 | |
24 (defparameter *composition* | |
25 (get-composition (g-id-file-id 1))) | |
26 | |
27 (defparameter *charm-constituent-composition* | |
28 (composition->charm-constituent *composition* | |
29 (make-charm-property-list | |
30 'composition) | |
31 (make-charm-property-list | |
32 'polyphonic))) | |
33 | |
34 (defparameter *charm-constituent-composition-identifier* | |
35 (store-charm-constituent *charm-constituent-composition* | |
36 *charm-database*)) | |
37 | |
38 (defparameter *charm-constituent-composition-db* | |
39 (get-charm-constituent *charm-constituent-composition-identifier* | |
40 *charm-database*)) | |
41 | |
42 | |
43 ;;; Slice composition into segments | |
44 | |
45 (defparameter *onset-segments-constituent* | |
46 (make-onset-segment-constituent *composition*)) | |
47 | |
48 (defparameter *onset-segment-constituent-identifier* | |
49 (store-charm-constituent *onset-segments-constituent* | |
50 *charm-database*)) | |
51 | |
52 (defparameter *charm-constituent-composition-db* | |
53 (get-charm-constituent *onset-segment-constituent-identifier* ;1922 | |
54 *charm-database*)) | |
55 | |
56 ;;; Bar segments | |
57 | |
58 (defparameter *bar-segments-constituent* | |
59 (segment-at-bar *composition*)) | |
60 | |
61 | |
62 ;;; Part-like constituents. | |
63 | |
64 (defparameter *lead-vocals* | |
65 (geerdes-tools:vocal-part *composition*)) | |
66 | |
67 (defparameter *charm-vocals* | |
68 (composition->charm-constituent *lead-vocals* | |
69 (make-charm-property-list 'voice | |
70 'monophonic) | |
71 (make-charm-property-list 'song))) | |
72 | |
73 (defparameter *charm-vocals-identifier* | |
74 (store-charm-constituent *charm-vocals* *charm-database*)) | |
75 | |
76 (defparameter *charm-vocals-db* | |
77 (get-charm-constituent *charm-vocals-identifier* | |
78 *charm-database*)) | |
79 | |
80 (defparameter *bass-guitar* | |
81 (geerdes-tools:bass-part *composition*)) | |
82 | |
83 (defparameter *charm-bass* | |
84 (composition->charm-constituent *bass-guitar* | |
85 (make-charm-property-list 'guitar | |
86 'polyphonic) | |
87 (make-charm-property-list 'song))) | |
88 | |
89 (defparameter *charm-bass-identifier* | |
90 (store-charm-constituent *charm-bass* *charm-database*)) | |
91 | |
92 (defparameter *charm-bass-db* | |
93 (get-charm-constituent *charm-bass-identifier* *charm-database*)) | |
94 | |
95 | |
96 ;;; Combine above as events. | |
97 | |
98 (defparameter *bass+vocals-constituent1* | |
99 (make-standard-charm-constituent | |
100 (append (%list-slot-sequence-data *charm-bass*) | |
101 (%list-slot-sequence-data *charm-vocals*)) *composition* | |
102 (make-charm-property-list 'vocal 'bass-guitar 'polyphonic) | |
103 (make-charm-property-list 'song))) | |
104 | |
105 (defparameter *bass+vocals-constituent1-identifier* | |
106 (store-charm-constituent *bass+vocals-constituent1* *charm-database*)) | |
107 | |
108 (defparameter *bass+vocals-constituent1-db* | |
109 (get-charm-constituent *bass+vocals-constituent1-identifier* | |
110 *charm-database*)) | |
111 | |
112 | |
113 ;;; Combine above as constituents | |
114 | |
115 (defparameter *bass+vocals-constituent2* | |
116 (make-standard-charm-constituent | |
117 (list *charm-bass* *charm-vocals*) | |
118 *composition* | |
119 (make-charm-property-list 'vocal 'bass-guitar 'polyphonic) | |
120 (make-charm-property-list 'song))) | |
121 | |
122 (defparameter *bass+vocals-constituent2-identifier* | |
123 (store-charm-constituent *bass+vocals-constituent2* | |
124 *charm-database*)) | |
125 | |
126 (defparameter *bass+vocals-constituent2-db* | |
127 (get-charm-constituent *bass+vocals-constituent2-identifier* | |
128 *charm-database*)) |