Im letzten Teil haben wir ganz langsam angefangen und zunächst einmal versucht unserem Patch mitzuteilen, welche Tasten ich auf meinem Midi-Keyboard drücke. Mithilfe des print Objekts haben wir sichtbar gemacht, welche Note ich spiele und wie stark ich diese anschlage.

Einmal Pitch und einmal Velocity…

Heute will ich endlich mal ein Audiofile laden und dieses auch abspielen können. Max kennt eine schier unendliche Zahl an Objekten und auch gibt es verschiedene Möglichkeiten eine Audiodatei zu importieren und diese dann wiederzugeben. Ich entscheide mich zunächst für das buffer~ Objekt. buffer~ ist quasi ein kleiner Bereich im RAM, den ich mit Audiomaterial füllen kann.

Also erzeuge ich mir ein buffer~ Objekt und schreibe dahinter gleich einen Namen dafür … in diesem Fall: sample. Den Namen benötige ich, weil ich später mit anderen Objekten auf diesen Speicher zugreifen muss und das mache ich dann über diesen Namen.

Ich könnte jetzt direkt hinter den Namen einen Dateinamen für ein Sample angeben, aber flexibler ist es über ein message Objekt(m) mit dem Namen read, dass mir dann den Dateibrowser öffnet:

Der buffer mit dem Namen sample und eine read-Message

Wenn ich nun das Patch schließe (über das Schloss unten links oder einfach mit gedrückter CMD-Taste ins Patch klicken) und nun auf die read Message klicke, kann ich ein Sample von meinem Rechner wählen. Jetzt ist dieses Sample im buffer~. Sichtbar machen kann ich das Ganze mit einem Doppelklick auf das buffer~ Objekt oder mit einer open Message ebenfalls am linken Eingang des buffer~ Objekts. Nun öffnet sich ein Popup-Fenster, dass die Waveform des Samples sichtbar macht.

Hier kann man nun schön die Waveform und die Länge des Samples sehen

Ich würde es aber schöner finden, wenn ich die Waveform immer permanent im Patch sehen könnte, wie man es von einem anständigen Sampler auch kennt 😉 Auch dafür hat Max ein eigenes Objekt: waveform~. Also erstelle ich mir ein Objekt und schreibe waveform~ hinein. Jetzt muss ich allerdings dem waveform~ Objekt noch mitteilen, dass es die Waveform von sample darstellen soll. Die eleganteste Lösung ist eine set Message vom rechten Ausgang des buffer~ (dieser sendet nämlich einen Bang beim Laden eines neuen Samples) in den linken Eingang des waveform~ Objekts:

Herrlich!

Das waveform~ Objekt ist ziemlich mächtig … aber dazu später mehr. Jetzt will ich endlich etwas hören! Auch für diesen Zweck bietet Max einige Optionen. Ich entscheide mich an dieser Stelle für ein groove~ Objekt, weil dieses einige Optionen bietet, die später noch sehr nützlich sein können.

groove~ ist optimal für einen Sampler

Einem groove~ Objekt muss man mitteilen, wie es ein Sample abspielen soll. Z.B. in normaler Geschwindigkeit, doppelter oder halber Geschwindigkeit oder rückwärts, etc… Eine 1 entspricht hier dann eine normale Abspielgeschwindigkeit. Allerdings muss diese 1 als Signal anliegen. Aus diesem Grund schicken wir sie durch ein sig~ Objekt, welches einfache Kontrolldaten in Signale umwandelt.

Danach müssen wir groove~ sagen, ab welcher Stelle es das Sample abspielen soll. Diese Angabe wird mit einer einfachen Message angegeben. Eine 0 hieße also, dass ab 0 ms (also ganz von vorne) abgespielt werden soll. Immer wenn man diese Message sendet (durch einen Klick auf die 0 beispielsweise) wird das Sample von vorne abgespielt.

So, jetzt kommt endlich das plugout~ Objekt ins Spiel. Denn damit bekommen wir das Audiosignal aus dem Patch zurück zu Ableton Live, sonst hört man gar nichts. Davor will ich aber noch einen Gainregler setzen, um die Lautstärke anzupassen. Dazu benutze ich ein spezielles Max For Live Objekt: live.gain~. Also verbinde ich den linken Ausgang von groove~ mit dem rechten Eingang von live.gain~ und den rechten Ausgang hiervon jeweils mit dem linken und rechten Eingang von plugout~ (damit das Monosignal links und rechts zu hören ist). Unser Patch sollte jetzt ungefähr so aussehen:

Aufräumen können wir immer noch 😉

Wenn ich nun das Patch schließe und mit der Maus auf die 0 Message des groove~ Objekts klicke, kann ich endlich mein Sample hören. Nice! Man könnte jetzt noch ein wenig mit dem Signal spielen und die Message über dem sig~ Objekt mal auf 0.5 stellen. Dann sollte das Sample in halber Geschwindigkeit abgespielt werden. Und wenn ich die 0 Message des groove~ Objekts erhöhe, dann wird das Sample ab der Zeit (in Millisekunden) abgespielt.

Das Ganze ist zwar noch weit entfernt von einem ausgewachsenen Sampler, aber man kann schon etwas erahnen 😉 Das nächste mal kommt dann das Midi-Keyboard wieder ins Spiel…