def runTest(self, relative_root, recursive):
    """Tests the output for the given parameters."""
    root_dir = os.path.join(self.root_dir, relative_root)
    expected_filenames = self.expected_dir_midi_contents[relative_root]
    if recursive:
      for sub_dir in self.expected_sub_dirs[relative_root]:
        for filename in self.expected_dir_midi_contents[
            os.path.join(relative_root, sub_dir)]:
          expected_filenames.add(os.path.join(sub_dir, filename))

    with tempfile.NamedTemporaryFile(
        prefix='ConvertMidiDirToSequencesTest') as output_file:
      convert_dir_to_note_sequences.convert_directory(
          root_dir, output_file.name, recursive)
      actual_filenames = set()
      for sequence in note_sequence_io.note_sequence_record_iterator(
          output_file.name):
        self.assertEqual(
            note_sequence_io.generate_note_sequence_id(
                sequence.filename, os.path.basename(relative_root), 'midi'),
            sequence.id)
        self.assertEqual(os.path.basename(root_dir), sequence.collection_name)
        self.assertNotEqual(0, len(sequence.notes))
        actual_filenames.add(sequence.filename)

    self.assertEqual(expected_filenames, actual_filenames)
    def runTest(self, relative_root, recursive):
        """Tests the output for the given parameters."""
        root_dir = os.path.join(self.root_dir, relative_root)
        expected_filenames = self.expected_dir_midi_contents[relative_root]
        if recursive:
            for sub_dir in self.expected_sub_dirs[relative_root]:
                for filename in self.expected_dir_midi_contents[os.path.join(
                        relative_root, sub_dir)]:
                    expected_filenames.add(os.path.join(sub_dir, filename))

        with tempfile.NamedTemporaryFile(
                prefix='ConvertMidiDirToSequencesTest') as output_file:
            convert_dir_to_note_sequences.convert_directory(
                root_dir, output_file.name, recursive)
            actual_filenames = set()
            for sequence in note_sequence_io.note_sequence_record_iterator(
                    output_file.name):
                self.assertEqual(
                    note_sequence_io.generate_note_sequence_id(
                        sequence.filename, os.path.basename(relative_root),
                        'midi'), sequence.id)
                self.assertEqual(os.path.basename(root_dir),
                                 sequence.collection_name)
                self.assertNotEqual(0, len(sequence.notes))
                actual_filenames.add(sequence.filename)

        self.assertEqual(expected_filenames, actual_filenames)
def midis_to_notesequence(midi_folder="data/training_bits",
                          notesequence_file="data/notesequence.tfrecord"):
    convert_directory(midi_folder, notesequence_file, True)
    print("created a new notesequence.")


##### example
# midis_to_notesequence("input/midis", "data/notesequences.tf")
Ejemplo n.º 4
0
def main():
    output_dir = os.path.dirname(tgt.SEQUENCE_FILE)
    if not os.path.exists(output_dir):
        tf.gfile.MakeDirs(output_dir)

    convert_directory(tgt.MIDI_DIR,
                      tgt.SEQUENCE_FILE,
                      num_threads=4,
                      recursive=True)
Ejemplo n.º 5
0
def construct_dataset(input_dir, output_dir):
    ''' convert midi files (stored in a directory) into TFRecord

    Args:
        input_dir: directory of midi files
        output_dir: target dir

    Return: no return
    '''

    converter.convert_directory(input_dir, output_dir, recursive=True)
Ejemplo n.º 6
0
def main():
    with note_sequence_io.NoteSequenceRecordWriter(
            tgt.SEQUENCE_FILE) as sequence_writer:
        sequences_written = convert_directory(tgt.MIDI_DIR, "",
                                              sequence_writer, True)
        tf.logging.info("Wrote %d NoteSequence protos to '%s'",
                        sequences_written, tgt.SEQUENCE_FILE)
Ejemplo n.º 7
0
def main(input_dir, output_file):
    # Import here to fail fast with wrong args
    from magenta.scripts import convert_dir_to_note_sequences as converters
    converters.convert_directory(input_dir, output_file, True)