def testInternalDataModel(self): dir = common.getPackageDir(relative=False, remapSep=os.sep) for fp in dir: if fp.endswith("midi"): break dirLib = os.path.join(fp, "testPrimitive") # a simple file created in athenacl fp = os.path.join(dirLib, "test01.mid") environLocal.printDebug([fp]) mf = MidiFile() mf.open(fp) mf.read() mf.close() track2 = mf.tracks[1] # defines a channel object for each of 16 channels self.assertEqual(len(track2.channels), 16) # length seems to be the size of midi data in this track self.assertEqual(track2.length, 255) # a list of events self.assertEqual(len(track2.events), 116) i = 0 while i < len(track2.events) - 1: self.assertTrue(isinstance(track2.events[i], DeltaTime)) self.assertTrue(isinstance(track2.events[i + 1], MidiEvent)) # environLocal.printDebug(['sample events: ', track2.events[i]]) # environLocal.printDebug(['sample events: ', track2.events[i+1]]) i += 2
def _getPackagesList(): """List of all packages, delimited by period, with relative path names. Assigned to setup.py's `packages` argument. """ # example data # pkg = ( 'music21', # 'music21.analysis', # 'music21.composition', pkg = common.getPackageDir() for dir in pkg: print('found package: %s' % dir) return pkg
def testBasicImport(self): dir = common.getPackageDir(relative=False, remapSep=os.sep) for fp in dir: if fp.endswith("midi"): break dirLib = os.path.join(fp, "testPrimitive") # a simple file created in athenacl fp = os.path.join(dirLib, "test01.mid") environLocal.printDebug([fp]) mf = MidiFile() mf.open(fp) mf.read() mf.close() self.assertEqual(len(mf.tracks), 2) self.assertEqual(mf.ticksPerQuarterNote, 960) self.assertEqual(mf.ticksPerSecond, None) # self.assertEqual(mf.writestr, None) # try to write contents fileLikeOpen = StringIO.StringIO() mf.openFileLike(fileLikeOpen) mf.write() mf.close() # a simple file created in athenacl fp = os.path.join(dirLib, "test02.mid") environLocal.printDebug([fp]) mf = MidiFile() mf.open(fp) mf.read() mf.close() self.assertEqual(len(mf.tracks), 5) self.assertEqual(mf.ticksPerQuarterNote, 1024) self.assertEqual(mf.ticksPerSecond, None) # try to write contents fileLikeOpen = StringIO.StringIO() mf.openFileLike(fileLikeOpen) mf.write() mf.close() # random files from the internet fp = os.path.join(dirLib, "test03.mid") environLocal.printDebug([fp]) mf = MidiFile() mf.open(fp) mf.read() mf.close() self.assertEqual(len(mf.tracks), 4) self.assertEqual(mf.ticksPerQuarterNote, 1024) self.assertEqual(mf.ticksPerSecond, None) # try to write contents fileLikeOpen = StringIO.StringIO() mf.openFileLike(fileLikeOpen) mf.write() mf.close() # random files from the internet fp = os.path.join(dirLib, "test04.mid") environLocal.printDebug([fp]) mf = MidiFile() mf.open(fp) mf.read() mf.close() self.assertEqual(len(mf.tracks), 18) self.assertEqual(mf.ticksPerQuarterNote, 480) self.assertEqual(mf.ticksPerSecond, None) # try to write contents fileLikeOpen = StringIO.StringIO() mf.openFileLike(fileLikeOpen) mf.write() mf.close()