2017-03-21 16 views
0

내가 찾은 그것을 할 수있는 유일한 방법은 music21 사용하는 것입니다python으로 MIDI 트랙 악기 이름을 얻는 방법은 무엇입니까?

m = converter.parse(path) 
for m in m.parts: 
    print(m[0]) 

를하지만 출력이 잘못이다 :

Piano 


Piano 

빈 곳도 악기 이름, 그것은 단지 할 수 없습니다 그것을 읽었지만 문제가 파일에 없기 때문에 tuxguitar으로 정확하게 가져올 수 있습니다. 또한 music21은 큰 미디 파일을 저장할 수 없으며 붙어 있습니다. mido 라이브러리를 사용해 보았지만 트랙 악기를 얻을 수있는 방법이 없습니다. attribute을 찾았지만 사용할 방법이 없습니다.

어떻게하면 미디 트랙의 악기를 파이썬으로 파싱 할 수 있습니까?

답변

0

왜 Mido가 작동하지 않았습니까?

from mido import MidiFile 
mid = MidiFile('song.mid') 
for i, track in enumerate(mid.tracks): 
    print('Track {}: {}'.format(i, track.name)) 
    for msg in track: 
     print(msg) 

트랙 속성은 트랙 목록입니다. 각 트랙은 각 메시지의 시간 속성이 델타 시간 (틱)으로 설정된 메시지 및 메타 메시지의 목록입니다.
자세한 내용은 here을 참조하십시오.

+0

미디 이벤트가 아닌 악기 이름 (피아노, 색소구 등)을 가져와야합니다. 죄송합니다. 질문을 수정했습니다. – user7745819

+0

찾았습니다! 귀하의 코드는 다른 이벤트 외에 "프로그램"값을 출력합니다.이 값은 계측기 값입니다. – user7745819