Searching \ for ' [OT] serial port and midi' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/io/serials.htm?key=serial
Search entire site for: 'serial port and midi'.

No exact or substring matches. trying for part
PICList Thread
'[PICLIST] [OT] serial port and midi'
2001\10\05@072742 by Mark Palmer

picon face
Message-ID: <spam_OUTEXECMAIL.1011005121428.ETakeThisOuTspamsadmark.staffs.ac.uk>> Priority: NORMAL
X-Mailer: Execmail for Win32 Version 5.0.1 Build (55)
MIME-Version: 1.0
Content-Type: Multipart/mixed; BOUNDARY="Part10110051214.D"


--Part10110051214.D
Content-Type: Text/Plain; charset="us-ascii"

Just to state the obvious I was hoping somebody might be able to help
me. Its probably left field for the list but I figured that the
because I'm trying to do what ought to be basic things with the
serial port somebody might be able to help.

Basically I'm trying to read MIDI data over the serial port from
within a development kit for VR called WorldToolKit (WTK). There have
been a load of 'cheap' sensors (at least compared with VR hardware)
developed for performance that use midi and I'm trying to use these to
capture data for use in WTK. The format of MIDI involves a status byte
where the msb is set to 1 then the data bytes with the bit set to 0.

WTK is needed to run the code so its a bit useless to attach it but
I shall incase there's osme stupid mistake I'm making converting
values. The code almost never reads the status byte but data bytes are
read without a problem once their 'in the system'. I know proper midi
is being sent as I've set up the system with an instrument
attached and I hear notes being played.

There are two further problems, the first is that if a batch of midi
signals arrive half way through the code's execution (say two of four
bytes) the next time around it is invisible to the
function WTserial_ntoread which is supposed top tell me if data is
waiting. The data is ONLY picked up when a fresh batch arrives,
invisible to WTserial_read (the function call that reads the port) and
is only picked up when a fresh batch of data arrives!

The other issue is that any data with the msb set to 1 is read as its
the negative value of it being subtracted from 256, so a status byte of
144 (a basic note on) is read as -112. 240 as -16, 247 as -9 etc.
I've tried to convert the value - one might suspect that adding the
negative to 256 would do the trick but it returns the same value. One
would also expect addition to be communicative but value + 256
transforms the negative value into a positive one.

My background is not in programming so I'm sure it must be something
dumb but for the life of me I can't work it out!

         ************************************************
                          Dr Mark Palmer
               Arts & Humanities Research Board Fellow
                      School of Art & Design
                           College Road
                     Staffordshire University
                          Stoke-on-Trent
                              ST4 2DE
               tel:    +44 (0)1782 294802 (direct)
               fax:    +44 (0)1782 294873
                     
.....M.W.PalmerKILLspamspam@spam@staffs.ac.uk
         ************************************************


--Part10110051214.D
Content-Type: Application/Octet-Stream; name="tail.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="tail.cpp"

LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCg0K
RGVzaWduZWQgdG8gcmVhZCBtaWRpIGRhdGEgZW50ZXJpbmcgc2VyaWFsIHBv
cnQNCm5vdGlvbiBpcyB0byBjaGVjayBpZiBhbnkgZGF0YSBpcyBwcmVzZW50
DQp0aGVuIGlmIHRoaXMgaXMgdGhlIGNhc2UgY29sbGVjdCBpdA0KDQoNCg0K
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiNp
bmNsdWRlICJXdC5oIg0KI2luY2x1ZGUgPGlvc3RyZWFtLmg+DQojaW5jbHVk
ZSA8c3RyaW5nPg0KDQoNCg0Kdm9pZCBLQm1lbnUoKTsNCnZvaWQgQWN0aW9u
cygpOw0Kdm9pZCBNaWRpKCk7DQp2b2lkIENvbnZlcnREZWNpbWFsVG9CaW5h
cnkoaW50KTsNCg0KDQpXVHNlbnNvciAqc2Vuc29yOw0KV1R2aWV3cG9pbnQg
Kk15VmlldzsNCkZMQUcgcXVpdCA9IEZBTFNFOw0KV1RzZXJpYWwqIHBNaWRp
U2VyaWFsOw0KY2hhciBiaW5hcnlbOF09IiI7DQpjaGFyICpNaWRpRGF0YUlu
Ow0KdW5zaWduZWQgY2hhciAqTWlkaURhdGFPdXQ7DQp1bnNpZ25lZCBpbnQg
aU1lc3NhZ2VzV2FpdGluZzsNCnVuc2lnbmVkIHNob3J0IHNNZXNzYWdlc1Jl
YWQ7DQpsb25nIGludCBnZXRiYXVkOw0KaW50IGJ5dGVzaXplOw0KDQoNCmlu
dCBtYWluKCkNCnsNCg0KCVdUdW5pdmVyc2VfbmV3KFdURElTUExBWV9ERUZB
VUxULCBXVFdJTkRPV19ERUZBVUxUKTsNCgkJDQoJV1Rub2RlICpSb290bm9k
ZTsNCglSb290bm9kZSA9IFdUdW5pdmVyc2VfZ2V0cm9vdG5vZGVzKCk7DQoN
CglXVGxpZ2h0bm9kZV9uZXdkaXJlY3RlZChSb290bm9kZSk7DQoNCglXVGtl
eWJvYXJkX29wZW4oKTsNCglzZW5zb3I9IFdUbW91c2VfbmV3KCk7DQoJV1R1
bml2ZXJzZV9zZXRiZ3JnYigwLDAsMCk7DQoJV1R1bml2ZXJzZV9zZXRhY3Rp
b25zKEFjdGlvbnMpOw0KCU15VmlldyA9V1R1bml2ZXJzZV9nZXR2aWV3cG9p
bnRzKCk7DQoJV1R2aWV3cG9pbnRfYWRkc2Vuc29yKE15VmlldyxzZW5zb3Ip
Ow0KDQoJcE1pZGlTZXJpYWwgPSBXVHNlcmlhbF9uZXcoU0VSSUFMMiwzODQw
MCwnTicsOCwxLDY0KTsvL01VU1QgU0VUIEJBVUQgUkFURSBUTyBNQVRDSCAt
IENPTlRST0wgUEFORUwvUE9SVFMvQ09NMi9CQVVEIFJBVEUNCglpZiAocE1p
ZGlTZXJpYWwgPT1OVUxMKQ0KCQlXVG1lc3NhZ2UoInBNaWRpU2VyaWFsIGlu
aXRpYWxpc2F0aW9uIGZhaWxlZFxuIik7DQoNCglXVHVuaXZlcnNlX3JlYWR5
KCk7DQoJV1R1bml2ZXJzZV9nbygpOw0KCVdUdW5pdmVyc2VfZGVsZXRlKCk7
DQoJcmV0dXJuIDA7DQoNCn0NCg0Kdm9pZCBBY3Rpb25zKCkNCnsNCglNaWRp
KCk7DQoJS0JtZW51KCk7DQoJDQp9DQoNCg0Kdm9pZCBNaWRpKCkNCnsNCi8v
CVVzZWQgdG8gY2hlY2sgaWYgdGhlcmUgaXMgZGF0YSB3YWl0aW5nIGF0IHRo
ZSBzZXJpYWwgcG9ydAkNCi8vCUJVVCB0aGlzIHNlZW1zIGJsaW5kIHRvIGFu
eSBkYXRhIGxlZnQgYmV0d2VlbiBjb2xsZWN0aW9uIGFuZCB3aGVuIGl0IHJ1
bnMgYWdhaW4NCi8vCXRoaXMgaXMgb25seSBwaWNrZWQgdXAgd2hlbiBhIHNl
Y29uZCBiYXRjaCBvZiBkYXRhIGFycml2ZXMgYXQgdGhlIHBvcnQNCg0KLy8J
aW50IEhvd01hbnlNZXNzYWdlcz0wOw0KCWNoYXIgRnVuY3Rpb25TdHJpbmcg
WzY0XTsNCg0KLy8JdGhpcyB3YXMgcHJldmlvdXNseSB1c2VkIHRvIHNldCB0
aGUgc3RyaW5nIGxlbmd0aCBpbiBXVHNlcmlhbF9yZWFkDQoNCi8vCUhvd01h
bnlNZXNzYWdlcyA9IFdUc2VyaWFsX250b3JlYWQocE1pZGlTZXJpYWwpOw0K
Ly8JaWYoSG93TWFueU1lc3NhZ2VzIT0wKQ0KLy8Jew0KLy8JV1RtZXNzYWdl
KCJcbkZsYWcgPSAlaSBcbiIsIEhvd01hbnlNZXNzYWdlcyk7DQovLwl9DQoN
CgkvL25vdyB1c2luZyBhIHN0cmluZyB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVy
IGluIGFuIGF0dGVtcHQgdG8gcGljayB1cCB0aGlzIGRhdGENCg0KCU1pZGlE
YXRhSW4gPSBGdW5jdGlvblN0cmluZzsNCglzTWVzc2FnZXNSZWFkID0gV1Rz
ZXJpYWxfcmVhZChwTWlkaVNlcmlhbCxGdW5jdGlvblN0cmluZyw2NCxGQUxT
RSk7DQoJDQoJaWYgKHNNZXNzYWdlc1JlYWQhPTApDQoJew0KCQlXVG1lc3Nh
Z2UoIlxuc01lc3NhZ2VzUmVhZCA9ICVpIFxuIiwgc01lc3NhZ2VzUmVhZCk7
DQoJCWZvcih1bnNpZ25lZCBpbnQgRmlyc3RDb3VudGVyPTA7Rmlyc3RDb3Vu
dGVyPHNNZXNzYWdlc1JlYWQ7Rmlyc3RDb3VudGVyKyspDQoJCXsJCQkNCgkJ
CQlNaWRpRGF0YUluW0ZpcnN0Q291bnRlcl0gPSBGdW5jdGlvblN0cmluZ1tG
aXJzdENvdW50ZXJdOw0KCQkJCXByaW50ZigiXG5jb3VudGVyWyVpXSBpczog
XG4iLCBGaXJzdENvdW50ZXIpOw0KCQkJCXByaW50ZigiZGVjaW1hbDpcdCVp
IiwgTWlkaURhdGFJbltGaXJzdENvdW50ZXJdKTsvL3JldHVybnMgYSB2YWx1
ZSB3aGljaCBpcyBpdHMgdmFsdWUNCgkJCQkJCQkJCQkJCQkJCQkvLyBzdWJ0
cmFjdGVkIGZyb20gMjU2IHdoZXJlIG1zYj0xDQoJCQkJQ29udmVydERlY2lt
YWxUb0JpbmFyeSggTWlkaURhdGFJbltGaXJzdENvdW50ZXJdKTsNCgkJCQlw
cmludGYoIlxuYmluYXJ5Olx0XHQlc1xuIixiaW5hcnkpOw0KCQl9DQoJCQ0K
CX0NCn0NCg0Kdm9pZCBDb252ZXJ0RGVjaW1hbFRvQmluYXJ5KGludCB4KQ0K
ew0KCWludCB0ZW1wPXg7DQoJZm9yIChpbnQgaT03O2k+PTA7aS0tKQ0KCXsN
CgkJDQoJCWludCBtb2R1bHVzOw0KCQltb2R1bHVzPSB0ZW1wJTI7DQoJCWlm
IChtb2R1bHVzPT0wKQ0KCQkJe2JpbmFyeSBbaV09NDg7DQoJCQl9ZWxzZXsN
CgkJCWJpbmFyeSBbaV09NDk7fQ0KCQl0ZW1wPSB0ZW1wLzI7DQoJfQ0KfQ0K
DQoNCnZvaWQgS0JtZW51KCkNCnsNCglzaG9ydCBLZXk7DQoNCglLZXkgPSBX
VGtleWJvYXJkX2dldGxhc3RrZXkoKTsNCg0KDQoJc3dpdGNoKEtleSkNCgl7
DQoNCgkJY2FzZSAncSc6DQoJCWNhc2UgJ1EnOg0K
CQkJcXVpdCA9IFRSVUU7DQoJCQlXVHVuaXZlcnNlX3N0b3AoKTsNCgkJCWJy
ZWFrOw0KDQoJCWNhc2UgJ3onOg0KCQljYXNlICdaJzoNCgkJCVdUd2luZG93
ICpteVdpbmRvdzsgDQoJCQlteVdpbmRvdyA9IFdUdW5pdmVyc2VfZ2V0d2lu
ZG93cygpOw0KCQkJV1R3aW5kb3dfem9vbXZpZXdwb2ludChteVdpbmRvdyk7
DQoJCWJyZWFrOwkNCgkJDQoJCWNhc2UgJ3cnOg0KCQljYXNlICdXJzoNCgkJ
CVdUdW5pdmVyc2Vfc2V0cmVuZGVyaW5nKFdUUkVOREVSX1dJUkVGUkFNRSk7
DQoJCWJyZWFrOw0KDQoJCWNhc2UgJ2InOg0KCQljYXNlICdCJzoNCgkJCVdU
dW5pdmVyc2Vfc2V0cmVuZGVyaW5nKFdUUkVOREVSX0JFU1QpOw0KCQlicmVh
azsNCg0KCQljYXNlICcgJzoNCgkJCQkNCgkJCVdUbWVzc2FnZSgiTSBFIE4g
VSBcblxuIik7DQoJCQlXVG1lc3NhZ2UoInEJLQlxdWl0XG4iKTsNCgkJCVdU
bWVzc2FnZSgiegktCXpvb20gdmlld3BvaW50XG4iKTsNCgkJCVdUbWVzc2Fn
ZSgidwktCXdpcmVmcmFtZVxuIik7DQoJCQlXVG1lc3NhZ2UoImIJLQliZXN0
IHNoYWRpbmdcbiIpOw0KCQkJV1RtZXNzYWdlKCJTcGFjZWJhcgktCU1lbnVc
blxuIik7DQoJCWJyZWFrOw0KDQoJCQ0KCQljYXNlICdmJzoNCgkJY2FzZSAn
Ric6DQoJCQlwcmludGYoIkZyYW1lcmF0ZTogJWZcbiIsIFdUdW5pdmVyc2Vf
ZnJhbWVyYXRlKCkgKTsNCgkJYnJlYWs7DQoNCgkJY2FzZSAncyc6DQoJCWNh
c2UgJ1MnOg0KCQkJV1Rub2RlX3ByaW50KFdUdW5pdmVyc2VfZ2V0cm9vdG5v
ZGVzKCkpOw0KCQlicmVhazsNCg0KCWRlZmF1bHQ6DQoJCQ0KCQlicmVhazsN
Cg0KCX0NCn0NCg==

--Part10110051214.D--

--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics


More... (looser matching)
- Last day of these posts
- In 2001 , 2002 only
- Today
- New search...