Esempio n. 1
0
 def note_generation(self, input, shape):
     starter = numpy.reshape(input, shape)
     prediction = self.model.predict(starter, verbose=0)
     index = numpy.argmax(prediction)
     newNote = Note.Note([], [])
     newNote.setFromIndex(index)
     return newNote
Esempio n. 2
0
File: moto.py Progetto: vlad-ki/moto
def edit_note(note_res):
    _id = request.query._id
    date = request.forms.get('date')
    odometr = request.forms.get('odometr')
    type_to_do = request.forms.get('type_to_do')
    info = request.forms.get('info')

    try:
        date = date_parse(date)
    except DateValueError:
        note = note_res.find_one(note_object_to_dict(Note(_id)))
        return template('templates/edit_note', note=note, dateerror=True)

    note = Note(_id=_id,
                date=date,
                odometr=odometr,
                type_to_do=type_to_do,
                info=info)
    note_res.save(note_object_to_dict(note))
    redirect('/')
Esempio n. 3
0
 def generate(self, starter):
     melody = []
     for noteIndex in range(50):
         input = numpy.reshape(starter, (1, SEQUENCE_LEN, 450))
         prediction = self.model.predict(input, verbose=0)
         index = numpy.argmax(prediction)
         newNote = Note.Note([], [])
         newNote.setFromIndex(index)
         melody.append(newNote)
         starter = starter[1:]
         starter.append(newNote.getOneHot())
     return melody
Esempio n. 4
0
File: moto.py Progetto: vlad-ki/moto
def add_note(note_res):
    date = request.forms.get('date')
    odometr = request.forms.get('odometr')
    type_to_do = request.forms.get('type_to_do')
    info = request.forms.get('info')

    try:
        date = date_parse(date)
    except DateValueError:
        list_of_notes = note_res.list()
        return template('templates/home',
                        list_of_notes=list_of_notes,
                        dateerror=True)

    note = Note(date=date, odometr=odometr, type_to_do=type_to_do, info=info)
    note_res.save(note_object_to_dict(note))
    redirect('/')
Esempio n. 5
0
    def _changeM21NoteToNote(M21Note):
        pitchVector = [0]*45
        durationVector = [0]*10
        if int(M21Note.duration.quarterLength) > 4:
            raise Exception("Duration too long")

        minIndex = 0
        minVal = 8
        for i in range(10):
            currentVal = abs(M21Note.duration.quarterLength - QUARTER_LENGTHS[i])
            if currentVal < minVal:
                minVal = currentVal
                minIndex = i

        durationVector[minIndex] = 1

        if M21Note.isClassOrSubclass((note.Note,)):
            interval_ = int(interval.Interval(note.Note('c3'), M21Note).cents / 100)
            if interval_ < 0.0 or interval_ > 44.0:
                raise Exception("Pitch out of scale")
            pitchVector[int(interval_)] = 1

        return Note.Note(pitchVector, durationVector)
starter = Tune.Tune("../ABC/ABCChina06")

inputIndex = 5
inputIndex2 = 15
############################################################################

environment.set('musicxmlPath', '/bin/musescore3')

ND_model = NeuralNetwork.NeuralNetwork()
ND_model.load_model(ND_modelFilepath)
starterInput, temp = starter.getTrainData(ND_sequenceLength)
ND_input = starterInput[inputIndex]
ND_inputShape = (1, ND_sequenceLength, 450)

NN_model = NeuralNetwork.NeuralNetwork()
NN_model.load_model(NN_modelFilepath)
starterInput, temp = starter.getTrainData(NN_sequenceLength)
NN_input = starterInput[inputIndex]
NN_inputShape = (1, NN_sequenceLength, 450)

melody = []
for noteIndex in range(newMelodyLength):
    duration = ND_model.pod_generation(ND_input, ND_inputShape)
    note = NN_model.note_generation(NN_input, NN_inputShape)
    melody.append(Note.Note(note.pitchVector, duration))
    ND_input = updateNoteInput(ND_input, melody[-1])
    NN_input = updateNoteInput(NN_input, melody[-1])

MusicConverter.convert(melody, MUSIC_STREAM).show('musicxml')
compareNewMelody(melody)
NP_modelFilepath = "weights/note-pitch"
NP_sequenceLength = 0

newMelodyLength = 0
starter = Tune.Tune("ABC/ABCChina06")

############################################################################

environment.set('musicxmlPath', '/bin/musescore3')

DD_model = NeuralNetwork.NeuralNetwork()
DD_model.load_model(DD_modelFilepath)
DD_input, temp = starter.getTrainData_noteDuration(DD_sequenceLength)
DD_inputShape = (1, DD_sequenceLength, len(DD_input[0]))

NP_model = NeuralNetwork.NeuralNetwork()
NP_model.load_model(NP_modelFilepath)
NP_input, temp = starter.getTrainData(NP_sequenceLength)
NP_inputShape = (1, NP_sequenceLength, len(NP_input[0]))

melody = []
for noteIndex in range(newMelodyLength):
    duration = DD_model.pod_generation(DD_input, DD_inputShape)
    pitch = NP_model.pod_generation(NP_input, NP_inputShape)
    melody.append(Note.Note(pitch, duration))
    updatePoDInput(DD_input, duration)
    updateNoteInput(NP_input, melody[-1])

MusicConverter.convert(melody, MUSIC_STREAM).show('musicxml')
compareNewMelody(melody)
Esempio n. 8
0
File: moto.py Progetto: vlad-ki/moto
def delete_note(note_res):
    _id = request.query._id
    note_res.remove(Note(_id))

    redirect('/')
Esempio n. 9
0
File: moto.py Progetto: vlad-ki/moto
def edit_note(note_res):
    _id = request.query._id
    note = note_res.find_one(note_object_to_dict(Note(_id)))
    return template('templates/edit_note', note=note, dateerror=None)
inputIndex = 0
inputIndex2 = 0
############################################################################

environment.set('musicxmlPath', '/bin/musescore3' )

ND_model = NeuralNetwork.NeuralNetwork()
ND_model.load_model(ND_modelFilepath)
starterInput, temp = starter.getTrainData(ND_sequenceLength)
ND_input = starterInput[inputIndex]
ND_inputShape = (1, ND_sequenceLength, 450)

NP_model = NeuralNetwork.NeuralNetwork()
NP_model.load_model(NP_modelFilepath)
starterInput, temp = starter.getTrainData(NP_sequenceLength)
NP_input = starterInput[inputIndex2]
NP_inputShape = (1, NP_sequenceLength, 450)

melody = []
for noteIndex in range(newMelodyLength):
    duration = ND_model.pod_generation(ND_input, ND_inputShape)
    pitch = NP_model.pod_generation(NP_input, NP_inputShape)
    melody.append(Note.Note(list(pitch), list(duration)))
    ND_input = updateNoteInput(ND_input, melody[-1])
    NP_input = updateNoteInput(NP_input, melody[-1])

MusicConverter.convert(melody, MUSIC_STREAM).show('musicxml')
compareNewMelody(melody)