示例#1
0
 def testWrite(self):
     kit = DrumKit.DrumKit()
     drum = Drum("One", "d1", "x", True)
     drum.addNoteHead("x", HeadData())
     drum.addNoteHead("g", HeadData(effect="ghost", notationEffect="ghost"))
     drum.checkShortcuts()
     kit.addDrum(drum)
     drum = Drum("Two", "d2", "o")
     drum.addNoteHead("o", HeadData(notationLine=-5, stemDirection=1))
     drum.addNoteHead(
         "O",
         HeadData(effect="accent",
                  notationEffect="accent",
                  notationLine=-5,
                  stemDirection=1))
     drum.checkShortcuts()
     kit.addDrum(drum)
     handle = StringIO()
     indenter = fileUtils.Indenter(handle)
     dbfsv0.DrumKitStructureV0().write(kit, indenter)
     outlines = handle.getvalue().splitlines()
     self.assertEqual(outlines, [
         "KIT_START", "  DRUM One,d1,x,True",
         "    NOTEHEAD x 71,96,normal,default,0,none,0,x",
         "    NOTEHEAD g 71,96,ghost,default,0,ghost,0,g",
         "  DRUM Two,d2,o,False",
         "    NOTEHEAD o 71,96,normal,default,-5,none,1,o",
         "    NOTEHEAD O 71,96,accent,default,-5,accent,1,a", "KIT_END"
     ])
示例#2
0
 def testRead_NoNoteHeads(self):
     kitData = """KIT_START
     DRUM Snare,Sn,o,True
     DRUM Kick,Bd,o,True
     KIT_END
     """
     handle = StringIO(kitData)
     iterator = fileUtils.dbFileIterator(handle)
     kit = dbfsv0.DrumKitStructureV0().read(iterator)
     self.assertEqual(len(kit), 2)
     self.assertEqual(kit[0].name, "Snare")
     self.assertEqual(len(kit[0]), 6)
     self.assertEqual(kit[1].name, "Kick")
     self.assertEqual(len(kit[1]), 4)
示例#3
0
 def testRead_BadLine(self):
     kitData = """KIT_START
     DRUM Snare,Sn,x,True
     NOTEHEAD x 1,100,default
     NOTEHEAD g 1,50,ghost
     DRUM Kick,Bd,o,True
     NOTEHEAD o 2,100,default
     NOTEHEAD O 2,127,accent
     BAD_LINE
     KIT_END
     """
     handle = StringIO(kitData)
     iterator = fileUtils.dbFileIterator(handle)
     self.assertRaises(DBErrors.UnrecognisedLine,
                       dbfsv0.DrumKitStructureV0().read, iterator)
示例#4
0
 def testNoteHeads(self):
     kitData = """KIT_START
     DRUM Snare,Sn,x,True
     NOTEHEAD x 1,100,default
     NOTEHEAD g 1,50,ghost
     DRUM Kick,Bd,o,True
     NOTEHEAD o 2,100,default
     NOTEHEAD O 2,127,accent
     KIT_END
     """
     handle = StringIO(kitData)
     iterator = fileUtils.dbFileIterator(handle)
     kit = dbfsv0.DrumKitStructureV0().read(iterator)
     self.assertEqual(kit.getDefaultHead(0), "x")
     self.assertEqual(kit.getDefaultHead(1), "o")
     self.assertEqual(kit.allowedNoteHeads(0), ["x", "g"])
     self.assertEqual(kit.shortcutsAndNoteHeads(0), [("x", "x"),
                                                     ("g", "g")])
示例#5
0
 def testRead_OldNoteHeads(self):
     kitData = """KIT_START
     DRUM Snare,Sn,x,True
     NOTEHEAD x 1,100,default
     NOTEHEAD g 1,50,ghost
     DRUM Kick,Bd,o,True
     NOTEHEAD o 2,100,default
     NOTEHEAD O 2,127,accent
     KIT_END
     """
     handle = StringIO(kitData)
     iterator = fileUtils.dbFileIterator(handle)
     kit = dbfsv0.DrumKitStructureV0().read(iterator)
     self.assertEqual(len(kit), 2)
     self.assertEqual(kit[0].name, "Snare")
     self.assertEqual(len(kit[0]), 2)
     self.assertEqual(kit[1].name, "Kick")
     self.assertEqual(len(kit[1]), 2)