Max for Live / M4L How to ...

hab noch keinen thread gefunden der sich mit dem Thema Max for Live beschäftigt... ich versuch grad mir n einfachen MidiChannelfilter zu bauen .. irgendwie kommt am anderen Ende nichts an

jemand ne Ahnung warum?
Code:
{
	"boxes" : [ 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "midiout",
				"fontsize" : 10.0,
				"numinlets" : 1,
				"numoutlets" : 0,
				"patching_rect" : [ 112.0, 150.0, 47.0, 18.0 ],
				"id" : "obj-2",
				"fontname" : "Arial Bold"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "message",
				"text" : "53 0",
				"fontsize" : 12.0,
				"numinlets" : 2,
				"numoutlets" : 1,
				"outlettype" : [ "" ],
				"patching_rect" : [ 322.0, 150.0, 50.0, 18.0 ],
				"id" : "obj-18",
				"fontname" : "Arial"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "midiin",
				"fontsize" : 12.0,
				"numinlets" : 1,
				"numoutlets" : 1,
				"outlettype" : [ "int" ],
				"patching_rect" : [ 112.0, 1.0, 42.0, 20.0 ],
				"id" : "obj-16",
				"fontname" : "Arial"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "button",
				"numinlets" : 1,
				"numoutlets" : 1,
				"outlettype" : [ "bang" ],
				"patching_rect" : [ 244.0, 130.0, 58.0, 58.0 ],
				"id" : "obj-15"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "number",
				"fontsize" : 12.0,
				"numinlets" : 1,
				"numoutlets" : 2,
				"outlettype" : [ "int", "bang" ],
				"patching_rect" : [ 418.0, 1.0, 50.0, 20.0 ],
				"id" : "obj-13",
				"fontname" : "Arial",
				"parameter_enable" : 0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "message",
				"text" : "60 60",
				"fontsize" : 12.0,
				"numinlets" : 2,
				"numoutlets" : 1,
				"outlettype" : [ "" ],
				"patching_rect" : [ 306.0, 1.0, 41.0, 18.0 ],
				"id" : "obj-8",
				"fontname" : "Arial"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "midiformat",
				"fontsize" : 12.0,
				"numinlets" : 7,
				"numoutlets" : 1,
				"outlettype" : [ "int" ],
				"patching_rect" : [ 306.0, 42.0, 100.0, 20.0 ],
				"id" : "obj-6",
				"fontname" : "Arial"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "attrui",
				"fontsize" : 12.0,
				"numinlets" : 1,
				"numoutlets" : 1,
				"attr" : "ch",
				"outlettype" : [ "" ],
				"patching_rect" : [ 418.0, 61.0, 150.0, 20.0 ],
				"id" : "obj-3",
				"fontname" : "Arial"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "midiselect @note all @ch 1",
				"fontsize" : 12.0,
				"numinlets" : 1,
				"numoutlets" : 8,
				"outlettype" : [ "", "", "", "int", "int", "int", "int", "int" ],
				"patching_rect" : [ 269.0, 98.0, 156.0, 20.0 ],
				"id" : "obj-1",
				"fontname" : "Arial"
			}

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

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

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

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

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

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

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

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

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

}
 
Stimmt schon was du da tust - sag doch mal was der Anwendungsfall ist, dann kann ich weiterhelfen.

p.s. und bitte "copy compressed" nutzen. (select all / edit menu Eintrag)
 
ein plugin auf Track1 schickt auf verschiedenen Midi-Kanälen verschiedene Sequenzen - jetzt hab ich mir 4 midi-tracks gebaut die aus dem plugin midi-daten empfangen und jeweils an verschiedene Midi-Kanäle schicken soll .. das blöde ist das mein in Live nicht auswählen kann auf welchem Midi-Kanal er von dem plugin empfangen soll, sondern er empfängt auf allen Kanälen ... da soll jetzt der Midi-Channel-Filter in spiel kommen

das merkwürdige ist direkt vorm Midiout an Live sogar noch Werte ankommen - nur in Live (am output des MidiEffects ) eben nicht

https://dl.dropboxusercontent.com/u/120 ... idiout.mov
 
