Beispiel #1
0
 def creatNote(self, tactInternalNumber, elementNumber,
               chordInternalNumber):
     """
     Erstellt eine Note und gibt diese zurück.
     :return: Die erstellte Note.
     """
     note = Note()
     note.elementNumber = elementNumber
     note.tactInternalNumber = tactInternalNumber
     note.chordInternalNumber = chordInternalNumber
     return note
Beispiel #2
0
 def creatNot(self):
     """
     Erstellt eine Note und gibt diese zurück.
     Besser wäre:  creatNote(self, tactInternalNumber, elementNumber, chordInternalNumber zu verwenden!
     -> Da Note ohne diese Nummern schwer zu händeln ist.
     :return: Die erstellte Note.
     """
     return Note()
    def classify(self, inputDataWithLines, inputDataWithoutLines):
        """
        Bereitet die Inputdaten für das neuronale Netz vor und klassifiziert mit diesem den Input zu einer Note.

        :param inputDataWithLines : Eine Mat welche ein Bild einer Note mit Linien enthält.
        :param inputDataWithoutLines : Eine Mat welche ein Bild einer Note ohne Linien enthält.
        :return: note : Note() Die Klassifizierung einer Musiknote.
        :example:
            cnnNoteClassifier.classify(myInputDataWithLines, myInputDataWithoutLines)
        """

        #Converting the Input
        cnnNoteTypeInput = []
        cnnNoteHightInput = []
        for i in range(0, len(inputDataWithLines)):
            cnnNoteTypeInput.append(inputDataWithoutLines[i].ravel())
            cnnNoteHightInput.append(inputDataWithLines[i].ravel())

        cnnNoteTypeInput, _ = self.convDataForNet(cnnNoteTypeInput)
        cnnNoteHightInput, _ = self.convDataForNet(cnnNoteHightInput)

        #Classify the Input
        noteTypes = self.__noteTypeCnn.classify(cnnNoteTypeInput)
        noteSteps, noteOctaves = self.__noteHightCnn.classify(
            cnnNoteHightInput)

        #Converting the Classification into internal representation
        notens = []
        for i in range(0, len(noteTypes)):
            # One of i ClassinifcationUnit to classify
            note = Note()
            note.type = noteTypes[i]
            note.pitch["step"] = noteSteps[i]
            note.pitch["octave"] = noteOctaves[i]
            notens.append(note)
            self.__logger.info(
                "Classified following notetype: " + str(note.type) +
                " step: " + str(note.pitch["step"]) + " octave: " +
                str(note.pitch["octave"]), "CnnNoteClassifier:classify",
                inputDataWithLines[i])
            #cv2.imshow(note.type, inputDataWithLines[i])
            #cv2.waitKey()

        return notens
Beispiel #4
0
 def testing_add_Note(self, pitch, octave, duration, semitones):
     """Gibt die entsprechende Note als ein Chord-Element zurück"""
     test_chord = Chord()
     test_note = Note()
     test_note.duration = duration
     test_note.pitch["step"] = pitch
     test_note.pitch["octave"] = octave
     test_note.pitch["alter"] = semitones
     test_chord.addNote(test_note)
     return test_chord