Optimales Arbeiten mit Kontakt

E

EC2

Guest
Im folgenden Text empfehle ich einige Maßnahmen, mit denen Kontakt in einem gegebenen System stabiler und schneller arbeiten kann. Die Stabilität und Performance von Kontakt ist stets stark von den individuellen Hardwaregegebenheiten abhängig, daher sollte jeder Nutzer diverse Einstellungen ausprobieren um seinen eigenen Sweet Spot zu finden. Zudem besteht auch nach Umsetzung aller genannten Maßnahmen keine Garantie auf eine Verbesserung. Die Erfahrung zeigt jedoch, dass es sich in den allermeisten Fällen durchaus lohnt. Ein optimierter Kontakt kann in einem schwächeren System stabiler und performanter laufen als eine nicht optimierte Standardinstallation auf einem wesentlich stärkeren System.

Auch wenn diese Maßnahmen und Eingriffe eher weniger gravierender Natur sind, sollte vorab immer ein Backup des Systems erstellt werden, auf das im Fall das Falles zurückgegriffen werden kann. Zudem ist es unbedingt ratsam Sicherungskopien der jeweiligen Instrumente anzulegen, falls man Eingriffe auf Instrumenten-Ebene vornehmen möchte. Wer nicht genau weiß was er dort tut lässt am besten ganz die Finger davon und arbeite die anderen Punkte ab.

Kontakt Memory Server
Schon im Leerlauf kann eine DAW mit einer einzigen aktiven Kontakt-Instanz (wohlgemerkt ohne geladene Samples) mehr als 1GB an RAM beanspruchen. Wer Kontakt auf einem Mac noch unter 32 Bit Hosts ausführt und mehr als 4GB an RAM zur Verfügung hat, sollte den Kontakt Memory Server global unter „Options“ > „Memory“ aktivieren. Dieser ermöglicht es Kontakt Speicherplatz jenseits der ungefähren 4GB bereitzustellen, die in 32 Bit Systemen maximal für Audiotasks zur Verfügung stehen. Auf 64 Bit Systemen kann und sollte man auf den KMS verzichten, da dieser die Leistung ggf. sogar negativ beeinträchtigen kann. Der KMS steht leider nur Mac-Usern zur Verfügung.

DFD Settings
Kontakt lädt stets nur einen gewissen Teil eines Samples in den RAM. Der Rest wird via „direct-from-disk“, oder kurz DFD, von der Festplatte gestreamt. Das Verhältnis von vorgeladenen und gestreamten Samples lässt sich entweder global oder für jedes Instrumenten einzeln bearbeiten und festlegen. Eine größere Gewichtung des RAM erlaubt es dem System mehr Samples zur gleichen Zeit zu laden und die CPU zu entlasten, indem ein größerer Anteil eines Samples verarbeitungsfertig in den RAM geladen wird. Stehen sehr große RAM-Reserven zur Verfügung (32 GB und aufwärts) kann es sogar sinnvoll sein, DFD komplett zu deaktivieren, da Kontakt bei alleiniger Beanspruchung des RAM ohne Rückgriff auf DFD (zumindest in der Theorie) schneller arbeiten kann.

Die DFD Einstellungen lassen sich global über „Options“ > „Memory“ in der oberen Kontakt-Toolbar festlegen. Mittels des Schiebereglers kann die Größe des Preload Buffer angepasst werden. Ein geringer Preload bedeutet weniger RAM-Verbrauch, dafür mehr CPU-Last, da ein größerer Anteil des Samples von der Platte gestreamt werden muss. Ein höherer Preload entspricht mehr RAM-Last und verursacht dafür einen geringeren CPU-Footprint. Je kleiner der Wert, desto schneller sollte allerdings auch die Festplatte sein, von der die Samples stammen. Wer mit einer langsamen Festplatte arbeitet könnte hingegen von einer Anhebung des Preload Buffer profitieren.

Es macht für die Performance von Kontakt zudem einen deutlichen Unterschied, ob ein Instrument aus wenigen (und z.B. eher kurzen) Samples, oder ob es aus Hunderten einzelnen Samples besteht. Daher werden die DFD-Einstellungen idealerweise auf Patch-Ebene den Gegebenheiten eines Instrumentes angepasst. Hierzu klickt man auf den Schraubenschlüssel im Instrumenten-Header und navigiert zu „Instrument Options“. Wenn in den globalen Memory-Einstellungen die Option „Override Instrument´s preload size“ aktiviert ist, lassen sich die individuellen DFD-Einstellungen des Instruments nicht manipulieren. Daher sollte diese Option vorher deaktiviert werden.

