@database MMV
@master MMV.guide
@$VER: 1.0
@author Sebastian Erbert
@(c) Sebastian Erbert
@index "Index"

@node "MAIN" "MMV - Anleitung"

                     MMV  -  MusikModuleVerwaltung
                     
                  Eine Dateiverwaltung für Soundmodule
                   
                              Version 1.01
                             
                             Dokumentation
                            
                   © Copyright 1996, Sebastian Erbert
                                            
                               FreeWare
                               
                  - EasyGUI © Wouter v. Oortmerssen -
                  - reqtools.library © Nico Francois-                  
                    - CrM.libray © Thomas Schwarz -      
              - protracker.library © Psilocybe Software - 



    @{"Disclaimer" link "Disclaimer" 0}                  Garantien
    @{"Lizenz" link "Lizenz" 0}                      Lizenzbestimmungen                       
    @{"Einführung" link "Einführung" 0}                  Der Sinn von MMV 
    @{"Systemanforderungen" link "need" 0}         Was braucht man für MMV
    @{"Installation" link "Installation" 0}                Installationshinweise
    @{"Benutzung" link "Benutzung" 0}                   Wie benutzt man MMV
    @{"Allgemeines" link "Allgemeines" 0}                 Ein paar allgemeine Worte
    @{"ARexx" link "ARexx" 0}                       MMV und ARexx
    @{"Geschichte" link "History" 0}                  Die Entstehung von MMV          
    @{"Danksagungen" link "Danke" 0}                Die Dankesreden
    @{"ToDo" link "todo" 0}                        Was noch zu tun ist
@endnode

@node "Disclaimer" "Disclaimer"

Disclaimer
----------

 Es wird keine Garantie gegeben, daß alle Programmteile, die in dem Paket
 enthalten sind auch 100%ig zuverlässig sind. Sie benutzen dieses Programm,
 den Quelltext, die Dokumentation und alle restlichen Teile auf eigene
 Gefahr. Der Autor kann auf @{i}keinen@{ui} Fall für irgendwelche Schäden haftbar
 oder verantwortlich gemacht werden, die durch die sachgemäße oder unsach-
 gemäße Anwendung jeglicher Programmteile direkt oder indirekt entstehen.

@endnode

@node "Lizenz" "Lizenz"

Lizenz
------

 MMV und all sein Programmteile zusammen sind "freely distributable", aber
 das Copyright liegt @{"mir" link "Autor"} bzw. bei den genannten Personen.
 Dies bedeutet, daß es von jedem kopiert werden darf, solange er nicht
 mehr als eine angemessene Kopiergebühr dafür verlangt.

 MMV darf nur kopiert und weitergegeben werden solange alle zugehörigen
 Programmteile enthalten sind, diese nicht verändert wurden und die
 Copyright-Notizen überall vorhanden sind.
 
 Wenn jemand irgendwelche nützlichen Abschnitte im meinem Quelltext findet,
 so können diese kopiert und dann frei benutzt und verändert werden, solange
 dies nicht zu kommerziellen Zwecken dient.
 Alle Programmteile dürfen ausschließlich zu nicht kommerziellen Zwecken be-
 nutzt werden, anderweitig ist eine schriftliche Genehmigung des Autors
 notwendig.

@endnode

@node "Einführung" "Einführung"

Einführung
----------

 MMV steht für MusikModuleVerwaltung. Der Name mag zwar nicht besonders
 hübsch klingen, aber ein besserer fiel mir nicht ein, und dafür gefällt
 mir die Abkürzung umso besser. Außerdem umschreibt der Name genau das,
 was MMV macht.
 Es ist eine spezielle Dateiverwaltung für Soundmodule aller Art.  Wenn man
 nun hunderte Megabytes an Modules hat, entsteht irgendwann ein Chaos, man
 weiß nicht mehr wo ein bestimmtes Module steckt, und/oder man hat etliche
 Modules doppelt. Als dieses Problem bei mir in Erscheinung trat (mittler-
 rweile ist es akut) habe ich mich dazu entschlossen, es zu lösen, sprich
 eine Verwaltung mußte her. Anfang 1994 habe ich angefangen, meine Idee lang-
 sam umzusetzen und mit der Zeit wurde das Programm immer besser und
 leistungsfähiger.
 Anfang 1996 habe ich es dann angefangen es mit Amiga-E komplett neuzu-
 schreiben (MaxonPascal hat es einfach nicht mehr gebracht).

@endnode

@node "need" "Systemanforderungen"

