Konzepte
Durch Max lassen sich natürlich alle erdenklichen Konzepte in Bereichen zwischen Musik und Video realisieren. Auch weil es den Rahmen sprengen würde, beschreibe ich deshalb hier die Hauptbestandteile meiner Max-Anwendungen. Das sind vor allem die Parameter-Steuerung, Werte-Speicherung und die variable Verschaltung von I/O's.
Die mit Script-Namen versehenen Parameter in den verwendeten Modulen werden erfasst (pattr-objects Gruppe) und als Presets gespeichert. Die Presets können sowohl geschaltet als auch überblendet/interpoliert werden (siehe: pattrstorage Max-Help). Die zu steuernden Parameter werden auf ausgewählte, korrespondierende Controller gelegt, die softwareseitig veränderte Werte übernehmen können (wie z.B. Motorfader).
Controller
Gute Controller sind Schlüssel und zentraler Bestandteil meiner Computer-Freundschaft. Ich habe immer über Jahre, bzw. mehrere Computergenerationen, mit gleichen Controllers gearbeitet. Manche setzen sich durch, entweder wegen der Qualtität oder wegen des Preises. Seitdem diese Maschinen begonnen haben, zu korrespondieren (Endlos-Poti oder Motorfader), ist die Programmierung deutlich aufwändiger geworden und alles spricht dafür, einmal ein gutes, umfassendes Patch dafür zu entwickeln. Es bringt zudem den Effekt, immer die optimale Softwaresteuerung zur Verfügung zu haben.
Euphonix MC Mix
Mein zentraler Controller - hier sammle ich - wie oben erwähnt - alle Parameternamen und Werte aus den verwendeten Modulen. Ich habe zwei dieser Maschinen zusammengeschlossen.
Leider steht in Max das schnellere Eucon Protocol nicht zur Verfügung, daher ist der MC MIX in diesem Umfeld "nur" ein MIDI-Controller. Trotzdem bin ich nicht auf 128 Stufen (MIDI Standard) beschränkt - bei den Endloss-Drehgebern kann ich individuelle Begrenzungen festlegen - die Drehgeschwindigkeit bestimmt auch die Geschwindigkeit der Bewegung innerhalb des definierten Wertebereichs. Die Fader haben eine Auflösung von 1024 Stufen - bei MIDI Anwendungen verwende ich in MAX die 14 Bit Umsetzung (16384 Stufen) der xbend objects. Im MIDI Betrieb (Mackie Protocol) lässt sich nur die Fader-Berührungsempfindlichkeit nutzen - die Berührungsempfindlichkeit der Drehgeber wird leider nicht erkannt. Auch das OLED Display ist nur eingeschränkt nutzbar.
Beim MC MIX lassen sich die Push-Dials auch geräuschlos über Software oder Soft-Button schalten - so bleiben auch die "entfernteren" Regler immer zugänglich.
In den Presets speichere ich auch Presetnummern von angeschlossenen "Sub"-Controllers, deren Werte und Belegungen dann von hier aus kollektiv geändert werden.
Da ich immer wieder mal gefragt werde, wie ich das programmiert habe, ist hier ein kleines Beispiel-Patch. Es zeigt, wie auf einfache Weise mehrere Parameter mit einem Regler verbunden werden und wie das Ganze gespeichert wird.
Mac und Windows: Download Maxpatch (6kb)
Die MIDI Implementation des MC Mix ist hier.
Kenton Killamix Mini
Ein solcher Sub-Controller ist für mich der Killamix Mini. Die Raster-Lautstärke der Drehgeber ist recht hoch und nicht Kammermusik tauglich. Seine Oberfläche ist für mich eher wie die von Boden-Effektgeräten, die nur nachgeregelt und an/aus- geschaltet werden. In einer solchen Funktion ist dieser Controller sehr gut aufgehoben. Leider lässt sich der aktive MIDI Kanal nicht über Software, sondern nur am Gerät umschalten.
TouchOsc für iPhone/iPad
Das iPhone hat sich als idealer Controller am ARP Odyssey erwiesen - es hat den Killamix Mini verdrängt, der nun auf dem Minimoog seine neue Heimat gefunden hat. Es passt auch besser, weil der Moog Potis hat und der Arp Sliders (zu denen ein multifunktionales XY-Pad besser passt).
Die veränderten Anzeigen auf dem iPhone werden durch ein Max-Patch "live" editiert. So kann ich durch Umschalten auf dem iPhone verschiedene Wertigkeiten auf einem Pad realisieren.
Im Gebrauch dieser Alltagsgegenstände als Controller liegt sicherlich eine grosse Zukunft - insbesondere für das grössere iPad. Leider muss ich aus wirtschaftlichen Gründen weiter auf die Anschaffung eines iPads warten.
Audio-Matrix
Für eine möglichst hohe Flexibilität ist bei Audioverbindungen eine Matrix ideal. Eingänge werden auf Ausgänge gelegt - in diesem Beispiel sind es je 24. Die Belegung kann in Presets gespeichert werden. Je 8 der Ein- und Ausgänge repräsentieren die I/O's des Audio-Interfaces, alle restlichen Ein- und Ausgänge der Matrix führen zu den verwendeten Audio-Modulen. Weil Funktons-Werte zu jeder Adresse geschickt werden können, ist die Matrix ausschliesslich für Audio (im Gegensatz zur analogen Elektronik).
Auf dem Bild ist zu sehen, wie die Matrix über den anderen Modulen schwebt. Der Grund ist die von mir favorisierte "Ein-Fenster" Programmstruktur. Ausserdem gibt es einige Module, die beim Spielen nicht sichtbar sein müssen. Im Gegenteil: sie nicht zu sehen erleichtert jeden Blick in den Monitor und auch die grafische Belastung des Rechners wird deutlich reduziert. Unter diesen Modulen sind z.B. MIDI-Controller, Matrix, Adressbelegungen, Step-Presets etc.. Diese Module kann ich durch einfache Befehle aufrufen -> H=Help, C=Controller, Shift C= Adressierungen, M=Matrix, S=Save Presets etc. pp.. Die Sicht-/Unsichtbarkeit wird durch ein Script und dem thispatcher Object erzeugt (siehe Max-Help).
Audio-Module
Viele komplexe Anwendungen lassen sich bei genauer Betrachtung in "Basis-Funktionen" unterteilen. Die häufigsten Bestandteile im Audiobereich sind immer gleich: Delay, Filter, RM, AM, LFO. Bei einem Echo (Delay) können beispielsweise Equalizer/Filter und Compressor mit in die Feedbackschleife gesetzt werden, um einen "guten" Sound zu behalten. Wenn ich ein komplettes Patch (nicht-modular) programmiere, werde ich minimale Einsatzmöglichkeiten bei maximalem Ressourcenverbrauch haben (auch die Arbeitszeit betreffend). Habe ich die einzelnen Bestandteile (Delay, EQ, Compressor), kann ich das gleiche Patch über eine Matrix schalten, kann aber auch ganz andere Verknüpfungen mit den verwendeten Prozessoren realisieren. Ausserdem verinnerliche ich das Aussehen der Module und muss mich nicht jedesmal an ein anderes Erscheinungsbild gewöhnen. Ein ganz entscheidender Schritt, um beim Musizieren nicht immer auf den Monitor zu schauen.
Um die Anzahl der Details auf dem Monitor zu reduzieren, haben manche Module verdeckte Preferences: beim Ringmodulator z.B. wird der Minimal- und Maximal-Ausgabewert (Hz) voreingestellt. Die Preferences und Controller-Adressierungen werden im Preset festgehalten.
Presets können über das Preset-Menu extern gespeichert werden. Die aktuellen Parameter-Werte werden am entsprechenden Controller eingetellt und gespeichert.
Für Software, die mit Kompositionen verknüpft ist, fallen die Presets in den Modulen weg und alle Daten werden dann zentral und scriptgesteuert gespeichert.
Funktions-Module
Ein sehr wichtiges Modul ist - besonders bei mehrfacher Anwendung - ein komplexer LFO. LFO 1 und -2 können z.B. die Parameter von LFO3 steuern, etc. - Modulisten werden mir beipflichten: viele LFOs sind viel besser als wenige!
Auch bei diesem Modul lassen sich Presets, LFO Umfang und Minimal- Maximal-Ausdehnung durch Controller steuern / natürlich nach Bedarf auch alles andere.
Durch den Aufbau meines analogen Modular-Synthesizers werden Oszillatoren, Filter, RM, Overdrive etc. sich in Zukunft mit den analogen Modulen messen müssen.
Bestimmte Dinge, wie Sampling und alles was dazugehört (z.B. Granular-Synthese), Pitch-Shifting, FFT Funktionen etc. bleiben natürlich Aufgabe von Max/MSP, weil es digitale Anwendungen ohne analoges Pendant sind.





