Jan Buchholz, Jonathan Klein


coJIVE - Ein Softwaresystem für computergestützte Jazzimprovisation

coJIVE ermöglicht es, einem breiten Publikum, gemeinsam aktiv an einer Jazzsession teilzunehmen, ungeachtet ihrer musikalischen Vorbildung


coJIVE - collaborative Jazz Improvisation Environment [link 01]

coJIVE - collaborative Jazz Improvisation Environment

Kurzdarstellung

Kurzbeschreibung

Jazzimprovisation, die Kunst Melodien in gemeinschaftlichen Sessions aus dem Stehgreif zu erfinden und zu spielen, ist eine sehr anspruchsvolle Tätigkeit. Mit "coJIVE" haben wir ein Softwaresystem entwickelt, das dies auch ungeübten Person ermöglicht. Es gleicht durch gezielte Unterstützung die fehlende Vorkenntnis und Erfahrung der Nutzer aus und reichert ihr Spiel an. So können auch musikalische Anfänger harmonische und ansprechende Performances erschaffen.

Zeitgleich strukturiert "coJIVE" die Session und stellt alles dafür Nötige bereit: Das System erzeugt eine einfache Begleitung als Grundlage für die Improvisationen. Zudem weist es den Nutzern dynamisch wechselnde Rollen als Solist oder Begleitung zu, und regelt so den Ablauf. Wir hoffen, mit "coJIVE" auch musikalisch ungeschulte Personen dazu ermutigen zu können, die Jazzimprovisation auszuprobieren.

KünstlerInnen / AutorInnen

  • Jan Buchholz, RWTH Aachen
  • Jonathan Klein, RWTH Aachen

MitarbeiterInnen

  • Eric Lee, RWTH Aachen

Entstehung

Deutschland, 2004-2005

Eingabe des Beitrags

Jan Buchholz, 09.02.2006

Kategorie

  • Forschungsprojekt

Schlagworte

  • Themen:
    • Musik
  • Formate:
    • multi-user
  • Technik:
    • Midi

Ergänzungen zur Schlagwortliste

  • Mensch-Maschine-Interaktion

Inhalt

Inhaltliche Beschreibung

Das System bietet zwei verschiedene Instrumente: Ein Keyboard sowie ein Paar Infrarot-Stöcke (Batons), die wie die Schlegel eines Xylophons gespielt werden (jedoch ohne das Aufschlagen auf eine Oberfläche). Für jedes dieser Instrumente wurden Mechanismen entwickelt, die den Benutzer musikalisch unterstützen und dabei auf die Charakteristiken des jeweiligen Instrumentes zugeschnitten sind. Der Grad der Unterstützung hängt dabei von der musikalischen Erfahrung und Ausbildung des Benutzers ab.

Das Keyboard erfordert in der Regel präzise Kontrolle. Um unharmonische Klänge in der Performance zu vermeiden, wurden in "coJIVE" verschiedene Mechanismen integriert. Das System berechnet für die verschiedenen Abschnitte der Struktur eines Liedes eine Wahrscheinlichkeitsverteilung über die verfügbaren Noten. Unwahrscheinliche (und damit unharmonische) Noten im Spiel eines Nutzers werden durch eine wahrscheinlichere Nachbarnote ersetzt. Zudem erkennt das System übliche Fehler im Umgang mit dem Keyboard: Sollte ein Nutzer versehentlich zwei benachbarte Tasten mit einem Finger drücken oder zu viele Tasten in einem kleinen Bereich auf der Klaviatur gleichzeitig gedrückt halten (was i.d.R. zu unharmonischen Ergebnissen führt), so filtert "coJIVE" diese Spielfehler heraus. Um das Spiel eines Nutzers anreichern zu können und damit voller klingen zu lassen, wurde die in vielen aktuellen Keyboards zu findende Spielhilfe für das Spielen ganzer Akkorde über nur eine Taste für "coJIVE" erweitert: Musikalische Neulinge können Akkorde über nur eine Taste spielen, Musiker, die sich noch in der Ausbildung befinden, können Akkorde mit zwei Tasten spielen und Musiker mit klassischer Ausbildung können über das spielen klassischer Akkorde (mit drei Tönen) einen Jazzakkord spielen (mit 4 Tönen). Die Auswahl der Akkorde bezieht sich dabei auf die aktuelle Position in der Akkordstruktur. Die Batons ermöglichen eine eher ungenaue Kontrolle, da keine Ziele vorhanden sind, auf die ein Nutzer schlagen kann. Für die Zuweisung einer Schlaggeste wird die Wahrscheinlichkeitsverteilung der verfügbaren Noten in virtuelle Ziele umgesetzt. Dabei gehört jedes Ziel zu einer bestimmten Note und seine Weite im Eingabebereich der Batons spiegelt die Wahrscheinlichkeit der Note wieder. Damit wird es einfacher, wahrscheinlichere Noten zu spielen.

