pretty_midi를 사용하여 Python으로 MIDI 파일 만들기

개시하다


텐센트 플로우제의 음악 생성 프로젝트'Magenta'를 하고 있습니다.
참조: 텐센트 플로우제 아트뮤직 생성 프로젝트인'마젠타'에서 어운을 배워보자.
그 전처리로 파이톤이 MIDI 파일을 가지고 놀려고 조사한 곳으로 마젠타가 이용하고 있는 것 같다pretty_midi.
이 투고에서 이동pretty_midi 0.2.6 documentation의 견본을 통해pretty를 획득할 수 있습니다미디의 구조를 살펴봅시다.

샘플 코드


샘플 코드와 주석을 쓰세요.
sample.py
import pretty_midi

# Create a PrettyMIDI object
# Pretty MIDIオブジェクトを作る。
cello_c_chord = pretty_midi.PrettyMIDI()

# Create an Instrument instance for a cello instrument
# Instrument Instanceを作る。ここではCello

# 楽器名を入れると、対応するGeneral MIDI program numberを返してくれる
cello_program = pretty_midi.instrument_name_to_program('Cello')


# Instrument instanceをCelloとして作成
cello = pretty_midi.Instrument(program=cello_program)


# Iterate over note names, which will be converted to note number later
# メロディをNoteNameで記載していますが、後ほどNoteNumberに変換されます。

for note_name in ['C5', 'E5', 'G5']:
    # Retrieve the MIDI note number for this note name
    # NoteNameからNote Numberを検索しています。
    note_number = pretty_midi.note_name_to_number(note_name)

    # Create a Note instance, starting at 0s and ending at .5s
    # NoteInstanceを作成します。音(pitch)の開始時間と終了時間、
    # velocityを定義します。
    note = pretty_midi.Note(
        velocity=100, pitch=note_number, start=0, end=.5)

    # Add it to our cello instrument
    # 上記で作成したNoteInstanceをCelloInstrumentに加えます。
    cello.notes.append(note)


# Add the cello instrument to the PrettyMIDI object
# ChelloInstrumentをPrettyMIDIオブジェクトに加えます。
cello_c_chord.instruments.append(cello)


# Write out the MIDI data
# PrettyMIDIオブジェクトをMIDIファイルとして書き出しましょう。
cello_c_chord.write('cello-C-chord.mid')

생성된 MIDI


도미수 사운드는 0.5초(120BPM이면 한 박자) MIDI 파일이다.(logic X로 표시)

끝맺다


다음에, 나는 기존의 MIDI 파일을 읽고, 모든 악기를 파일로 나누려고 한다.
감사합니다.

좋은 웹페이지 즐겨찾기