hello,
Frank Barknecht wrote:
Hallo, jim ruxton hat gesagt: // jim ruxton wrote:
I'll take a look at this. Do you mean a " noteout "? Is there a way that I can see the actual midi data going out so I can see what I'm sending? I'm using Linux.
You could use a virtual midi connection using the snd-virmidi virtual card, which works even with only Pd as clients. Example:
using a software to see the data you send will not help for the running status problem. if you ask pd to send a control out 2, channel 0, value = 63, and then a control out 3, chanel 0, value = 31 you'll get 5 bytes on your midi line :
b'10110000' Control change channel 0 status b'00000001' control number (2 - 1) b'01000000' =63d nothing here because it will not send the same status 2 times. b'00000010' control number (3 - 1) b'00100000' =31d
most software (including pd) will told you that midi information was :
ControlChange 2, channel 0, value = 63 and ControlChange 3, channel 0, value = 31
because midi specification allows it. but you will not receive the 6 bytes your expecting. only 5.
to check this on the midi transmition line, I use an oscilloscope.
but if you replace all your ctlout object with :
| [t f b] | | | [1< | | | [noteout] | [ctlout]
(this is because note-on status is not the same than control change status)
everything should then work as espected. it's something I use a lot...
it's not a problem if you don't nead lot's of bandwidth. otherwise, you'll have to make your device compatible to running status...
cyrille
$ su -c modprobe snd-virmidi
$ aconnect -lio client 0: 'System' [type=kernel] 0 'Timer ' 1 'Announce ' client 64: 'Rawmidi 0 - M Audio Audiophile 24/96 MPU-401' [type=kernel] 0 'M Audio Audiophile 24/96 MPU-401' client 72: 'Virtual Raw MIDI 1-0' [type=kernel] 0 'VirMIDI 1-0 ' client 73: 'Virtual Raw MIDI 1-1' [type=kernel] 0 'VirMIDI 1-1 ' client 74: 'Virtual Raw MIDI 1-2' [type=kernel] 0 'VirMIDI 1-2 ' client 75: 'Virtual Raw MIDI 1-3' [type=kernel] 0 'VirMIDI 1-3
$ aconnect 72:0 74:0
$ aconnect -lio client 0: 'System' [type=kernel] 0 'Timer ' 1 'Announce ' client 64: 'Rawmidi 0 - M Audio Audiophile 24/96 MPU-401' [type=kernel] 0 'M Audio Audiophile 24/96 MPU-401' client 72: 'Virtual Raw MIDI 1-0' [type=kernel] 0 'VirMIDI 1-0 ' Connecting To: 74:0 client 73: 'Virtual Raw MIDI 1-1' [type=kernel] 0 'VirMIDI 1-1 ' client 74: 'Virtual Raw MIDI 1-2' [type=kernel] 0 'VirMIDI 1-2 ' Connected From: 72:0 client 75: 'Virtual Raw MIDI 1-3' [type=kernel] 0 'VirMIDI 1-3
$ pd -midioutdev 11 -midiindev 13 (using 11 = 'Virtual Raw MIDI 1-0' + 1 and 13 = 'Virtual Raw MIDI 1-2' + 1)
Now open "Test Audio and MIDI" and if you enable "MIDI OUT" you should see the notes coming in at "MIDI IN".
Ciao