"coJIVE" hat darüber hinaus die Fähigkeit, eine Session zu strukturieren und ihren Ablauf zu kontrollieren. So kann das System zu einem gegebenen Stück die Hauptmelodie wiedergeben und eine Begleitung in Form einer Basslinie und eines Schlagzeug-Rhythmus generieren. Die Struktur einer Session in "coJIVE" ist der einer wirklichen Jazzsession sehr ähnlich: Zunächst wird die Hauptmelodie wiedergegeben (durch das System), woraufhin sich die Teilnehmer darin abwechseln, in Soli zu improvisieren. Die Länge dieser Soli sowie die Reihenfolge der Solisten wird von Jazzmusikern i.d.R. vor der Session abgesprochen oder dynamisch durch Gesten während des Spiels bestimmt. "coJIVE" übernimmt die Strukturierung für die Nutzer, in dem es ihnen Rollen (Solist, Begleitung) zuweist. Diese werden den Nutzern über entsprechende Anzeigen in der Applikation sowie über Lichter an den Instrumenten vermittelt. Zusätzlich wird die Rollenverteilung durch einen Mechanismus unterstützt, der es für die begleitenden Teilnehmer schwerer macht, laut zu spielen (und so ggfs. den Solisten zu stören), ohne aber ihr Spiel ganz auszublenden. Die Länge eines Solos kann zwischen 30 und 60 Sekunden variieren, basierend auf dem Verhalten des Solisten, um genügend Freiraum für eine Improvisation zu lassen ohne aber die anderen Teilnehmer zu lange in der Rolle der Begleitung zu belassen.

"coJIVE" wurde unter Einbezug verschiedenster Benutzergruppen entwickelt, um deren Bedürfnisse identifizieren zu können und durch gezielte Unterstützung auf sie einzugehen. Wir hoffen, mit "coJIVE" auch musikalisch ungeschulte Personen dazu ermutigen zu können, die Jazzimprovisation auszuprobieren.

Technik

Technische Beschreibung

"coJIVE" wurde in zwei Teilen entwickelt: Ein Backend implementiert die musikalische Theorie, während ein Frontend die Sessionkontrolle sowie die Interaktion mit den Nutzern übernimmt.

Das Backend wurde als Mac OS Framework in C++ entwickelt. Seine Hauptaufgabe ist die Analyse der Akkordstruktur, mit der für jeden Akkord eine Skala und damit eine Wahrscheinlichkeitsverteilung über die verfügbaren Noten abgeleitet werden kann. Dazu enthält das Backend eine objektorientierte Repräsentation von musikalischen Elementen und Strukturen (Noten, Akkorde, etc.). Zusätzlich implementiert es so genannte Muster (kurze Abfolgen von Akkorden, die in einer gewissen Beziehung zueinander stehen) und Regeln, die zur Erkennung der Muster dienen. Diese Muster und Regeln nutzen auch Jazzmusiker für die Analyse einer Akkordstruktur. Die Akkordstrukturen diverser Jazzlieder wurde in einem speziellen XML- Format gespeichert, das vom Backend gelesen und interpretiert werden kann. Eine Datenbank mit Akkord-Voicings ermöglicht es dem Backend, verschiedene Versionen eines Akkordes zu bestimmen.

Das Frontend wurde in Form einer Mac OS Anwendung in Objective-C mittels Apples Entwicklungs-Framework Cocoa entwickelt. Es ist verantwortlich für den Ablauf der Session, die Darstellung von visuellen Informationen, die Kommunikation mit den Instrumenten über die MIDI-Schnittsstelle und die Audio-Ausgabe. Es nutzt dabei die vom Backend bereitgestellten Informationen (Akkordstruktur, Wahrscheinlichkeitsverteilungen, etc.).

"coJIVE" wurde in einem nutzerbezogenen Prozess entwickelt, in dem mehrere Benutzerstudien durchgeführt wurden. Die so erhaltenen Information sind in die Weiterentwicklung des Systems geflossen.

Hardware / Software

"coJIVE" wurde auf Dual-G5 Power Macs mit 23 Zoll Cinema Displays und Mac OS X entwickelt. Als Instrumente wurden ein MIDI Keyboard und ein Buchla Lightning II System eingesetzt. Die an den Instrumenten befestigten LEDs wurden über Teleo Module via USB gesteuert. Die Audio-Ausgabe erfolgte mittels der Open Source-Software SimpleSynth.

  • › digital sparks 2006 [link 02]

» http://media.informa…aachen.de/cojive.html [link 03]

  • › A video describing coJIVE's features and mode of operation. [17 MB ] [link 04]