コード例 #1
0
 def testStaffs(self):
     score = Score()
     settings = ASCIISettings()
     settings.omitEmpty = False
     score.drumKit = DrumKit.DrumKit()
     score.drumKit.addDrum(Drum.Drum("HiHat", "Hh", "x"))
     score.drumKit.addDrum(Drum.Drum("Crash", "Cr", "x"))
     counter = MeasureCount.counterMaker(4, 16)
     score.insertMeasureByIndex(16, counter=counter)
     score.insertMeasureByIndex(16, counter=counter)
     score.insertMeasureByIndex(16, counter=counter)
     score.addNote(NotePosition(0, 0, 0, 0), "x")
     score.addNote(NotePosition(0, 1, 0, 0), "y")
     score.addNote(NotePosition(0, 2, 0, 0), "z")
     score.formatScore(40)
     output = self.getOutput(score, settings)
     self.assertEqual(output, [
         'Tabbed with DrumBurp, a drum tab editor from www.whatang.org', '',
         'Title     : ', 'Artist    : ', 'BPM       : 120', 'Tabbed by : ',
         'Date      : ' + self.exportDate, '', 'Cr - Crash', 'Hh - HiHat',
         '', 'Cr|----------------|----------------|',
         'Hh|x---------------|y---------------|',
         '   1e+a2e+a3e+a4e+a 1e+a2e+a3e+a4e+a ', '',
         'Cr|----------------|', 'Hh|z---------------|',
         '   1e+a2e+a3e+a4e+a ', '',
         'Tabbed with DrumBurp, a drum tab editor from www.whatang.org'
     ])
コード例 #2
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"
     ])
コード例 #3
0
 def getNewKit(self):
     newKit = DrumKit.DrumKit()
     oldLines = []
     for drum in reversed(self._currentKit):
         newKit.addDrum(drum)
         if self._oldLines[drum] == -1:
             oldLines.append(-1)
         else:
             oldLines.append(len(self._initialKit)
                             - self._oldLines[drum] - 1)
     return newKit, oldLines
コード例 #4
0
 def testWithKit(self):
     score = Score()
     settings = ASCIISettings()
     score.drumKit = DrumKit.DrumKit()
     score.drumKit.addDrum(Drum.Drum("HiHat", "Hh", "x"))
     score.drumKit.addDrum(Drum.Drum("Crash", "Cr", "x"))
     output = self.getOutput(score, settings)
     self.assertEqual(output, [
         'Tabbed with DrumBurp, a drum tab editor from www.whatang.org', '',
         'Title     : ', 'Artist    : ', 'BPM       : 120', 'Tabbed by : ',
         'Date      : ' + self.exportDate, '', 'Cr - Crash', 'Hh - HiHat',
         '', 'Tabbed with DrumBurp, a drum tab editor from www.whatang.org'
     ])
コード例 #5
0
 def getKit(self):
     item = self.defaultKitList.currentItem()
     isUser = item.data(_IS_USER_KIT).toBool()
     kitName = unicode(item.text())
     if isUser:
         kitString = str(self._settings.value(kitName).toString())
         handle = StringIO(kitString)
         dbfile = fileUtils.dbFileIterator(handle)
         kit = DrumKit.DrumKit()
         kit.read(dbfile)
         return kit
     else:
         return DrumKit.getNamedDefaultKit(kitName)
コード例 #6
0
 def getValues(self):
     mc = self.measureTabs.getCounter()
     kitName = unicode(self.kitCombobox.currentText())
     kitIndex = self.kitCombobox.currentIndex()
     isUserKit = self.kitCombobox.itemData(kitIndex).toBool()
     if isUserKit:
         kitString = str(self._settings.value(kitName).toString())
         handle = StringIO(kitString)
         dbfile = fileUtils.dbFileIterator(handle)
         kit = DrumKit.DrumKit()
         kit.read(dbfile)
     else:
         kit = DrumKit.getNamedDefaultKit(kitName)
     return (self.numMeasuresSpinBox.value(), mc, kit)
コード例 #7
0
ファイル: testDrumKit.py プロジェクト: rdoursenaud/DrumBurp
 def testRead_NoNoteHeads(self):
     kitData = """KIT_START
     DRUM Snare,Sn,x,True
     DRUM Kick,Bd,o,True
     KIT_END
     """
     handle = StringIO(kitData)
     iterator = fileUtils.dbFileIterator(handle)
     kit = DrumKit.DrumKit()
     kit.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)
