hi all
first post here.
just downloaded pure data last night.
great stuff
so far i haven't been able to find an answer to whether or not sysex data can be generated and output via midi.
any insight would be really appreciated.
best
jeff
Sysex
hi all
first post here.
just downloaded pure data last night.
great stuff
so far i haven't been able to find an answer to whether or not sysex data can be generated and output via midi.
any insight would be really appreciated.
best
jeff
I'm not a Sysex expert but I woudl expect you could create your Sysex messages using 'message' boxes and connect them to a 'midiout'...
Maybe try sending Sysex messages to it that you can then keep and use connected to 'midiout' ?
I think sysex out only works on Linux...not certain though.
hmm .. ok
i'll try using message boxes and get back
many thanks
http://home.worldoptions.com.au/jonescnt/jonescnt/sysexman.htm
What Illdas says sounds about right. Remember sysex can be quite long. I would try catching it in a textfile or qlist (see that debugger I was playing about with juliolucio -
http://puredata.hurleur.com/message-1595.html#p1595 ). Get the capture right first - you might want to convert to ints 0-255 , when that's working try squirting it back out a [midiout] raw stylee.
Use the Source.
right.
i thought there might be some sort of sysex object that would output hexadecimals ...
thanks obiwannabe
(nice site by the way
wow
ok
so
...
maybe some hex conversion is in order?
here's what i've tried
messages with 1st hex values then decimal values (which i think obviously won't do the trick since the module is expecting hex values_?) to midiout.
no dice.
then some attempts at caturing incoming sysex data.
again, no luck using inlet (midiin is unfortunately not supported on os x) or ctrlin.
one little interesting thing, when i have set up messages and banged them to midiout, i get an error: midiout: no method for 'F7' which i think proves that PD doesn't natively understand hexadecimals.
any ideas for capturing sysex data using PD with os 10.3.9 would be extremely well appreciated.
i'll have another go ...
_j.
Well you need to be specifying them as ints like 127, 205, 209 etc. But I just been reading through the list archives and it doesn't look good. Hope I'm wrong but my gut instinct is "Gordon! Get out of there!" It looks like mess. Posts from Nov 2005 on the subject of broken [midiout], I get the same stuff so I can't test it for you but under linux/Alsa you can't seem to send raw bytes. I just get a "putbyte not implemented" I found some other posts on MacOSX saying similar bad things about [midiin] The searchable archs only go up to 3 months ago so maybe someones hacked it, but yu'll have to find an external for yourself that works.
One thought though.. since timing isn't critical for sysex it opens the door to all sorts of possible hacks, like using a pipe and external script to poke btyes at the midi port.
I'll have another browse about tomorrow. good luck.
Use the Source.
thanks a million for doing that research, truly appreciate it
externals, hmm ... maybe it's time to learn.
looks like i've jumped head first into PD here !
looking forward to anything you might find out,
j
I too would like to do something this, except under Linux. I found an old posting by Mr Puckett somewhere suggesting that it should work under linux if OSS midi drivers are used. http://lists.puredata.info/pipermail/pd-list/2006-11/044134.html
My question is about how to represent the bytes in the message box (connected to a midiout object).
Say for example that I want to send the following string of bytes (this sets the pitch bend range on my synth):
F0 44 00 00 74 40 08 F7
Converting them to decimal:
247 68 0 0 116 64 8 247
As a test of SysEx functionality, how would I format this in the message box? Comma separated?
many thanks
Yeah, comma separated makes them a sequence instead of a list. If you do it that way use [drip] or something to slow down the stream or Pd will try and send them all too quickly.
Use the Source.
did anyone ever get pd to successfully output sysex yet?
its working here gnu/linux with jack alsamidi.
[midiin] [midiout]
comma separated integer messages.
eg [240, 34, 26, 43, 253, 247(
on windows youll get messages the some midiobjects are not working.
But do your own testing some seems to work anyway.
ah yeah thanks, i did manage to get it working too.
which version do you guys use where [midiout] does work?
i'm on 0.40.3-extended and no output
On winxp midi seems difficult under 0.40.3 extended. Yesterday i've downloaded 0.41.4 extended RC3 and midi works a charm now, so maybe you could try that as well.
|] [] |.| ][|-| -- http://soundcloud.com/domxh
Thanks domien! I have actually grabbed 0.42-5 and [midiout] seems to work now... well something is still wrong with my sysex, but there is output indeed ))
Just to put it out there. I got it to work on PD Extended 0.41.4 on OS X with a microKorg. The trick is to use sysex for input and midout for output, ignore the second inlet, and make sure to use a 1ms delay between bytes (messages) when writing out.
thank you! i've been trying for AGES to get Pd to communicate via sysex with my korg microkontrol and didn't realise sysexin / midiout would work.
One problem I encountered, however, was that not every piece of software and hardware recognises the decimal-formatted sysex output from Pd. Midi Monitor recognises it, for example, but Sysex Librarian doesn't, and neither does my microKontrol.
As a workaround, I'm routing the sysex output from Pd into a Max patch which contains a midiin object connected directly to a midiout: although the sysex data isn't being changed in any way, when it's sent out by Max it's recognised by all my software and hardware (including the microkontrol). It's a bit of a hack, but is relatively straightforward and means that i now have full in/out sysex functionality from Pd.
Getting the sysexin to work was quite easy, the hard part was writing the data out. At first it just wouldn't work at all, but once I added a 1ms delay between every byte sent to midout it worked.
Saturno:
Can you send an example?
It will be very helpful for me.
Thanks in advance.
Oops! Looks like something went wrong!