def encode(self, melody): """Returns a SequenceExample for the given melody. Args: melody: A MonophonicMelody object. Returns: A tf.train.SequenceExample containing inputs and labels. """ melody.squash(self.min_note, self.max_note, self.transpose_to_key) inputs = [] labels = [] for i in range(len(melody) - 1): inputs.append(self.melody_to_input(melody, i)) labels.append(self.melody_to_label(melody, i + 1)) return sequence_example_lib.make_sequence_example(inputs, labels)
def encode(self, lead_sheet): """Returns a SequenceExample for the given lead sheet. Args: lead_sheet: A LeadSheet object. Returns: A tf.train.SequenceExample containing inputs and labels. """ lead_sheet.squash(self.min_note, self.max_note, self.transpose_to_key) inputs = [] labels = [] for i in range(len(lead_sheet) - 1): inputs.append(self.lead_sheet_to_input(lead_sheet, i)) labels.append(self.lead_sheet_to_label(lead_sheet, i + 1)) return sequence_example_lib.make_sequence_example(inputs, labels)
def encode(self, chords, transpose_amount): """Returns a SequenceExample for the given chord progression. Args: chords: A ChordProgression object. transpose_amount: The number of half steps to transpose the chords. Returns: A tf.train.SequenceExample containing inputs and labels. """ chords.transpose(transpose_amount) inputs = [] labels = [] for i in range(len(chords) - 1): inputs.append(self.chords_to_input(chords, i)) labels.append(self.chords_to_label(chords, i + 1)) return sequence_example_lib.make_sequence_example(inputs, labels)
def testEncode(self): events = [100, 100, 107, 111, NO_EVENT, 99, 112, NOTE_OFF, NO_EVENT] melody = melodies_lib.Melody() melody.from_event_list(events) sequence_example = self.melody_encoder_decoder.encode(melody) expected_inputs = [ [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]] expected_labels = [2, 9, 13, 0, 13, 2, 1, 0] expected_sequence_example = sequence_example_lib.make_sequence_example( expected_inputs, expected_labels) self.assertEqual(sequence_example, expected_sequence_example)
def testEncode(self): events = [100, 100, 107, 111, NO_EVENT, 99, 112, NOTE_OFF, NO_EVENT] melody = melodies_lib.MonophonicMelody() melody.from_event_list(events) sequence_example = self.melody_encoder_decoder.encode(melody) expected_inputs = [ [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]] expected_labels = [2, 9, 13, 0, 13, 2, 1, 0] expected_sequence_example = sequence_example_lib.make_sequence_example( expected_inputs, expected_labels) self.assertEqual(sequence_example, expected_sequence_example)
def encode(self, melody): """Returns a SequenceExample for the given melody. Args: melody: A MonophonicMelody object. Returns: A tf.train.SequenceExample containing inputs and labels. """ melody.squash(self.min_note, self.max_note, self.transpose_to_key) inputs = [] labels = [] melody_events = melody.events melody.events = melody_events[:1] for i in xrange(1, len(melody_events)): inputs.append(self.melody_to_input(melody)) melody.events = melody_events[:i + 1] labels.append(self.melody_to_label(melody)) return sequence_example_lib.make_sequence_example(inputs, labels)
def encode(self, melody): """Returns a SequenceExample for the given melody. Args: melody: A Melody object. Returns: A tf.train.SequenceExample containing inputs and labels. """ melody.squash(self.min_note, self.max_note, self.transpose_to_key) inputs = [] labels = [] melody_events = melody.events melody.events = melody_events[:1] for i in xrange(1, len(melody_events)): inputs.append(self.melody_to_input(melody)) melody.events = melody_events[:i + 1] labels.append(self.melody_to_label(melody)) return sequence_example_lib.make_sequence_example(inputs, labels)