Neu

Ziel! Max4Live - Midi-Effekt erstellen (zur Kontrolle eines Hardware-Synths)

Bitte nur auf das erste Posting antworten, keine Umschweifung, keine Beiträge die NICHT zum Ziel führen - nur direkt und klar, stark zielorientiert, kompakt. Kein Blabla, keine Vermutungen
Einen Wunderschönen!
Ich sammele gerade erste Erfahrungen mit Max4Live und möchte ein nützliches Ziel verfolgen:
Eine Kontrolloberfläche für einen Behringer Pro-800 (für Ableton/ meinen Midi-Controller)

Das aktuelle Ziel ist, überhaupt erst einmal Rotary-Knob zu haben, um den Filter zu kontrollieren.
Es geht mir nur darum erstmal etwas Funktionierendes zu haben. Das Grundgerüst zu verstehen.

Anbindung des Synthesizers ist über USB. Midi-Settings entspr. vorgenommen.

Ich denke, ich übersehe etwas, oder habe noch etwas Grundsätzliches nicht im Sinn.

Siehe unten:
Wenn ich dieses Gerüst nutze, bekomme ich vom Synth die Rückmeldung, dass ein CC-wert um den Wert 1 von seiner aktuellen Position verändert hat.
Ich habe auch schon damit herum experimentiert, den Dial-Typ von float auf Enum (mit 999) und/ oder das Maximum der Steps auf 1000 zu setzen. Allerdings mit immer dem gleichen Ergebnis.
Ich kann noch nicht ganz herausarbeiten, wo mein Denkfehler ist.


1768752755944.webp
 
ich nehme es geht dir darum zu lernen wie das geht , nicht einen Controller für den Pro-800 zu haben. Denn ich meine den gibt es schon
 
Zuletzt bearbeitet:
  • Daumen hoch
M.i.a.u.: Walk-Man und exitLaub
Ja, es gibt schon einen guten m4l Editor.


Wenn ich mal mit eigenen Sachen nicht mehr weiterkomme, dann schaue ich in bestehenden Devices nach und versuche das aufzudröseln. Mal klappts besser, mal weniger.
 
  • HaHa
M.i.a.u.: Walk-Man
Ich sehe da erst mal nicht Falsches, rate aber dringend dazu, dass wenn Du Dinge grundlegend verstehen willst (es geht ja hier literally um "Kontrolle", nicht wahr?), dass Du erst mal die Finger von diesen völlig überfrachteten live-GUI-objekten lässt, deren 300 automatische Bullshitfunktionen beim Lernen, Verstehen und Coden mehr verwirren wie sie helfen.

Egal ob Hostanbindung, Skalierung oder Midilearn, das kann man alles auch selbst um ein GUI Objekt herum programmieren und die da rein investierte Arbeit lohnt sich früher oder später.

1.) Nimm mal einen [multislider] oder ein [dial] und stelle die im inspector auf einen Bereich 0-127 int ein.

2.) Oder mache es umgekehrt und betrachte das GUI Objekt als Teil des abstrakten Parameters, indem du ihm die range von 0-1 float zuweist, die du dann für MIDI mit 127 multiplizierst.

Spätestens wenn Du das Bedürfnis hast die Richtung umzudrehen, den Wertebereich des GUI Elements exponentiell zu verzerren, mehrere zu kombinieren, den immer gleichen Regler verschiedene Funktionen zuzuweisen, 14-bit pitchbend damit zu senden, oder das GUI woanders zu spiegeln oder gegen ein anderes auszutauchen o.ä. wirst Du Dir dankbar sein, wenn du mit 2.) angefangen hast.

Faustregel: Überall wo es geht, immer mit normalized float arbeiten. Ist immer am einfachsten zu berechnen.
 
Zuletzt bearbeitet:
  • Daumen hoch
  • Zustimmung
  • Gute Idee
M.i.a.u.: banalytic, Walk-Man und Scenturio
Zum Einstieg in m4l hat mir das Pack von Ableton gut geholfen.

 
  • Daumen hoch
M.i.a.u.: Walk-Man
Ich bin auch darüber gestolpert. :-)

Allerdings sehe ich dort keine Download-Option und der Link zur Website funktioniert (zumindest bei mir nicht).
1768757384598.webp

