[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[pygame] One MIDI byte being transmitted incorrectly
- To: pygame-mirror-on-google-groups@xxxxxxxxxxxxxxxx
- Subject: [pygame] One MIDI byte being transmitted incorrectly
- From: badmuthahubbard@xxxxxxxxx
- Date: Tue, 19 May 2015 07:12:30 -0700 (PDT)
- Delivered-to: archiver@xxxxxxxx
- Delivered-to: pygame-users-outgoing@xxxxxxxx
- Delivered-to: pygame-users@xxxxxxxx
- Delivery-date: Tue, 19 May 2015 10:12:34 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:message-id:subject:mime-version:content-type; bh=tLL5xlcEeLbDA18ZWNQ5X0a16j/MY4eTx80svmzzD+g=; b=naVGOjie10sy+XJtVnTzMgdH5RwoNl3Dhj1proa2uZhcE6OTh2klLDxGlCB5aBu0K1 7nZ4oRKMTiUb0MIYsPbjP80b/Dj8f61YHbz+K25/OFrHv7B3du3w2Rzn5qyyAz4QoSpR K2QPVWijfsJVwqFVYyt57ZmMj6K1t/qcs8blAb1rmQW3RePhrElGmVYUzx3w4Ppg649b 2g5PZ2Wk/n663d5lB0PRurV1tRf+L9yckNVkzUOXs7l87sSBFAZiPJfmL6R5z5rwW9kw nxkF9sDKkwMvFL+Jv8yZwXf9gDjM6QrWvvPlMz8Vc5bNT/8w99WAdKxxYoKcz3buiaMh SL5A==
- Reply-to: pygame-users@xxxxxxxx
- Sender: owner-pygame-users@xxxxxxxx
Hi all.
I'm sending a MIDI MMC goto message, a SysEx message which contains 13 bytes.
For some reason, the 7th byte, i.e. the 3rd byte in the second write, is being changed from 1 to 0 as read by MIDI Ox. If I send 4 instead of 1, MIDI Ox reads 1.
The messages should be:
[0xf0, 0x7f, 127, 0x06]
[0x44, 0x06, 0x01, 0x20]
[0, 1, 0, 0]
[0xf7]
If I send the same message from Cubase to MIDI Ox, that 1 stays 1, it isn't read as 0, but sent from pygame, that one byte is changed.
Can anyone at least reproduce this?
I have pygame 1.9.1, Python 2.7.8 and Windows 7. My script is attached.
Thanks for any insight you can offer.
-Chuckk
import pygame.midi as md
md.init()
mmcout = md.Output(13)
goto0 = [0xf0, 0x7f, 127, 0x06] # MMC GOTO message introduction
goto1 = [0x44, 0x06, 0x01, 0x20] # MMC GOTO message intro and 'hours' field
goto2 = [0, 1, 0, 0] # minutes, seconds, frames, subframes
goto3 = [0xf7] # sysex end
mmcout.write([[goto0, md.time()]])
mmcout.write([[goto1, md.time()]]) # Here I see "44, 6, 0, 20" instead of "44, 6, 1, 20"....
mmcout.write([[goto2, md.time()]])
mmcout.write([[goto3, md.time()]])
try:
mmcout.close()
except:
pass