簡體   English   中英

嘗試發送控制更改消息時,無效的MIDI消息數據

[英]Invalid MIDI message Data when I'm trying to send Control Change Messages

我正在使用pygame.midi庫發送MIDI消息(控制更改消息,而不是音符)。 這個想法是從輸出(從這個python程序)發送到另一個程序的輸入。

>>> import time
>>> import pygame.midi as midi
>>> midiout = midi.Output(3)
>>> midi.init()
>>> midiout = midi.Output(3)
>>> midiout.write_short(0x74,124,0)
PortMidi call failed...
  PortMidi: `Invalid MIDI message Data'
type ENTER...

如您所見,我正在發送0x74,124,0。 我從rakarrack(我要控制的應用程序)實現圖表中獲取這些數字: http ://rakarrack.sourceforge.net/midiic.html

我究竟做錯了什么?

MIDI狀態字節(消息的第一個字節)必須設置高(0x80)位。 鏈接的圖表有點混亂,但是我猜0x74是一個數據字節,必須在其前面加上正確的狀態字節。

>>> import pygame.midi as midi
>>> midi.init()
>>> midiout = midi.Output(0)
>>> midiout.write_short(0xb0, 0x74, 124)

一些基本的MIDI文檔: http : //www.midi.org/techspecs/midimessages.php

控制更改是0xbn,其中n是通道號,因此0xb0是通道0的控制更改消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM