Added ? %
This commit is contained in:
@ -30,6 +30,10 @@ class Pitch(Event):
|
|||||||
class RandomPitch(Event):
|
class RandomPitch(Event):
|
||||||
pc: int = None
|
pc: int = None
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class RandomPercent(Meta):
|
||||||
|
percent: float = None
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Chord(Event):
|
class Chord(Event):
|
||||||
pcs: list[Pitch] = None
|
pcs: list[Pitch] = None
|
||||||
@ -63,7 +67,7 @@ class Cyclic(Sequence):
|
|||||||
cycle: int = 0
|
cycle: int = 0
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class RandomPitch(Meta):
|
class RandomInteger(Meta):
|
||||||
min: int
|
min: int
|
||||||
max: int
|
max: int
|
||||||
|
|
||||||
|
|||||||
@ -12,9 +12,9 @@ class ZiffersTransformer(Transformer):
|
|||||||
values = flatten(items[0].values)
|
values = flatten(items[0].values)
|
||||||
return Sequence(values=values,text="("+"".join([val.text for val in values])+")")
|
return Sequence(values=values,text="("+"".join([val.text for val in values])+")")
|
||||||
|
|
||||||
def randompitch(self,s):
|
def random_integer(self,s):
|
||||||
val = s[0][1:-1].split(",")
|
val = s[0][1:-1].split(",")
|
||||||
return RandomPitch(min=val[0],max=val[1],text=s[0])
|
return RandomInteger(min=val[0],max=val[1],text=s[0])
|
||||||
|
|
||||||
def range(self,s):
|
def range(self,s):
|
||||||
val = s[0].split("..")
|
val = s[0].split("..")
|
||||||
@ -74,6 +74,12 @@ class ZiffersTransformer(Transformer):
|
|||||||
val["text"] = "<"+val["text"]+">"
|
val["text"] = "<"+val["text"]+">"
|
||||||
return val
|
return val
|
||||||
|
|
||||||
|
def random_pitch(self,s):
|
||||||
|
return RandomPitch(text="?")
|
||||||
|
|
||||||
|
def random_percent(self,s):
|
||||||
|
return RandomPercent(text="%")
|
||||||
|
|
||||||
def duration_chars(self,s):
|
def duration_chars(self,s):
|
||||||
durations = [val[1] for val in s]
|
durations = [val[1] for val in s]
|
||||||
characters = "".join([val[0] for val in s])
|
characters = "".join([val[0] for val in s])
|
||||||
|
|||||||
@ -1,12 +1,14 @@
|
|||||||
|
|
||||||
?value: root
|
?value: root
|
||||||
root: (pc | dur_change | oct_mod | oct_change | WS | chord | cycle | randompitch | range | list | subdivision)*
|
root: (pc | dur_change | oct_mod | oct_change | WS | chord | cycle | random_integer | random_pitch | random_percent | range | list | subdivision)*
|
||||||
list: "(" root ")"
|
list: "(" root ")"
|
||||||
randompitch: /\(-?[0-9],-?[0-9]\)/
|
random_integer: /\(-?[0-9]+,-?[0-9]+\)/
|
||||||
range: /-?[0-9]\.\.-?[0-9]/
|
range: /-?[0-9]\.\.-?[0-9]/
|
||||||
cycle: "<" root ">"
|
cycle: "<" root ">"
|
||||||
pc: prefix* pitch
|
pc: prefix* pitch
|
||||||
pitch: /-?[0-9TE]/
|
pitch: /-?[0-9TE]/
|
||||||
|
random_pitch: "?"
|
||||||
|
random_percent: "%"
|
||||||
prefix: (octave | duration_chars | escaped_decimal | escaped_octave)
|
prefix: (octave | duration_chars | escaped_decimal | escaped_octave)
|
||||||
oct_change: escaped_octave WS
|
oct_change: escaped_octave WS
|
||||||
escaped_octave: /<-?[0-9]>/
|
escaped_octave: /<-?[0-9]>/
|
||||||
|
|||||||
Reference in New Issue
Block a user