Trouble to send sysex
Hi,
I have some trouble to send Sysex message from M4L device.
The idea is to display text on oled display thru arduino board using sysex messages.
So far the arduino/oled part works pretty well. I've tried sending sysex message using MIDI-OX and it work pretty fine.
I've tried to send sysex from M4L device to MIDI-OX before trying with arduino board but so far I can't get anything.
setup look like that :
MidiOX --> LoopMIDI (act as virtual midi interface) --> Live --> MIDI track in --> M4L patch
and from M4L : M4L patch --> MIDI track out --> LoopMIDI --> MidiOX
I also attach my patch, it's pretty basic just a test-patch to monitor midi IN/OUT ("Ctlout" is here just to be sure that message go to MIDI-OX)
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 5,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 2222.0, 181.0, 640.0, 480.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 1,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "",
"boxes" : [ {
"box" : {
"id" : "obj-26",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 239.0, 462.0, 29.5, 22.0 ],
"style" : "",
"text" : "10"
}
}
, {
"box" : {
"id" : "obj-24",
"maxclass" : "live.dial",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "float" ],
"parameter_enable" : 1,
"patching_rect" : [ 228.5, 378.0, 44.0, 47.0 ],
"saved_attribute_attributes" : {
"valueof" : {
"parameter_longname" : "live.dial",
"parameter_shortname" : "live.dial",
"parameter_type" : 1,
"parameter_unitstyle" : 0
}
}
,
"varname" : "live.dial"
}
}
, {
"box" : {
"id" : "obj-22",
"maxclass" : "newobj",
"numinlets" : 3,
"numoutlets" : 0,
"patching_rect" : [ 228.5, 489.0, 40.0, 22.0 ],
"style" : "",
"text" : "ctlout"
}
}
, {
"box" : {
"fontname" : "Arial Bold",
"fontsize" : 10.0,
"id" : "obj-21",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 743.0, 210.0, 40.0, 20.0 ],
"style" : "",
"text" : "midiin"
}
}
, {
"box" : {
"id" : "obj-20",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 712.0, 270.0, 50.0, 22.0 ],
"style" : "",
"text" : "0"
}
}
, {
"box" : {
"id" : "obj-17",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 26.0, 270.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-16",
"maxclass" : "button",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 498.0, 220.0, 24.0, 24.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-15",
"maxclass" : "button",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 207.0, 220.0, 24.0, 24.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-12",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "int" ],
"patching_rect" : [ 147.0, 270.0, 51.0, 22.0 ],
"style" : "",
"text" : "capture"
}
}
, {
"box" : {
"id" : "obj-11",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 498.0, 328.0, 51.0, 22.0 ],
"style" : "",
"text" : "midiout"
}
}
, {
"box" : {
"id" : "obj-8",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 207.0, 270.0, 272.0, 22.0 ],
"style" : "",
"text" : "240 119 67 118 116 111 102 102 58 49 50 55 247"
}
}
, {
"box" : {
"id" : "obj-10",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 498.0, 270.0, 225.0, 22.0 ],
"style" : "",
"text" : "F0 77 43 76 74 6F 66 66 3A 31 32 37 F7"
}
}
, {
"box" : {
"id" : "obj-5",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 116.0, 316.0, 50.0, 22.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-3",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 147.0, 231.0, 49.0, 22.0 ],
"style" : "",
"text" : "sysexin"
}
}
, {
"box" : {
"fontname" : "Arial Bold",
"fontsize" : 10.0,
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 147.0, 193.0, 40.0, 20.0 ],
"style" : "",
"text" : "midiin"
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-3", 0 ],
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-11", 0 ],
"source" : [ "obj-10", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-5", 1 ],
"source" : [ "obj-12", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-8", 0 ],
"source" : [ "obj-15", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-10", 0 ],
"source" : [ "obj-16", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-20", 1 ],
"source" : [ "obj-21", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-22", 0 ],
"order" : 1,
"source" : [ "obj-24", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-26", 0 ],
"order" : 0,
"source" : [ "obj-24", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-22", 1 ],
"source" : [ "obj-26", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-12", 0 ],
"order" : 0,
"source" : [ "obj-3", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-17", 1 ],
"order" : 1,
"source" : [ "obj-3", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-11", 0 ],
"midpoints" : [ 216.5, 316.5, 507.5, 316.5 ],
"source" : [ "obj-8", 0 ]
}
}
],
"parameters" : {
"obj-24" : [ "live.dial", "live.dial", 0 ]
}
,
"dependency_cache" : [ ],
"autosave" : 0
}
}
https://help.ableton.com/hc/en-us/articles/360003148640-SysEx-support-in-Live-10
why not talk plain text to arduino using serial object ?
thank for the reply, I've already see the link. I can't send message thru serial the arduino also act as midi controller, it send midi cc etc.
If you read infos on that link , it says :
"Can I send and receive SysEx messages from the same track?
No. If you require bi-directional SysEx flow, you need to use two separate Max for Live devices on different tracks."
I don't try to send and receive Sysex.
I've test to receive sysex on the patch only to see if the problem come to send part and I've set the midi In/out accordingly as mention for the "ctlout" object.
I only try to send sysex from M4L patch to arduino