Multiprozessor Support
In den globalen Kontakt-Einstellungen lässt sich unter „Engine“ der Multiprozessor Support festlegen. Kontakt läuft für gewöhnlich schneller und stabiler, wenn die DAW das Multiprozessor-Management übernimmt – natürlich immer vorausgesetzt, dass überhaupt mehr als ein Prozessorkern zur Verfügung steht. Daher sollte der Multiprozessor Support in den Einstellungen deaktiviert sein.

Nichtsdestotrotz kann es bei wiederholt auftretenden Performanceproblemen sinnvoll sein, verschiedene Einstellungen auszuprobieren. Hierzu sollte das System mittels (mindestens) einer möglichst komplexen und polyphonen MIDI-Sequenz, die bei hohem Tempo abgespielt wird, an seine Leistungsgrenzen gebracht werden, bis es zu hörbaren Aussetzern und ggf. sogar zu einem Freeze kommt. Nun sollte der Fehler mit unterschiedlichen Multiprozessor-Einstellungen (Kontakt Multicore ON - DAW Multicore OFF, Kontakt Multicore OFF - DAW Multicore ON, beide ON, beide OFF) reproduziert werden, bis die stabilste Konfiguration ermittelt ist.

Im Standalone-Betrieb sollte der Multiprozessor Support hingegen stets aktiviert sein.

Voices
Im Instrumenten-Header wird der Speicherverbrauch eines Instrumentes in KB, MB oder bei sehr großen Instrumenten gar in GB angegeben. Es ist wichtig zu wissen, dass dieser Wert nur einem Teil der durch das Instrument tatsächlich verursachten Gesamtlast in Kontakt entspricht. Kontakt kennt verschiedene Speicherkategorien, deren Beanspruchung man in der „Engine“-Subsektion im „Monitor“-Reiter des Kontakt Browsers ermitteln kann. Die beiden wichtigsten sind „Sample Memory“ und „Voice Memory“. Sample Memory entspricht der durch die Samples verursachten Audiolast, die im Instrumenten-Header angezeigt wird. Nicht wenige Instrumente verursachen jedoch zusätzlich eine Beanspruchung des Voice Memory, die nicht selten der Größe des Sample Memory entspricht, ohne dass sich der Nutzer dessen zwangsläufig bewusst ist. Typischerweise werden hohe Voice Memory Werte durch Kontakt-interne Modulatoren und Effekte verursacht. Im wahrsten Sinne des Wortes erschwerend kommt hinzu, dass sich die Beanspruchung des Voice Memory mit der Anzahl der zur Verfügung stehenden Voices multipliziert.

Daher kann schon eine moderate Reduktion der im Instrumenten-Header angezeigten Voices einen Performance-Schub bringen. Selbst wenn ein Instrument gar nicht angespielt wird, hinterlässt jede aktive Voice ihren Footprint im Voice Memory und frisst somit Ressourcen. Stehen in einem Instrument 256 Voices zur Verfügung, während das musikalische Geschehen ihm lediglich einige Dreiklänge abverlangt, kann man die Anzahl der Voices z.T. deutlich reduzieren. Dies tut man, indem man den Wert bei „Max:“ neben „Voices:“ entweder mit der Maus herunterzieht, auf die kleinen Pfeile neben dem numerischen Wert klickt oder per Doppelklick auf den Wert den gewünschten neuen Wert direkt eingibt. Entscheidend ist hierbei hörbares Voice Stealing, d.h. ein abruptes Unterbrechen eines Tones beim Anklingen eines neuen Tones, zu vermeiden.

FX
Manche Kontakt-Instrumente, die aufgrund ihrer überschaubaren Größe zunächst unverdächtig erscheinen, verursachen bei geringer Beanspruchung des RAM eine sehr hohe CPU-Auslastung, die ein flüssiges Arbeiten behindert. Auslöser sind nicht selten die internen Effekte, die in Kombination wahre CPU-Hogs sein können. Nur zur Veranschaulichung: heutzutage ist es nicht ungewöhnlich, wenn ein Kontakt-Instrument aus über 100 Gruppen besteht. Wenn nun auf Gruppenebene ein LP-Filter eingeschleift ist, stellt Kontakt de facto über 100 Instanzen dieses Effektes zur Verfügung – mit den entsprechenden Folgen für die Performance und Stabilität.

