Max For Live, MIDI CCs and NRPNs
Max For Live, MIDI CCs and NRPNs
In Max For Live is it possible to convert MIDI CCs to NRPNs?
I've been messing around in MIDI Ox doing this to send NRPNs to my Mopho, but if Max can do it inside Live then it would obviously be a much more convenient method.
Also the idea of constructing my own editor for the Mopho in Max certainly appeals.
Is any of this possible?
Neil.
I've been messing around in MIDI Ox doing this to send NRPNs to my Mopho, but if Max can do it inside Live then it would obviously be a much more convenient method.
Also the idea of constructing my own editor for the Mopho in Max certainly appeals.
Is any of this possible?
Neil.
Re: Max For Live, MIDI CCs and NRPNs
i dont have max but i think you can use [midiin] and [unpack] to get the nrpn numbers in max
http://cycling74.com/docs/max5/refpages ... idiin.html
http://cycling74.com/docs/max5/refpages ... npack.html
http://cycling74.com/docs/max5/vignette ... clive.html
hope that helps
cheers
T
http://cycling74.com/docs/max5/refpages ... idiin.html
http://cycling74.com/docs/max5/refpages ... npack.html
http://cycling74.com/docs/max5/vignette ... clive.html
hope that helps
cheers
T
-
- Posts: 274
- Joined: Mon Jul 18, 2005 8:48 am
Re: Max For Live, MIDI CCs and NRPNs
Ive done midi panels for all my synths, including Mopho. All done in Max, and theyre working perfectly. However, as Live dont support sysex, M4L wont cut it for you..
Not yet anyway.
Not yet anyway.
Re: Max For Live, MIDI CCs and NRPNs
am i the only one that has realized that M4L is Max? if you go to edit a M4L effect, it will open max/msp, then you can go to file>new patcher and create a new .maxpatsteffensen wrote:Ive done midi panels for all my synths, including Mopho. All done in Max, and theyre working perfectly. However, as Live dont support sysex, M4L wont cut it for you..
Not yet anyway.
if i create a max patch (blah.maxpat) in M4L, i can open it with max runtime and it runs just like any other max patch would
so if you take one of your midi panels, change all the controls to a udprecieve and then create an M4L patch with all the controls linked to a udpsend you can map everything from inside live connected to max runtime connected to your synth
maybe im just drunk but this seems like it should work
Re: Max For Live, MIDI CCs and NRPNs
Thanks for the replies. I have to admit, this stuff makes my head hurt. It took me long enough to figure out midi ox 

-
- Posts: 274
- Joined: Mon Jul 18, 2005 8:48 am
Re: Max For Live, MIDI CCs and NRPNs
Sure, or you could just run the patch standalone as is, or within Max if u have it.zalo wrote:am i the only one that has realized that M4L is Max? if you go to edit a M4L effect, it will open max/msp, then you can go to file>new patcher and create a new .maxpatsteffensen wrote:Ive done midi panels for all my synths, including Mopho. All done in Max, and theyre working perfectly. However, as Live dont support sysex, M4L wont cut it for you..
Not yet anyway.
if i create a max patch (blah.maxpat) in M4L, i can open it with max runtime and it runs just like any other max patch would
so if you take one of your midi panels, change all the controls to a udprecieve and then create an M4L patch with all the controls linked to a udpsend you can map everything from inside live connected to max runtime connected to your synth
maybe im just drunk but this seems like it should work

But it still wont work directly inside a Live project with M4L, which is kinda the point of it all imo..
I personally prefer using my midi panels inside Max however, but its still strange that Ableton decided to ignore sysex this way.. would be great with some kind of explenation.
Re: Max For Live, MIDI CCs and NRPNs
well yeah, the window size limitations of M4L kind of defeat the purpose of making the midi panel to start out withsteffensen wrote:Sure, or you could just run the patch standalone as is, or within Max if u have it.
But it still wont work directly inside a Live project with M4L, which is kinda the point of it all imo..
I personally prefer using my midi panels inside Max however, but its still strange that Ableton decided to ignore sysex this way.. would be great with some kind of explenation.
but you could link it for modulation control from within live through udpsend
giving you the ability to have the midi panel in all of its glory outside live, but also control everything from clips if need be
its not pretty, but it would give some more performance control
-
- Posts: 274
- Joined: Mon Jul 18, 2005 8:48 am
Re: Max For Live, MIDI CCs and NRPNs
Well, i dont need clip control of my hw synths. Theyre too old for interaction like that anyway, lagging like mad. I would rally love the ability to save the settings of a sound directly on a track however, instead of finding the right pre-saved preset for everything all the time.zalo wrote:well yeah, the window size limitations of M4L kind of defeat the purpose of making the midi panel to start out withsteffensen wrote:Sure, or you could just run the patch standalone as is, or within Max if u have it.
But it still wont work directly inside a Live project with M4L, which is kinda the point of it all imo..
I personally prefer using my midi panels inside Max however, but its still strange that Ableton decided to ignore sysex this way.. would be great with some kind of explenation.
but you could link it for modulation control from within live through udpsend
giving you the ability to have the midi panel in all of its glory outside live, but also control everything from clips if need be
its not pretty, but it would give some more performance control
The window size limitation isnt a limitation. Heard of Tabs?