Systemanforderungen
-------------------

        - mindestens OS2.04 (V37), 3.0 wird aber empfohlen, da einige Funk-
          tionen nur unter dieser Version nutzbar sind
        - ein 68000 reicht aus, besser aber 68020
        - 512KB Ram reichen zum Start aus, bei großen Datenmengen aber
          garantiert nicht mehr (je mehr Ram desto besser)
        - HiRes-Screen und proportionale Systemfonts werden empfohlen
        - folgende Libraries sind unbedingt nötig:
                - reqtools.library V38 (liegt bei)
                - gadtools.library (sollte eigentlich jeder haben)
                - rexxsys.library (sollte auch jeder haben)
        - CrM.library bzw. deren Demoversion (liegt bei), da sonst nicht mit
          gepackten Datenfiles gearbeitet werden kann
        - protracker.library (liegt bei), damit man ProTracker-Modules
          abspielen kann
        - Eagleplayer1.54 wird empfohlen, da die Datenaufnahme dann
          wesentlich einfacher ist
        
@endnode

@node "Installation" "Installation"

Installation
------------

 Man kopiert sich alle Libraries aus dem Libs-Ordner vom MMV in sein
'LIBS:' Verzeichnis, sofern man diese nicht schon hat.
 
 Fertig. Doppelclick aufs Icon und schon kanns losgehen.
 
@endnode

@node "Benutzung" "Benutzung"

