2017-09-11 8 views
1

그래서 나는 그 악보로 인쇄 얻을 내 MIDI 키보드에서 이벤트를 감지하는이 기능을 사용하고 있습니다 : 이것은 2 이벤트, 키가 눌려 하나는 그것을 누르면 반환 파이 게임 미디 함수는 키를 누르거나 키를 누르기 만하면됩니다.

for e in events: 
    if 
    if e.type in [pygame.midi.MIDIIN]: 

up.This는 이벤트가있을 때마다 if 문을 트리거하는 기능을 만 들기 때문에 이벤트마다 다양한 메모가 올 수 있기 때문에 개별 노트에 유용합니다. keydown, note 41 키 업, note 40 키 업. 또는 메모 40은 아래로, 메모 41은 위로, 메모 40은 아래로, 메모 41은 아래로. Etc 등. '키 업'또는 '키 다운'이라고 말하면 그냥 if 문을 트리거합니다. 그래서 내 질문은 아래 키를 눌렀을 때만 트리거되는 기능이 있습니까? pygame.midi.MIDI_KEYDOWN

+0

미디 이벤트에는 어떤 속성이 있습니까? – skrx

+0

나는 어떤 음표가 연주 되었는가를 알려주는 e.data1을 사용한다.하지만 생각하는 것은 4 또는 5이다. –

+0

midi 이벤트는'pygame '과 비슷한'keydown'과'keyup' 속성을 가지고 있는가? .KEYDOWN' 및'KEYUP' 이벤트 유형? – skrx

답변

0

read() 함수는 단순히 구문 분석하지 않고 MIDI 메시지의 원시 바이트를 반환합니다.

midis2events() 기능은 정말 이러한 바이트 아무것도하지 않습니다 중 하나

((status,data1,data2,data3),timestamp) = midi 

    e = pygame.event.Event(MIDIIN, 
          status=status, 
          data1=data1, 
          data2=data2, 
          data3=data3, 
          timestamp=timestamp, 
          vice_id = device_id) 

그래서 당신은 메시지를 직접 구문 분석 할 수 있습니다 0x900x9F 사이의 상태 바이트에 참고하고, 0x800x8F 사이, 메모해라.

+0

예전 상태 속성 인 thx를 사용하기 만하면됩니다. –