[PD] sysex messages

Marco Hugo Schretter mco at zimt.at
Fri Feb 23 02:38:22 CET 2018


hi mario,

for me the following works without issues from every point
to every point with sysex-to-midi-to-osc-to-midi-to-sysex
from every point in the line to every point with pd-vanilla
(bcf<->yamaha_dm2000<->osc<->hammerfall<->ableton)

parse your desired message in the other way round (so
that the end-msg is the first and start-msg ist last)
and use the right-to-left handling of the unpack object
for the output to the midiout in the right order:

example (volume-fader-ctl):
dm2000 sysex has 14 values
so when i talk to dm2000 i say

============

[1 69 1(    <-- this example sets ch1-volume for hi+lo-bits
|
[247 $2 $3 0 0 $1 0 28 1 127 62 16 67 240(
|
unpack 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|/////////////
_
midiout

===============

check the right order of sysex after unpack with print

liebe grüße
marco

Am 22.02.18 um 23:38 schrieb mario buoninfante:
> the way I'm generating sysex in Pd is the following:
> 
> [list of bytes which starts with 240 and ends with 247(
> 
> |
> 
> |
> 
> [cyclone/iter 1]
> 
> |
> 
> |
> 
> [midiout 1]
> 
> 
> On 02/22/2018 10:35 PM, Christof Ressi wrote:
>> are you sure you're correctly assembling your sysex messages in Pd? 
>> you could use [sysexin] to get the raw sysex messages from your 
>> Novation circuit, pass them straight to [midiout] and then have a look 
>> at Gmidimonitor.
>>
>>> Gesendet: Donnerstag, 22. Februar 2018 um 23:31 Uhr
>>> Von: "mario buoninfante" <mario.buoninfante at gmail.com>
>>> An: "Christof Ressi" <christof.ressi at gmx.at>, pd-list <pd-list at iem.at>
>>> Betreff: Re: Aw: Re: [PD] sysex messages
>>>
>>> yap, this makes sense. I imagined Gmidimonitor does that. but why is not
>>> parsing midi from Pd?
>>>
>>> sorry, maybe I'm just missing the point, but I'm really trying to get my
>>> head around with that ;)
>>>
>>>
>>> cheers
>>>
>>>
>>> On 02/22/2018 10:29 PM, Christof Ressi wrote:
>>>> don't confuse MIDI messages with the individual bytes which make up 
>>>> the message. Gmidimonitor parses the byte stream so it can tell you 
>>>> which messages it gets. [midiout] is only responsible for sending 
>>>> raw *bytes* to a MIDI device. it's your job to assemble your MIDI 
>>>> *messages*.
>>>>
>>>>
>>>> Gesendet: Donnerstag, 22. Februar 2018 um 23:05 Uhr
>>>> Von: "mario buoninfante" <mario.buoninfante at gmail.com>
>>>> An: Alex <x37v.alex at gmail.com>
>>>> Cc: pd-list at lists.iem.at
>>>> Betreff: Re: [PD] sysex messages
>>>>
>>>> yap, I know that at the end of the day MIDI is dealing with 1 byte 
>>>> at time. I was wondering why there's a difference between 2 
>>>> different piece of code that generates MIDI (Pd and Hardware synth).
>>>> for example I just monitored (via USB) my Novation Circuit (a 
>>>> groovebox) and Gmidimonitor receives messages 81 bytes long. with Pd 
>>>> as I said is always 1 byte.
>>>> now my question would be, how is this possible?
>>>> I'm sure Circuit sends sysex 81 bytes long, so I know that this is 
>>>> correct, but still I don't know why Pd doesn't allow something like 
>>>> that.
>>>> cheers,
>>>> Mario
>>>> On 02/22/2018 09:58 PM, Alex wrote:
>>>>
>>>> MIDI is a serial protocol, individual bits running down a single 
>>>> line, we now also have USB midi which is a little bit different than 
>>>> that but usually that is abstracted for you.The software monitor 
>>>> you're using likely groups these for you but in reality you simply 
>>>> have a stream of individual bits on the hardware line..
>>>> PD's object let you do bytes at a time instead of individual bits :)
>>>> On Thu, Feb 22, 2018 at 1:47 PM, mario buoninfante 
>>>> <mario.buoninfante at gmail.com[mailto:mario.buoninfante at gmail.com]> 
>>>> wrote:
>>>> Hi Alex,
>>>> thanks for your reply. I think that also using your abstraction Pd 
>>>> will spit out 1 byte per time (I didn't check it, but I assume that 
>>>> cause it's not an external in C).
>>>> about MIDI if I'm not wrong, bytes are grouped in accord with the 
>>>> type of message, ie Note on/off and CC are 3 bytes messages, channel 
>>>> pressure and program change are 2 bytes, sysex have variable length 
>>>> and so on. and I presume they're sent out in group.
>>>> in fact when I monitor MIDI messages coming for certain applications 
>>>> (I'm on Linux and I'm using Gmidimonitor) the console tells me the 
>>>> sysex size in bytes. so, with Pd the size is always 1 byte, but with 
>>>> other programming languages and softwares is variable and goes in 
>>>> accord with the sysex I generated.
>>>> cheers,
>>>> Mario
>>>>
>>>>
>>>> On 02/22/2018 09:34 PM, Alex wrote:
>>>>
>>>> I haven't tested in a while but I wrote an abstraction to take a 
>>>> list, wrap it in the sysex start and end and output it as individual 
>>>> bytes: 
>>>> https://github.com/x37v/pure_data[https://github.com/x37v/pure_data]
>>>>    midi is a byte oriented protocol..
>>>> On Thu, Feb 22, 2018 at 1:24 PM, mario buoninfante 
>>>> <mario.buoninfante at gmail.com[mailto:mario.buoninfante at gmail.com]> 
>>>> wrote:Hi,
>>>>
>>>>
>>>> do you guys know if there's a way to send a list of sysex messages 
>>>> (or 1 complete message, let's say 8 bytes long) rather then 1 byte 
>>>> per time?
>>>>
>>>> if not, do you know if there's a particular reason why it's not 
>>>> possible?
>>>>
>>>>
>>>> cheers,
>>>>
>>>> Mario
>>>>
>>>>
>>>> _______________________________________________
>>>> Pd-list at lists.iem.at[mailto:Pd-list at lists.iem.at] mailing list
>>>> UNSUBSCRIBE and account-management -> 
>>>> https://lists.puredata.info/listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list] 
>>>>
>>>> _______________________________________________ Pd-list at lists.iem.at 
>>>> mailing list UNSUBSCRIBE and account-management -> 
>>>> https://lists.puredata.info/listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list] 
>>>>
>>>
> 
> 
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> 
> https://lists.puredata.info/listinfo/pd-list
> 
> 



More information about the Pd-list mailing list