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