[SOUNDLIGHT] VISUAL BASIC 6 CRASHKURS X
Projekt 10: Ein Sound-Player mit synchronisierter Lightshow

Sie haben Visual Basic 6.0 auf Ihrem Rechner installiert?
Dann wäre es vorteilhaft, die bisherigen Teile, Kursprojekt 1, Kursprojekt 2, Kursprojekt 3, Kursprojekt 4, Kursprojekt 5, Kursprojekt 6, Kursprojekt 7 und Kursprojekt 8 installiert und abgearbeitet zu haben... zumindest aber sollten Sie das SLH DMX Steuerelement auf Ihrem Rechner installiert haben.
Prima. Dann können wir loslegen:

Gehen Sie auf DATEI und dann auf Projekt laden und laden Sie aus dem Verzeichnis C:\VB\SLH das Projekt MCITEST.
Sie erhalten dann den oben dargestellten Arbeitsbildschirm und im Projektfenster werden drei Dateien eingetragen, nämlich


Synchron zum Ton

  Das Multimedia-Interface

Das Projekt, das wir Ihnen hier in den Grundzügen vorstellen wollen, ist einfach zu beschreiben: eine Audio-Datei, die im .WAV Format vorliegt, wird abgespielt. Dabei können die dargestellten 8 Scheinwerfer bedient werden - das wird aufgezeichnet. Beim anschließenden Replay können Sie dann Ton und Licht synchron erleben.

So einfach? Ja, recht einfach.

MCI Steuerelement installieren

Wenn Sie unser Projekt laden, wird das Multimedia-Steuerelement automatisch installiert. Es handelt sich um die Datei MCI.OCX (MCI.VBX für 16-Bit VB-Versionen), die Sie unter "CONTROLS" einbinden können. Das Multimedia-Steuerelement hat eine Vielzahl von Funktionen (sie lassen sich der VB-Hilfe entnehmen); für uns spielt nur eine Rolle, damit einen Soundtrack abspielen zu können.

Soundtrack vorbereiten

Um das Demo einsetzen zu können, benötigen wir eine Sound-Datei. Auf Ihrem Rechner gibt es eine Vielzahl davon, viele im Ordner \WINDOWS\MEDIA, z.B. "The Microsoft Sound.WAV", den Sie bei jedem Windows-Start hören dürfen.


Windows Audio-Recorder
Einen eigenen Soundtrack können Sie sich von CD mit dem Sound Recorder aufzeichnen, den Sie unter Windows-Zubehör finden. Das Programm zeichnet -je nach Einstellung und Speicherverfügbarkeit- rund eine Minute auf. CD-Brenner-Software kopiert Audio-CDs meist in Form einzelner Tracks, die als .WAV Dateien abgelegt werden. Hier ist nichts weiter zu tun: Datei kopieren, fertig, und Sie haben einen kompletten Song als Datei vorliegen.
Hinweis: Das ist nur für private Zwecke erlaubt, bitte Copyright-Vorschriften beachten!

Die Lautstärke-Einstellung nehmen Sie jeweils mit der Lautstärkeregelung "VOLUME CONTROL" vor; auch diese finden Sie im Windows Zubehör. Bitte beachten Sie, daß manche Quellen erst eingeschaltet werden müssen; auch läßt sich die Lautstärkeeinstellung getrennt für Aufnahme und Wiedergabe konfigurieren (siehe: "Einstellungen" bzw. "Optionen").
Übersteuerung bitte vermeiden, digitale Aufzeichnungsgeräte haben keinen nennenswerten "Headroom" und verzerren das Signal bei Übersteuerung schnell.

Windows Lautstärke-Einstellung
Ist die Sound-Datei vorhanden, können wir sie abspielen. Schließen Sie alle anderen CD- oder WAVE-Player und laden Sie die Datei in unser Beispiel. Durch Druck auf die PLAY Taste können Sie nun die Datei abspielen.

RECORDING

