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@gmail.com An: "Christof Ressi" christof.ressi@gmx.at, pd-list pd-list@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@gmail.com An: Alex x37v.alex@gmail.com Cc: pd-list@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@gmail.com[mailto:mario.buoninfante@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%5Bhttps://github.com/x37v/pure_data] midi is a byte oriented protocol.. On Thu, Feb 22, 2018 at 1:24 PM, mario buoninfante <mario.buoninfante@gmail.com[mailto:mario.buoninfante@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@lists.iem.at[mailto:Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list%5Bhttps://lists.puredata.info/l...]
_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list%5Bhttps://lists.puredata.info/l...]
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list