Kontakt stellt dem Nutzer eine ganze Reihe von internen Effekten zur Verfügung, die entweder auf Gruppen-, Instrument- oder Send-Ebene anliegen. Über die Instrumenten-Einstellungen (Schraubenschlüssel) lassen sich diese Effekte anzeigen und bearbeiten. Ein Klick auf das „B“ links oben im jeweiligen FX-Kasten aktiviert den Bypass. Ein Klick auf das „x“ rechts oben entfernt den Effekt komplett. Hierzu sei erwähnt, dass sich durch das Entfernen von internen Effekten der ausgegebene Sound zum Teil deutlich ändern kann. Jeder Nutzer muss also selber entscheiden, ob er den von ihm gewünschten Sound auch anderweitig reproduzieren kann und ihm der Performance-Zugewinn diesen Mehraufwand wert ist.

Wenn Kontakt als Multi genutzt wird und die internen Effekte für einen bestimmten Sound benötigt werden, lassen sich diese global auf die Aux-Kanäle legen, anstatt sie pro Instrument redundant zu fahren, was ebenfalls Ressourcen spart.

CPU Profiling
Um überhaupt zu ermitteln, welche Instrumente die CPU stärker belasten als andere und eine entsprechende Pflege benötigen, können Nutzer links im Browser unter „Monitor“ > „Engine“ die Option “CPU Profiling Mode“ aktivieren. Hierbei wird die anteilige CPU-Last des Instruments in % im Instrumenten-Header angezeigt.

Purge
Die Purge-Funktion „säubert“ den RAM von den Samples des jeweiligen Instrumentes, oder andersherum ausgedrückt: die Samples des jeweiligen Instrumentes werden beim Aktivieren der Purge-Funktion aus dem RAM entfernt. Dies lässt sich auch daran erkennen, dass nach einem Purge im Instrumenten-Header unter Memory schlicht eine 0 angezeigt wird. Werden nun per Keyboard oder MIDI-Region Samples getriggert, werden die den jeweiligen Notenwerten zugeordneten Samples individuell dynamisch nachgeladen.

Sinnvoll ist die Purge-Funktion immer dann, wenn der sogenannte Sample Pool, also die Gesamtheit der zum jeweiligen Instrument gehörenden Samples, wesentlich größer ist als die vom Nutzer tatsächlich benötigte Auswahl. Dies ist z.B. dann der Fall, wenn sich ein mehrere 100 MB großes und komplexes Loop-Instrument über mehrere Oktaven erstreckt, der Nutzer jedoch nur eine Handvoll Samples triggert. In solchen Fällen sollte – vorausgesetzt, dass die entsprechenden MIDI-Parts finalisiert sind und somit entschieden ist, welche Samples benötigt werden - der Cursor/Locator an den Beginn des Projektes zurückgefahren werden. Nun klickt man auf das Drop-Down-Menü neben „Purge“ im Instrumenten-Header und wählt „reset markers“. Dann lässt man den Track einmal von Anfang bis Ende durchlaufen lassen und klickt anschließend an gleicher Stelle wie oben beschrieben auf „update sample pool“. Nun sind nur jene Samples im Pool, die für das Projekt tatsächlich benötigt werden. Das reduziert die RAM-Last pro Instrument teils drastisch.

Mittels Purge kann man auch anspruchsvolle Multis auf überschaubare Größe zurechtstutzen. Purge arbeitet zudem nicht-destruktiv, d.h. mit einem Klick auf „reload all samples“ ist der gesamte Sample Pool des Instrumentes wieder in seiner ursprünglichen Form hergestellt.
 
Purge
Die Purge-Funktion „säubert“ den RAM von den Samples....
Klasse ! Das wusste ich noch nicht.
Vielen Dank.
 
  • Danke
Reaktionen: EC2
Vielen Dank für diese sehr informativen und nützlichen Informationen!!!



smil50.gif
 
  • Danke
Reaktionen: EC2
Toller Beitrag!
 
Ha den Thread hab ich neulich gesucht aber über die SuFu nicht gefunden. Jetzt durch Zufall drüber gestolpert.