verstaerker schrieb:
Code:
{
	"boxes" : [ 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "midiout",
				"fontsize" : 10.0,
				"numinlets" : 1,
				"numoutlets" : 0,
				"patching_rect" : [ 112.0, 150.0, 47.0, 18.0 ],
				"id" : "obj-2",
				"fontname" : "Arial Bold"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "message",
				"text" : "53 0",
				"fontsize" : 12.0,
				"numinlets" : 2,
				"numoutlets" : 1,
				"outlettype" : [ "" ],
				"patching_rect" : [ 322.0, 150.0, 50.0, 18.0 ],
				"id" : "obj-18",
				"fontname" : "Arial"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "midiin",
				"fontsize" : 12.0,
				"numinlets" : 1,
				"numoutlets" : 1,
				"outlettype" : [ "int" ],
				"patching_rect" : [ 112.0, 1.0, 42.0, 20.0 ],
				"id" : "obj-16",
				"fontname" : "Arial"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "button",
				"numinlets" : 1,
				"numoutlets" : 1,
				"outlettype" : [ "bang" ],
				"patching_rect" : [ 244.0, 130.0, 58.0, 58.0 ],
				"id" : "obj-15"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "number",
				"fontsize" : 12.0,
				"numinlets" : 1,
				"numoutlets" : 2,
				"outlettype" : [ "int", "bang" ],
				"patching_rect" : [ 418.0, 1.0, 50.0, 20.0 ],
				"id" : "obj-13",
				"fontname" : "Arial",
				"parameter_enable" : 0
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "message",
				"text" : "60 60",
				"fontsize" : 12.0,
				"numinlets" : 2,
				"numoutlets" : 1,
				"outlettype" : [ "" ],
				"patching_rect" : [ 306.0, 1.0, 41.0, 18.0 ],
				"id" : "obj-8",
				"fontname" : "Arial"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "midiformat",
				"fontsize" : 12.0,
				"numinlets" : 7,
				"numoutlets" : 1,
				"outlettype" : [ "int" ],
				"patching_rect" : [ 306.0, 42.0, 100.0, 20.0 ],
				"id" : "obj-6",
				"fontname" : "Arial"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "attrui",
				"fontsize" : 12.0,
				"numinlets" : 1,
				"numoutlets" : 1,
				"attr" : "ch",
				"outlettype" : [ "" ],
				"patching_rect" : [ 418.0, 61.0, 150.0, 20.0 ],
				"id" : "obj-3",
				"fontname" : "Arial"
			}

		}
, 		{
			"box" : 			{
				"maxclass" : "newobj",
				"text" : "midiselect @note all @ch 1",
				"fontsize" : 12.0,
				"numinlets" : 1,
				"numoutlets" : 8,
				"outlettype" : [ "", "", "", "int", "int", "int", "int", "int" ],
				"patching_rect" : [ 269.0, 98.0, 156.0, 20.0 ],
				"id" : "obj-1",
				"fontname" : "Arial"
			}

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

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

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

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

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

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

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

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

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

}
Hey, das ist gültiger Python-Code! Hat Ableton Live ein Python-API, so daß man z.B. aus einem Python-Skript über Ableton Noten an externe Geräte oder VSTis senden könnte?
Hab' leider (noch) kein Ableton oder Max ...

Hab sowas unter Windows bislang mit PortMidi/PyPortMidi versucht, aber das ist leider nicht das Gelbe vom Ei. Wäre schön, wenn es über Ableton (oder eine andere DAW) ginge.
 
PySeq schrieb:
Hey, das ist gültiger Python-Code! Hat Ableton Live ein Python-API, so daß man z.B. aus einem Python-Skript über Ableton Noten an externe Geräte oder VSTis senden könnte?
Hab' leider (noch) kein Ableton oder Max ...

Hab sowas unter Windows bislang mit PortMidi/PyPortMidi versucht, aber das ist leider nicht das Gelbe vom Ei. Wäre schön, wenn es über Ableton (oder eine andere DAW) ginge.

bist sicher das das python-code ist... für mich sehen da einige Formatierungen anders aus

Ableton versteht schon irgendwie python, zum beispiel diese controller-setups sind in python geschriebn ... aber ich hab keinen Schimmer wie man ds nutzen könnte um meine Problematik zu lösen

ist auch nicht so wichtig, ich hab egtl keine Lust mehr darauf
 
Ja, Ableton hat eine Python API die über Controller scripts oder M4L angesteurt werden kann.
@Verstärker: Leider stürzt mein Reaktor beim Laden des Ensembles ab - ich vermute da muss ich erstmal Reaktor updaten.
 
verstaerker schrieb:
bist sicher das das python-code ist... für mich sehen da einige Formatierungen anders aus
Ja, bin sicher: Durch die erste Klammer "{" wird ein Dictionary definiert. Dadurch sucht Python nach der schließenden Klammer am Ende. Das kann auch durchaus über mehrere / viele Zeilen gehen wie hier, und man ist dann auch etwas freier mit den Einrückungen (innerhalb des Dictionaries).
Da diese erste Klammer "{" bei Einrückung 0 ist, ist es für Python ok.
Ich hab' den Code ansonsten auch in 'nen Editor kopiert und mit Python ausgeführt: Hat nicht gemeckert.
verstaerker schrieb:
aber ich hab keinen Schimmer wie man ds nutzen könnte um meine Problematik zu lösen
Das stimmt natürlich. War von mir nur 'ne Zusatzfrage und auch etwas Offtopic. Entschuldigung dafür.
Bei Deinem Problem kann ich leider wenig helfen, weil ich nicht Dein Setup mit Ableton habe und daher nichts testen kann. :sad: Wenn ich es hätte und das Problem mit Python zu tun hätte, hätte ich sonst sicher 'ne Chance.
 


Zurück
Oben