예제 #1
0
    def generate(self):
        cadence_generator = CadencesUtil()
        # cadences = cadence_generator.generate()
        cadences = cadence_generator.getLikesCadences()
        len_cadences = len(cadences)
        num_sequencias = 8
        score = stream.Score()
        part_chords = stream.Part()
        part_melody = stream.Part()

        for i in range(0, num_sequencias):
            cadencia = cadences[random.randint(0, len_cadences - 1)]

            num_notas_array = [8, 3, 5]

            for i in range(0, len(cadencia)):
                chor = copy.deepcopy(self.chords[cadencia[i]])
                num_notas = num_notas_array[i]
                chor.quarterLength = num_notas * .5
                part_melody.append(chor)

                # Obtemos as notas do acorde
                pitches = chor.pitches

                velocidade_notas = random.randint(1, 2)
                # Iteramos as notas do acorde pra a melodia
                for i_notas in range(0, num_notas * velocidade_notas):
                    idx_pitch = random.randint(0, len(pitches) - 1)
                    note = note_mus21.Note(pitches[idx_pitch])
                    note.quarterLength = 0.5 / velocidade_notas
                    part_chords.append(note)

        score.insert(0, part_melody)
        score.insert(0, part_chords)
        # sc.show()

        mf = midi.translate.streamToMidiFile(score)
        import datetime

        mf.open(('%s/musics/%s.midi' % (Configs.get_project_home(), datetime.datetime.now().strftime("%Y%m%d%H%M%S"))),
                "wb")
        mf.write()
        mf.close
예제 #2
0
    def gen_midi_of_cadences(self):
        # TODO
        cadence_generator = CadencesUtil()
        cadences = cadence_generator.generate()

        for cadence in cadences:
            score = stream.Score()
            part = stream.Part()

            for i in range(0, len(cadence)):
                chor = copy.deepcopy(self.chords[cadence[i]])
                chor.quarterLength = 2
                part.append(chor)
            score.insert(0, part)

            mf = midi.translate.streamToMidiFile(score)
            mf.open(('%s/cadences/cad%s.midi' % Configs.get_project_home(), '-'.join(str(e) for e in cadence)), "wb")
            mf.write()
            mf.close