Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)