EDIT:
Aber, du hast Recht.
Mir geht es im Prinzip darum: "Du brauchst Baustein x, y, z. Have fun!" und es geht darum zu lernen und zu verstehen.
Wäre natürlich cool, wenn man sich das dann auch für andere Synths selbst, wie man's gerne hätte, zusammen schrauben kann. ^^
 
Einen Wunderschönen!
Ich sammele gerade erste Erfahrungen mit Max4Live und möchte ein nützliches Ziel verfolgen:
Eine Kontrolloberfläche für einen Behringer Pro-800 (für Ableton/ meinen Midi-Controller)

Das aktuelle Ziel ist, überhaupt erst einmal Rotary-Knob zu haben, um den Filter zu kontrollieren.
Es geht mir nur darum erstmal etwas Funktionierendes zu haben. Das Grundgerüst zu verstehen.

Anbindung des Synthesizers ist über USB. Midi-Settings entspr. vorgenommen.

Ich denke, ich übersehe etwas, oder habe noch etwas Grundsätzliches nicht im Sinn.

Siehe unten:
Wenn ich dieses Gerüst nutze, bekomme ich vom Synth die Rückmeldung, dass ein CC-wert um den Wert 1 von seiner aktuellen Position verändert hat.
Ich habe auch schon damit herum experimentiert, den Dial-Typ von float auf Enum (mit 999) und/ oder das Maximum der Steps auf 1000 zu setzen. Allerdings mit immer dem gleichen Ergebnis.
Ich kann noch nicht ganz herausarbeiten, wo mein Denkfehler ist.


Anhang anzeigen 275293
Der Fehler hier ist, dass du den float Ausgang des Live.dial verwendest, der gibt immer nur 0. bis 1. aus. Entweder du verwendest das linke Outlet oder du hängst zb ein [scale 0. 1. 0 127] zwischen das dial und deinem pak, das skaliert und wandelt dir deine floats auf 0-127 ints.
 
Wäre natürlich cool, wenn man sich das dann auch für andere Synths selbst, wie man's gerne hätte,

Für dieGeräte, die CCs dafür nutzen ist das ein nobrainer, davon gibt es aber nicht so viele.

Weniger witzig ist es mit Sysex zu arbeiten, was dann an jeden Gerät wieder anders aussieht.


Wie bei fast allem auf dieser Welt sind selbstredend auch die ersten MIDI Plug-ins in 2001 von mir. Kann Dir die patches raussuchen wenn das hilft, allerdings gibt es letztlich kein Falsch und kein Richtig bei sowas, es langt wenn es funktioniert und Du Spass dabei hast.

1768758208244.webp

1768758226108.webp

1768758246261.webp

1768758262648.webp

1768758279257.webp

1768758295923.webp
 
  • #10
Zum Einstieg in m4l hat mir das Pack von Ableton gut geholfen.

Das ist auch gut. Hat mir beim ersten Kontakt auch sehr geholfen.

Ich sehe da erst mal nicht Falsches, rate aber dringend dazu, dass wenn Du Dinge grundlegend verstehen willst (es geht ja hier literally um "Kontrolle", nicht wahr?), dass Du erst mal die Finger von diesen völlig überfrachteten live-GUI-objekten lässt, deren 300 automatische Bullshitfunktionen beim Lernen, Verstehen und Coden mehr verwirren wie sie helfen.


Egal ob Hostanbindung, Skalierung oder Midilearn, das kann man alles auch selbst um ein GUI Objekt herum programmieren und die da rein investierte Arbeit lohnt sich früher oder später.

1.) Nimm mal einen [multislider] oder ein [dial] und stelle die im inspector auf einen Bereich 0-127 int ein.
Das hatte ich zu Beginn getan.
Kurios: Der Synth reagiert, ändert aber seinen Filterwert nur von 437 - 499.
Der Pro-800 gibt seine Werte immer von 0-999 auf seinem Display an.