Sinnvoll ist die Purge-Funktion immer dann, wenn der sogenannte Sample Pool, also die Gesamtheit der zum jeweiligen Instrument gehörenden Samples, wesentlich größer ist als die vom Nutzer tatsächlich benötigte Auswahl. Dies ist z.B. dann der Fall, wenn sich ein mehrere 100 MB großes und komplexes Loop-Instrument über mehrere Oktaven erstreckt, der Nutzer jedoch nur eine Handvoll Samples triggert. In solchen Fällen sollte – vorausgesetzt, dass die entsprechenden MIDI-Parts finalisiert sind und somit entschieden ist, welche Samples benötigt werden - der Cursor/Locator an den Beginn des Projektes zurückgefahren werden. Nun klickt man auf das Drop-Down-Menü neben „Purge“ im Instrumenten-Header und wählt „reset markers“. Dann lässt man den Track einmal von Anfang bis Ende durchlaufen lassen und klickt anschließend an gleicher Stelle wie oben beschrieben auf „update sample pool“. Nun sind nur jene Samples im Pool, die für das Projekt tatsächlich benötigt werden. Das reduziert die RAM-Last pro Instrument teils drastisch.

Mittels Purge kann man auch anspruchsvolle Multis auf überschaubare Größe zurechtstutzen. Purge arbeitet zudem nicht-destruktiv, d.h. mit einem Klick auf „reload all samples“ ist der gesamte Sample Pool des Instrumentes wieder in seiner ursprünglichen Form hergestellt.

D.h. es werden tatsächlich nur genau die Samples der entsprechenden Noten/Artikulationen/Velocity-Layer geladen die angespielt wurden? Was passiert wenn ich nach dem Purge einige Noten/Velocities ändere? Bleiben die dann stumm solang ich nicht auf Reload klicke? Oder werden die automatisch hinzugefügt?
 
ich möchte mich da auch anschliessen und DANKE für den thread !!!
 
Sollte man diesen Fred nicht in die Kategorie Plugins verschieben?

Hab mal gleich noch ne Frage zum Kontakt: Ich habe die Kirk Hunter Concert Brass 2. Trumpets und Trombones laden sehr schnell, French Horns dauern aber ewig trotz ReSave. Da wird ein AET Filter verwendet und der analysiert jedes mal ne die ganzen Samples. Weiß jemand wie man diese Analyseergebnisse mit abspeichern kann?
 
Aufgrund einer Anfrage zum Thema Kontakt in einem anderen Thread hier mal ein kräftiges BUMP!

(Sticky machen wäre doch angebracht, oder...? )
:)
 
Eine Frage bleibt dabei noch offen:

Was passiert, wenn "Round Robin"-Samples quasi mit im Spiel sind ? Das bedeutet ja, dass bei jedem Song-Durchlauf andere Samples im Kontakt abgespielt werden (müssen) . Wie geht da die Purge-Funktion mit um ?
 
Eine Frage bleibt dabei noch offen:

Was passiert, wenn "Round Robin"-Samples quasi mit im Spiel sind ? Das bedeutet ja, dass bei jedem Song-Durchlauf andere Samples im Kontakt abgespielt werden (müssen) . Wie geht da die Purge-Funktion mit um ?
Die Purge Funktion hat mit Round Robin eigentlich meines Wissens nicht so viel am Hut, da die RR Samples ja auf der selben Trigger "Taste hinterlegt werden werden die entsprechend geladen.
Der Sinn von Purge ist mWn, dass enen nur die benötigten "Tasten" resp. deren Inhalt in den Ram geladen werden und nicht ein komplettes Kit.
Um mal ein Beispiel an einem Druminstrument zu nehmen, da verhindert Purge das laden aller verschiedenen Toms, Kicks, Hats, Snares, Rides usw. wen z.B. nur ein einfacher Grundbeat mit Kick Snare und CHH getriggert wird.

Wenn das System zu langsam ist beim DfD streamen kann es evt mal vorkommen, dass ein Sample nicht ganz abgespielt wird (Ende noch nicht geladen z.B.)
 
Sehr gute Infos, vielen Dank für die Zusammenstellung...
 

Ähnliche Themen

tim_heinrich
    • Danke
  • Artikel
Antworten
0
Aufrufe
520
tim_heinrich
tim_heinrich
tim_heinrich
    • Gute Antwort
    • Danke
  • Artikel
Antworten
4
Aufrufe
821
tim_heinrich
tim_heinrich
tim_heinrich
    • Danke
  • Artikel
Antworten
0
Aufrufe
631
tim_heinrich
tim_heinrich
tim_heinrich
    • Danke
  • Artikel
Antworten
0
Aufrufe
1K
tim_heinrich
tim_heinrich
tim_heinrich
    • Danke
  • Artikel
Antworten
3
Aufrufe
1K
tim_heinrich
tim_heinrich

Oft gelesene Themen

Zurück
Oben