-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRhythmicGroup.sc
73 lines (43 loc) · 998 Bytes
/
RhythmicGroup.sc
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
RhythmicGroup : LilyShowableObj {
var <>voiceArray;
var <>template="rhythmic";
*new { arg stuffIn;
^super.new.initRhythmicGroup(stuffIn);
}
initRhythmicGroup { arg stuffIn=nil;
if(stuffIn.notNil, {
this.put(stuffIn)
});
}
put { arg stuffIn;
case
{stuffIn.isKindOf(RhythmicSeq)}
{voiceArray = voiceArray.add(stuffIn)}
{stuffIn.isKindOf(Array)}
{ this.putArray(stuffIn)};
}
putArray { arg thisArray;
thisArray.do { |i|
case
{i.isKindOf(RhythmicSeq)}
{this.put(i)}
{i.isKIndOf(Array)}
{this.put(i.asRS)};
}
}
string {
var outString = String.new;
this.voiceArray.do { |i|
outString = outString ++ i.staffString
};
^outString
}
musicString {
var outString = String.new;
outString = outString ++ "\\score {\n\t<<\n\t\t";
outString = outString ++ this.string;
// outString = outString ++ "\n \\midi { } \n\t \\layout { }\n";
outString = outString ++ "\n >> \n}\n\n";
^outString
}
}