def testFreezeThawVariant(self): from music21 import freezeThaw from music21 import corpus from music21 import variant from music21 import stream from music21 import note c = corpus.parse('luca/gloria') data2M2 = [('f', 'eighth'), ('c', 'quarter'), ('a', 'eighth'), ('a', 'quarter')] stream2 = stream.Stream() m = stream.Measure() for pitchName, durType in data2M2: n = note.Note(pitchName) n.duration.type = durType m.append(n) # stream2.append(n) stream2.append(m) # c.show('t') variant.addVariant(c.parts[0], 6.0, stream2, variantName='rhythmic_switch', replacementDuration=3.0) # test Variant is in stream unused_v1 = c.parts[0].getElementsByClass('Variant')[0] sf = freezeThaw.StreamFreezer(c, fastButUnsafe=True) # sf.v = v d = sf.writeStr() # print(d) # print('thawing.') st = freezeThaw.StreamThawer() st.openStr(d) s = st.stream # s.show('lily.pdf') p0 = s.parts[0] variants = p0.getElementsByClass('Variant') v2 = variants[0] self.assertEqual(v2._stream[0][1].offset, 0.5)
def testFreezeThawVariant(self): from music21 import freezeThaw from music21 import corpus from music21 import variant from music21 import stream from music21 import note c = corpus.parse('luca/gloria') data2M2 = [('f', 'eighth'), ('c', 'quarter'), ('a', 'eighth'), ('a', 'quarter')] stream2 = stream.Stream() m = stream.Measure() for pitchName,durType in data2M2: n = note.Note(pitchName) n.duration.type = durType m.append(n) # stream2.append(n) stream2.append(m) #c.show('t') variant.addVariant(c.parts[0], 6.0, stream2, variantName='rhythmic_switch', replacementDuration=3.0) #test Variant is in stream unused_v1 = c.parts[0].getElementsByClass('Variant')[0] sf = freezeThaw.StreamFreezer(c, fastButUnsafe=True) #sf.v = v d = sf.writeStr() #print d #print 'thawing.' st = freezeThaw.StreamThawer() st.openStr(d) s = st.stream #s.show('lily.pdf') p0 = s.parts[0] variants = p0.getElementsByClass('Variant') v2 = variants[0] self.assertEqual(v2._stream[0][1].offset, 0.5)