pretty_midi를 사용하여 Python으로 MIDI 파일 만들기
4837 단어 PythonmusicMIDIpretty_midi음악.
개시하다
텐센트 플로우제의 음악 생성 프로젝트'Magenta'를 하고 있습니다.
참조: 텐센트 플로우제 아트뮤직 생성 프로젝트인'마젠타'에서 어운을 배워보자.
그 전처리로 파이톤이 MIDI 파일을 가지고 놀려고 조사한 곳으로 마젠타가 이용하고 있는 것 같다pretty_midi.
이 투고에서 이동pretty_midi 0.2.6 documentation의 견본을 통해pretty를 획득할 수 있습니다미디의 구조를 살펴봅시다.
샘플 코드
샘플 코드와 주석을 쓰세요.
sample.pyimport 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 파일을 읽고, 모든 악기를 파일로 나누려고 한다.
감사합니다.
Reference
이 문제에 관하여(pretty_midi를 사용하여 Python으로 MIDI 파일 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tackey/items/d0525798bddc4516f4f9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
샘플 코드와 주석을 쓰세요.
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 파일을 읽고, 모든 악기를 파일로 나누려고 한다.
감사합니다.
Reference
이 문제에 관하여(pretty_midi를 사용하여 Python으로 MIDI 파일 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tackey/items/d0525798bddc4516f4f9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다음에, 나는 기존의 MIDI 파일을 읽고, 모든 악기를 파일로 나누려고 한다.
감사합니다.
Reference
이 문제에 관하여(pretty_midi를 사용하여 Python으로 MIDI 파일 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tackey/items/d0525798bddc4516f4f9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)