示例#1
0
 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..",
     )
示例#2
0
 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))
示例#3
0
 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))
示例#4
0
 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"))
示例#5
0
 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'))
示例#6
0
 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
示例#8
0
 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"))
示例#9
0
 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))
示例#10
0
 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"))
示例#11
0
 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))
示例#12
0
    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",
        )
示例#13
0
    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")
示例#14
0
    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")
示例#15
0
#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..")
示例#19
0
	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..")
示例#20
0
 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"))
示例#21
0
 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'))