Пример #1
0
    def split(self):
        """
        Split this melody into harmonies.

        The melody should be harmonized somewhat already.

        Attempts are made to put as much work into the top of the melody as
        possible.

        Returned melodies are high-to-low.
        """

        voices = fold(ChordCounter, self.music)

        rv = []
        for voice in range(voices):
            melody = Melody(HarmonySplitter(voice).visit(self.music),
                    self.tpb)
            melody.pan = self.pan
            melody.volume = self.volume
            rv.append(melody)
        return rv
Пример #2
0
 def schedule(self):
     return fold(NoteScheduler, self.specialized().ast)
Пример #3
0
 def schedule(self):
     return fold(NoteScheduler, self.ast)