Запустите music21 на полную мощность процессора - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь создать набор данных, извлекая только определенные песни из большего набора данных . Под конкретными я подразумеваю песни только с двумя инструментами, один из которых относится к семейству клавишных, а другой - к семейству струнных. Упрощенный код выглядит так:

    for midi_file_path in Path(dir_path).glob('**/*.mid'):
    try:
        song = converter.parse(midi_file_path)
        parts = instrument.partitionByInstrument(song)
        if parts:
            if len(parts) == 2:
                if (parts.parts[0].id in keyboard_instruments and parts.parts[1].id in string_instruments) or \
                        (parts.parts[1].id in keyboard_instruments and parts.parts[0].id in string_instruments):
                                print(midi_file_path)
    except Exception as e:
        print("Exception ", midi_file_path,  e)
        pass

Этот процесс занимает много времени, и я бы хотел его оптимизировать. Основной вопрос - почему процессор не работает на полной мощности , а только около 17%. В последней версии music21 написано - «Функция Extraction запускает многоядерный по умолчанию» .

enter image description here

...