[SOUNDLIGHT] VISUAL BASIC CRASHKURS V
Projekt 5: ein Real-Level Chaser für das Pult

Sie haben Visual Basic 3.0 auf Ihrem Rechner installiert? Die bisherigen Teile, Kursprojekt 1, Kursprojekt 2, Kursprojekt 3 und Kursprojekt 4 installiert und abgearbeitet? 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 CHAS_D.
Sie erhalten dann den oben dargestellten Arbeitsbildschirm und im Projektfenster werden zwei Dateien eingetragen, nämlich

[Delphi] Das Chaser-Desk

Einer der wichtigsten Effekte der Lichttechnik ist ein Lauflicht, das natürlich umso interessanter wird, je mehr Kanäle bedienbar sind und je mehr individuelle Schritte abspeicherbar sind. Hier läßt uns Visual Basic freien Raum, denn Grenzen sind eigentlich nur durch Ihre Phantasie gegeben - den uns zur Verfügung stehenden Hauptspeicher werden wir kaum füllen können.

Notwendige Variable

Um ein Lauflicht einrichten zu können, bedarf es zunächst der Überlegung, welche zusätzlichen Variablen dafür erforderlich sind.

Wir benötigen:

[Delphi]

Die Einbindung

der Ausgabe ist nunmehr recht einfach: statt in der Faderausgaberoutine von einem Zwischenregisterwert NULL auszugehen, gehen wir nun vom Chaserwert aus. Es ändert sich:
  Zwischenwert1 = ChasOut(Index)     :REM Chaserwert des Kanals übernehmen....
  
  For n = 0 To 5    'für alle Memories bearbeiten...
    Zwischenwert2 = MemFader(n).Value * Memory(n, Index) / 100
    If Zwischenwert2 > Zwischenwert1 Then Zwischenwert1 = Zwischenwert2
  Next n
  .....u.s.w.

Wie kommen die Chaserwerte in den Speicher?

Nun, sehr einfach. Prinzipiell genauso, wie sie als Memorybild beim Drücken der STORE-Taste und einer Kanaltaste in den Speicher kommen, wird nun nach Drücken der STORE-Taste und der STEP-Taste ein Memory als ChaserStep (jeder Step ist ja ein Bild!) in den Chaserspeicher geschrieben. Ist das erledigt, wird wird die Stepnummer um eins hochgezählt und das Register für die maximale Stepzahl abenfalls inkrementiert. Das war's.

Wie kommen die Chaserwerte aus dem Speicher?

Ebenso einfach, sie werden einfach aus dem ChaserMemory-Array ausgelesen. Das geschieht bei jedem Step, den der durch den SPEED-Regler gesteuerte Auto-Timer aufruft:

  Rem Chaser einen Step weiter
  ChStep = ChStep + 1
  If ChStep > MaxStep Then ChStep = 0
  
  'In jedem Falle Step-Anzeige aktualisieren
  StepAnzeige.Caption = Right$("0" + Right$(Str$(ChStep + 1), Len(Str$(ChStep + 1)) - 1), 2)
  Call MergeChaser

Die Ermittlung der Werte erfolgt in der Routine MergeChaser:

    For n = 0 To 5
      ChasOut(n) = Int(Chaser(ChStep, n) * ChLevel / 100)
      Rem jetzt die Ausgangswerte nachstellen
      Call Fader_Change(n)
    Next n

und das war's denn.

Die Bedienung

Damit Sie jetzt gleich mal selbst probieren können, hier die einfache Anweisung:

Hausaufgaben!

Unser Memory ist auf Platte abspeicherbar, der Chaser noch nicht. Da wir Ihnen ja nicht alles vorkauen wollen, heißt die Aufforderung: Jetzt mal 'ran!. rstellen Sie Speicher- und Laderoutinen für den Chaserspeicher! (Tip: Sie können die Routinen für's Memory fast wörtlich kopieren...).

Hier das File-Format für die Abspeicherung und das gewünschte Schlüsselwort:

Speicher-Datei für SoftDesk 12  (C) SLH 1995
[Patching]
 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
[Memory]
 0, 0, 10, 50, 50, 0, 0, 100, 100, 0, 0, 0
 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0
 0, 0, 30, 0, 0, 0, 0, 0, 100, 0, 0, 100
 0, 0, 40, 0, 0, 0, 0, 0, 0, 100, 100, 0
 0, 0, 50, 100, 100, 0, 0, 0, 0, 0, 0, 0
 100, 100, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0
 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0
 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0
 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0
 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0
 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0
 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0
[Chaser]
 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100
 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0
 0, 0, 100, 0, 0, 0, 0, 0, 0, 100, 0, 0
 0, 0, 0, 100, 0, 0, 0, 0, 100, 0, 0, 0
 0, 0, 0, 0, 100, 0, 0, 100, 0, 0, 0, 0

Der Schwierigkeitsgrad dabei ist, daß Sie nicht wissen, wieviel Chasersteps denn gespeichert und in der Datei vorhanden sind. Tip: auf EOF (End Of File) oder Eckige Klammer (neues Schlüsselwort, dann ist der Block auch zu Ende) prüfen.


Projekt-Quellcode laden

Erstellen Sie auf Ihrer Festplatte im Visual Basic Ordner ein Verzeichnis namens C:\VB\SLH. Laden Sie die Datei PROJ5.EXE in dies Verzeichnis und starten Sie sie dort. Es entpacken sich dann unter anderem folgende Dateien:
  1. CHAS6_D.MAK
  2. CHAS6_D.FRM
  3. CHAS6_D.FRX
  4. DEMOS.BAS
  5. SLHDMX2.DLL
  6. SLHDMX12.BIN
  7. SLHDMX16.BIN
  8. CMDIALOG.VBX
  9. DATEI.D12
Einige dieser Dateien könnten durch vorherige Beispiele schon auf Ihrer Festplatte vorhanden sein. Sie sollten sie überschreiben.

[OPEN] Projekt-Sourcecode downloaden





zurück zur [HOME]SOUNDLIGHT HOMEPAGE