[PD] Was there a change in how MIDI is transmitted ????

cyrille henry cyrille.henry at la-kitchen.fr
Mon Jun 21 20:53:16 CEST 2004


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




More information about the Pd-list mailing list