Benutzung
---------

 Die Bedienung von MMV ist eigentlich ganz einfach, das meiste selbst-
 erklärend.

 Die Funktionen im einzelnen:

  GADGETS:
  ~~~~~~~~
  CLOSEWINDOW - Beendet das Programm sofort (!).

  ENDE  - Beendet das Programm ordnungsgemäß in jeder Lage.

  LADEN - Ein Filerequester erscheint, mit dem man eine zu ladende
          Datei auswählt. MMV erkennt ob es sich bei der Datei um
          MMV-Daten handelt.
          Event. vorhandene Daten werden nach voriger Sicherheitsabfrage
          gelöscht.

  SICHERN - Die Daten werden unter dem im Screenbar sichtbaren Namen
            abgespeichert.

  GRAFIK - Die Anzahl der verschiedenen Längen der einzelnen Modules werden
           grafisch veranschaulicht.

  LÄNGE - Die Größe aller Modules werden addiert und ausgegeben.

  DRUCKEN - Hiermit können die einzelnen Daten ausgedruckt werden.
            Zuerst hat man die Wahl für einen tabellarischen Ausdruck
            (sollte immer bei größeren Datenmengen gewählt werden) und
            einem 'normalem' Druck (braucht mehr Platz auf dem Papier,
            ist dafür aber vollständiger).
            Dann hat man die Wahl ob man nur den aktuellen Datensatz
            drucken will, alle Daten oder nur einen bestimmten Bereich.


  ERWEITERN - Erzeugt einen neuen (und leeren) Datensatz.

  Hat man einen leerem Datensatz erzeugt, so kann man seine Daten in die
  String- und Integergadgets eingeben.

  EINFÜGEN - Es wird ein neuer Datensatz in ein bereits vorhandenes
             Datenfeld einfügen (mit 'ERWEITERN' wird nur angehängt).
             Dazu wählt man mit den Cursorgadgets die entsprechende
             Stelle aus.

  LÖSCHEN - Hier kann der aktuelle Datensatz oder auch das gesamte Daten-
            feld gelöscht werden.
            Möchte nur bestimmte aber größere Bereiche löschen, so speichert
            man die anderen Teilbereiche ab ('Speichern von bis..') löscht
            alles und lädt die einzelnen Teilbereiche nacheinander wieder
            ein ('Anladen').

  VERGLEICH - Hier wird die Länge der einzelnen Modules miteindander
              verglichen  und doppelt vorhandene Längen werden ausgegeben.

  SUCHEN - Ein Requester erscheint, in dem man auswählt wonach gesucht
           werden soll (Name oder Länge).


  SORTIEREN - Hier kann man seine Daten nach dem Namen oder der Länge auf-
              steigend sortieren lassen.

  CURSORGADGETS:
                 >   - Ein Datensatz weiter nach vorne.
                 >>  - Zehn Datensätze weiter nach vorne.
                 >>> - Hundert Datensätze weiter nach vorne.
                 >|  - Letzter Datensatz.
                 |<  - Erster Datensatz.
                 <<< - Hundert Datensätze zurück.
                 <<  - Zehn Datensätze zurück.
                 <   - Ein Datensatz zurück.


  MENÜS - Projekt:
  ~~~~~~~~~~~~~~~~
  ÜBER - Ein Informationsrequester erscheint.

  LADEN - siehe entsprechendes Gadget

  ANLADEN - Funktioniert wie unter 'LADEN' beschrieben, nur werden die 
            event. vorhandenen Daten nicht gelöscht, sondern die neu
            geladenen Daten werden einfach hinten drangehängt.

  SICHERN - siehe entsprechendes Gadget

                
  SICHERN ALS - Ein Filerequester erscheint, womit man seine Daten ab-
                speichern kann.


  SICHERN VON BIS - Zwei Requester erscheinen, in denen man die Werte
                    eingibt, von wo bis wo abgespeichert werden soll.
                    Ansonsten wie bei Gadget 'SICHERN' beschrieben.

  GEPACKT SICHERN ALS - Alle vorhandenen Daten werden mit Hilfe der
                        CrM.library gepackt und können dann abgespeichert.
                        Bei größeren Datenmengen kann dies etwas dauern,
                        dafür ist aber die Packrate und die Entpackge-
                        schwindigkeit enorm.


  ICONISIEREN - MMV ikonfiziert sich zu einem AppIcon.

  DATEI LÖSCHEN - Ein Filerequester erscheint, mit dem man eine beliebige
                  Datei löschen kann.

  BEENDEN - Beendet das Programm nach voriger Sicherheitsabfrage.

  MENÜ - Spezial:
  ~~~~~~~~~~~~~~~
  EXTERNER VERGLEICH - Ein Filerequester erscheint, mit dem eine externe
                       Datei mit den internen Daten verglichen werden kann
                       (nach der Modulelänge). Eventuelle doppelt vorhan-
                       denen Modules werden ausgegeben.
                       
  PALETTE - Eine Farbpalette zum ändern der Screenfarben erscheint.

  TASKPRIORITÄT - Es kann die Priorität des Programms eingestellt werden.
                  Null für normales Arbeiten, +5 für ein Bevorzugung von
                  MMV (damit z.B. die Sortierzeit nicht ausufert, wenn
                  ein Raytracer im Hintergrund arbeitet) und -5, wenn
                  andere Programme wichtiger sind. Andere Werte im Bereich
                  von -15 bis +15 sind ebenfalls möglich.

  WB-ÖFFNEN/SCHLIEßEN - Versucht den Workbench-Screen zu öffnen oder zu
                        scließen, je nach dem, was vorliegt.

  DATENÜBERNAHME - Aktiviert, verändert es die nächste Menüfunktion.
                   Es wird dann erst ein neuer Datensatz erzeugt, dann die
                   Moduleinfo ausgelesen und zuletzt versucht das angege-
                   bene ARexx-Kommando auszuführen.
                                  
  EAGLEPLAYER AUSLESEN - Es wird versucht die Moduleinfo aus dem besagten
                         Player auszulesen (getestet mit EP-Version 1.54d).

  COLDREBOOT - Hiermit wird der Rechner nach einer Sicherheitsabfrage
               ordnungsgemäß resettet.

  Menü - Musik:
  ~~~~~~~~~~~~~
  LADEN - Lädt ein ProTrackermodule und spielt es ab.
  
  AUSWERFEN - Entfernt das Module aus dem Speicher.
  
  ABSPIELEN - Spielt das Module ab.
  
  STOPPEN - Beendet das Abspielen.
  
  AUS PFAD SPIELEN - Versucht die Datei im Stringgadget 'Pfad' zu laden
                     und abzuspielen.


  Menü - ARexx:
  ~~~~~~~~~~~~~
  ZIELPORT ÄNDERN - Requester zur Eingabe des Port- und Kommandonamen
                    erscheinen.

  AREXX-KOMMANDO - Es wird versucht, eine Rexx-Msg an den gewählten Port
                   mit dem entsprechenden Kommandostring zu senden.

  SKRIPT AUSFÜHREN - Ein Filerequester erscheint, mit dem man einen
                     beliebigen Arexx-Skript anwählt, der dann ausgeführt
                     wird. Dazu wird aber die Datei 'rx' benötigt, die
                     entweder im Ordner 'C:','Rexx:' oder 'SYS:Rexxc'
                     sein muß.

@endnode

@node "Allgemeines" "Allgemeines"

Fehler
------

 Fehler sind mir keine bekannt, aber möglicherweise steckt der Teufel doch
 irgendwo im Detail. Natürlich habe ich mich stark bemüht, alle Fehlerquel-
 len zu beseitigen. Außerdem habe ich das Programm eine zeitlang von 2
 Freunden testen lassen, und natürlich habe ich es während der gesamten
 Entwicklungsphase selber getestet. Auch habe ich MMV mit Enforcer über-
 prüft, Hits traten keine auf.

Testkonfigurationen
-------------------

 MMV wurde auf folgenden Rechnern auf Lauffähigkeit getestet:

 A1200/030/50 2MB Chip, 16MB Fast (Blizzard1230-III), Overdrive-CD, 1.2GB HD
 A1200/030/50 2MB Chip,  8MB Fast (Blizzard1230-IV), OverDrive-CD, 400MB HD
 A1200/030/28 2MB Chip,  4MB Fast (M-TEC Turbokarte), 250MB HD
 A1200/020/14 2MB Chip, 40MB HD
 A500 mit Kick2.04, 1MB Chip 1.8MB Fast
 A600 mit kick2.04, 2MB Chip, 60MB HD 

 
 Es sollte aber eigentlich auch auf allen anderen Amigas laufen, die
 die @{"Systemanforderungen" link "need"} erfüllen.

