def testBasic(self): from music21 import musedata from music21.musedata import testFiles from music21.musicxml import m21ToString mdw = musedata.MuseDataWork() mdw.addString(testFiles.bach_cantata5_mvmt3) s = museDataWorkToStreamScore(mdw) #post = s.musicxml #s.show() self.assertEqual(len(s.parts), 3) self.assertEqual(s.parts[0].id, 'Viola Solo') self.assertEqual(s.parts[1].id, 'TENORE') self.assertEqual(s.parts[2].id, 'Continuo') self.assertEqual(len(s.parts[0].flat.notesAndRests), 1062) self.assertEqual(len(s.parts[1].flat.notesAndRests), 596) self.assertEqual(len(s.parts[2].flat.notesAndRests), 626) # try stage 1 mdw = musedata.MuseDataWork() mdw.addString(testFiles.bachContrapunctus1_part1) mdw.addString(testFiles.bachContrapunctus1_part2) s = museDataWorkToStreamScore(mdw) self.assertEqual(len(s.parts[0].flat.notesAndRests), 291) self.assertEqual(len(s.parts[1].flat.notesAndRests), 293) unused_raw = m21ToString.fromMusic21Object(s)
def parseFile(self, fp, number=None): ''' parse fp and number ''' from music21 import converter from music21 import musedata as musedataModule from music21.musedata import translate as musedataTranslate mdw = musedataModule.MuseDataWork() af = converter.ArchiveManager(fp) #environLocal.printDebug(['ConverterMuseData: parseFile', fp, af.isArchive()]) # for dealing with one or more files if fp.endswith('.zip') or af.isArchive(): #environLocal.printDebug(['ConverterMuseData: found archive', fp]) # get data will return all data from the zip as a single string for partStr in af.getData(dataFormat='musedata'): #environLocal.printDebug(['partStr', len(partStr)]) mdw.addString(partStr) else: if os.path.isdir(fp): mdd = musedataModule.MuseDataDirectory(fp) fpList = mdd.getPaths() elif not common.isListLike(fp): fpList = [fp] else: fpList = fp for fp in fpList: mdw.addFile(fp) #environLocal.printDebug(['ConverterMuseData: mdw file count', len(mdw.files)]) musedataTranslate.museDataWorkToStreamScore(mdw, self.stream)
def testBasic(self): from music21 import musedata from music21 import common fp1 = (common.getSourceFilePath() / 'musedata' / 'testPrimitive' / 'test01' / '01.md') mdw = musedata.MuseDataWork() mdw.addFile(str(fp1)) # remove str in Py3.6 s = museDataWorkToStreamScore(mdw) #post = s.musicxml # s.show() self.assertEqual(len(s.parts), 1) self.assertEqual(s.parts[0].id, 'Clarinet in A') self.assertEqual(len(s.parts[0].flat.notesAndRests), 54)
def parseData(self, strData, number=None): '''Get musedata from a string representation. ''' from music21 import musedata as musedataModule from music21.musedata import translate as musedataTranslate if isinstance(strData, six.string_types): strDataList = [strData] else: strDataList = strData mdw = musedataModule.MuseDataWork() for strData in strDataList: mdw.addString(strData) musedataTranslate.museDataWorkToStreamScore(mdw, self.stream)
def testBasic(self): from music21 import musedata import os from music21 import common fp1 = os.path.join(common.getSourceFilePath(), 'musedata', 'testPrimitive', 'test01', '01.md') mdw = musedata.MuseDataWork() mdw.addFile(fp1) s = museDataWorkToStreamScore(mdw) #post = s.musicxml #s.show() self.assertEqual(len(s.parts), 1) self.assertEqual(s.parts[0].id, 'Clarinet in A') self.assertEqual(len(s.parts[0].flat.notesAndRests), 54)