コード例 #8
0
ファイル: testDrumKit.py プロジェクト: rdoursenaud/DrumBurp
 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)
     kit = DrumKit.DrumKit()
     self.assertRaises(DBErrors.UnrecognisedLine, kit.read, iterator)
コード例 #9
0
ファイル: testDrumKit.py プロジェクト: rdoursenaud/DrumBurp
 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 = DrumKit.DrumKit()
     kit.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")])
コード例 #10
0
 def _loadKit(self):
     directory = self._scoreDirectory
     if directory is None:
         home = QDesktopServices.HomeLocation
         directory = unicode(QDesktopServices.storageLocation(home))
     fname = QFileDialog.getOpenFileName(parent = self,
                                         caption = "Load DrumBurp kit",
                                         directory = directory,
                                         filter = _KIT_FILTER)
     if len(fname) == 0:
         return
     with open(fname, 'rU') as handle:
         fileIterator = fileUtils.dbFileIterator(handle)
         newKit = DrumKit.DrumKit()
         newKit.read(fileIterator)
     self._currentKit = list(reversed(newKit))
     self._oldLines.clear()
     for drum in self._currentKit:
         self._oldLines[drum] = -1
     self._populate()
コード例 #11
0
ファイル: testDrumKit.py プロジェクト: rdoursenaud/DrumBurp
 def testRead_NewNoteHeads(self):
     kitData = """KIT_START
     DRUM Snare,Sn,x,True
     NOTEHEAD x 1,100,normal,default,0,none,0,x
     NOTEHEAD g 1,50,ghost,default,0,ghost,0,g
     DRUM Kick,Bd,o,True
     NOTEHEAD o 2,100,normal,default,-5,none,1,o
     NOTEHEAD O 2,127,accent,default,-5,accent,1,a
     KIT_END
     """
     handle = StringIO(kitData)
     iterator = fileUtils.dbFileIterator(handle)
     kit = DrumKit.DrumKit()
     kit.read(iterator)
     self.assertEqual(len(kit), 2)
     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)
コード例 #12
0
 def emptyKit():
     return DrumKit.DrumKit()
コード例 #13
0
ファイル: testdbfsv1.py プロジェクト: thomasfillon/DrumBurp
 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)
     dbfsv1.DrumKitStructureV1().write(kit, indenter)
     outlines = handle.getvalue().splitlines()
     self.assertEqual(outlines,
                      ['START_KIT',
                       '  START_DRUM',
                       '    NAME One',
                       '    ABBR d1',
                       '    DEFAULT_HEAD x',
                       '    LOCKED True',
                       '    HEADLIST xg',
                       '    START_NOTEHEAD',
                       '      MIDINOTE 71',
                       '      MIDIVOLUME 96',
                       '      EFFECT normal',
                       '      NOTATIONHEAD default',
                       '      NOTATIONLINE 0',
                       '      NOTATIONEFFECT none',
                       '      STEM 0',
                       '      SHORTCUT x',
                       '    END_NOTEHEAD',
                       '    START_NOTEHEAD',
                       '      MIDINOTE 71',
                       '      MIDIVOLUME 96',
                       '      EFFECT ghost',
                       '      NOTATIONHEAD default',
                       '      NOTATIONLINE 0',
                       '      NOTATIONEFFECT ghost',
                       '      STEM 0',
                       '      SHORTCUT g',
                       '    END_NOTEHEAD',
                       '  END_DRUM',
                       '  START_DRUM',
                       '    NAME Two',
                       '    ABBR d2',
                       '    DEFAULT_HEAD o',
                       '    LOCKED False',
                       '    HEADLIST oO',
                       '    START_NOTEHEAD',
                       '      MIDINOTE 71',
                       '      MIDIVOLUME 96',
                       '      EFFECT normal',
                       '      NOTATIONHEAD default',
                       '      NOTATIONLINE -5',
                       '      NOTATIONEFFECT none',
                       '      STEM 1',
                       '      SHORTCUT o',
                       '    END_NOTEHEAD',
                       '    START_NOTEHEAD',
                       '      MIDINOTE 71',
                       '      MIDIVOLUME 96',
                       '      EFFECT accent',
                       '      NOTATIONHEAD default',
                       '      NOTATIONLINE -5',
                       '      NOTATIONEFFECT accent',
                       '      STEM 1',
                       '      SHORTCUT a',
                       '    END_NOTEHEAD',
                       '  END_DRUM',
                       'END_KIT'])
コード例 #14
0
ファイル: testDrumKit.py プロジェクト: rdoursenaud/DrumBurp
 def setUp(self):
     self.kit = DrumKit.DrumKit()