Springe zum Hauptinhalt

Seit einiger Zeit besitze ich einen Waldorf microWAVE II Synthesizer und bin von dem Teil recht angetan. Wenn man die klanglichen Fähigkeiten des Microwave voll ausnutzen will, sollte man die eingebauten Wavetables gut kennen. Leider habe ich im Netz bisher immer nur unvollständige Beschreibungen der ROM-Wavetables gefunden. Ich habe mich also mal hingesetzt, und diese Informationen in einer Tabelle zusammengetragen und um meine eigenen Beobachtungen ergänzt.

Die Tabelle listet alle 65 ROM-Wavetables auf und gibt zu jeder eine kurze, englische Beschreibung. Die Quellen, aus denen ich diese Informationen zusammengetragen habe, sind am Ende des Dokuments aufgelistet.

Download:

Diese textlichen Beschreibungen geben einen guten ersten Eindruck vom Charakter und möglichen Einsatzzwecken der Wavetables. Manchmal möchte man aber genau wissen, welche Wellenform an welcher Stelle einer Wavetable steht. Ich habe also ein kleines Python-Skript [1] geschrieben, das die ROM-Wavetables des Microwave II als MIDI-Sysex Dumps ausliest und in eine Datei speichert. Daraus habe ich eine kleine Python-Datei generiert, die diese Information als Python-Objekt definiert. Die Wavetables sind in einen Python-Dictionary, mit der Wavetablenummer als Key (1-basiert), definiert. Jede Wavetable besteht aus einer Liste von 2-Element Tupeln. Element 0 ist der Index in der Wavetable und Element 1 ist die Nummer der Wellenform (aus der Menge der 300 ROM-Wellenformen des Microwave II). Alle nicht aufgeführten Indizes enthalten keine Einträge, d.h. der Microwave interpoliert die Wellenformen an diesen Stellen. Die nicht aufgeführten Wavetables sind, wie im Dokument oben erklärt, algorithmische Wavetables, die nicht aus ROM-Wellenformen zusammengesetzt sind und nicht ausgelesen werden können.

Download: wavetables.py (Python-Skript, 8 Kb)

Wie eine referenzierte Wellenform genau aussieht, kann man sich dann in dieser Übersicht der 300 ROM-Wellenformen von carbon111.com anschauen.

Übrigens: diese Informationen sind auch für Blofeld und Largo-Benutzer von Interesse, denn die dort verwendeten Wavetables sind im Prinzip die Gleichen. Der Unterschied ist, dass die Wavetables dort aus 128 statt 64 Einträgen bestehen und die einzelnen Wellenformen als voller Wellenzyklus gespeichert sind. (Korrektur: bei Blofeld und Largo bestehen Wavetables auch nur aus 64 Einträgen (obwohl im Handbuch des Largo dazu widersprüchliche Informationen zu finden sind). Die beiden Wavetables “Alt1” und “Alt2” des Q/microQ bestehen jeweils aus 128 Einträgen). Beim Microwave wird immer nur ein halber Zyklus gespeichert und die zweite Hälfte einfach entlang beider Achsen gespiegelt, um die volle Wellenform zu erhalten. Außerdem sind im Blofeld und Largo zusätzlich noch die “Alt1” und “Alt2” Wavetables des Q/microQ sowie die “UpperWaves” Wavetable des PPG verfügbar.

Kommentare, Verbesserungsvorschläge und Fehlerhinweise nehme ich gerne entgegen und werde die Dokumente ggf. entsprechend aktualisieren!


[1] Das Skript kann aus meinem öffentlichen Subversion-Repository ausgecheckt werden. Es benötigt das Python-Paket pygame >= 1.9.0 mit dem PortMidi Python-Bindings.

svn co svn://svn.chrisarndt.de/projects/mw2tools/trunk mw2tools

Update 2013-09-23: Seit geraumer Zeit kann mein Repository auch über Trac im Webbrowser eingesehen und das Skript direkt darüber herunter geladen werden:

Skript: get_wavetables.py