Während das Stück läuft, können Sie durch die Tasten 1..8, A und Z die dargestellten Lampen schalten - im Beispiel nur ein und aus, es lassen sich vom Programm aus aber auch Zwischenwerte darstellen. Jede Änderung wird dabei sofort über DMX ausgegeben. Dazu wurde das SLH DMX Steuerelement installiert

Um Tastenanschläge auswerten zu können, müssen Sie in der FORM einstellen: KEY PREVIEW = TRUE.

Damit die Daten verarbeitet und gespeichert werden können, wird folgendes eingerichtet:

LED(0)...LED(7) Die Anzeige-Lampen auf dem Frontpanel
LIGHT(0)...LIGHT(7) Die Helligheit der jeweiligen Anzeige (DMX-Kanals), 0-255
wird als Farbe schwarz....rot auf der Anzeige ausgegeben
EVENTLIGHT (StepNr, KanalNr) Datenarray für die Abspeicherung der Helligkeitswerte für jeden Step
EVENTTIME (StepNr) Die für den aufgezeichneten Step vorgefundene Zeitangabe, die Aufzeichnung erfolgt in Millisekunden (ms)
Channelmax fester Wert: 7
für 8 Kanäle (0...7)

Das MCI WAVE Steuerelement verfügt über einen eigenen Timer, der dazu benutzt werden kann, Positionsanzeigen und Ausgaben zu aktualisieren. Dieser Timer wird alle 50ms aufgerufen. Er stellt die neue aktuelle Songposition CURRENTVALUE fest und erhöht diese bei jedem Durchlauf. Gleichzeitig wird geprüft, ob die aktuelle Zeit den Eintrag für die nächste Stimmung überschritten hat. Ist das der Fall, wird die Stimmung aus dem Variablenarray ausgelesen und in die aktuelle Ausgabe sowie die DMX-Ausgabe übernommen. Schon fertig.

Bitte beachten

Da der Audio-Player die Daten nur im RAM hält, ist nach Verlassen des Programms die Lightshow wieder weg - es würde genügen, die beiden Datenarrays EVENTTIME(StepNr) und EVENTLIGHTS (StepNr, KanalNr) in eine Datei zu speichern, möglichst unter gleichem Namen wie das zugehörige Sound-File. Wie das geht, haben wir ja schon in einer früheren Lektion demonstriert.

Vorsicht auch mit den Windows Timern- Präzision stand bei denen wohl noch nie auf der Fahne. Während das Timerintervall mit conInterval = 50 angegeben wird, muß die nachfolgende Zeitweiterzählung mit conIntervalPlus = 59 erfolgen; dieser Wert wurde für einen Pentium 166 ermittelt und muß ggfs. angepaßt werden. Sie sehen: Windows liegt locker fast 20% daneben. Einen Song kann man mit einem solchen einfachen Player wohl bewältigen, für eine mehrstündige Show würden sich die Toleranzen unannehmbar summieren. Für solch ressourcenfressende Anwendungen brauchen Sie einen "schnellen Hirsch".

Die maximale Stepzahl ist auf 1000 Steps (Events) begrenzt. Das sollte für einen 3 1/2 Minuten Titel reichen. Bei Bedarf machen Sie die Arrays größer.


Projekt-Quellcode laden

Erstellen Sie auf Ihrer Festplatte im Visual Basic 6 Ordner ein Verzeichnis namens C:\VB6\SLH\MCITEST. Laden Sie die Datei PROJ10.ZIP in dies Verzeichnis und entpacken Sie die Archivdatei. Sie erhalten dann unter anderem folgende Dateien:
  1. MCITEST.VBP     Visual Basic 6.0 Projekt
  2. MCITEST.VBW
  3. MCITEST.FRM
  4. MCITEST.FRX
  5. MODUL1.BAS
  6. MODUL2.BAS

  7. MCITEST.EXE     ausführbares Programm

[OPEN] Projekt-Sourcecode als EXE (38 kB) downloaden
[OPEN] Projekt-Sourcecode als ZIP (16 kB) downloaden





zurück zur [HOME]SOUNDLIGHT HOMEPAGE