def test_dotted_notes(self): self.assertEqual( LilyPond.from_NoteContainer(NoteContainer("C"), value.dots(8), standalone=False), "c'8.", ) self.assertEqual( LilyPond.from_NoteContainer(NoteContainer("C"), value.dots(4, 2), standalone=False), "c'4..", )
def test_dots(self): self.assertEqual(value.dots(4, 0), 4) self.assertEqual(value.dots(4, 1), 8 / 3.0) self.assertEqual(value.dots(4, 1), value.add(8, 4)) self.assertEqual(value.dots(4, 2), value.add(value.add(8, 4), 16)) self.assertEqual(value.dots(8, 0), 8) self.assertEqual(value.dots(8, 1), 16 / 3.0) self.assertEqual(value.dots(8, 1), value.add(8, 16)) self.assertEqual(value.dots(8, 2), value.add(value.add(8, 16), 32))
def test_to_pdf(self): self.assert_( LilyPond.to_pdf( "{ %s }" % LilyPond.from_NoteContainer(NoteContainer("C"), value.dots(8)), "pdftest first test" ) ) self.assert_(LilyPond.to_pdf(LilyPond.from_Bar(self.tbar), "pdftest2")) self.assert_(LilyPond.to_pdf(LilyPond.from_Bar(self.mbar), "pdftest3"))
def test_to_pdf(self): self.assert_( LilyPond.to_pdf( '{ %s }' % LilyPond.from_NoteContainer(NoteContainer('C'), value.dots(8)), 'pdftest first test')) self.assert_(LilyPond.to_pdf(LilyPond.from_Bar(self.tbar), 'pdftest2')) self.assert_(LilyPond.to_pdf(LilyPond.from_Bar(self.mbar), 'pdftest3'))
def test_to_png(self): self.assert_( LilyPond.to_png( '{ %s }' % LilyPond.from_NoteContainer(NoteContainer('C'), value.dots(8)), 'pn1')) self.assert_(LilyPond.to_png(LilyPond.from_Bar(self.tbar), 'pn2')) self.assert_(LilyPond.to_png(LilyPond.from_Bar(self.mbar), 'pn3'))
def generate_bar(difficulty: float): some_bar = Bar('C', (4, 4)) values = [ value.whole, value.half, value.quarter, value.dots(value.half), value.eighth, value.dots(value.quarter), value.sixteenth, value.dots(value.eighth), value.quarter, value.dots(value.quarter) ] actual_values = [] pitches = [ Note("A", 3), Note("B", 3), Note("C", 4), Note("D", 4), Note("E", 4), Note("F", 4), Note("G", 4), Note("A", 4), Note("B", 4), Note("C", 5), Note("D", 5), Note("E", 5), Note("F", 5), Note("G", 5), Note("A", 5), Note("B", 5), Note("C", 6) ] if difficulty >= 10: actual_values = values else: index = math.ceil(difficulty) actual_values = values[0:index] while some_bar.place_notes(choice(pitches), choice(actual_values)): pass if not some_bar.is_full(): some_bar.place_notes(choice(pitches), some_bar.value_left()) return some_bar
def test_to_png(self): self.assertTrue( LilyPond.to_png( "{ %s }" % LilyPond.from_NoteContainer(NoteContainer("C"), value.dots(8)), "pn1", )) self.assertTrue(LilyPond.to_png(LilyPond.from_Bar(self.tbar), "pn2")) self.assertTrue(LilyPond.to_png(LilyPond.from_Bar(self.mbar), "pn3"))
def test_determine(self): self.assertEqual(value.determine(7), (4, 0, 7, 4)) self.assertEqual(value.determine(8), (8, 0, 1, 1)) self.assertEqual(value.determine(10), (8, 0, 5, 4)) self.assertEqual(value.determine(12), (8, 0, 3, 2)) self.assertEqual(value.determine(14), (8, 0, 7, 4)) for x in value.base_values: self.assertEqual(value.determine(x), (x, 0, 1, 1)) self.assertEqual(value.determine(value.dots(x, 1)), (x, 1, 1, 1)) self.assertEqual(value.determine(value.dots(x, 2)), (x, 2, 1, 1)) self.assertEqual(value.determine(value.dots(x, 3)), (x, 3, 1, 1)) self.assertEqual(value.determine(value.dots(x, 4)), (x, 4, 1, 1)) for (s, x) in enumerate(value.base_triplets): self.assertEqual(value.determine(x), (value.base_values[s], 0, 3, 2)) for (s, x) in enumerate(value.base_quintuplets): self.assertEqual(value.determine(x), (value.base_values[s], 0, 5, 4)) for (s, x) in enumerate(value.base_septuplets): self.assertEqual(value.determine(x), (value.base_values[s], 0, 7, 4))
def test_to_pdf(self): self.assertTrue( LilyPond.to_pdf( "{ %s }" % LilyPond.from_NoteContainer(NoteContainer("C"), value.dots(8)), "pdftest first test", ) ) self.assertTrue(LilyPond.to_pdf(LilyPond.from_Bar(self.tbar), "pdftest2")) self.assertTrue(LilyPond.to_pdf(LilyPond.from_Bar(self.mbar), "pdftest3"))
def test_from_NoteContainer(self): self.assertEqual( LilyPond.from_NoteContainer(NoteContainer("C"), standalone=False), "c'") self.assertEqual( LilyPond.from_NoteContainer(NoteContainer("C"), 4, standalone=False), "c'4") self.assertEqual( LilyPond.from_NoteContainer(NoteContainer(["C", "E"]), standalone=False), "<c' e'>", ) self.assertEqual( LilyPond.from_NoteContainer(NoteContainer(["C", "E"]), 4, standalone=False), "<c' e'>4", ) # issue #37 self.assertEqual( LilyPond.from_NoteContainer(NoteContainer("C"), 16, standalone=False), "c'16", ) self.assertEqual( LilyPond.from_NoteContainer(NoteContainer("C"), 16.0, standalone=False), "c'16", ) self.assertEqual( LilyPond.from_NoteContainer(NoteContainer("C"), value.dots(16), standalone=False), "c'16.", ) self.assertEqual( LilyPond.from_NoteContainer(NoteContainer("C"), 0.25, standalone=False), "c'\\longa", ) self.assertEqual( LilyPond.from_NoteContainer(NoteContainer("C"), 0.5, standalone=False), "c'\\breve", )
def test_from_NoteContainer(self): self.assertEqual(LilyPond.from_NoteContainer(NoteContainer("C"), standalone=False), "c'") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer("C"), 4, standalone=False), "c'4") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer(["C", "E"]), standalone=False), "<c' e'>") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer(["C", "E"]), 4, standalone=False), "<c' e'>4") # issue #37 self.assertEqual(LilyPond.from_NoteContainer(NoteContainer("C"), 16, standalone=False), "c'16") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer("C"), 16.0, standalone=False), "c'16") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer("C"), value.dots(16), standalone=False), "c'16.") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer("C"), 0.25, standalone=False), "c'\\longa") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer("C"), 0.5, standalone=False), "c'\\breve")
def test_from_NoteContainer(self): self.assertEqual(LilyPond.from_NoteContainer(NoteContainer('C'), standalone=False), "c'") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer('C'), 4, standalone=False), "c'4") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer(['C', 'E']), standalone=False), "<c' e'>") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer(['C', 'E']), 4, standalone=False), "<c' e'>4") # issue #37 self.assertEqual(LilyPond.from_NoteContainer(NoteContainer('C'), 16, standalone=False), "c'16") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer('C'), 16.0, standalone=False), "c'16") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer('C'), value.dots(16), standalone=False), "c'16.") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer('C'), 0.25, standalone=False), "c'\\longa") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer('C'), 0.5, standalone=False), "c'\\breve")
#Create "Measures" column by taking a ceiling function #Apply a small perturbation by a factor much smaller than the smallest unit #so that values such as 0.00 become 1 and 1.00 become 2. df["Measure"] = (df["Frame"] + 0.0001).apply(np.ceil) #Change all NaN (should be from the Diff column) to blanks df = df.fillna('') #Last step -- Dictionary convert note length to note type (eigth/quarter etc) LengthToNote = dict({ 0.0625: 16, 0.125: 8, 0.1875: 8, 0.25: 4, 0.3125: 4, #Round to dotted half 0.375: value.dots(4), #Dotted quarter 0.4375: value.dots(4), #Round to dotted half 0.5: 2, 0.5625: 2, #Round to half 0.625: 2, #Round to half 0.6875: 2, #Round to half 0.75: value.dots(2), #Dotted half 0.8125: value.dots(2), #Round to dotted half 0.875: value.dots(2), #Round to dotted half 0.9375: value.dots(2), #Round to dotted half 1: 1 }) df["Diff"] = df["Diff"].map(LengthToNote) #Map to note values for Mingus display(df.head(10))
bar.place_notes(Note('C', 4), value.eighth) bar.place_notes(Note('C', 4), value.eighth) bar.place_notes(Note('C', 4), value.eighth) song.add_bar(bar) bar = Bar() for _ in range(16): bar.place_notes(Note('C', 4), value.sixteenth) song.add_bar(bar) bar = Bar() bar.place_notes(Note('E', 4), value.quarter) bar.place_notes(Note('G', 4), value.quarter) bar.place_notes(Note('C', 4), value.dots(value.quarter)) bar.place_notes(Note('D', 4), value.eighth) song.add_bar(bar) bar = Bar() bar.place_notes(Note('A', 4), value.dots(value.half)) bar.place_notes(Note('C', 5), value.eighth) bar.place_notes(Note('B', 4), value.eighth) song.add_bar(bar) bar = Bar() bar.place_notes(Note('C', 4), value.quarter) bar.place_notes(Note('D', 4), value.quarter) bar.place_notes(Note('E', 4), value.quarter)
def test_to_pdf(self): self.assert_(LilyPond.to_pdf('{ %s }' % LilyPond.from_NoteContainer(NoteContainer('C'), value.dots(8)), 'pdftest first test')) self.assert_(LilyPond.to_pdf(LilyPond.from_Bar(self.tbar), 'pdftest2')) self.assert_(LilyPond.to_pdf(LilyPond.from_Bar(self.mbar), 'pdftest3'))
def test_dotted_notes(self): self.assertEqual(LilyPond.from_NoteContainer(NoteContainer('C'), value.dots(8), standalone=False), "c'8.") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer('C'), value.dots(4, 2), standalone=False), "c'4..")
def test_dotted_notes(self): self.assertEqual(LilyPond.from_NoteContainer(NoteContainer("C"), value.dots(8)), "c'8.") self.assertEqual(LilyPond.from_NoteContainer(NoteContainer("C"), value.dots(4, 2)), "c'4..")
def test_to_png(self): self.assert_(LilyPond.to_png("{ %s }" % LilyPond.from_NoteContainer(NoteContainer("C"), value.dots(8)), "pn1")) self.assert_(LilyPond.to_png(LilyPond.from_Bar(self.tbar), "pn2")) self.assert_(LilyPond.to_png(LilyPond.from_Bar(self.mbar), "pn3"))
def test_to_png(self): self.assert_(LilyPond.to_png('{ %s }' % LilyPond.from_NoteContainer(NoteContainer('C'), value.dots(8)), 'pn1')) self.assert_(LilyPond.to_png(LilyPond.from_Bar(self.tbar), 'pn2')) self.assert_(LilyPond.to_png(LilyPond.from_Bar(self.mbar), 'pn3'))