Added rest and chords to music21 converter
This commit is contained in:
8
test.py
8
test.py
@ -1,8 +1,10 @@
|
||||
from ziffers import *
|
||||
from music21 import *
|
||||
from sardine import *
|
||||
from ziffers import *
|
||||
|
||||
z = z('e (1 2 3)+(4 2 1)*2')
|
||||
s = to_music21(z,octave=-2,time="3/4")
|
||||
a = zparse('1 2 qr 124')
|
||||
print(list(a))
|
||||
s = to_music21('1 2 qr 124',octave=-2,time="3/4")
|
||||
|
||||
s.show()
|
||||
s.show('midi')
|
||||
|
||||
@ -401,7 +401,7 @@ class Sequence(Meta):
|
||||
text=pitch_text,
|
||||
pitch_classes=pitch_classes,
|
||||
notes=chord_notes,
|
||||
kwargs=options,
|
||||
kwargs=options
|
||||
)
|
||||
return chord
|
||||
|
||||
@ -416,6 +416,7 @@ class Sequence(Meta):
|
||||
elif isinstance(item, (RandomPitch, RandomInteger)):
|
||||
item = _create_pitch(item, options)
|
||||
elif isinstance(item, Chord):
|
||||
item.update_options(options)
|
||||
item.update_notes(options)
|
||||
elif isinstance(item, RomanNumeral):
|
||||
item = _create_chord_from_roman(item, options)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
"""Collection of converters"""
|
||||
from music21 import converter, note, stream, meter
|
||||
from ziffers import zparse, Ziffers
|
||||
from music21 import converter, note, stream, meter, chord
|
||||
from ziffers import zparse, Ziffers, Pitch, Rest, Chord
|
||||
|
||||
def to_music21(strData: str|Ziffers, **options):
|
||||
"""Helper for passing options to the parser"""
|
||||
@ -54,8 +54,14 @@ class ZiffersMusic21(converter.subConverters.SubConverter):
|
||||
m = meter.TimeSignature("c") # Common time
|
||||
|
||||
s.insert(0, m)
|
||||
for z in parsed:
|
||||
m_note = note.Note(z.note)
|
||||
m_note.duration.quarterLength = z.duration * 4
|
||||
s.append(m_note)
|
||||
for item in parsed:
|
||||
if isinstance(item,Pitch):
|
||||
m_item = note.Note(item.note)
|
||||
m_item.duration.quarterLength = item.duration * 4
|
||||
elif isinstance(item,Rest):
|
||||
m_item = note.Rest(item.duration * 4)
|
||||
elif isinstance(item,Chord):
|
||||
m_item = chord.Chord(item.notes)
|
||||
m_item.duration.quarterLength = item.duration * 4
|
||||
s.append(m_item)
|
||||
self.stream = s.makeMeasures()
|
||||
|
||||
Reference in New Issue
Block a user