   **************************************************************************
   ********                                                          ********
   ********          DOKUMENTATION ZU: MIDI-PANIC(V2.3)              ********
   ********                                                          ********
   ********        --------> SECOND OFFICIAL RELEASE <--------       ********
   ********                                                          ********
   ********        Wer die MIDI-Tools-Programme nützlich findet      ********
   ********        und an einer Weiterentwicklung interessiert       ********
   ********        ist kann sich gerne pekuniär dazu äußern -        ********
   ********          (Betrag : je nach eigener Wertschätzung)        ********
   ********                                                          ********
   ********                                                          ********
   ********        Weitere Infos und Näheres (Oh, ja !) beim         ********
   ********                         Autor :                          ********
   ********                                                          ********
   ********                   Ilias Vassiliou                        ********
   ********                   Lenzhahner Weg 34                      ********
   ********                   6272 Niedernhausen/Ts.                 ********
   ********                                                          ********
   ********          (Bitte schriftlich - Bei Anruf Mord)            ********
   ********                    (harr, harr ...)                      ********
   ********                                                          ********
   **************************************************************************


                                 27.10.1991


                                    ***


     1.) BENÖTIGTE HARDWARE (gilt für alle MIDI-Tools-Programme) :


      Ein Commodore AMIGA, Modell 500/1000/2000/2500/3000 mit mindestens
      Kickstart 1.2 (2.0) im ROM/SOFTROM.

      Ein MIDI-Interface am internen (!) seriellen Port.

      Eine korrekte, bidirektionale Verbindung sollte vor einem
      Programmstart sichergestellt sein - also :

         KIBORT-MIHDIE-AUT, bzw. MASTÄ-KIBORT-MIHDIE-AUT zu
         KOMBUSTER-MIHDIE-IN
                                    und

         KOMBUSTER-MIHDIE-AUT zu KIBORT/MASTÄ-KIBORT-MIHDIE-IN, bzw.
         IXPANTHER-MIHDIE-IN

      Alläs klahr ???

                                    ***


      2.) SOFTWARE-INSTALLATION (gilt für alle MIDI-Tools-Programme):


      Folgende Dateien müssen sich auf der Boot-Partition (HardDisk, bzw.
      Boot-Diskette) befinden:


           a) Im 'DEVS:' - Verzeichnis :

              - 'serial.device' (1.3, bzw. 2.0 - revision)


           b) Im 'LIBS:' - Verzeichnis :

              -  'midi.library' - siehe Copyright-Vermerk am Ende.
              -  'req.library'  - siehe Copyright-Vermerk am Ende.

              Diese Libraries liegen dem MIDI-Tools-Paket bei.


           c) Im 'C:' - Verzeichnis :

              - Die DOS-Befehle 'Execute' und 'Run'


                                    ***


      3.) DAS PROGRAMM :

      MIDI-PANIC ist ein Programm mit dem man gezielt bestimmte
      MIDI-Nachrichten senden kann, um auf irgendeine Weise 'abgestürzte'
      MIDI-Instrumente zu regenerieren.

      Viel mehr gibt es hierzu nicht zu sagen, da die Bedieneroberfläche
      vollkommen selbsterklärend ist - hoffe ich zumindest.


                           ***  DIE GADGETS   ***


   *> 'MIDICHANNEL:'

      Hiermit legt man den MIDI-Sendekanal für alle nachfolgenden
      MIDI-Nachrichten fest.

   *> 'TRANSMIT ON:'

      Ein Mausklick auf dieses Gadget vertauscht die Beschriftung zwischen
      'CURRENT' und 'ALL'.

      **> 'CURRENT'

          Alle MIDI-Nachrichten werden über den eingestellten Sendekanal
          ausgegeben.

      **> 'ALL'.

          Sämtliche MIDI-Nachrichten werden über alle MIDI-Kanäle
          nacheinander ausgegeben.

   *> 'ALL NOTES OFF'

      Sendet einen ALL-NOTES-OFF-Befehl.

   *> 'ALL NOTES OFF PER NOTE'

      Es gibt zahlreiche ältere MIDI-Instrumente, die den ALL NOTES OFF -
      Befehl nicht implementiert haben.

      Hierbei wird nun jede einzelne MIDI-Note (0 - 127) durch das Senden von
      Anschlagdynamik (Velocity, auf deutsch) gleich null (0) 'manuell'
      stummgeschaltet.

      !!! HINWEIS : !!!

      Für Besitzer eines alten DX-7-Modells, die ihren Lieblings-Sündi mit
      einer JAHN-Erweiterung ausgestattet haben (hallo, Jürgen !) hier nur
      der Hinweis, daß bei dieser Erweiterung dummerweise auf der
      Empfangsseite ein falscher Wert für den ALL NOTES OFF-Befehl
      implementiert wurde.
      Bei diesen DX-7-Modellen muß man also immer noch die Funktion
      'ALL NOTES OFF PER NOTE' benutzen !!!

   *> 'RESET ALL CONTROLLERS'

      Sendet einen RESET ALL CONTROLLERS-Befehl.

   *> 'RESET EACH CONTROLLER'

      Es gibt auch hier zahlreiche ältere MIDI-Instrumente, die ebenfalls den
      obigen Befehl nicht implementiert haben.

      Hierbei wird nun jeder einzelne MIDI-Controller auf seinen Initialwert
      gesetzt (meist 0, PitchBend und Panorama erhalten den Mittelwert MSB 64). 

      PITCH BEND ist zwar nach der MIDI-Norm nicht als CONTROLLER
      definiert, aber MIDI-PANIC versteht in diesem Fall unter dem Begriff
      CONTROLLER ganz allgemein eine Spielhilfe, was für die Praxis im
      Endeffekt unerheblich ist.

   *> 'SYSTEM RESET'

      Sendet eine SYSTEM RESET-Nachricht.

      Ich kenne allerdings noch kein MIDI-Gerät, das auf diesen Befehl auch
      entsprechend reagiert.

   *> 'TUNE REQUEST'

      Sendet eine TUNE REQUEST-Nachricht.

      Auch dieser Befehl ist sehr selten bei den mir bekannten MIDI-Geräten
      implementiert.

   *> 'SEND USER COMMAND'

      Sendet ein beliebiges Amiga-DOS-Kommando, das im weiter unten
      erläuterten MIDI-PANIC-PREFERENCES-Fenster eingegeben werden kann.

      Für nähere Erläuterungen zu Sinn und Zweck bitte das DOK.-File zu dem
      'MIDIToDos'-Programm lesen.

   *> 'SEND USER MESSAGE'

      Sendet eine beliebige MIDI-Nachricht, die vom Benutzer ebenfalls im
      weiter unten erläuterten MIDI-PANIC-PREFERENCES-Fenster eingegeben
      werden kann.

   *> 'MEGAPANIC'

      Sendet alle obigen MIDI-Nachrichten nacheinander auf dem gerade
      eingestellten MIDI-Kanal, bzw. auf allen Kanälen, entsprechend der
      Einstellung 'CURRENT' oder 'ALL'.

   *> 'MIDI INPUT CONTROL'

      Vergrößert das MIDI-PANIC-Fenster und erlaubt es, jeder Panic-Function
      eine MIDI-Note zuzuweisen - so können alle Aktionen über ein
      angeschlossenes MIDI-Keyboard ausgelöst werden.

      Hier eine kurze Erläuterung :

      **> 'MIDICHANNEL:'

      Hiermit legt man den MIDI-Empfangskanal für alle eintreffenden MIDI -
      Noteninformationen fest, die eine MIDI-PANIC-Funktion auslösen
      sollen.

      **> 'RECEIVE ON:'

      Ein Mausklick auf dieses Gadget vertauscht die Beschriftung zwischen
      'CURRENT' und 'ALL'.

      **> 'CURRENT'

          MIDI-Noteninformationen werden nur über den eingestellten
          Empfangskanal registriert.

      **> 'ALL'.

          MIDI-Noteninformationen werden auf allen MIDI-Kanälen empfangen.

      **> 'OFF'.

          Schaltet den MIDI-Noten-Empfang ganz ab.

      Den einzelnen MIDI-PANIC-Funktionen ordnet man auf folgende Weise
      MIDI-Trigger-Noten zu :

         -  Mit der Maus das entsprechende Gadget neben der jeweiligen
            Funktion anklicken.
         -  Mit den zwei Pfeil-Gadgets kann nun ein Notenwert eingestellt
            werden.
         -  Alternativ hierzu kann man auch die entsprechende Taste auf
            einem angeschlossenen MIDI-Keyboard betätigen.

      **> 'NOTE-QUALIFIER:'

          Es ist während des normalen Keyboard-Spiels überhaupt nicht
          wünschenswert, daß 'MIDI-PANIC' unkontrolliert Funktionen
          auslöst, nur weil man aus Versehen (oder auch nicht) auf dem
          Keyboard Tasten betätigt, die zuvor als Trigger-Notes für die
          einzelnen Funktionen definiert wurden.

          Zu Lösung dieses Problems gibt es einen sogenannten
          'MIDI-NOTE-QUALIFIER' - dies ist eine Art MIDI-'SHIFT'-Taste, die
          'MIDI-PANIC' auf das Eintreffen der eigentlichen Trigger-Note
          'scharf' macht.

          Den Noten-Wert des 'MIDI-NOTE-QUALIFIER' stellt man ebenfalls
          durch eine der beiden oben beschriebenen Methoden fest.

          Zur Verdeutlichung, hier ein Beispiel:

          Angenommen, man hat der Funktion 'ALL NOTES OFF' die Trigger-Note
          C 5 zugewiesen, wobei der 'MIDI-NOTE-QUALIFIER' mit einem D1
          angegeben wurde, so wird die Funktion erst dann ausgelöst, wenn
          'MIDI-PANIC' zuerst ein D 1 empfängt und SOFORT (!) darauf ein
          C 5.

          VORSICHT :

          Da auch 'MIDIToDos' die Möglichkeit bietet, verschiedene
          Funktionen über eine MIDI-Tastatur ferzusteuern, sollte man für
          beide Programme unterschiedliche 'MIDI-NOTE-QUALIFIER'-Werte
          einstellen.
          Siehe auch unter 'MIDIToDos.DOK' !

      **> 'RETURN'

          Hierdurch kehrt man wieder zum normalen Programmablauf zurück.

   *> 'MIDI-PANIC-PREFS'

      Hierdurch wird ein Voreinstellungs-Fenster geöffnet, in dem
      zahlreiche Programm-Parameter verändert werden können.

		**> 'REQUESTERS ?'

			 Schaltet das Erscheinen von reinen Informationsrequestern an/ab.

		**> 'COMMAND ?'

          Legt fest, ob beim Auslösen der Funktion 'MEGAPANIC' das im
          Nachfolgenden einzugebende DOS-Kommando gestartet werden soll
          oder nicht.

		**> 'MESSAGE ?'

          Legt fest, ob beim Auslösen der Funktion 'MEGAPANIC' die im
          Nachfolgenden einzugebende USER MIDI-Message ausgegeben werden
          soll oder nicht.

		**> 'SET'
		**> 'ADD'

          Diese beiden Gadgets dienen dazu, die Eingabe des DOS-Befehls und
          etwaiger File-Parameter zu erleichtern.

          Mit 'SET' wählt man über einen File-Requester den Pfad und den
          gewünschten Programm-/Befehlsnamen, der automatisch in das
          String-Gadget eingetragen wird.

          Mit 'ADD' wählt man über einen File-Requester nun Pfad und Namen
          eventueller File-Parameter für den zuvor ausgesuchten Befehl, die
          automatisch an das String-Gadget angehängt werden.

          Man sollte allgemein folgendes beachten:

          Es gibt hierbei grundsätzlich zwei Möglichkeiten, den DOS-Befehl
          auszuführen/zu starten, nämlich :

          SYNCHRON, bzw.
          ASYNCHRON .

          Im ersten Fall wartet 'MIDI-PANIC' immer darauf, daß das
          gestartete Programm auch beendet wird,
          im zweiten Fall kehrt 'MIDI-PANIC' sofort nach einem getriggerten
          Programmstart in den normalen Programmablauf zurück.

          Für den zweiten Fall, der in der Praxis eher erwünscht ist, muß
          allerdings in jedem String-Gadget zu Beginn folgendes angegeben
          werden :

                                  'RUN', bzw. 'C:RUN' ,
          also z.B. :
                            'C:RUN MIDI-Tools/MIDIKeyboard' .

		**> 'USER MIDI-MESSAGE:'

          Hier ist es möglich, eine eigene MIDI-Nachricht (Länge bis zu
          2060 Bytes) in Form von HEX-Bytes einzugeben, die durch die
          Funktion 'SEND USER MESSAGE' über MIDI ausgegeben wird.

          Das Eingabe-Format ist : 'HEX-BYTE HEX-BYTE HEX-BYTE '.
          HEX-Byte-Angaben müssen immer zweistellig eingegeben werden
          (z.B. : '7f 00 0a ') und von einem BLANK gefolgt sein.

		**> 'REC'

          Der Einfachheit halber können MIDI-Daten auch von einem
          angeschlossenen MIDI-Keyboard aufgezeichnet werden.

          Zum Beginn der Aufzeichnung ist somit 'REC' anzuklicken.

          Danach kann man die gewünschten MIDI-Events am Keyboard auslösen
          (Noteninformationen, Controller, Pitch Bend, SysEx,...) .
 
		**> 'STOP'

          Beendet die Aufzeichnung und zeigt nach kurzer Zeit alle
          empfangenen MIDI-Bytes im String-Gadget an.

		**> 'LOAD'
		**> 'SAVE'

          Hiermit kann man USER MIDI-MESSAGEs speichern und später wieder
          einladen.

		**> 'PRINT'

          Druckt eine USER MIDI-MESSAGE wahlweise auf einem Drucker oder
          auf dem Bildschirm aus.

		**> 'SAVE'

          Speichert sämtliche (!) vom Benutzer getroffenen Parameter -
          Einstellungen und Fenster-Positionen in eine Datei im S:-Verzeichnis
          ab, die beim nächsten Programmstart automatisch wieder eingelesen
          wird.

		**> 'HELP'

          Hierdurch öffnet sich ein Text-Fenster, aus dem weitere Informationen
          zum PREFERENCES-Fenster entnommen werden können.

		**> 'USE'

          Vom Benutzer getroffene Parameter-Einstellungen und Fenster-Positionen
          werden nicht abgespeichert und stehen nur bis zum Programmende zur
          Verfügung.

   *> 'ICONIFY'

      Öffnet auf den Workbench-Screen ein Mini-MIDI-PANIC-Fenster.
      Einmal anklicken und schon ist alles wieder da.
      Man kann allerdings durch das Close-Gadget des Mini-Fensters das
      Programm auch ganz verlassen.

      Viele Funktionen sind auch während des 'iconify'ten' Zustands
      entweder über die Tastatur oder über MIDI ansteuerbar.


                                    ***


      4.) EXTRAS:

   *> Bei Einstellung 'ALL' (siehe oben) wird in der Titelleiste des Windows
      angezeigt, auf welchem MIDI-Kanal gerade gesendet wird.
      Dieser Sende-Vorgang kann jederzeit durch Betätigung der rechten
      Maustaste unterbrochen werden.

   *> Viele Funktionen von MIDI-PANIC können auch über die
      Computer-Tastatur gesteuert werden. Um Genaueres hierüber zu
      erfahren, muß man 'H' oder 'HELP' drücken.

   *> Sämtliche MIDI-Tools-Programme können dank der 'midi.library' im
      Multitasking-Betrieb gleichzeitig und unabhängig nebeneinander
      laufen, was auch für sämtliche anderen PD-MIDI-Programme gilt, die
      auf diese Library zugreifen (z.B. der KAWAI K1-II-Editor von Andreas
      Jung, die MIDI-Tools von Jack Deckart, usw. - sind übrigens alle
      kürzlich auf FISH-PD erschienen).

      Neben MIDI-Sequenzern, wie den STEINBERG PRO 24 oder PASSPORT TRAX
      funktionieren die MIDI-Tools-Programme allerdings nicht - bei
      'Bars & Pipes' gibt es keine Probleme, solange man sich auf
      Sende-Funktionen beschränkt und dabei immer den Sequenzer als letztes
      MIDI-Programm startet.

   *> Für verschiedene Programmabschnitte gibt es zusätzliche HELP-Fenster,
      die durch das Drücken der HELP-Taste auf der Computer-Tastatur zum
      Vorschein gebracht werden können.

                                    ***


      5.) BUGS:


   *> MIDI-PANIC ist wie viele andere Amiga-Programme nicht für den Fall
      'designed', unter WB2.xx mit einer anderen als der Standard-Fontgröße
      von 8 Pixel zusammenzuarbeiten, tja ...

   *> Falls man im MIDI-PANIC-PREFS-Fenster 'PRINT' verwendet, um eine
      MIDI-USER-MESSAGE auszudrucken, so sollte man sicherstellen, daß der
      Drucker auch eingeschaltet ist, ansonsten wartet das parallel.device auf
      eine Antwort vom ahnungslosen Drucker und MIDI-PANIC wartet und wartet
      auf das parallel.device und wartet und wartet ...

                                    ***


      6.) FUTURE ENHANCEMENTS (OH, YEAH !) :


      -   AREXX-support
      -   bug-removing (?)
      -   built-in sequencer
      -   built-in desk-top-publishing--programm
      -   built-in drink, food and women

      any other suggestions ?


                                    ***


      7.) COPYRIGHT

      
      'MIDI-PANIC(V2.3)' ©1990/1991 Ilias Vassiliou.
      This is NOT public-domain, but feel free to copy it for YOUR OWN use !

      'MIDI-PANIC(V1.5)' ©1990 Ilias Vassiliou.
      This first release was public-domain (KICKSTART- PD 355) !
      Forget it !


                                    ***


      8.) THANKS TO


      JÜRGEN KRAUS
      (Crossinger), the great disco-king, for ideas, support,
      fresse', saafe' un' Musik mache',

      JAN REMBSER und MICHAEL MERKEL
      für ideas, support, fresse', saafe' un' Kombuster mache', sowie

      BILL BARTON
      für die ausgezeichnet funktionierende 'midi.library' und

      C.W. FOX & BRUCE DAWSON
      für die vieles erleichternde 'req.library'.


                                    ***


      9.) CONTACT, MONEY, FUN & LOVE :


      Ilias Vassiliou
      Lenzhahner Weg 34
      6272 Niedernhausen/Ts.



   =========================================================================

   COPYRIGHT AND DISTRIBUTIONS
   --------- --- -------------

   The MIDI Library is Copyright (c) 1987, 1988, Pregnant Badger Music.
   All rights reserved.  The MIDI Library may be used in and included with 
   commercial products with the following provisos:

      1. Pregnant Badger Music should be kept informed of your intent to 
         release products that make use of the MIDI Library so that we may 
         keep you informed of changes, updates, etc.

      2. The above copyright notice should be included somewhere in the 
         documentation accompanying any such commercial products.

   Bill Barton
   Pregnant Badger Music
   1111 El Sur Way
   Sacramento, CA  95864
   (916) 487-9472

   Bix:  peabody
   PLink:  peabody


   ==========================================================================

   RequesterLibrary/req.library



                       ReqLibrary, release 2.5
                      -------------------------
                       Sat Nov 24  02:53:12 1990


   Req.library  is Copyright ©1989, 1990 by C.W.  Fox and Bruce Dawson.
   It is freely  distributable.  No charge may be made for it's distribution,
   except for a nominal media fee.

   Feel free to distribute and use this library with your programs, along
   with a notice that the library is 'FreeWare'.

   ==========================================================================