Re: Max For Live, MIDI CCs and NRPNs
i thought the whole point of making a midi panel was so you dont have to menu dive?steffensen wrote:The window size limitation isnt a limitation. Heard of Tabs?Its all about how you make the GUI. Just look at Operator for example.
i would rather see every control all at once, maybe its just the way my brain works
-
- Posts: 274
- Joined: Mon Jul 18, 2005 8:48 am
Re: Max For Live, MIDI CCs and NRPNs
Having one section for Envelopes, and one section for the Osc's and Filters etc. isnt really menu diving is it?zalo wrote:i thought the whole point of making a midi panel was so you dont have to menu dive?steffensen wrote:The window size limitation isnt a limitation. Heard of Tabs?Its all about how you make the GUI. Just look at Operator for example.
i would rather see every control all at once, maybe its just the way my brain works

Re: Max For Live, MIDI CCs and NRPNs
aren't NRPN's a set MIDI message?
Using Max you can send any such message
[144, 60, 100] with appropriate midiout object
for instance, sends note 60, velocity 100 out channel 1 (since 144 is note on for channel 1)
So your NRPN's have a specific address - once you have that then midiout from Max will be able to send that
Using Max you can send any such message
[144, 60, 100] with appropriate midiout object
for instance, sends note 60, velocity 100 out channel 1 (since 144 is note on for channel 1)
So your NRPN's have a specific address - once you have that then midiout from Max will be able to send that
-
- Posts: 2
- Joined: Tue Sep 29, 2009 9:50 pm
Re: Max For Live, MIDI CCs and NRPNs
Hello
i know this is a very old post, but it couldnt find any solution for this on the net.
So i started to try making my first max for live patch.
I have managed to make one knob for the cutoff.
and after that i should be able to perform the same stuff on the rest.
i might try making a full controller, or a midi tranlator instead.
here is the code for the one knob version if you want to try it:
{
"boxes" : [ {
"box" : {
"maxclass" : "message",
"text" : "0",
"patching_rect" : [ 220.262848, 283.225861, 28.220671, 16.0 ],
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-3"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "expr $i1-127",
"patching_rect" : [ 46.304657, 239.336746, 68.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-107"
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "0",
"patching_rect" : [ 310.905609, 219.332138, 32.5, 16.0 ],
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-100"
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "15",
"patching_rect" : [ 252.289917, 218.917572, 32.5, 16.0 ],
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-99"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "ctlout a 38",
"patching_rect" : [ 155.372528, 306.101715, 60.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 3,
"numoutlets" : 0,
"fontname" : "Arial Bold",
"id" : "obj-98"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "ctlout a 99",
"patching_rect" : [ 311.428894, 236.89743, 60.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 3,
"numoutlets" : 0,
"fontname" : "Arial Bold",
"id" : "obj-96"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "ctlout a 98",
"patching_rect" : [ 251.744537, 236.310608, 60.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 3,
"numoutlets" : 0,
"fontname" : "Arial Bold",
"id" : "obj-95"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "bangbang 4",
"patching_rect" : [ 193.374557, 173.155548, 67.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 4,
"outlettype" : [ "bang", "bang", "bang", "bang" ],
"fontname" : "Arial Bold",
"id" : "obj-90"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "if $i1 > 127 then $i2 else $i1",
"patching_rect" : [ 34.870445, 258.939514, 141.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-89"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "if $i1 > 127 then 1 else 0",
"patching_rect" : [ 229.712891, 258.679718, 124.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-88"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "ctlout a 6",
"patching_rect" : [ 224.816437, 305.443939, 54.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 3,
"numoutlets" : 0,
"fontname" : "Arial Bold",
"id" : "obj-86"
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "35",
"patching_rect" : [ 162.262863, 286.225861, 27.220671, 16.0 ],
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-83"
}
}
, {
"box" : {
"maxclass" : "live.dial",
"varname" : "live.dial",
"patching_rect" : [ 4.159409, 4.028877, 44.0, 47.0 ],
"presentation" : 1,
"parameter_enable" : 1,
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "float" ],
"id" : "obj-52",
"presentation_rect" : [ 10.504337, 4.235929, 44.0, 47.0 ],
"saved_attribute_attributes" : {
"valueof" : {
"parameter_longname" : "live.dial",
"parameter_modmin" : 0.0,
"parameter_linknames" : 0,
"parameter_modmode" : 0,
"parameter_info" : "",
"parameter_order" : 0,
"parameter_units" : "",
"parameter_speedlim" : 0,
"parameter_steps" : 0,
"parameter_exponent" : 1.0,
"parameter_unitstyle" : 0,
"parameter_mmax" : 164.0,
"parameter_mmin" : 0.0,
"parameter_type" : 1,
"parameter_initial_enable" : 0,
"parameter_shortname" : "CutOff",
"parameter_invisible" : 0,
"parameter_modmax" : 127.0,
"parameter_annotation_name" : ""
}
}
}
}
, {
"box" : {
"maxclass" : "comment",
"text" : "Device vertical limit",
"patching_rect" : [ 0.0, 170.0, 118.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 0,
"fontname" : "Arial",
"id" : "obj-9",
"hidden" : 1
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "midiout",
"patching_rect" : [ 9.359818, 219.278168, 47.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 0,
"fontname" : "Arial Bold",
"id" : "obj-2"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "midiin",
"patching_rect" : [ 11.991333, 189.171326, 40.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"fontname" : "Arial Bold",
"id" : "obj-1"
}
}
],
"lines" : [ {
"patchline" : {
"source" : [ "obj-90", 0 ],
"destination" : [ "obj-83", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-90", 1 ],
"destination" : [ "obj-3", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-90", 2 ],
"destination" : [ "obj-99", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-90", 3 ],
"destination" : [ "obj-100", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-52", 0 ],
"destination" : [ "obj-90", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-3", 0 ],
"destination" : [ "obj-86", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-88", 0 ],
"destination" : [ "obj-3", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-83", 0 ],
"destination" : [ "obj-98", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-1", 0 ],
"destination" : [ "obj-2", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-99", 0 ],
"destination" : [ "obj-95", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-100", 0 ],
"destination" : [ "obj-96", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-52", 0 ],
"destination" : [ "obj-88", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-89", 0 ],
"destination" : [ "obj-83", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-52", 0 ],
"destination" : [ "obj-89", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-52", 0 ],
"destination" : [ "obj-107", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-107", 0 ],
"destination" : [ "obj-89", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
]
}
i know this is a very old post, but it couldnt find any solution for this on the net.
So i started to try making my first max for live patch.
I have managed to make one knob for the cutoff.
and after that i should be able to perform the same stuff on the rest.
i might try making a full controller, or a midi tranlator instead.
here is the code for the one knob version if you want to try it:
{
"boxes" : [ {
"box" : {
"maxclass" : "message",
"text" : "0",
"patching_rect" : [ 220.262848, 283.225861, 28.220671, 16.0 ],
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-3"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "expr $i1-127",
"patching_rect" : [ 46.304657, 239.336746, 68.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-107"
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "0",
"patching_rect" : [ 310.905609, 219.332138, 32.5, 16.0 ],
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-100"
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "15",
"patching_rect" : [ 252.289917, 218.917572, 32.5, 16.0 ],
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-99"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "ctlout a 38",
"patching_rect" : [ 155.372528, 306.101715, 60.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 3,
"numoutlets" : 0,
"fontname" : "Arial Bold",
"id" : "obj-98"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "ctlout a 99",
"patching_rect" : [ 311.428894, 236.89743, 60.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 3,
"numoutlets" : 0,
"fontname" : "Arial Bold",
"id" : "obj-96"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "ctlout a 98",
"patching_rect" : [ 251.744537, 236.310608, 60.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 3,
"numoutlets" : 0,
"fontname" : "Arial Bold",
"id" : "obj-95"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "bangbang 4",
"patching_rect" : [ 193.374557, 173.155548, 67.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 4,
"outlettype" : [ "bang", "bang", "bang", "bang" ],
"fontname" : "Arial Bold",
"id" : "obj-90"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "if $i1 > 127 then $i2 else $i1",
"patching_rect" : [ 34.870445, 258.939514, 141.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-89"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "if $i1 > 127 then 1 else 0",
"patching_rect" : [ 229.712891, 258.679718, 124.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-88"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "ctlout a 6",
"patching_rect" : [ 224.816437, 305.443939, 54.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 3,
"numoutlets" : 0,
"fontname" : "Arial Bold",
"id" : "obj-86"
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "35",
"patching_rect" : [ 162.262863, 286.225861, 27.220671, 16.0 ],
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"fontname" : "Arial Bold",
"id" : "obj-83"
}
}
, {
"box" : {
"maxclass" : "live.dial",
"varname" : "live.dial",
"patching_rect" : [ 4.159409, 4.028877, 44.0, 47.0 ],
"presentation" : 1,
"parameter_enable" : 1,
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "float" ],
"id" : "obj-52",
"presentation_rect" : [ 10.504337, 4.235929, 44.0, 47.0 ],
"saved_attribute_attributes" : {
"valueof" : {
"parameter_longname" : "live.dial",
"parameter_modmin" : 0.0,
"parameter_linknames" : 0,
"parameter_modmode" : 0,
"parameter_info" : "",
"parameter_order" : 0,
"parameter_units" : "",
"parameter_speedlim" : 0,
"parameter_steps" : 0,
"parameter_exponent" : 1.0,
"parameter_unitstyle" : 0,
"parameter_mmax" : 164.0,
"parameter_mmin" : 0.0,
"parameter_type" : 1,
"parameter_initial_enable" : 0,
"parameter_shortname" : "CutOff",
"parameter_invisible" : 0,
"parameter_modmax" : 127.0,
"parameter_annotation_name" : ""
}
}
}
}
, {
"box" : {
"maxclass" : "comment",
"text" : "Device vertical limit",
"patching_rect" : [ 0.0, 170.0, 118.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 0,
"fontname" : "Arial",
"id" : "obj-9",
"hidden" : 1
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "midiout",
"patching_rect" : [ 9.359818, 219.278168, 47.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 0,
"fontname" : "Arial Bold",
"id" : "obj-2"
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "midiin",
"patching_rect" : [ 11.991333, 189.171326, 40.0, 18.0 ],
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"fontname" : "Arial Bold",
"id" : "obj-1"
}
}
],
"lines" : [ {
"patchline" : {
"source" : [ "obj-90", 0 ],
"destination" : [ "obj-83", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-90", 1 ],
"destination" : [ "obj-3", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-90", 2 ],
"destination" : [ "obj-99", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-90", 3 ],
"destination" : [ "obj-100", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-52", 0 ],
"destination" : [ "obj-90", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-3", 0 ],
"destination" : [ "obj-86", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-88", 0 ],
"destination" : [ "obj-3", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-83", 0 ],
"destination" : [ "obj-98", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-1", 0 ],
"destination" : [ "obj-2", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-99", 0 ],
"destination" : [ "obj-95", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-100", 0 ],
"destination" : [ "obj-96", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-52", 0 ],
"destination" : [ "obj-88", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-89", 0 ],
"destination" : [ "obj-83", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-52", 0 ],
"destination" : [ "obj-89", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-52", 0 ],
"destination" : [ "obj-107", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-107", 0 ],
"destination" : [ "obj-89", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
]
}
Re: Max For Live, MIDI CCs and NRPNs
You're in luck! I just posted a javascript filter to both filter out NRPNs and pass them to Max as 14 bit index + value pairs and another script that takes the 14 bit index + value pairs and sends them out as 4 CCs back to the MIDI output. Check it out here: http://forum.ableton.com/viewtopic.php?f=35&t=139555
And it just so happens I'm working on a Mopho/Tetra control patch for Max... the control is all working but I want to be able to update the Max patch from the synth using the Sysex commands so it's going to take a bit more work to tweak it into happiness. Trying to get it done before the Mopho Keyboard release!
And it just so happens I'm working on a Mopho/Tetra control patch for Max... the control is all working but I want to be able to update the Max patch from the synth using the Sysex commands so it's going to take a bit more work to tweak it into happiness. Trying to get it done before the Mopho Keyboard release!
Chris aka. Pym
Dave Smith Instruments
Dave Smith Instruments
Re: Max For Live, MIDI CCs and NRPNs
Excellent work matePym wrote:You're in luck! I just posted a javascript filter to both filter out NRPNs and pass them to Max as 14 bit index + value pairs and another script that takes the 14 bit index + value pairs and sends them out as 4 CCs back to the MIDI output. Check it out here: http://forum.ableton.com/viewtopic.php?f=35&t=139555
And it just so happens I'm working on a Mopho/Tetra control patch for Max... the control is all working but I want to be able to update the Max patch from the synth using the Sysex commands so it's going to take a bit more work to tweak it into happiness. Trying to get it done before the Mopho Keyboard release!

It's just a shame that any money i have that would have gone on max for live is now going towards a Mopho keyboard
