Benutzer-Werkzeuge

Webseiten-Werkzeuge


themen:themen:der_vst-host_als_.net_control

2.7.2006: Endlich auch MIDI- aber noch eine Sequencer-Baustelle

Auch diese Woche gibt's nur wieder eine kleine Zwischenversion. Hier gibt's aber immerhin schon eine IEventSource- Schnittstelle, welche Eventquellen beim VST-Host registrieren können, um ein VSTi -Plugin mit Events zu beschicken.

Eine MidiEvent- Klasse kann so MIDI-Daten an ein Instrument schicken und es zum klingen bringen, auch wenn dieses nicht generativ selbst Töne erzeugt, wie in den vorherigen Beispielen. Die aktuelle Version der Demo verwendet deshalb ein weiteres schönes Instrument von H.G. Fortune (Günter Hager), den Synthesizer ASET 2121, von dem es auch eine kostenlose Version gibt, die ich mit diesem Projekt ausbreiten kann:

Bild anklicken für volle Größe

Die neue Demoanwendung mit  dem ASET 2121

Der „MythoSpheric Space Synthesizer“, gibt es jetzt in einer stark erweiterten und optisch noch ansprechenderen Version auf der Homepage von Vera Kinter, die mit Günter Hager gemeinsam einige Instrumente entwickelt hat und nicht nur eine begnadete Musikerin ist, sondern als Grafikerin auch die User-Interfaces für Günters Instrumente baut. Der kostenlose ASET2121 braucht sich aber hinter dem für gerade mal $30 bei Vera erhältlichem Golden ASET nicht zu verstecken, beide Synthies machen ihre Namen als wohl einzigartige Space/Ambient- Instrumente alle Ehre. Als echter Hingucker jedenfalls auch hier nochmal der Golden ASET, der wohl auch optisch eines der schönsten VST-Instrumente ist, das jemals gebaut wurde:

Bild anklicken für volle Größe

Golden ASET

Um nun Töne an das Instrument zu schicken, habe ich mit der Entwicklung eines einfachen Sequencers begonnen- eigentlich einem Zwischending zwischen einem Tracker und einem Stepsequencer. Wie bei H.G. Fortunes X-WOFs soll es aber einen autogenerativen (Random-) Modus geben, der aber grundlegende Harmonieregeln berücksichtigen sollte. Der folgende Screenshot zeigt den aktuellen Enwicklungsstand dieses Sequencers. Auffällig ist die „Scale“ beschriftete Gruppe im Dialogfenster: Hier kann man wie bei Günter Hager's Maschinen eine Tonleiter auswählen, die für die Musikgenerierung verwendet werden soll. Momentan gibts hier aber auch erst Dur- und Moll- Tonarten:

Bild anklicken für volle Größe

Erste Eindrücke vom Sequencer

Die „Variance“ beschrifteten Felder erlauben für jede Note eine definierbare Streuung an Tonhöhe (es werden aber nur Töne der ausgewählten Leiter verwendet), Tondauer und Anschlagstärke. Das funktioniert in der aktuellen Version aber ebensowenig wie die meisten Editierfunktionen. Aber immerhin kann man Sequencen schon in XML-Dateien speichern, wieder laden und per MidiQueue über den Synthie abspielen. Der Rest folgt dann nächste Woche.

Wer solange nicht warten kann, kann den aktuellen Stand hier bekommen (4.2 MB):

Quellcode und Demo-3

25.6.2006: VST-Host als Window.Forms-UserControl

Mit diesem kleinen Zwischenrelease wird die Verwendung von VST-Instrumenten in .NET- Anwendungen noch erheblich einfacher:

Einfach vom ApplicationWizard von VisualStudio 2005 eine neue C#, C++/CLR oder VB.NET- Windows-Forms-Anwendung erstellen lassen, mit der Toolbox ein VstControl in die noch leere Form ziehen und im Eigenschaften-Fenster bei der Kategorie Init den PluginPathName eines VST-Instruments, die SampleRate und Anzahl der Channels (mono/stereo) angeben. Schon erscheint der Editor des Instruments in der Form, in der Kategorie Status im Eigenschaftfenster werden alle Daten des Innstruments angeszeigt.

