-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkotekan_sonatina.json
184 lines (174 loc) · 9.17 KB
/
kotekan_sonatina.json
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
{
"COMMENTS": [
"This is a JSON file representing a score for 'Kotekan Sonatina' by Rego Sen.",
"First written in 2002, transcribed into this format in 2019.",
"'structure' is the ordered list of sequences to play. You can have nested structures.",
" Each item in a structure has the following parameters:",
" 'sequence': name of the sequence to play",
" 'count': (optional) number of times to play it",
" 'tempo(s)': (optional: see tempo and tempos below)",
" 'filter': (optional) filter to specified instruments, tracks, notes",
"'filter' is a set of optional parameters for filtering what is played.",
" 'instruments': play only the specified instruments in the sequence",
" 'tracks': play only the specified track names in the sequence",
" 'start': only play from the specified index",
" 'end': only play until the specified index (negative means trim from the end)",
" example 1: 'start':10, 'end':20 will play notes from 10 to 20.",
" example 2: 'start':10, 'end':-4 will play notes from 10 until the 4th note from the end.",
"'sequences' is a named set of musical tracks. Parameters:",
" 'tracks': the set of tracks that will play",
" 'tempo(s)': (optional: see tempo and tempos below)",
"'tracks' is a named set of notes to play by a gamelan instrument. Parameters:",
" 'instrument': the name of an instrument in the gamelan JSON file",
" 'track_name': (optional) name that matches the 'tracks' parameters in 'structure')",
" 'notes': the score for the intrument to play. Based on the mapping in the gamelan JSON file.",
"'tempo' is a the tempo for the whole section.",
"'tempos' is for gradually (linearly) changing tempos within a section.",
" It's presented as a timeline of tempos keyed by percentage time offset. Examples:",
" {'0': 120} is the same as simply tempo: 120. Sets the tempo to 120 for the whole section.",
" {'0': 120, '100': 200} starts at 120 and reaches 200 by the end.",
" {'0': 120, '50': 200, '100' 120} starts at 120, reaches 200 halfway, and slows back to 120 by the end.",
"Note: tempos override in the following order: structure > sequence > score",
" In other words: if a structure entry has no tempos, it falls back on the sequence's tempos.",
" And if a sequence has no tempos, it falls back on the score's tempos."
],
"tempo": 400,
"structure": [
{ "sequence": "theme_1", "filter": { "instruments": ["bonang"] } },
{ "structure": [
{ "sequence": "theme_1" },
{ "sequence": "theme_1", "filter": {"start": 0, "end": -4} },
{ "sequence": "theme_1_end" },
{ "sequence": "theme_2" },
{ "sequence": "theme_2", "filter": {"start": 0, "end": -4} },
{ "sequence": "theme_2_end" }
], "count": 2
},
{ "sequence": "dev_1a", "filter": { "tracks": ["polos1"] } },
{ "sequence": "dev_1a", "count": 2 },
{ "sequence": "dev_1b" },
{ "sequence": "dev_1c", "filter": { "tracks": ["polos1", "polos2"] } },
{ "sequence": "dev_1c" },
{ "sequence": "dev_1c", "filter": { "tracks": ["polos1", "polos2"] } },
{ "sequence": "dev_1c", "count": 2 },
{ "sequence": "dev_1c", "filter": { "tracks": ["polos1", "sangsih2"] } },
{ "sequence": "dev_2", "filter": { "tracks": ["polos1", "sangsih2"] } },
{ "sequence": "dev_2", "count": 2 },
{ "sequence": "dev_1c", "count": 2 },
{ "sequence": "dev_2", "count": 2 },
{ "sequence": "dev_1c", "count": 2 },
{ "sequence": "dev_3", "count": 2, "tempos": {"0": 400, "75": 400, "100": 320 } },
{ "structure": [
{ "sequence": "recap_2", "count": 2 },
{ "sequence": "recap_1", "count": 2 }
], "count": 2
},
{ "sequence": "coda", "count": 7 }
],
"sequences": {
"theme_1": {
"tracks": [
{ "instrument": "bonang", "track_name": "polos1", "notes": "A6.A.6A.A6.A6A.6A.A6.A.6A.6." },
{ "instrument": "bonang", "track_name": "sangsih1", "notes": "3.535.353.53.35.353.535.35.5" },
{ "instrument": "saron", "track_name": "pokok", "notes": "3...5..6A.6.5...3...5.3.2..." }
]
},
"theme_1_end": {
"tempos": {"0": 400, "100": 340},
"tracks": [
{ "instrument": "kecrek", "notes": "1..." },
{ "instrument": "gong", "notes": "1 " },
{ "instrument": "bonang", "track_name": "polos1", "notes": "A6.A" },
{ "instrument": "bonang", "track_name": "sangsih1", "notes": "53.5" },
{ "instrument": "saron", "track_name": "pokok", "notes": "2..." }
]
},
"theme_2": {
"tempo": 320,
"tracks": [
{ "instrument": "bonang", "track_name": "polos2", "notes": "56.5.65.6.56.5.6" },
{ "instrument": "bonang", "track_name": "sangsih2", "notes": ".23.32.323.23.32" },
{ "instrument": "saron", "track_name": "pokok", "notes": "5...6...A.6.5..." }
]
},
"theme_2_end": {
"tempos": {"0": 320, "100": 380},
"tracks": [
{ "instrument": "kecrek", "notes": "1..." },
{ "instrument": "gong", "notes": "1 " },
{ "instrument": "bonang", "track_name": "polos2", "notes": "56.5" },
{ "instrument": "bonang", "track_name": "sangsih2", "notes": "32.3" },
{ "instrument": "saron", "track_name": "pokok", "notes": "5..." }
]
},
"dev_1a": {
"tracks": [
{ "instrument": "bonang", "track_name": "polos1", "notes": "A6.A.6A.A6.A6A.6A.A6.A.6A.6." },
{ "instrument": "bonang", "track_name": "polos2", "notes": "....56.5.65.6.56.5.6........" }
]
},
"dev_1b": {
"tracks": [
{ "instrument": "bonang", "track_name": "polos1", "notes": "A6.A.6A.A6.A6A.6A.A6.A.6A.6." },
{ "instrument": "bonang", "track_name": "polos2", "notes": "....56.5.65.6.56.5.65.56.565" }
]
},
"dev_1c": {
"tracks": [
{ "instrument": "bonang", "track_name": "polos1", "notes": "A6.A.6A.A6.A6A.6A.A6.A.6A.6." },
{ "instrument": "bonang", "track_name": "polos2", "notes": ".65.56.5.65.6.56.5.65.56.565" },
{ "instrument": "bonang", "track_name": "sangsih1", "notes": "3.535.353.53.35.353.535.35.5" },
{ "instrument": "bonang", "track_name": "sangsih2", "notes": "32.3.23.32.323.23.32.3.23.2." }
]
},
"dev_2": {
"tracks": [
{ "instrument": "bonang", "track_name": "polos1", "notes": "FE.F.EF.FE.FEF.EF.FE.F.EF.E." },
{ "instrument": "bonang", "track_name": "polos2", "notes": ".CB.BC.B.CB.C.BC.B.CB.BC.BCB" },
{ "instrument": "bonang", "track_name": "sangsih1", "notes": "DC.D.CD.DC.DCD.CD.DC.D.CD.C." },
{ "instrument": "saron", "track_name": "sangsih2", "notes": "A6.A.6A.A6.A6A.6A.A6.A.6A.6." }
]
},
"dev_3": {
"tracks": [
{ "instrument": "bonang", "track_name": "sangsih1", "notes": "3.535.353.53.35.353.535.35.5" },
{ "instrument": "bonang", "track_name": "polos2", "notes": ".65.56.5.65.6.56.5.65.56.565" }
]
},
"recap_1": {
"tempo": 320,
"tracks": [
{ "instrument": "kecrek", "notes": "1.......1.......1.......1..." },
{ "instrument": "gong", "notes": "1 1 1 1 " },
{ "instrument": "bonang", "track_name": "polos1", "notes": "A6.A.6A.A6.A6A.6A.A6.A.6A.6." },
{ "instrument": "bonang", "track_name": "polos2", "notes": ".65.56.5.65.6.56.5.65.56.565" },
{ "instrument": "bonang", "track_name": "sangsih1","notes": "3.535.353.53.35.353.535.35.5" },
{ "instrument": "bonang", "track_name": "sangsih2","notes": "32.3.23.32.323.23.32.3.23.2." },
{ "instrument": "saron", "track_name": "pokok", "notes": "5...6...A.6.5...6...A.6.5..." },
{ "instrument": "jenglong", "track_name": "pokok", "notes": "5...6...A.6.5...6...A.6.5..." }
]
},
"recap_2": {
"tempo": 320,
"tracks": [
{ "instrument": "kecrek", "notes": "1.......1.......1.......1..." },
{ "instrument": "gong", "notes": "1 1 1 1 " },
{ "instrument": "bonang", "track_name": "polos1", "notes": "FE.F.EF.FE.FEF.EF.FE.F.EF.E." },
{ "instrument": "bonang", "track_name": "polos2", "notes": ".CB.BC.B.CB.C.BC.B.CB.BC.BCB" },
{ "instrument": "bonang", "track_name": "sangsih1", "notes": "DC.D.CD.DC.DCD.CD.DC.D.CD.C." },
{ "instrument": "bonang", "track_name": "sangsih2", "notes": "A6.A.6A.A6.A6A.6A.A6.A.6A.6." },
{ "instrument": "saron", "track_name": "pokok", "notes": "3...5..6A.6.5...3...5.3.2..." },
{ "instrument": "jenglong","track_name": "pokok", "notes": "3...5..6A.6.5...3...5.3.2..." }
]
},
"coda": {
"tempo": 320,
"tracks": [
{ "instrument": "kecrek", "notes": "1..." },
{ "instrument": "gong", "notes": "1 " },
{ "instrument": "bonang", "track_name": "polos1", "notes": "A6.A" },
{ "instrument": "bonang", "track_name": "sangsih2", "notes": "32.3" }
]
}
}
}