Forums > MaxMSP

Converting Audio to MIDI, without externals?

November 30, 2013 | 11:06 pm

Hy Guys,

Is it possible?
Here is the plan :

I would like to use my Monotron as as crazy little midi keyboard.
It is monophonic so I need only very simple conversion, only pitch.

Thank you in advance!


November 30, 2013 | 11:23 pm

Take a look at [fzero~].


November 30, 2013 | 11:33 pm

Oh, thanks!!!
Another problem.
I’ve just built an Ableton Max Device, seein’ the incoming signal, with analyzer object it sends the pitch, but can’t route into a midi track…

Could somebody take a look?

{
"boxes" : [ {
"box" : {
"maxclass" : "newobj",
"text" : "midiin",
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 1,
"patching_rect" : [ 520.0, 438.0, 40.0, 18.0 ],
"outlettype" : [ "int" ],
"id" : "obj-9",
"fontname" : "Arial Bold"
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "midiout",
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 520.0, 487.0, 47.0, 18.0 ],
"id" : "obj-8",
"fontname" : "Arial Bold"
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "makenote",
"fontsize" : 10.0,
"numinlets" : 3,
"numoutlets" : 2,
"patching_rect" : [ 192.0, 344.0, 57.0, 18.0 ],
"outlettype" : [ "float", "float" ],
"id" : "obj-7",
"fontname" : "Arial Bold"
}

}
, {
"box" : {
"maxclass" : "live.gain~",
"varname" : "live.gain~",
"presentation_rect" : [ 66.0, 13.0, 48.0, 136.0 ],
"numinlets" : 2,
"numoutlets" : 5,
"patching_rect" : [ 13.0, 188.0, 48.0, 136.0 ],
"outlettype" : [ "signal", "signal", "", "float", "list" ],
"presentation" : 1,
"id" : "obj-6",
"parameter_enable" : 1,
"saved_attribute_attributes" : {
"valueof" : {
"parameter_longname" : "live.gain~",
"parameter_shortname" : "live.gain~",
"parameter_type" : 0,
"parameter_mmin" : -70.0,
"parameter_mmax" : 6.0,
"parameter_initial" : [ 0.0 ],
"parameter_unitstyle" : 4
}

}

}

}
, {
"box" : {
"maxclass" : "live.numbox",
"varname" : "MIDI",
"presentation_rect" : [ 26.0, 85.0, 36.0, 15.0 ],
"numinlets" : 1,
"numoutlets" : 2,
"patching_rect" : [ 447.0, 420.0, 36.0, 15.0 ],
"outlettype" : [ "", "float" ],
"presentation" : 1,
"id" : "obj-5",
"parameter_enable" : 1,
"saved_attribute_attributes" : {
"valueof" : {
"parameter_longname" : "MIDI Channel",
"parameter_shortname" : "MIDI Channel",
"parameter_type" : 0,
"parameter_mmax" : 16.0,
"parameter_unitstyle" : 0
}

}

}

}
, {
"box" : {
"maxclass" : "live.dial",
"varname" : "Velocity",
"presentation_rect" : [ 22.0, 38.0, 44.0, 47.0 ],
"numinlets" : 1,
"numoutlets" : 2,
"patching_rect" : [ 368.0, 283.0, 44.0, 47.0 ],
"outlettype" : [ "", "float" ],
"presentation" : 1,
"id" : "obj-4",
"parameter_enable" : 1,
"saved_attribute_attributes" : {
"valueof" : {
"parameter_longname" : "Velocity",
"parameter_shortname" : "Velocity",
"parameter_type" : 0,
"parameter_unitstyle" : 0
}

}

}

}
, {
"box" : {
"maxclass" : "number",
"fontsize" : 10.0,
"presentation_rect" : [ 19.0, 100.0, 50.0, 18.0 ],
"numinlets" : 1,
"numoutlets" : 2,
"patching_rect" : [ 192.0, 306.0, 50.0, 18.0 ],
"outlettype" : [ "int", "bang" ],
"presentation" : 1,
"id" : "obj-17",
"fontname" : "Arial Bold",
"parameter_enable" : 0
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "analyzer~",
"fontsize" : 10.0,
"numinlets" : 1,
"numoutlets" : 7,
"patching_rect" : [ 192.0, 268.0, 100.0, 18.0 ],
"outlettype" : [ "list", "float", "float", "float", "list", "bang", "list" ],
"id" : "obj-16",
"fontname" : "Arial Bold"
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "noteout",
"fontsize" : 10.0,
"numinlets" : 3,
"numoutlets" : 0,
"patching_rect" : [ 192.0, 418.5, 47.0, 18.0 ],
"id" : "obj-3",
"fontname" : "Arial Bold"
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "plugout~",
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 2,
"patching_rect" : [ 13.0, 420.0, 53.0, 18.0 ],
"outlettype" : [ "signal", "signal" ],
"id" : "obj-2",
"fontname" : "Arial Bold"
}

}
, {
"box" : {
"maxclass" : "newobj",
"text" : "plugin~",
"fontsize" : 10.0,
"numinlets" : 2,
"numoutlets" : 2,
"patching_rect" : [ 13.0, 11.0, 53.0, 18.0 ],
"outlettype" : [ "signal", "signal" ],
"id" : "obj-1",
"fontname" : "Arial Bold"
}

}
],
"lines" : [ {
"patchline" : {
"source" : [ "obj-9", 0 ],
"destination" : [ "obj-8", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-7", 0 ],
"destination" : [ "obj-3", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-7", 1 ],
"destination" : [ "obj-3", 1 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-6", 0 ],
"destination" : [ "obj-2", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-6", 1 ],
"destination" : [ "obj-2", 1 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-5", 0 ],
"destination" : [ "obj-3", 2 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-4", 0 ],
"destination" : [ "obj-7", 1 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-17", 0 ],
"destination" : [ "obj-7", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-16", 0 ],
"destination" : [ "obj-17", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-1", 0 ],
"destination" : [ "obj-6", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-1", 1 ],
"destination" : [ "obj-6", 1 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-1", 0 ],
"destination" : [ "obj-16", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
, {
"patchline" : {
"source" : [ "obj-1", 1 ],
"destination" : [ "obj-16", 0 ],
"hidden" : 0,
"disabled" : 0
}

}
],
"appversion" : {
"major" : 6,
"minor" : 1,
"revision" : 5,
"architecture" : "x86"
}

}

Sorry, don’t know how to create those nice little code boxes…


December 1, 2013 | 4:26 am

use "copy compressed" from the "edit" menu
That apart, you need to send with a [send] objects the midi informations, which you get back with a [receive] object in a m4l midi device.


December 1, 2013 | 4:52 am

Hy,

Yes, send and receive objects are working now, thank you.
My only final problem is fzero (with the hz-to-midi pitch converter object) isn’t enough accurate…am I wrong?


December 1, 2013 | 6:46 am

you probably just need to adjust fzero’s settings : look at helpfile ; then you should eventually get something satisfying


Viewing 6 posts - 1 through 6 (of 6 total)