@endnode

@node "ARexx" "ARexx"

 MMV besitzt einen eingebauten ARexx-Port mit dem es über ARexx-Kommandos
 teilweise ferngesteuert werden kann. In dieser Version gibt es leider nur
 sehr wenig @{"Kommandos" link "Kommandos"}, die an den ARexx-Port von MMV ("MMV_REXX") gesendet
 werden können.
 
 Andererseits kann MMV über ARexx auch andere Programme, wie z.B. den
 Eagleplayer fernsteuern. Näheres dazu im Kapitel @{"Benutzung" link "Benutzung" 0} unter
 dem Menü 'ARexx'.
 
 Achtung:
           Falls man mit ARexx arbeiten möchte, muß immer das Programm
           'RexxMast' (SYS:System/RexxMast) gestartet worden sein,
           ansonsten läuft garn nichts.
           Am bestem packt man es sich in den WBStartup-Ordner.
          

@endnode

@node "History" "Geschichte"

Geschichte
----------

        - frühere unveröffentlichte MaxonPascal Version
 V1.0:         
        - erste fertige Programmversion
        
 V1.01:
        - Fehler in Sortierroutine beseitigt
        - größere Auswahl beim Sortieren
        - erweiterte Prefixerkennung bei der Datenübernahme vom Eagleplayer
        - Fehler Laderoutine für Modules beseitigt
    
@endnode

@node "Danke" "Danksagungen"

Ein Dankeschön geht an:

        Nico Francois für seine tolle reqtools.library
        
        Thomas Schwarz für die CrM.library
        
        Wouter van Oortmerrsen für den super E-Compiler und für seine
        Hilfe zu EasyGui
        
        Jörg Wach für seine ausführlichen Antworten auf viele meiner
        Fragen beim Umstieg auf Amiga-E
        
        Henryk "Buggs" Richter und Jan "Eagleeye" Blumenthal für Ihren
        tollen Eagleplayer
        
        Turbo und Marley von Infect für Ihren ExoticRipper, den besten
        Ripper überhaupt
        
        Falk "PackMan" Zühlsdorff für Tips und Anregungen
        
        Frank "Obi" Oberländer für Tips und Anregungen, sowie Betatesting
        
@endnode

@node "todo" "Was noch fehlt"
@next "todo"

 Nichts ist perfekt und MMV erhebt auch keinen Anspruch darauf.
 
 
 In dieser Version sind nur wenige ARexx-Kommandos enthalten, in der
 nächsten Version dann hoffentlich ein paar mehr.
 
 Ansonsten könnte @{"ich" link "Autor"} mir noch vorstellen z.B. die Datenfiles kodiert
 abzuspeichern, vielleicht auch noch XPK-Unterstützung für die Daten und
 den internen ProTracker-Player.
 
 Was und wieviel ich noch machen werde hängt hauptsächlich von den
 Reaktionen ab, die mir entgegenschlagen.

@endnode

@node "Kommandos" "ARexx-Kommandos"
@next "Kommandos"
@prev "Kommandos"

ARexx-Kommandos
---------------

                ENDE      - versucht das Programm zu beenden

                ENDE!     - beendet das Programm sofort

                ICONFY    - MMV ikonfiziert sich zu einem AppIcon

                SPEICHERN - speichert die aktuellen Daten

                ÜBER      - gibt ein paar Informationen aus

@endnode

@node "Autor" "Autor"
@next "Autor"
@prev "Autor"

Autor
-----

 Für konstruktive Kritik, Fragen, Probleme, Wünsche und Bugreports
 bin ich immer empfänglich.


 E-Mail:         SEBluebird@aol.com      (bevorzugt)

 Snail Mail:     Sebastian Erbert
                 Grünstraße 11
                 12555 Berlin
                 Germany

@endnode

@node "Index" "Index"
@next "Index"
@prev "Index"

@{"Allgemeines" link "Allgemeines" 0}
@{"ARexx" link "ARexx" 0}
@{"Autor" link "Autor" 0}
@{"Benutzung" link "Benutzung" 0}
@{"Danksagungen" link "Danke" 0}
@{"Disclaimer" link "Disclaimer" 0}
@{"Einführung" link "Einführung" 0}
@{"Geschichte" link "History" 0}
@{"Installation" link "Installation" 0}
@{"Lizenz" link "Lizenz" 0}
@{"Systemanforderungen" link "need" 0}
@{"ToDo" link "todo" 0}

@endnode