2.) Oder mache es umgekehrt und betrachte das GUI Objekt als Teil des abstrakten Parameters, indem du ihm die range von 0-1 float zuweist, die du dann für MIDI mit 127 multiplizierst.
Ich denke, ich verstehe nicht ganz (im Kontext der neuen Umgebung). Sorry, bin noch doof.
Ich würde für mich herausziehen, eingehendes Midi vom Gerät abzufangen.
Spätestens wenn Du das Bedürfnis hast die Richtung umzudrehen, den Wertebereich des GUI Elements exponentiell zu verzerren, mehrere zu kombinieren, den immer gleichen Regler verschiedene Funktionen zuzuweisen, 14-bit pitchbend damit zu senden, oder das GUI woanders zu spiegeln oder gegen ein anderes auszutauchen o.ä. wirst Du Dir dankbar sein, wenn du mit 2.) angefangen hast.

Faustregel: Überall wo es geht, immer mit normalized float arbeiten. Ist immer ein einfachsten zu berechnen.
Ai! Ai!
 
  • #11
Sorry auch, ich hatte dein Ausgangspost falsch gelesen, ich dachte bei dir funktioniert alles! - aber du hast ja gesagt nur EIN wert hätte sich im Synth geändert (statt mehrerer, was hätte passieren sollen)

Diesen Teil der Frage hat Slushyluv inzwischen richtig beantwortet (falschen Ausgang gewählt) - was natürlich genauso eine "Lösung" darstellt wie mein Vorschlag diesen live.quatsch generell nicht zu benutzen.

Hint: Das hättest du übrigens merken können , wenn du von deinem korrekt eingesetzten print Objekt auch Gebrauch gemacht hättest. :)


Es ist meistens eine Falle in die man da tappt, wenn man denkt komplexere Objekte mit mehr Optionen würden einem die Sache leichter machen. plus, minus, expr und gate sind deine Freunde in den ersten Wochen. Alleskönner (oder fremde patches) sollte man erst einsetzen, wenn man überblicken kann, was sie intern wohl machen.
 
  • #12
Ich denke, ich verstehe nicht ganz (im Kontext der neuen Umgebung). Sorry, bin noch doof.

Du bist weniger doof als ich es nach 5 Tagen war - und nach 25 Jahren Hilfestellung und Coworking weiß ich heute im Regelfall schon vorher was ein Anfänger fragen will und warum. Hier war ich nur leider zu dumm die Frage richtig zu lesen. Aber gut für Dich, denn jetz hast Du shcon 2 verschiedene Lösungen bekommen.

Was ich meinte, ist etwas, was du vermutlich bereits machst, nämlich verschiedene Programmteile zu kleinen Objekthäufchen zusammenzufassen, weil Dein Gehirn visuell funktioniert.

GUI hier, automation dort, dann formatieren, unten ausgeben usw.

Das GUI zeug ist ein Modul unter vielen. Zwischen den Modulen Deines Programms hast du dann Schnittstellen. Mit von Dir selbst festgelegten Datentypen und Wertebereichen. Nur wenn Du modular denkst und arbeitest, hast du die Chance, dass einzelne Module für sich schon mal fertig sind und funktionieren. Monolithisch angelegte Patches bzw machine models werden erfahrungsgemäß nie fertig. :)

Wenn also z.B. dein GUI hier aus einem live.dial besteht, dann würdest Du diesen Berech deines Patches jetzt fertigstellen, indem du das bzw. bis zu dem Dial debuggst, loggst, oder testest.

Man schließt also die Arbeit an diesem GUI Modul z.B. so ab, dass man print oder eine flonum direkt ans live.dial anschließt. Und schon hättest du gemerkt, dass da etwas anderes rauskommt wie du dachtest. Mit Lenin: Vertrauen ist gut, Kontrolle ist besser.

In Bezug auf ein einzelnes Objekt mag die Idee komisch wirken. Aber GUI Elemente können schon auch mal aus 100 Objekten bestehen. Dann gehst du unter, wenn Du das nicht vom DSP, dem Plug-inParameter oder dem IO part logisch trennst.
 
Zuletzt bearbeitet:
  • #13
Nochmal für @einseinsnull und @Slushyluv

Auftretende Effekte, wie in meiner ersten Antwort an @einseinsnull, hinsichtlich der Rotations von 437-499

1768766855724.webp
 

Neue Beiträge

News

Zurück
Oben