Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
  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)
Exemple #4
0
 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)
Exemple #6
0
  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)
Exemple #7
0
    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)