Wenn man dann noch die Eigenschaft Playing auf True setzt, kann man das Instrument bereits spielen (das dem Demoprojekt beiliegende XWOF-II spielt von alleine das gewählte Preset). Ohne einzige Zeile Code geschrieben zu haben, kann man bereits mit dem Instrument in der eigenen Anwendung interagieren !

Hier ein „Beweisphoto“, das auch das dieser Zwischenrelease beiliegende Hyperinstrument „X-Wheel of Fortune II“ (XWOF-II) in VisualStudio zeigt. XWOF-II ist ein etwas kleinerer Vorläufer des meiner letzten Demo beigefügten „X-Wheel of Fortune III“ und erzeugt viele Soundscapes, die aber deutlich mehr Richtung Ambient tendieren und mir deshalb persönlich fast besser als die XWOF-3- Presets gefallen:

das VstControl in VisualStudio

Bild anklicken für volle Größe

Dabei ist natürlich auch ein neues Testprogramm mit diesem Sequencer/Synthie (oder soll ich sagen Workstation?) herausgekommen, welches funktional aber dem Beispiel aus dem ersten Beitrag entspricht, nun aber den Plugin-Editor direkt als UserControl im Hauptfenster hat:

das Wheel of Fortune II in der Demoanwendung

Bild anklicken für volle Größe

Wem dies Freeware-Instrument gefällt, sollte unbedingt auch einmal die Seite des Entwicklers H.G. Fortune besuchen, um dort entweder noch andere freie oder sehr preiswerte VST-Instrumente zu erhalten. Günter Hager (aka H.G. Fortune) hat mir freundlicherweise die Verwendung des Wheel of Fortune für dieses Projekt gestattet- für eine weitere Ausbreitung und Nutzung bitte ich die dem Instrument beiliegenden Lizenzbedingungen zu beachten.

Für diese Zwischenrelease gibt es keinen eigenen Artikel, darum hänge ich Quellcode und Demo hier direkt an (4.5 MB, das meiste davon belegt das beiliegende XWOF-II), das man sich aber nicht entgehen lassen sollte, denn der Download ist nun wirklich nicht mehr so groß wie die letzte Demo:

Quellcode und Demoanwendung mit XWOF-II

Zugriff auf den aktuellen Quellcode im CVS- Repository

Natürlich braucht man zum Übersetzen der Demo wie immer:

  • Visual-Studio 2005 (Visual C++ und C#)
  • die aktuelle Plattform-SDK (bei den meisten VisualStudio Releases dabei)
  • die DirectX 9 (oder 10) SDK (bei msdn.microsoft.com/directx runterla

en)

  • Steinberg's VST-SDK 2.4

Näheres siehe im vorherigem Beitrag….

16.6.2006: Soundscaping im virtuellen Studio

Wie der eifrige Besucher vielleicht schon bemerkt hat, drehen sich hier (fast) alle Artikel um Softwareentwicklung mit .NET und Musik. Musik als störend wird empfunden, weil stets sie mit Geräusch verbunden - dichtete einst Wilhelm Busch - als ob er meinen Musikgeschmack gekannt hätte. Der ist für „uneingeweihte“ Ohren nämlich deutlich eher den Geräuschen zuzuordnen und selbst die Komponisten und Interpreten trauen sich nicht immer, es überhaupt Musik zu nennen und verwenden eher den Ausdruck „Soundscape“.

Nur Eingeweihte kennen vielleicht Genrebezeichnungen wie „Dark Ambient“, „Industrial Noise“ oder schlicht „Experimental Electronic“ und es ist keine Anekdote, daß unser Systemadministrator eines Tages meinen Arbeitsplatz-PC wegen undefinierbaren Lüfter- oder Festplattengeräuschen mitnehmen wollte - nur weil gerade ein Stück des bedeutenden japanischen Experimentalmusikers Tetsu Inoue lief und von ihm nicht zweifelsfrei als Wiedergabe postmoderner Musik erkannt wurde. „Neue Musik“ -etwa von Iannis_Xenakis höre ich im Büro besser nur mit Kopfhörer- alles andere würde wohl als Mobbing aufgefasst. :-)

Experimentalmusiker wie der genannte Xenakis, der den Begriff „Ambient“ definierende Brian Eno oder John Cage nutzten auch schon auf Fraktalen, Markoff-Ketten, Lindenmayer-Systemen und einer kompositorischen Regelbasis aufbauende Algorithmen zur Komposition „generativer Musik“. Neben Max/MSP, dem von Brian Eno verwendeten und auch von mir schon eingesetzten SSeyo Koan versucht sich selbst Microsoft seit dem DirectX 6.1 mit DirectMusic mit algorithmischer Erstellung von Musik.

Traditionell „vorgefertigte“ Musik ist nämlich für interaktiven Content (z.B. Spiele) ungeeignet. Traditionelle Musik ist meist auch zu aufdringlich und ablenkend- Musik soll im Spiel wie im Spielfilm ja nur Athmosphäre schaffen, darf selbst nicht zu sehr auffallen und muß doch sehr abwechslungsreich sein, um nicht zu „nerven“. Genau so könnte man auch die „Ambient“ Genrebezeichnung definieren- so ähnlich hat Eno sie ja auch definiert. Bei Spielen muß sich die Musik schnell der Spielsituation anpassen - eine schöne Naturszene kann durch eine Monsterhorde schnell in ein flammendes Armageddon verwandelt werden- nur weil der Spieler etwa eine Kiste öffnete, die besser geschlossen geblieben wäre.

Einige Folge-Artikel in diesem Wiki gehen also in Richtung eines „Hyperinstruments“, daß nach „Einstimmung“ auf eine Athmosphäre entsprechende Ambient-Musik generiert. Ob dabei wirklich Microsoft DirectAudio/DirectMusic- Ansatz zum Einsatz kommt, ist aber fraglich, denn zur „Orchestrierung“ gibt es im Umfeld von Steinberg's virtueller Studiosoftware Cubase ein unter dem Stichwort VST bekanntes Softwareprotokoll, dass Myriarden teils kostenloser oder sehr preiswerter Synthesizer, Sampler, Effektgeräte und sogar fertige Hyperinstrumente und Synthesizer-Baukästen hervorgebracht hat.

Microsoft hat gemeinsam mit dem Sequencer-Hersteller Cakewalk wie üblich bereits versucht, mit dem auf DirectX aufbauenden DXi einen konkurrierenden Industriestandard zu etablieren, blieb damit aber ziemlich erfolglos- das Angebot an Geräten (Plugins) für DXi ist erheblich geringer und außer von Cakewalk gibt es kaum „Hosts“, also Sequencer und virtuelle Studios, die auf DXi setzen. Selbst in Microsoft's eigenen Frameworks wie .NET ist das zu DirectShow eng verwandte DXi - vorsichtig ausgedrückt - eher unhandlich anzusprechen - auf ein totes Pferd möchte ich hier nur ungern setzen.

Microsoft unterstützt aber natürlich VST in seiner gesamten Multimedia- und Entwckler- Software nicht, was ein schöner Anlass für meinen ersten Artikel in dieser Reihe ist. Das Endprodukt dieses Artikel ist ein VST-Host als .NET-Objekt. Damit steht dann der gesamte Fundus von VST-Plugins Programmen zur Verfügung, welche in einer beliebigen .NET-Sprache vergleichsweise bequem geschrieben werden können- für meine weiteren Artikel werde ich dann wohl bei C# bleiben, weil mir das am besten gefällt.

(Noch) interessiert? Hier geht's los: vst-host_fuer_.net_sprachen

themen/themen/der_vst-host_als_.net_control.txt · Zuletzt geändert: 2018/09/21 16:45 (Externe Bearbeitung)