home *** CD-ROM | disk | FTP | other *** search
/ Maximum MODS / MaximumMODS.iso / amiga / delitracker_1.36 / docs / delitracker.dok < prev    next >
Text File  |  1996-01-23  |  56KB  |  1,498 lines

  1. ***************************************************************************
  2. *                DeliTracker                  *
  3. ***************************************************************************
  4.  
  5.                 ⌐ 1992 by Delirium
  6.              $VER: V1.36 (07.01.1993)
  7.  
  8.  
  9.  
  10. 1. INHALTSVERZEICHNIS
  11.  
  12.     1.INHALTSVERZEICHNIS
  13.  
  14.     2.RECHTLICHES UND VERTRIEB
  15.  
  16.     3.EINLEITUNG
  17.       3.1 Was ist DeliTracker ?
  18.       3.2 Wieso gerade DeliTracker benutzen ?
  19.  
  20.     4. START VON DELITRACKER
  21.       4.1 Systemanforderungen
  22.       4.2 Start vom CLI bzw. von der Shell
  23.       4.3 Start von der Workbench
  24.       4.4 Installation
  25.  
  26.     5. GRUNDKONZEPTE
  27.       5.1 Player
  28.       5.2 gepackte Module
  29.       5.3 Optionen und Voreinstellungen
  30.       5.4 Das Konfigurationsfile
  31.  
  32.     6. DIE STEUERUNG VON DELITRACKER
  33.       6.1 Das Kontroll Fenster
  34.         6.1.1 Gadgets
  35.         6.1.2 Menus
  36.         6.1.3 Shortcuts
  37.         6.1.4 Appwindow
  38.       6.2 Das Setup Fenster
  39.         6.2.1 Gadgets
  40.         6.2.2 Shortcuts
  41.       6.3 ARexx
  42.       6.4 Commodities
  43.  
  44.     7. PROBLEMECKE
  45.  
  46.     8. DIE PROGRAMIERUNG EXTERNER PLAYER
  47.       8.1 Das externe Player Konzept
  48.         8.1.1 Schematischer Aufbau von externen Playern
  49.         8.1.2 Schematischer Aufbau von Custom Modulen
  50.       8.2 Anpassung von Playern
  51.         8.2.1 Playerheader
  52.         8.2.2 Modulerkennung
  53.         8.2.3 Interrupts
  54.       8.3 Bedeutung der Tags
  55.       8.4 DeliTracker support Funktionen
  56.       8.5 Tips zur Anpassung
  57.  
  58.     9. DANKSAGUNGEN
  59.  
  60.  
  61.  
  62. 2. RECHTLICHES UND VERTRIEB
  63.  
  64.        DeliTracker (c) 1991 - 1993 by Peter Kunath und Frank Riffel.
  65.  
  66.   DeliTracker ist Shareware. Das hei▀t, wenn Ihnen dieses Programm gefΣllt
  67.   und Sie es ÷fters benutzen, erwarten wir von Ihnen, da▀ Sie sich bei uns
  68.   registrieren lassen. Die Sharewaregebⁿhr betrΣgt 20 DM bzw. $US 20 und ist
  69.   in BAR oder als EUROCHEQUE zu entrichten. Leider ist es uns nicht m÷glich,
  70.   andere Schecks (insbesondere Amerikanische) zu akzeptieren. Als Gegen-
  71.   leistung erhalten Sie die neueste Version auf Disk. Durch Ihren Beitrag
  72.   helfen Sie mit, die stΣndige Verbesserung dieses Tools zu sichern. Schicken
  73.   Sie die ausgefⁿllte Registrierkarte (Orderform) und den Betrag an:
  74.  
  75.                    Frank Riffel
  76.                 Merkstr. 27
  77.                   8129 Wessobrunn
  78.                   Germany
  79.  
  80.   An diese Adresse k÷nnen Sie auch schreiben, falls Sie irgendwelche Bugs
  81.   finden oder VorschlΣge und Bemerkungen zu diesem Programm haben. Wenn Sie
  82.   ein neues Soundsystem geschrieben haben und Interesse an der Anpassung
  83.   an DeliTracker haben, k÷nnen Sie sich natⁿrlich auch an uns wenden.
  84.  
  85.   DeliTracker darf auf Public-Domain-, Shareware-Disketten und Netzwerken
  86.   vertrieben und verbreitet werden, solange folgende Bedingungen
  87.   eingehalten werden:
  88.  
  89.     ░ alle Dateien mⁿssen komplett weitergegeben werden. Die zu
  90.       DeliTracker geh÷renden Dateien sind in 'Distribution' aufgelistet.
  91.  
  92.     ░ Programm und Dokumentation dⁿrfen in keiner Weise geΣndert werden.
  93.       Eine Ausnahme stellt das Packen dar, wenn sich der Orginalzustand
  94.       wieder zu 100% herstellen lΣ▀t (z.B. mit LhA).
  95.  
  96.     ░ Der Gesamtpreis fⁿr Disketten, auf denen DeliTracker enthalten ist,
  97.       und die ▄bertragungsgebⁿhren in Netzwerken dⁿrfen nicht h÷her als
  98.       8 DM bzw. $US 6 oder einen gleichwertigen Betrag in einer anderen
  99.       WΣhrung sein.
  100.  
  101.     ░ Jegliche kommerzielle Nutzung, insbesondere die Verbreitung von
  102.       DeliTracker zusammen mit kommerziellen Produkten, bedarf einer
  103.       schriftlichen Genehmigung der Autoren.
  104.  
  105.   Die Autoren ⁿbernehmen keinerlei Haftung fⁿr SchΣden, die durch die
  106.   Benutzung dieses Programms entstehen. Wir weisen in diesem Zusammenhang
  107.   aber darauf hin, da▀ DeliTracker sorgfΣltig entwickelt und getestet wurde.
  108.  
  109.  
  110. 3. EINLEITUNG
  111.  
  112.   3.1 Was ist DeliTracker ?
  113.  
  114.   DeliTracker ist ein flexibler Soundplayer, der viele verschiedene Sound-
  115.   formate abspielen kann. Man sollte ihn nicht mit einen Songeditor, MIDI-
  116.   sequenzer oder Digitizer verwechseln. Er ist ausschlie▀lich dazu gedacht,
  117.   komfortabel Musik abzuspielen. Die Player fⁿr die Unterstⁿtzung von
  118.   SoundTracker 15 instruments, SoundTracker 31 instruments, StarTrekker
  119.   ohne AM Sounds, NoiseTracker, ProTracker und Customplay Modulen sind
  120.   bereits intern eingebaut. Weitere Player k÷nnen bei Bedarf nachgeladen
  121.   werden. Das bedeutet, da▀ man sehr schnell, einfach und bequem neue Player
  122.   hinzufⁿgen kann.
  123.  
  124.  
  125.   3.2 Wieso gerade DeliTracker benutzen ?
  126.  
  127.   Es gibt eine Vielzahl von Grⁿnden, DeliTracker zu verwenden, dazu zΣhlen:
  128.  
  129.     ░ lΣuft zuverlΣssig im Multitasking
  130.     ░ábelegt die SoundkanΣle
  131.     ░ hat ein ARexx - Interface
  132.     ░ korrekte Abspielgeschwindigkeit auch auf NTSC-GerΣten
  133.     ░ vertrΣgt sich mit dem serial.device
  134.     ░ unterstⁿtzt mit xpk gecrunchte Soundfiles
  135.     ░áverwaltet bis zu 64 Player
  136.     ░álΣuft auf Turbokarten
  137.     ░ hat ein Configurationsfile
  138.     ░ enforcer und mungwall getestet
  139.     ░ volle Unterstⁿtzung von CLI und Workbench (Tooltypes)
  140.     ░ákinderleichte Bedienung durch ansprechende OberflΣche
  141.     ░áVolume/Balance - Regler
  142.     ░áMulitselect von Files
  143.     ░ Resident Startup vom CLI
  144.     ░ vollstΣndige PubScreen Unterstⁿtzung
  145.     ░ Aktivierung per Hotkey (Commodity)
  146.     ░ Module k÷nnen auch gespielt werden, indem ihr Icon in das
  147.       Kontrollfenster abgelegt wird (Appwindow).
  148.     ░áwurde zu 100% in Assembler geschrieben
  149.  
  150.  
  151. 4. START VON DELITRACKER
  152.  
  153.   4.1 Systemanforderungen
  154.  
  155.   DeliTracker erfordert ab Version 1.31 mindestens Kickstart und Workbench
  156.   2.04. Wir empfehlen jedoch die Verwendung von Workbench 2.1 (bzw. 3.0).
  157.   Bei diesen Versionen ist der ASL Filerequester wesentlich verbessert
  158.   worden unterstⁿtzt nun auch Multiselect. Wenn gepackte Module abgespielt
  159.   werden sollen, mⁿssen zusΣtzlich die 'xpkmaster.library' und die
  160.   entsprechenden Sub-Libraries installiert sein. Der Grundbedarf an
  161.   Speicher ist etwa 70KB, dazu kommt dann noch der Speicher fⁿr evtl.
  162.   zusΣtzlich geladene Player, die Modulliste und das entpackte Soundfile.
  163.   Natⁿrlich sollte Ihr Amiga an einem Monitor mit Lautsprechern oder besser
  164.   noch an einer Stereo Anlage angeschlossen sein.
  165.  
  166.  
  167.   4.2 Start vom CLI bzw. von der Shell.
  168.  
  169.   ╓ffnen sie ein CLI- oder Shellfenster und gehen Sie mittels des 'CD'
  170.   Befehls in das Verzeichnis, in dem sich DeliTracker befindet. Geben Sie
  171.   jetzt 'DeliTracker' ein (ohne die Hochkommata !) und drⁿcken Sie die
  172.   Return-Taste. DeliTracker wird nun geladen und gestartet. Da DeliTracker
  173.   sich selbst vom CLI l÷st, mu▀ er nicht mit 'run' oder 'runback' gestartet
  174.   werden, um das CLI-Window wieder schlie▀en zu k÷nnen. Alle unter 5.4
  175.   erlΣuterten Optionen k÷nnen beim Start angegeben werden. Bei falschen
  176.   Eingaben oder ungⁿltigen Optionen wird ein Hilfstext ausgegeben.
  177.  
  178.   Beispiel: 'DeliTracker config DT.config volume 32 filter no'
  179.  
  180.   Startet DeliTracker mit dem Konfigurationsfile 'DT.config', schaltet den
  181.   Lowpass Filter ab (nicht beim A1000) und setzt die LautstΣrke auf 32.
  182.  
  183.  
  184.   4.3 Start von der Workbench
  185.  
  186.   ╓ffnen Sie den Ordner, in dem sich DeliTracker befindet und starten Sie
  187.   das Programm durch einen Doppelklick auf dessen Icon. Mit dem 'Info'-item
  188.   aus dem Workbench- bzw. Iconmenu (je nach Kickstart) k÷nnen alle unter
  189.   5.4 erklΣrten Optionen als ToolTypes eingetragen werden. Dabei ist jedoch
  190.   zu beachten, da▀ die Optionen von den Argumenten durch '=' getrennt
  191.   werden. Ungⁿltige Optionen werden beim Start von der Workbench ignoriert.
  192.   DeliTracker kann natⁿrlich auch als 'Default Tool' angegeben werden.
  193.  
  194.   Beispiel:    Config=DT.config
  195.         PrefWinXY=0/11
  196.         Volume=43
  197.         CX_Popup=NO
  198.  
  199.   Diese Tooltypes bewirken, da▀ als Konfigurationsdatei 'DT.config'
  200.   geladen und die LautstΣrke auf 43 gesetzt wird. Die Koordinaten fⁿr
  201.   das Setupfenster werden auf Position 0/11 gestellt. Das Kontrollfenster
  202.   wird ⁿberhaupt nicht ge÷ffnet.
  203.  
  204.  
  205.   4.4 Installation
  206.  
  207.   Falls Sie schon im Besitz einer Σlteren Version von DeliTracker sind,
  208.   sollten Sie diese (bis auf evtl. selbstgeschriebene Player) vor der
  209.   Installation der neuen Version komplett l÷schen.
  210.  
  211.   Kopieren Sie dann DeliTracker in ein Verzeichnis Ihrer Wahl. In dieses
  212.   Verzeichnis mⁿssen Sie jetzt nur noch die 'DeliPlayers' Schublade
  213.   kopieren. Wir schlagen vor, da▀ Sie selten oder (noch) nicht ben÷tigte
  214.   Player von DeliPlayers/ nach DeliPlayers/PlayerStore/ kopieren. Sie
  215.   k÷nnen die Player dann bei Bedarf nachladen. Hinweis: Jeder Player,
  216.   der sich direkt im 'DeliPlayers' Verzeichnis befindet, wird beim Start
  217.   automatisch geladen. Das hei▀t aber auch, da▀ er Speicher ben÷tigt.
  218.   Wenn Sie gepackte Module besitzen mⁿssen Sie noch die XPK Libraries
  219.   installieren. Sollten sie sich noch nicht in Ihrem LIBS: Verzeichnis
  220.   befinden, k÷nnen Sie diese automatisch installieren lassen. CopyLibs
  221.   kopiert nach einem Doppelklick auf das Icon die powerpacker.library
  222.   und die XPK Libraries nach LIBS:.
  223.  
  224.  
  225. 5. GRUNDKONZEPTE
  226.  
  227.   5.1 Player
  228.  
  229.   Mit DeliTracker ist es m÷glich, einzelne Player nachzuladen. Ist ein
  230.   solcher Player geladen worden, erkennt und spielt DeliTracker die Module,
  231.   die von diesem Player unterstⁿtzt werden. Derzeit k÷nnen maximal 64
  232.   externe Player nachgeladen werden. Dies sollte jedoch erst mal fⁿr eine
  233.   Weile reichen. Beim Start von DeliTracker werden alle Player, die sich im
  234.   Verzeichnis 'DeliPlayers' (b.z.w im Configfile gespeicherten Playerpfad)
  235.   befinden, geladen. ZusΣtzlich haben Sie jederzeit die M÷glichkeit einen
  236.   weiteren bzw. neueren Player nachzuladen. Dieses Playerkonzept ist legt
  237.   den Grundstein fⁿr die gro▀e FlexibilitΣt von DeliTracker. Einer der
  238.   Vorteile davon ist, da▀ der Benutzer eine einheitliche OberflΣche
  239.   anspricht, um die unterschiedlichsten Musikformate abzuspielen. Soweit
  240.   dies m÷glich ist, bleiben die gesamten M÷glichkeiten von DeliTracker
  241.   voll erhalten. Die ist z.B. besonders nⁿtzlich im Zusammenhang von Multi-
  242.   Media Anwendungen und ARexx. Um Speicher zu sparen ist es m÷glich, die
  243.   ben÷tigten Player erst bei Bedarf zu laden b.z.w unbenutzte Player wieder
  244.   zu entfernen. Durch die nachladbaren Player ist es wesentlich einfacher
  245.   und schneller m÷glich, neue Entwicklungen (Verbesserungen alter Player,
  246.   Anpassung neuer Player) zu verbreiten. Das Player Interface gibt dem
  247.   Anwender au▀erdem die M÷glichkeit, selbst externe Player zu schreiben.
  248.   Im Augenblick sind ProTracker/NoiseTracker/SoundTracker15/SoundTracker31
  249.   und StarTrekker ohne AM Sounds bereits intern in DeliTracker enthalten.
  250.   CustomPlay ist ebenfalls ein interner Player, der fⁿr spezielle Module,
  251.   die ihren Player bereits beinhalten, geschaffen wurde. Dabei ist zu
  252.   beachten, da▀ diese Module nicht gepackt werden dⁿrfen, weil sie, um eine
  253.   Relozierung zu erm÷glichen, mit LoadSeg() geladen werden! Alle externen
  254.   Player sind in 'Player.dok' aufgelistet.
  255.  
  256.  
  257.   5.2 gepackte Module
  258.  
  259.   Falls die xpkmaster.library V2 oder h÷her installiert ist, benutzt
  260.   DeliTracker deren Entpackroutinen. Ob Sie Soundmodule packen dⁿrfen,
  261.   k÷nnen Sie im PlayerInfo-Feld erfahren. Wenn dort 'Packable....NO'
  262.   steht, darf das Soundmodul auf keinen Fall gepackt werden, sonst wird
  263.   von DeliTracker nicht mehr erkannt. Bei 'Packable....YES' unterstⁿtzt
  264.   der jeweilige Player mit gr÷▀ter Wahrscheinlichkeit gepackte Module.
  265.   Zumindest kann in JEDEM Fall das von Ihnen angewΣhlte File gepackt
  266.   werden. Werden von diesem Player weitere Dateien nachgeladen, dⁿrfen
  267.   Sie diese m÷glicherweise nicht mehr packen. Lesen Sie dazu die zugeh÷rige
  268.   DeliPlayer Dokumentation.
  269.  
  270.   Hinweis: Custommodule dⁿrfen nicht gepackt werden, da sie im Gegensatz
  271.   zu normalen Files nicht mit Read() sondern mit LoadSeg() geladen werden
  272.   (Relozierung des Playercodes) ! Eine m÷glichkeit Custom-Module dennoch
  273.   zu packen ist die verwendung des XFH Filehandlers.
  274.  
  275.  
  276.   5.3 Optionen und Voreinstellungen
  277.  
  278.   Um eine flexible Konfiguration von DeliTracker zu erlauben, wurden
  279.   folgende Optionen eingefⁿhrt. Diese Optionen werden von DeliTracker als
  280.   KEYWORDS in TOOLTYPES, CLI Templates und in Konfigurationsdateien benutzt.
  281.   Die Gro▀- oder Kleinschreibung der Optionen ist unwichtig!
  282.  
  283.  
  284.   Option          Defaultwert und Beschreibung
  285.   -------------------      ----------------------------
  286.  
  287.   cx_priority <pri>      0 bzw. normale PrioritΣt
  288.               Setzt die PrioritΣt, mit der DeliTracker als
  289.               Commodity gefⁿhrt wird. Gⁿltige Werte sind
  290.               -128 bis 127.
  291.  
  292.   cx_popup <yes|no>      yes bzw. Fenster offen
  293.               Legt fest, ob das Kontrollfenster beim Start
  294.               ge÷ffnet wird. Wird 'no' angegeben bleibt das
  295.               Kontrollfenster geschlossen. Es kann bei Bedarf
  296.               dann mittels Hotkey, Commodities Exchange oder
  297.               ARexx ge÷ffnet werden.
  298.  
  299.   cx_popkey <string>      "" d.h. kein Hotkey
  300.               Hiermit lΣ▀t sich ein beliebiger Hotkey zum
  301.               ╓ffnen und Schlie▀en des Kontrollfensters
  302.               angeben. Ein Schlie▀en des Kontrollfensters ⁿber
  303.               Hotkey schlie▀t automatisch auch das Setup
  304.               Fenster. Gleiches gilt auch fⁿr Hide Interface.
  305.               Um einen Hotkey zeitweilig abzuschalten, kann
  306.               DeliTracker im Commodities Exchange Programm
  307.               auf INACTIVE gestellt werden.
  308.  
  309.   config <Datei>      "ENV:DeliTracker.config"
  310.               LΣdt die angegebene Datei beim Start als
  311.               Konfigurationsdatei.
  312.               Hinweis: Diese Option kann in Konfigurations-
  313.               dateien nicht angegeben werden !
  314.  
  315.   module <Datei>      Keine Datei bzw. die Modulliste ist leer.
  316.               Fⁿgt die angegebene Datei in die Modulliste ein.
  317.  
  318.   pubscreen <Screen>      "", d.h. der default PubScreen (meist Workbench)
  319.               Setzt den Namen fⁿr den PublicScreen, auf dem
  320.               sich DeliTracker ÷ffnen soll. Wenn der angegebene
  321.               Screen nicht verfⁿgbar ist (z.B. nicht existiert),
  322.               dann ÷ffnet sich DeliTracker auf dem derzeitigen
  323.               default PublicScreen.
  324.               Hinweis: Screennamen sind case-sensitive !
  325.  
  326.   playerpath <Pfad>      "DeliPlayers"
  327.               Legt den Pfad fest, aus dem DeliTracker die
  328.               externen Player nachlΣdt.
  329.  
  330.   windowxy<XPos>/<YPos>      0/0
  331.               Das Kontrollfenster wird an der neuen Position
  332.               ge÷ffnet. Gelingt dies nicht, so ÷ffnet sich das
  333.               Fenster bei 0/0.
  334.  
  335.   prefwinxy<XPos>/<YPos>  0/1
  336.               Das Setupfenster wird an der gewⁿnschten Position
  337.               ge÷ffnet. SchlΣgt dies fehl, so ÷ffnet sich das
  338.               Fenster bei 0/1.
  339.  
  340.   volume <Volume>      64 (volle LautstΣrke)
  341.               Setzt die LautstΣrke auf den angegebenen Wert.
  342.               Werte werden im Bereich von 0 bis 64 akzeptiert.
  343.  
  344.   balance <Balance>      0 (ausgewogene Balance)
  345.               Die Balance wird auf den angegebenen Wert
  346.               gesetzt. Werte von -64 (nur links) bis 64 (nur
  347.               rechts) sind gⁿltig.
  348.  
  349.   reqlines <Nummer>      0 (Standardeinstellung des Requesters)
  350.               Legt die Anzahl der Zeilen im Filerequester fest.
  351.  
  352.   subsong <Nummer>      0 bzw. erster Subsong
  353.               Falls das erste Modul in der Liste Subsongs
  354.               unterstⁿtzt, wird nicht der erste sondern der
  355.               angegebene Subsong gespielt.
  356.  
  357.   playing <yes|no>      yes bzw. Modul wird geladen
  358.               Legt fest, ob nach dem Start das erste Modul in
  359.               der Liste geladen werden soll.
  360.               Hinweis: Ob das Modul nach dem Laden sofort ge-
  361.               spielt wird, hΣngt von 'quick' (s. dort) ab!
  362.  
  363.   filter <yes|no>      no bzw. Filter aus
  364.               Schaltet den Amiga-internen Tiefpassfilter ein
  365.               oder aus. Es ist von Vorteil, den Filter ab-
  366.               geschaltet zu lassen, da dann Frequenzen ⁿber
  367.               7 kHz nicht mehr ausgefiltert werden, dies fⁿhrt
  368.               zu einer merklichen Klangverbesserung.
  369.               Hinweis: Dieser Schalter ist beim Amiga 1000
  370.               ohne Wirkung !
  371.  
  372.   quick <yes|no>      yes bzw. Modul wird sofort gespielt
  373.               Legt fest, ob ein Modul sofort nach dem Laden
  374.               oder erst nach explizitem Play (Gadget/Shortcut/
  375.               ARexx) abgespielt wird. Diese Option ist
  376.               hauptsΣchlich zur Synchronisation in ARexx-
  377.               Scripts gedacht.
  378.  
  379.   random <yes|no>      no bzw. sequentielle Reihenfolge
  380.               Legt fest, ob bei einer Next/Prev-Song Aktion das
  381.               nachfolgende bzw. vorhergehende oder ein zufΣllig
  382.               ausgewΣhltes Modul der Liste gespielt wird. Ein
  383.               einmal gespieltes Modul wird solange nicht mehr
  384.               gespielt, bis alle anderen Module in der Liste
  385.               gespielt wurden. Diese Vorgehensweise ist auch
  386.               unter dem Stichpunkt Shuffleplay bekannt. Diese
  387.               Option ist nur sinnvoll bei mehr als zwei Modulen
  388.               in der Modulliste.
  389.  
  390.   append <yes|no>      no bzw. die Modulliste wird vor jedem Selektieren
  391.               gel÷scht. Legt fest, ob bei jeder Fileauswahl
  392.               eine neue Liste angelegt werden soll oder die
  393.               Liste am Ende erweitert wird. Damit ist ein
  394.               Multiselect ⁿber mehrere Directorys m÷glich.
  395.  
  396.   fadeout <yes|no>      no bzw. kein Fading
  397.               Legt fest, ob bei einem Eject Ereignis der
  398.               aktuell spielende Song ausgeblendet werden soll
  399.               oder nicht. Diese Option ist nur bei Playern
  400.               wirksam, die eine LautstΣrkeneinstellung
  401.               unterstⁿtzen.
  402.  
  403.   songend <yes|no>      no bzw. kein Beachten des Songendes
  404.               Legt fest, ob das Songende beachtet wird oder
  405.               nicht. Einige Player k÷nnen DeliTracker
  406.               signalisieren, wenn das aktuelle Modul einmal
  407.               komplett gespielt wurde. Ist diese Option aktiv,
  408.               beachtet DeliTracker das Songende, d.h. das
  409.               aktuelle Modul wird gestoppt und dann eine
  410.               NextSong Aktion ausgel÷st. Bei nur einem Modul
  411.               in der Songliste wird dies nur gestoppt.
  412.  
  413.   timeout <Nummer>      0 bzw. kein Timeout
  414.               Legt die Zeitspanne (in Sekunden) fest, die ein
  415.               Modul spielt. Danach wird eine NextSong Aktion
  416.               ausgel÷st. Bei 0 ist diese Funktion abgeschaltet.
  417.  
  418.  
  419.   5.4 Das Konfigurationsfile
  420.  
  421.   Ein Konfigurationsfile ist eine Datei, in der mehrere Optionen mit den
  422.   gewⁿnschten Argumenten aufgefⁿhrt sind. Dabei ist zu beachten, da▀ die
  423.   'config'-Option als einzige nicht benutzt werden kann. Pro Zeile darf
  424.   nur eine Option verwendet werden. Eine Konfigurationsdatei kann entweder
  425.   mit den Save Optionen aus dem Setup Fenster oder manuell ertstellt werden.
  426.   Mit Hilfe von NewList k÷nnen sich Besitzer gro▀er Modulverzeichnisse eine
  427.   Modulliste eines kompletten Directorys erstellen. Tragen Sie dazu
  428.   'alias ModList NL -hTigfsF "module=\'%P\'" []' in Ihre Shell-Startup ein.
  429.   Der Output mu▀ nur noch in eine Datei umgeleitet werden.
  430.  
  431.   Beispiel fⁿr eine Konfigurationsdatei:
  432.  
  433.   windowxy=473/15
  434.   random=yes
  435.   songend=yes
  436.   timeout=300
  437.   reqlines=50
  438.   subsong=2
  439.   playerpath="Data:DeliPlayers"
  440.   module="Data:Modules/SonicArranger/MF__Slowmotion1.3"
  441.   module="Data:Modules/FutureComposer13/hidden part.pp"
  442.  
  443.   Beim Start von DeliTracker haben die Optionen von CLI und Workbench
  444.   PrioritΣt ⁿber ein Konfigurationsfile, d.h. die Einstellungen im
  445.   Konfigurationsfile werden dann durch die angegebene Option ersetzt.
  446.  
  447.   Bei Programmstart versucht DeliTracker das Konfigurationsfile
  448.   'ENV:DeliTracker.config' zu ÷ffnen. Ist diese Datei vorhanden, ⁿbernimmt
  449.   DeliTracker alle angegebenen Einstellungen daraus. Er lΣdt dann die
  450.   externen Player sowie das Modul und spielt es. Ist keine Konfigurations-
  451.   datei vorhanden, so wird versucht, externe Player aus dem Verzeichnis
  452.   'DeliPlayers' (im aktuellen Pfad) nachzuladen. Ist dieses Directory auch
  453.   nicht vorhanden, stehen dem Benutzer nur die internen Player zur
  454.   Verfⁿgung.
  455.  
  456.  
  457.  
  458. 6. DIE STEUERUNG VON DELITRACKER
  459.  
  460.   6.1 Das Kontroll Fenster
  461.  
  462.   Das Kontrollfenster ist das zentrale Bedienelement von DeliTracker, alle
  463.   Einstellungen, die das Modul betreffen, k÷nnen hier gemacht werden.
  464.  
  465.     6.1.1 Gadgets
  466.  
  467.     Dies ist eine ▄bersicht ⁿber die Funktionen der einzelnen Gadgets.
  468.     Wenn bestimmte Gadgets gerastert dargestellt werden, ist fⁿr den
  469.     aktuellen Player diese Option nicht verfⁿgbar. Das kann zum einen
  470.     bedeuten, da▀ die Funktion vom Player gar nicht unterstⁿtzt wird
  471.     (wie z.B Subsongs beim SoundTracker) oder zum anderen, da▀ der Player
  472.     noch nicht optimal angepa▀t ist.
  473.  
  474.     +---------+-+------------------------------------------------+-+
  475.     |          | |                          [] | | [15]
  476. [1] |     ?    + +------------------------------------------------+ +
  477.     |          | |                 []             | | [14]
  478.     +---+-----+-+--+-----+-----+-----+----+-----+-----+-----+----+-+
  479. [2] | + |     |       |     |     |     |      |    |     |        | |»»\ |
  480.     +---+  |< |     < |  << |  |> |  >> |    > |  >| |  [] |     ^  | |     | |
  481. [3] | - |     |       |     |     |     |      |    |     |     -  | +--+ |
  482.     +---+-----+----+-----+-----+-----+----+-----+-----+-----+------+
  483.       [4]    [5]  [6]   [7]     [8]   [9]  [10]  [11]    [12]  [13]
  484.  
  485.      [1] ÷ffnet bzw. schlie▀t das Setupwindow (siehe unten)
  486.  
  487.      [2] Faster: erh÷ht die Abspielgeschwindigkeit des aktuellen Moduls
  488.  
  489.      [3] Slower: verringert die Abspielgeschwindigkeit des aktuell
  490.      spielenden Musikstⁿcks.
  491.  
  492.      [4] Prev Song: wenn nur ein File angewΣhlt wurde und der Song mit
  493.      Kill entfernt wurde, wird er wieder eingeladen. Sind mehrere
  494.      Files selektiert, wird der VorgΣnger des aktuellen Songs
  495.      eingeladen (siehe auch Randomplay).
  496.  
  497.      [5] Prev Subsong: spielt den vorherigen Subsong.
  498.  
  499.      [6] Backward: der aktuelle Patternzeiger wird auf das vorherige
  500.      Pattern gesetzt. Wird gerade das erste Pattern gespielt, wird
  501.      er auf das letzte gesetzt.
  502.  
  503.  á   [7] Play/Pause: startet einen pausierenden bzw. gestoppten Sound oder
  504.      hΣlt den gerade spielenden Song an.
  505.  
  506.      [8] Forward: der aktuelle Patternzeiger wird auf das nachfolgende
  507.      Pattern gesetzt. Wird gerade das letzte Pattern gespielt, wird
  508.      er auf das erste gesetzt.
  509.  
  510.      [9] Next Subsong: spielt den nΣchsten Subsong. Manche Musikformate
  511.      erlauben es mehrere Melodien in einem Modul abzuspeichern, diese
  512.      und die 'Prev Subsong' Funktion erlauben das 'BlΣttern' in solchen
  513.      Modulen.
  514.  
  515.     [10] Next Song: bei nur einem angewΣhlten File wie bei 'Prev Song',
  516.      sonst wird der Nachfolger des aktuellen Songs eingeladen.
  517.  
  518.     [11] Stop Song: setzt die Abspielgeschwindigkeit und den Patternzeiger
  519.      auf den Startwert zurⁿck.
  520.  
  521.     [12] Kill Song: stoppt ggf. den Song und entfernt ihn aus dem Speicher.
  522.  
  523.     [13] Load Song: ÷ffnet den Filerequester. Wenn beim AuswΣhlen die SHIFT-
  524.      Taste gehalten wird, k÷nnen mehrere Files angewΣhlt werden. Diese
  525.      werden dann in eine zyklische Liste eingetragen. Nach Verlassen des
  526.      Requesters wird der erste ausgewΣhlte Song geladen und gespielt.
  527.      Alle weiteren k÷nnen ⁿber 'Next Song' bzw. 'Prev Song' erreicht
  528.      werden. Falls genⁿgend Speicher vorhanden ist, wird der aktuell
  529.      spielende Song erst gestoppt, wenn der angewΣhlte komplett geladen
  530.      wurde. Diese eingebaute Doublebuffering-Routine sorgt speziell bei
  531.      Floppybesitzern fⁿr Dauersoundgenu▀.
  532.  
  533.     [14] Balance-Regler: dieses Gadget dient zur Regelung der Balance.
  534.  
  535.     [15] Volume-Regler: Gadget fⁿr die LautstΣrke-Regelung
  536.  
  537.  
  538.     6.1.2 Menus
  539.  
  540.        Project
  541.         Load Module <A> L .........╓ffnet den Filerequester.
  542.         Play/Pause      .........Startet bzw. Pausiert das Modul.
  543.         Stop Playing      .........Stopt das aktuelle Modul.
  544.         Eject Module      .........Stoppt das aktuelle Modul und
  545.                        entfernt es aus dem Speicher.
  546.         =================
  547.         Prefs ...      .........╓ffnet das Setup Fenster.
  548.         =================
  549.         About ...   <A> ? .........╓ffnet den 'About' Requester.
  550.         =================
  551.         Quit        <A> Q .........Beendet DeliTracker.
  552.  
  553.        Control
  554.         Faster          .........Erh÷ht das Abspieltempo.
  555.         Slower          .........Verringert das Abspieltempo.
  556.         Forward          .........Springt ein Pattern vor.
  557.         Backward      .........Springt ein Pattern zurⁿck.
  558.         Next SubSong      .........Springt zum nΣchsten Subsong.
  559.         Prev Subsong      .........Springt zum vorherigen Subsong.
  560.         Next Module      .........LΣdt das nΣchste Musikstⁿck in
  561.                        in der Liste, falls RANDOMPLAY
  562.                        deaktiviert ist.
  563.         Prev Module      .........LΣdt das vorherige Modul (s.o.).
  564.  
  565.     6.1.3 Shortcuts
  566.  
  567.     Alle Funktionen des Kontroll Fensters lassen sich durch Tastatur-
  568.     abkⁿrzungen ausl÷sen. Um die Shortcut m÷glichst einprΣgsam zu machen,
  569.     wurden die Kontrollfunktionen auf Tasten des Ziffernblocks hierarchisch
  570.     zugeordnet. Zudem gibt es noch die M÷glichkeit, einen Hotkey zum ╓ffnen
  571.     und Schlie▀en des Kontrollfensters zu definieren (siehe cx_hotkey).
  572.  
  573.     * und <A> L Filerequester zur Modulauswahl ÷ffnen.
  574.     /        ÷ffnet Setupwindow.
  575.  
  576.     ] und )    nΣchsten angewΣhlten Song spielen (nur bei mehreren Files).
  577.     [ und (    VorgΣngersong spielen (nur bei mehreren Files).
  578.  
  579.     8        nΣchsten Subsong spielen.
  580.     7        vorherigen Subsong spielen.
  581.  
  582.     5        Patternzeiger auf nΣchstes Pattern setzen
  583.     6        Patternzeiger auf vorheriges Pattern setzen
  584.  
  585.     +        erh÷ht Abspielgeschwindigkeit
  586.     -        verringert Abspielgeschwindigkeit
  587.  
  588.     1        Stop Song (Song anhalten, Patternzeiger auf Anfang setzen)
  589.     0        Play/Pause (spielen bzw. anhalten der Musik)
  590.  
  591.     .        Song anhalten und seinen Speicher freigeben (Eject)
  592.  
  593.     9        verringert die LautstΣrke (neben -)
  594.     6        erh÷ht die LautstΣrke (neben +)
  595.  
  596.     2        verΣndert die Balance so, da▀ der linke Kanal lauter wird.
  597.     3        verΣndert die Balance so, da▀ der rechte Kanal lauter wird.
  598.  
  599.     <A> ?    ÷ffnet den 'About' Requester.
  600.     <A> Q    beendet DeliTracker.
  601.  
  602.     6.1.4 Appwindow
  603.  
  604.     Um die Modulselektion m÷glichst komfortabel zu halten, k÷nnen sie Icons
  605.     von Modulen und Modulschubladen auf dem Kontrollfenster ablegen. Die
  606.     Module werden dann behandelt, als seien sie im Filerequester selekitert
  607.     worden. Bei Schubladen werden alle Files in die Modulliste ⁿbernommen.
  608.     Files, bei denen es sich nicht um Module handeln kann, wie z.B '.info'
  609.     Files, werden ebenso wie Subdirectorys nicht eingelesen. Um diese
  610.     Funktion nutzen zu k÷nnen, mu▀ das DeliTracker Kontrollfenster natⁿrlich
  611.     auf der Workbench ge÷ffnet sein.
  612.  
  613.  
  614.   6.2 Das Setup Fenster
  615.  
  616.   Das Setupfenster dient zur Einstellung von globalen Parametern sowie
  617.   Playerspezifischen Einstellungen. Es kann auf mehrere Arten ge÷ffnet
  618.   werden: Setup Gadget im Kontrollfenster, ⁿber den Menⁿpunkt 'Prefs ...',
  619.   ⁿber ShortCut '/' oder ⁿber das ARexx Kommando 'openprefswin'. Um einen
  620.   Player zu aktivieren, wΣhlen Sie den Player im Playerrequester an. Darauf
  621.   werden im PlayerInfo-Feld alle verfⁿgbaren Informationen ⁿber diesen
  622.   Player angezeigt.
  623.  
  624.     6.2.1 Gadgets
  625.  
  626.     ADD         LΣdt den angewΣhlten Player und legt den Pfad fⁿr
  627.          externe Player fest. Ein schon geladener Player
  628.          gleichen Namens wird allerdings nur dann durch den
  629.          neuen Player ersetzt, falls seine Versionsnummer
  630.          kleiner als die des neu geladenen Players ist.
  631.  
  632.     DEL         L÷scht den selektierten Player, d.h. sein Speicher
  633.          wird freigegeben. Interne Player k÷nnen zwar ebenfalls
  634.          gel÷scht werden, jedoch wird deren Speicher nicht
  635.          freigegeben.
  636.  
  637.     Filter     siehe 5.4 Filter Voreinstellung
  638.  
  639.     Quick     siehe 5.4 Quick Voreinstellung
  640.  
  641.     Random     siehe 5.4 Random Voreinstellung
  642.  
  643.     Songend     siehe 5.4 Songend Voreinstellung
  644.  
  645.     Append     siehe 5.4 Append Voreinstellung
  646.  
  647.     Fadeout     siehe 5.4 Fadeout Voreinstellung
  648.  
  649.     Time     siehe 5.4 Timeout Voreinstellung
  650.  
  651.     Load Config     Eine Konfigurationsdatei laden und auswerten.
  652.  
  653.     Save Config     Schreibt alle aktuellen Einstellungen und die Modulliste
  654.          in eine Konfigurationsdatei.
  655.  
  656.     Save List     Schreibt nur die aktuelle Modulliste in eine
  657.          Konfigurationsdatei.
  658.  
  659.     Config     Falls vorhanden, wird die spezifische Konfigurations-
  660.          routine des angewΣhlten Players aufgerufen.
  661.  
  662.     OK         Schlie▀t das Setup-Fenster.
  663.  
  664.     Sie k÷nnen das Playerdirectory auch angeben, indem sie den Pfad in das
  665.     Stringgadget (links neben ADD) eingeben.
  666.  
  667.     6.2.2 Shortcuts
  668.  
  669.     Um auch hier die Tastaturkⁿrzel einprΣgsam zu gestalten, wurde, so weit
  670.     m÷glich, der Anfangsbuchstabe der Funktion als Shortcut gewΣhlt. Die
  671.     Tastaturkⁿrzel k÷nnen als Gro▀- und Kleinbuchstaben eingegeben werden.
  672.  
  673.     a        <A>dd (Filerequester zum Playerladen ÷ffnen).
  674.  
  675.     d        <D>el (selektierten Player entfernen).
  676.  
  677.     l        <L>oad (Konfiguartionsdatei mittels Filerequester laden).
  678.  
  679.     s        <S>ave (Konfiguartionsdatei speichern).
  680.  
  681.     c        <C>onfig (selektierten Player, wenn m÷glich, konfigurieren).
  682.  
  683.     o        <O>k (Setupwindow verlassen).
  684.  
  685.     q        <Q>uickstart umschaltem.
  686.  
  687.     f        <F>ilterzustand wechseln.
  688.  
  689.     r        <R>andommodus umschalten.
  690.  
  691.     p        A<P>pendmodus umschalten.
  692.  
  693.     e        Song<E>nd Erkennung umschalten.
  694.  
  695.     u        Fadeo<U>t umschalten.
  696.  
  697.     t        <T>ime(out) Gadget aktivieren.
  698.  
  699.  
  700.   6.3 ARexx
  701.  
  702.   Nahezu alle Funktionen von DeliTracker lassen sich auch ⁿber ARexx
  703.   steuern. Dies ist z.B. in Verbindung mit AmigaVision sehr nⁿtzlich.
  704.   DeliTracker kann ⁿber "rexx_DT" als Function Host angesprochen werden.
  705.   Folgende Kommandos stehen zur Verfⁿgung:
  706.  
  707.   quit            beendet DeliTracker
  708.  
  709.   filter <yes|no>    yes: Schaltet den Filter an.
  710.             no:  Schaltet den Filter ab.
  711.  
  712.   quickstart <yes|no>    yes: Schaltet die Quickstart-Funktion an.
  713.             no:  Schaltet die Quickstart-Funktion ab.
  714.  
  715.   random <yes|no>    yes: Schaltet Randomplay an.
  716.             no:  Schaltet Randomplay ab
  717.  
  718.   songend <yes|no>    yes: Eintreffende Songendsignale werden beachtet.
  719.             no:  Schaltet die Songend Erkennung ab.
  720.  
  721.   append <yes|no>    yes: Aktiviert den Appendmodus.
  722.             no:  Deaktiviert den Appendmodus.
  723.  
  724.   fadeout <yes|no>    yes: Aktiviert den Fadeoutmodus.
  725.             no:  Deaktiviert den Fadeoutmodus.
  726.  
  727.   timeout <SECS>    Timeout wird auf die angegebene Zeitspanne (SECS)
  728.             in Sekunden gesetzt. Bei SECS = 0 wird diese Option
  729.             abgeschaltet.
  730.  
  731.   volume <VOL>        Setzt Volume auf <VOL> (Bereich von VOL: 0 - 64)
  732.  
  733.   balance <BAL>        Setzt Balance auf <BAL>, 0 ist default, -64 nur
  734.             links, 64 nur rechts (Bereich von BAL: -64 bis 64)
  735.  
  736.   forward        NΣchstes Pattern spielen
  737.  
  738.   backward        Vorheriges Pattern spielen
  739.  
  740.   nextsong        NΣchsten Song spielen
  741.  
  742.   prevsong        Vorherigen Song spielen
  743.  
  744.   nextsubsong        NΣchsten Subsong spielen
  745.  
  746.   prevsubsong        Vorherigen Subsong spielen
  747.  
  748.   faster        Abspielgeschwindigkeit erh÷hen
  749.  
  750.   slower        Abspielgeschwindigkeit verrringern
  751.  
  752.   loadconfig [DATEI]    Konfigdatei [DATEI] laden, wenn [DATEI] angegeben
  753.             wurde, sonst Requester fⁿr 'Konfigdatei laden'
  754.             ÷ffnen.
  755.  
  756.   saveconfig [DATEI]    Konfiguration und Modulliste in [DATEI] sichern,
  757.             wenn [DATEI] angegeben wurde, sonst entsprechenden
  758.             Requester ÷ffnen.
  759.  
  760.   savelist [DATEI]    Modulliste in [DATEI] sichern, wenn [DATEI]
  761.             angegeben wurde, sonst entsprechenden Requester
  762.             ÷ffnen.
  763.  
  764.   loadplayer [PLAYER]    LΣdt den angegebenen Player, ansonsten wird der
  765.             Requester zum Player-Laden ge÷ffnet.
  766.  
  767.   deleteplayer <NUMMER> Entfernt den Player mit der angegebenen Nummer aus
  768.             der Playerliste. Bei diesem Kommando ist allerdings
  769.             zu beachten, da▀ die Module des gel÷schten Players
  770.             ab sofort nicht mehr erkannt werden.
  771.  
  772.   configplayer <NUMMER> Ruft die Konfigurationsroutine des dazugeh÷rigen
  773.             Players auf.
  774.  
  775.   playpause        Der aktuell spielende Song wird angehalten wenn er
  776.             spielt bzw. gespielt wenn er pausiert ist.
  777.  
  778.   stop            Stoppt den aktuell spielenden Song.
  779.  
  780.   playmod [MODUL]    Falls [MODUL] angegeben, wird es geladen und
  781.             abspielt, sofern es von einem Player erkannt wird.
  782.             Ansonsten ÷ffnet sich der Filerequester zur Datei-
  783.             auswahl.
  784.  
  785.   eject            Entfernt das derzeitige Modul aus dem Speicher.
  786.  
  787.   makelist [MODUL]    Falls [MODUL] angegeben ist, wird es an das Ende
  788.             einer internen Modulliste angehΣngt. Wird es nicht
  789.             angegeben, dann wird die interne Modulliste unter
  790.             Berⁿcksichtigung des Append-Flags zur aktuellen
  791.             Modulliste gemacht.
  792.  
  793.   playlist <NUMMER>    Spielt das Modul mit der angegebenen Listenposition.
  794.  
  795.   pubscreen <SCREEN>    Schlie▀t alle offenen DeliTracker Fenster auf dem
  796.             derzeitigen Screen und versucht, das Kontrollfenster
  797.             auf dem PubScreen mit dem Namen <SCREEN> wieder zu
  798.             ÷ffnen.
  799.  
  800.   openmainwin        ╓ffnet das Kontrollfenster
  801.  
  802.   closemainwin        Schlie▀t das Kontrollfenster (nun kann DeliTracker
  803.             nur noch von ARexx aus gesteuert werden).
  804.  
  805.   openprefswin        ╓ffnet das Setup-Fenster
  806.  
  807.   closeprefswin        Schlie▀t das Setup-Fenster
  808.  
  809.  
  810.   status <group> <dependent>  Gibt den aktuellen Status zurⁿck. Dabei
  811.             werden die drei Gruppen Globale Einstellungen (g),
  812.             ModulabhΣngige Einstellungen (m) und Playerab-
  813.             hΣngige Einstellungen (p) unterschieden. Je nach
  814.             Gruppe mⁿssen evtl. weitere Argumente ⁿbergeben
  815.             werden.
  816.  
  817.   <group> =    g :    Global
  818.  
  819.     <dependent>  = <cmd>
  820.  
  821.            <cmd>        Bedeutung    und    Returnwert
  822.  
  823.         ver        DeliTracker Version    Zahl
  824.         dir        Playerverzeichnis    String
  825.         num        Playeranzahl        Zahl
  826.         led        Filter-Zustand        <yes|no>
  827.         qst        Quickstart-Zustand    <yes|no>
  828.         rnd        Random-Zustand        <yes|no>
  829.         app        Append-Zustand        <yes|no>
  830.         fad        Fadeout-Zustand        <yes|no>
  831.         end        Songend-Zustand        <yes|no>
  832.         tim        Song-Timeout (sec)    Zahl
  833.         mwi        Kontrollfenster offen    <yes|no>
  834.         pwi        Setup-Fenster offen    <yes|no>
  835.         vol        derzeitige LautstΣrke    Zahl
  836.         bal        derzeitige Balance    Zahl
  837.         ply        Song spielt        <yes|no>
  838.         pub        gewⁿnschter PubScreen    String
  839.  
  840.   <group> =    m :    Module
  841.  
  842.     <dependent>  =    <cmd>
  843.  
  844.            <cmd>        Bedeutung    und    Returnwert
  845.  
  846.         dir        Modulverzeichnis    String
  847.         fil        Modulname        String
  848.         pnr        aktiver Player        Zahl
  849.         max        Module in Modulliste    Zahl
  850.         num        Position in Modulliste    Zahl
  851.  
  852.   <group> =    p :    Player
  853.  
  854.     <dependent>  =    <playernum> <cmd>
  855.  
  856.            <cmd>        Bedeutung    und    Returnwert
  857.  
  858.         nam        Playername        String
  859.         cre        Creatorname        String
  860.         ver        Versionsnummer        Zahl
  861.         vol        LautstΣrke verΣnderbar    <yes|no>
  862.         bal        Balance verΣnderbar    <yes|no>
  863.         jmp        Patternjump verfⁿgbar    <yes|no>
  864.         spd        Playspeed regelbar    <yes|no>
  865.         sub        Subsong verfⁿgbar    <yes|no>
  866.         cfg        Player konfigurierbar    <yes|no>
  867.         pck        Supports Packed Mods    <yes|no>
  868.  
  869.   Bei eckigen Klammern [...] kann ein Argument angegeben werden, bei
  870.   spitzen Klammern <...> mu▀ es angegeben werden.
  871.  
  872.   Hinweis: Fⁿr fast alle Kommandos existieren Beispiel Scripts. Alle
  873.   ARexx Kommandos dⁿrfen in Gro▀- oder Kleinschreibung verwendet werden.
  874.  
  875.  
  876.   6.4 Commodities
  877.  
  878.   Da DeliTracker ein Commodity ist lassen sich einige dafⁿr typische Dinge
  879.   mit dem Commodies Exchange Programm steuern. Dazu mⁿssen sie zuerst unter
  880.   'Verfⁿgbare Commodities' DeliTracker anwΣhlen. Das Cycle Gadget zeigt
  881.   ihnen an, ob der Hotkey zum ÷ffnen bzw. schlie▀en des Kontrollfensters
  882.   aktiv oder inaktiv ist. Um das Kontrollfenster zu ÷ffnen bzw. ggf. zu
  883.   aktivieren klicken sie auf 'Anzeige sichtbar'. Das 'Anzeige verborgen'
  884.   Gadget dient zum schlie▀en der DeliTracker Fenster. Ein Klick auf das
  885.   'Entfernen' Gadget bewirkt, das DeliTracker beendet wird. Wie bei
  886.   Commodities ⁿblich bewirkt ein BetΣtigen des Closegadgets nur ein
  887.   Schlie▀en des Fensters, jedoch kein Beenden des Programms.
  888.  
  889.  
  890. 7. PROBLEMECKE
  891.  
  892.   Symptom: Das Preferences Window lΣ▀t sich nicht ÷ffnen. ▄berprⁿfen Sie,
  893.   ob die H÷he des Screens, auf dem DeliTracker lΣuft, mindestens 190 Pixel
  894.   plus die Titelbarh÷he ist. Bei einem zu schmalen oder zu  niedrigen
  895.   Screen lΣ▀t sich nΣmlich das Preferences Window nicht ÷ffnen.
  896.   Gegenma▀nahme: Verkleinern Sie den Font (topaz 8) oder benutzen Sie
  897.   einen gr÷▀eren Screen.
  898.  
  899.   Ein Hinweis an alle Besitzer von Turbokarten (speziell 68030 und h÷her):
  900.   Obwohl DeliTracker selbst problemlos auf schnelleren Prozessoren lΣuft,
  901.   kann es bei einigen nicht sauber programmierten (externen) Playern zu
  902.   Problemen kommen. Das Timing mancher Abspielroutinen ist nΣmlich nur auf
  903.   den 68000'er zugeschnitten und verursacht dann ein Klirren oder Auslassen
  904.   von Noten. Zum Abstⁿrzen der Player oder gar von DeliTracker selbst kann
  905.   dies aber nicht fⁿhren. Auch in spΣteren Versionen von DeliTracker wird
  906.   es voraussichtlich keine turbofeste Version solcher Player geben, da es
  907.   oft fast unm÷glich ist, diese entsprechend umzuprogrammieren. Bei Playern,
  908.   die absolut auf die Interrupt Vectortabelle ($70 Vector/Audio-DMA Ende)
  909.   schreiben, kann es passieren, da▀ man nichts h÷rt, wenn das VBR-Register
  910.   geΣndert wurde. In der Playerdokumentation ist vermerkt, auf welche
  911.   Player dies zutrifft.
  912.  
  913.   Ein Hinweis an alle Besitzer von NTSC-Amigas und Amigas mit ECS-Denise:
  914.   Prinzipiell spielen alle Player sowohl auf PAL- als auch auf NTSC-GerΣten
  915.   gleich schnell, da die Abspielgeschwindigkeit durch einen CIA-B Interrupt
  916.   gesteuert wird. Einige (externe) Player ben÷tigen jedoch unbedingt einen
  917.   VBlank Interrupt. Da dessen Frequenz vom jeweiligen Videomodus abhΣngt,
  918.   spielt ein solcher Player im Productivity-, NTSC- oder PAL-Modus
  919.   unterschiedlich schnell.
  920.   Screens mit 16 Farben in Hires oder mit 2 Farben in SuperHires b.z.w.
  921.   Productivity ben÷tigen ca. 60% aller Buszyklen des ChipRam. Wenn dann
  922.   gleichzeitig ein besonders rechenintensiver Player (z.B. einer mit mehr
  923.   als 4 Stimmen) aktiv ist, steht das System fast still und der jeweilige
  924.   Player kann mangels Rechenzeit falsch spielen.
  925.  
  926.   Ein Hinweis an alle Modem-Besitzer:
  927.   Wenn ein Player den internen DeliTracker Timer-Interrupt benutzt, treten
  928.   keine ▄bertragungsfehler bei seriellen Transfers (getestet auf einem A500
  929.   mit NComm bis 19200 Baud) auf. Bei Playern, die selbst einen Timer-
  930.   Interrupt generieren, sind derartige St÷rungen nicht auszuschlie▀en.
  931.  
  932.  
  933. 8. DIE PROGRAMIERUNG EXTERNER PLAYER
  934.  
  935.   DeliTracker unterstⁿtzt sog. externe Player. Das sind Executables, die in
  936.   einem speziellen Format vorliegen und von DeliTracker nachgeladen werden
  937.   k÷nnen.
  938.  
  939.   8.1 Das externe Player Konzept
  940.  
  941.   Externe Player sind Executables (Objekt Files), die den Replaycode eines
  942.   Soundsystems enthalten. Am Anfang besitzen sie eine charakteristische
  943.   Playerstruktur. Diese Struktur wird mit dem Macro aus dem Includefile
  944.   'misc/deliplayer.i' erzeugt. Es gibt zwei Arten von externen Playern:
  945.   normale Player und Custom Module.
  946.  
  947.     8.1.1 Schematischer Aufbau von externen Playern
  948.  
  949.     Normale Player unterscheiden sich von Custom Modulen durch das
  950.     Vorhandensein einer Check Routine und das Fehlen des DTP_CustomPlayer
  951.     Tags. Desweiteren enthalten sie natⁿrlich keine Musikdaten :-)
  952.  
  953.     { Playerheader    }    Kennzeichnet das Object als Player.
  954.     { TagArray    }    Beschreibung, was der Player kann.
  955.     { Interfacecode }    Playername/Registerumsetzung/Checkcode u.Σ.
  956.     { Replaycode    }    Eigentlicher Musikabspielcode.
  957.     { evtl. Daten    }    und Daten
  958.  
  959.     8.1.2 Schematischer Aufbau von Custom Modulen
  960.  
  961.     Custom Module sind keine Module im herk÷mmlichen Sinn, sondern im
  962.     wesentlichen Player, die ein Spezialmodul beinhalten. Mit diesem Format
  963.     k÷nnen Sie auch die ausgefallensten Moduleformate leicht an DeliTracker
  964.     anpassen. Sollten fⁿr den Player jedoch mehrere Module existieren, ist
  965.     es in jedem Fall ratsam, einen richtigen Player zu schreiben.
  966.  
  967.     { Playerheader    }    Kennzeichnet das Object als Player.
  968.     { TagArray    }    Beschreibung, was der Player kann.
  969.     { Interfacecode }    Routinen zur Registerumsetzung u.Σ.
  970.     { Replaycode    }    Eigentlicher Musikabspielcode.
  971.     { evtl. Daten    }    und Daten
  972.     { SOUND DATEN    }    Das eigentliche Modul
  973.  
  974.  
  975.   8.2 Anpassung von Playern
  976.  
  977.   Es ist relativ einfach, eine Replayroutine an DeliTracker anzupassen.
  978.   Alles was Sie tun mⁿssen ist ein wenig Interfacecode zu schreiben. Dies
  979.   ist aber halb so wild, denn DeliTracker stellt ihnen viele hilfreiche
  980.   Routinen zur Verfⁿgung. Um ein neues Soundsystem anzupassen, ben÷tigen
  981.   Sie zum einen den Quellcode oder ein linkbares Objektfile der Replay-
  982.   routine, zum anderen sollten mindestens ca. 5 Module zum Testen der
  983.   Funktionstⁿchtigkeit des Players vorhanden sein.
  984.  
  985.     8.2.1 Playerheader
  986.  
  987.     Das PLAYERHEADER Macro generiert den Header, der das File als externen
  988.     Player identifiziert. Dieses Macro mu▀ angegeben werden und ganz am
  989.     Anfang des Players stehen. Als einziger Parameter ist ein Pointer auf
  990.     ein Tag Array einzutragen, in dem alle Funktionen stehen, die der
  991.     Player DeliTracker zur Verfⁿgung stellt. Bei allen Funktionsaufrufen
  992.     au▀er der Interruptroutine (DTP_Interrupt) enthΣlt a5 die Base. Globale
  993.     Variablen k÷nnen dadurch adressiert werden (siehe 'misc/deliplayer.i').
  994.     Da DeliTracker vor Aufruf einer Playerroutine (au▀er bei DTP_Interrupt)
  995.     alle Register sichert, dⁿrfen diese verΣndert werden.
  996.  
  997.     PLAYERHEADER <tagarray>
  998.  
  999.     tagarray    Pointer auf ein Tag Array, das mit TAG_DONE
  1000.             abgeschlossen sein mu▀. Tags, bei denen ti_Data NULL
  1001.             ist, werden ignoriert.
  1002.  
  1003.     8.2.2 Modulerkennung
  1004.  
  1005.     Damit DeliTracker die einzelnen Module unterscheiden kann, befindet
  1006.     sich in jedem Player eine Erkennungsroutine, die auf ein zugeh÷riges
  1007.     Modul testet. Diese Routine prⁿft auf Stellen im Modul, die bei allen
  1008.     Modulen eines Players gleich sind. So z.B. auf 'M.K.' bei Offset $438
  1009.     im NoiseTracker-Player. Bei Sound- und NoiseTracker ist nur das Modul
  1010.     abgespeichert, z.B. bei MarkII hΣngt vor jedem Modul noch die Replay-
  1011.     routine. Bei so einem Modul mⁿssen Sie auf signifikante Assembler-
  1012.     befehle testen. Ein Vergleich auf ein oder zwei Sprungbefehle, egal
  1013.     ob bra oder jmp, ist hier nicht ausreichend, da bei vielen Modulen
  1014.     dieses Typs Sprungtabellen am Anfang stehen und der Player m÷glicher-
  1015.     weise das falsche Modul erkennen k÷nnte, was in den meisten FΣllen zum
  1016.     Absturz fⁿhrt. Der Player mu▀ genau eine Checkroutine verwenden. Daraus
  1017.     ergeben sich zwei Grundtypen von Playern.
  1018.  
  1019.     a) Typ eins Player - in der Regel etwas komplexer
  1020.     Bei ihnen ist die Check1 Funktion implementiert.
  1021.  
  1022.     Vorteil:  Es lassen sich auch Player realisieren, die das Modul selbst
  1023.           nachladen.
  1024.     Nachteil: Gepackte Files werden nicht unterstⁿtzt.
  1025.  
  1026.     Dieser Player sollte nur fⁿr HΣrtefΣlle verwendet werden.
  1027.     (z.B: FTM, IFF-8SVX Player, der das Sample wΣhrend dem Spielen
  1028.      nachlΣdt, ...)
  1029.  
  1030.  
  1031.     b) Typ zwei Player - die einfachere Variante
  1032.     Bei ihnen ist die Check2 Funktion implementiert
  1033.  
  1034.     Vorteil:  Das Modul kann gepackt sein, der Player bemerkt davon nichts.
  1035.     Nachteil: Das Modul ist in jedem Fall im Chip-Memory.
  1036.  
  1037.     Es sollte im Normalfall dieser Playertyp verwendet werden.
  1038.  
  1039.     Egal ob Typ eins oder zwei, wenn der Player das Modul erkannt hat, mu▀
  1040.     er in d0.l=0 zurⁿckliefern, wenn nicht d0.l<>0.
  1041.  
  1042.     8.2.3 Interrupts
  1043.  
  1044.     Hier gibt es auch eine Einteilung in zwei verschiedene Typen.
  1045.  
  1046.     a) Player die den DeliTracker Interrupt verwenden
  1047.     Vorteil:  Der Player ist vom Videomodus unabhΣngig.
  1048.           Besitzt automatisch die Faster/Slower Funktion.
  1049.           Kein Aufwand fⁿr den Interrupt (Code + Interruptstruktur).
  1050.           Ist kompatibel zum serial.device
  1051.     Nachteil: Der Interrupt kommt nicht synchron zum VBlank. (Dies fⁿhrt
  1052.           nur in den seltensten FΣllen zu Problemen.)
  1053.  
  1054.     b) Player die ihren eigenen Interrupt erzeugen.
  1055.     Vorteil:  Es k÷nnen andere Interruptquellen benutzt werden
  1056.           (z.B. AudioIRQ).
  1057.     Nachteil: Erh÷hter Aufwand, bei VBlank nicht mehr unabhΣngig vom
  1058.           Videomodus.
  1059.  
  1060.     Wenn ein eigener Timerinterrupt verwendet wird, sollte die CIAB
  1061.     (wg. OS2.0) und die entsprechenden Resourcefunktionen verwendet werden.
  1062.     Au▀erdem ist es sehr sinnvoll die Replayroutine nicht direkt im CIA-B
  1063.     TimerInterrupt abspielen zu lassen, sondern im Timerinterrupt einen
  1064.     Soft-Interrupt mittels Cause() zu generieren. In diesem SoftInt kann
  1065.     man dann die eigentliche Replayroutine ablaufen lassen. So hat man den
  1066.     Vorteil, da▀ man wesentlich kompatibler zum serial.device ist. Dies
  1067.     liegt daran, da▀ SoftInt eine niedrigere PrioritΣt als der der RBF
  1068.     (Read Buffer Full) Interrupt hat d.h. erst wird der serielle Port
  1069.     bedient, dann erst die Replayroutine. Es wird davor gewarnt, direkt in
  1070.     die Interruptvektoren zu schreiben! Zur Erinnerung: vom Betriebssystem
  1071.     werden die Funktionen AddIntServer() und SetIntVector() zur Verfⁿgung
  1072.     gestellt!
  1073.  
  1074.  
  1075.   8.3 Bedeutung der Tags
  1076.  
  1077.   Au▀er den SystemTags (TAG_DONE, TAG_IGNORE, TAG_MORE, TAG_SKIP) dⁿrfen
  1078.   folgende Tags verwendet werden:
  1079.  
  1080.   DTP_CustomPlayer (BOOL) - dieser Tag deklariert einen Player als
  1081.         Customplayer.
  1082.         Bei Verwendung dieses Tags sind folgende Tags dann
  1083.         bedeutungslos:    DTP_PlayerVersion
  1084.                 DTP_PlayerName
  1085.                 DTP_Creator
  1086.                 DTP_Check1
  1087.                 DTP_Check2
  1088.                 DTP_ExtLoad
  1089.                 DTP_Config
  1090.                 DTP_UserConfig
  1091.  
  1092.   DTP_RequestDTVersion (WORD) - damit kann man sicherstellen, da▀
  1093.         mindestens eine bestimmte Version von DeliTracker
  1094.         vorhanden ist. Dieser Tag mu▀ angegeben werden, wenn
  1095.         bei den DeliTrackerGlobals neue Funktionspointer
  1096.         hinzugekommen sind und diese vom Player benutzt werden.
  1097.         ti_Data ist dabei die Playerrevision.
  1098.  
  1099.   DTP_RequestV37 (BOOL) - wenn dieser Tag vorhanden ist, wird der Player
  1100.         nur noch von der Kick 2.0 Version von DeliTracker geladen
  1101.         (d.h. dtg_GadToolsBase ist gⁿltig).
  1102.  
  1103.   DTP_PlayerVersion (WORD) - Tag, der die Revisionsnummer des Players
  1104.         enthΣlt. Bei zwei Playern mit dem gleichen Playernamen wird
  1105.         derjenige mit der gr÷▀eren Revisionsnummer geladen.
  1106.  
  1107.   DTP_PlayerName (STRPTR) - ti_Data enthΣlt den Pointer auf den Namen des
  1108.         Players. Dieser String kann zwar beliebig lang sein aber
  1109.         zur Zeit werden nur die ersten 24 Zeichen angezeigt. Dieser
  1110.         Tag mu▀ existieren!
  1111.  
  1112.   DTP_Creator (STRPTR) - Pointer auf den Namen des Autors. Dieser wird im
  1113.         Setupfenster im Playerinfofeld angezeigt. Dieser String
  1114.         kann $A als Zeilenumbruch enthalten.
  1115.  
  1116.   DTP_Check1 (FPTR) - Pointer auf eine Modulerkennungsroutine, die
  1117.         aufgerufen wird, wenn 1024 Bytes des Moduls geladen sind.
  1118.         Wird das Modul erkannt, liefert sie d0=0, ansonsten d0<>0.
  1119.  
  1120.   DTP_Check2 (FPTR) - Pointer auf eine Modulerkennungsroutine, die
  1121.         aufgerufen wird, wenn das komplette Modul geladen und evtl.
  1122.         entpackt ist. Wird das Modul erkannt, liefert sie d0=0,
  1123.         ansonsten d0<>0.
  1124.  
  1125.   DTP_ExtLoad (FPTR) - Pointer auf eine optionale Laderoutine fⁿr Module.
  1126.         Ist kein Fehler aufgetreten, wird d0=0 zurⁿckgegeben, sonst
  1127.         d0<>0. Hinweis: Achten Sie darauf, da▀ im Fehlerfall alle
  1128.         allocierten Ressourcen (Memory, Locks, ...) wieder
  1129.         freigegeben werden, da dann keine weiteren Playerfunktionen
  1130.         mehr angesprungen werden.
  1131.  
  1132.   DTP_Interrupt (FPTR) - Pointer auf eine Interruptroutine, die mittels
  1133.         eines Timerinterrupts standardmΣ▀ig alle 1/50 sec
  1134.         aufgerufen wird. Dies ist die Standardmethode, um mit der
  1135.         richtigen Abspielgeschwindigkeit im PAL/NTSC/Productivity
  1136.         Videomodus zu spielen. Wenn keine DTP_Faster/DTP_Slower
  1137.         Tags angegeben sind, ⁿbernimmt DeliTracker dies durch
  1138.         VerΣndern der Interruptfrequenz. Dieser Tag kann auch nicht
  1139.         existieren, dann mⁿssen aber DTP_StartInt/DTP_StopInt
  1140.         vorhanden sein !
  1141.  
  1142.   DTP_Stop (FPTR) - Pointer auf eine optionale Stoproutine. Wenn dieser Tag
  1143.         nicht vorhanden ist, verfΣhrt DeliTracker folgenderma▀en:
  1144.             Interrupt stoppen (DTP_StopInt)
  1145.             Sound Cleanup (DTP_EndSnd)
  1146.             Song initialisieren (DTP_InitSnd)
  1147.         Ansonsten hat diese Routine die Aufgabe, einen evtl.
  1148.         spielenden Song anzuhalten und so zu initialisieren, da▀
  1149.         dieser beim nΣchsten Starten des Interrupts von Anfang an
  1150.         zu spielen beginnt.
  1151.  
  1152.   DTP_Config (FPTR) - Pointer auf eine optionale Initialisierungsroutine.
  1153.         Diese wird nur einmal unmittelbar nach dem Laden des
  1154.         Players aufgerufen. M÷gliche Anwendungen: Laden einer
  1155.         playerspezifischen Konfigurationsdatei.
  1156.  
  1157.   DTP_UserConfig (FPTR) - Pointer auf eine optionale Initialisierungs-
  1158.         routine. Diese wird nur dann aufgerufen, wenn der User den
  1159.         Player im Setupfenster anwΣhlt und das 'Config' Gadget
  1160.         drⁿckt. M÷gliche Anwendungen: ╓ffnen eines Fensters zum
  1161.         Setzen weiterer Optionen wie z.B. Instrumentenpfad und
  1162.         Abspeichern einer playerspezifischen Konfigurationsdatei.
  1163.  
  1164.   DTP_SubSongRange (FPTR) - Dieser Tag sollte angegeben werden, wenn der
  1165.         Player MultiModule unterstⁿtzt. ti_Data zeigt dabei auf
  1166.         eine Routine, die als Returnwert in d0 die minimale und
  1167.         in d1 die maximale Subsongnummer zurⁿckgeben mu▀.
  1168.         Hinweis: Wenn m÷glich sollte dieser Tag (evtl. zusammen
  1169.         mit DTP_SubSongTest) anstelle von DTP_NextSong/DTP_PrevSong
  1170.         verwendet werden.
  1171.  
  1172.   DTP_InitPlayer (FPTR) - Pointer auf eine optionale Initialsierungs-
  1173.         routine, die aufgerufen wird, wenn ein Modul erfolgreich
  1174.         geladen wurde. Tritt kein Fehler auf, liefert sie d0=0,
  1175.         ansonsten d0<>0. Hier mu▀ die Allocation der AudiokanΣle
  1176.         stattfinden! (DeliTracker stellt dafⁿr eine eigene Routine
  1177.         zur Verfⁿgung) Falls der Player Multi-Module unterstⁿtzt,
  1178.         mu▀ hier dtg_SndNum(a5) auf die erste Subsongnummer gesetzt
  1179.         werden. Falls eine Routine fⁿr DTP_SubSongRange existiert,
  1180.         macht DeliTracker das automatisch (d.h. die Initialisierung
  1181.         von dtg_SndNum(a5) kann weggelassen werden).
  1182.  
  1183.   DTP_EndPlayer (FPTR) - Pointer auf eine optionale Cleanuproutine, die
  1184.         aufgerufen wird, wenn das Modul aus dem Speicher entfernt
  1185.         wird. Hier mu▀ die Freigabe der AudiokanΣle stattfinden!
  1186.         (DeliTracker stellt dafⁿr eine eigene Routine zur
  1187.         Verfⁿgung)
  1188.  
  1189.   DTP_InitSound (FPTR) - Pointer auf eine optionale Initialsierungsroutine.
  1190.         Diese mu▀ das Modul initialisieren, so da▀ beim Starten des
  1191.         Interrupts der Song von Anfang an zu spielen beginnt.
  1192.  
  1193.   DTP_EndSound (FPTR) - Pointer auf eine optionale Cleanuproutine. Diese
  1194.         kann z.B. die LautstΣrkeregister und die Audio-DMA
  1195.         rⁿcksetzen.
  1196.  
  1197.   DTP_StartInt (FPTR) - Pointer auf eine Initialsierungsroutine, die
  1198.         existieren mu▀, wenn DTP_Interrupt nicht vorhanden ist.
  1199.         In diesem Fall mu▀ hier der Sound gestartet werden.
  1200.  
  1201.   DTP_StopInt (FPTR) - Pointer auf eine Cleanuproutine, die existieren mu▀,
  1202.         wenn DTP_Interrupt nicht vorhanden ist. In diesem Fall mu▀
  1203.         hier der Sound gestoppt werden.
  1204.  
  1205.   DTP_Volume (FPTR) - Pointer auf eine Funktion, welche die LautstΣrke neu
  1206.         setzt. Die Funktion wird aufgerufen, wenn die Volume neu
  1207.         gesetzt wird (Slider, ARexx) und beim Initialisieren des
  1208.         Moduls vor DTP_InitSnd. Die Mastervolume steht in
  1209.         dtg_SndVol(a5). Die Mastervolume ist dabei der maximale
  1210.         Volumewert. Die effektive Volume errechnet sich also
  1211.         durch: VOL_eff = (( dtg_Volume(a5) * modulevolume )>>6)
  1212.         NΣheres siehe Beispielsourcen.
  1213.  
  1214.   DTP_Balance (FPTR) - Pointer auf eine Funktion, welche die Balance neu
  1215.         setzt. Die Funktion wird aufgerufen, wenn die Balance neu
  1216.         gesetzt wird (Slider, ARexx) und beim Initialisieren des
  1217.         Moduls vor DTP_InitSnd. Die Balance fⁿr die linken KanΣle
  1218.         steht in dtg_SndLBal(a5), fⁿr die rechten KanΣle in
  1219.         dtg_SndRBal(a5). Hinweis: Alle Player die Balance unterstⁿtzen
  1220.         k÷nnen auch Volume! Man verwendet dann die gleiche Routine
  1221.         zum Setzen der Volume&Balance. Die linke Volume errechnet
  1222.         sich wie folgt: (( dtg_Volume(a5) * dtg_SndLBal(a5) )>>6)
  1223.         Entsprechendes gilt fⁿr rechts.
  1224.  
  1225.   DTP_Faster (FPTR) - Pointer auf eine Funktion, die den Abspielvorgang
  1226.         beschleunigt.
  1227.  
  1228.   DTP_Slower (FPTR) - Pointer auf eine Funktion, die den Abspielvorgang
  1229.         verlangsamt.
  1230.  
  1231.   DTP_NextPatt (FPTR) - Pointer auf eine Funktion, die den Patternzeiger
  1232.         um eins erh÷ht.
  1233.  
  1234.   DTP_PrevPatt (FPTR) - Pointer auf eine Funktion, die den Patternzeiger
  1235.         um eins erniedrigt.
  1236.  
  1237.   DTP_NextSong (FPTR) - Pointer auf eine Funktion, die Subsongnummer auf
  1238.         den nΣchsten Subsong setzt und diesen spielt.
  1239.         (Falls vorhanden)
  1240.  
  1241.   DTP_PrevSong (FPTR) - Pointer auf eine Funktion, die Subsongnummer auf
  1242.         den vorhergehenden Subsong setzt und diesen spielt.
  1243.         (Falls vorhanden)
  1244.  
  1245.   DTP_SubSongTest (FPTR) - (ab Version 1.35) Dieser Tag wird nur ausgewertet,
  1246.         wenn schon der Tag DTP_SubSongRange angegeben wurde. ti_Data
  1247.         zeigt dabei auf eine Routine, die als Returnwert in d0 einen
  1248.         Boolschen Wert zurⁿckliefert. Dieser gibt an, ob der SubSong
  1249.         mit Nummer dtg_SndNum(a5) gⁿltig ist (d0=0) oder nicht
  1250.         (d0<>0). Dieser Tag ist nur bei den Playern n÷tig, bei denen
  1251.         nicht jeder SubSong (innerhalb der durch DTP_SubSongRange
  1252.         festgelegten Grenzen) benutzt ist.
  1253.  
  1254.  
  1255.   8.4 DeliTracker support Funktionen
  1256.  
  1257.   DeliTracker stellt zur Erleichterung der Playeranpassung einige
  1258.   Funktionen zur Verfⁿgung. Eine Funktion wird wie folgt aufgerufen:
  1259.  
  1260.     move.l    dtg_XXX(a5),a0
  1261.     jsr    (a0)
  1262.  
  1263.   Alle folgenden Funktionen au▀er dtg_SongEnd und dtg_SetTimer verwenden
  1264.   d0/d1/a0/a1 als Scratchregister. In a5 mu▀ bei allen Aufrufen (au▀er bei
  1265.   dtg_SongEnd und dtg_SetTimer) die Base stehen. Derzeit existieren
  1266.   folgende Funktionen:
  1267.  
  1268.   dtg_GetListData
  1269.  
  1270.     SYNOPSIS
  1271.         memory size = dtg_GetListData(number)
  1272.         a0     d0              d0.l
  1273.  
  1274.     FUNCTION
  1275.         Liefert Adresse und LΣnge eines mit LoadFile() geladenen
  1276.         Files.
  1277.  
  1278.     INPUTS
  1279.         number - Nummer eines Files beginnend mit 0 fⁿr das vom
  1280.              User selektierte File.
  1281.  
  1282.     RESULT
  1283.         memory - ein Pointer auf die Startadresse des Files im
  1284.              Speicher oder NULL im Fehlerfall.
  1285.         size - LΣnge des Files in Bytes bzw. 0 im Fehlerfall.
  1286.  
  1287.  
  1288.   dtg_LoadFile
  1289.  
  1290.     SYNOPSIS
  1291.         success = dtg_LoadFile(name)
  1292.  
  1293.     FUNCTION
  1294.         LΣdt und entpackt ggf. das angegebene File ins Chip-
  1295.         Memory. (Hinweis: diese Funktion ergΣnzt automatisch,
  1296.         falls das File mit dem angegebenen Namen nicht ge÷ffnet
  1297.         werden konnte '.pp','.im' und '.xpk')
  1298.  
  1299.     INPUTS
  1300.         name - der Filename steht in einem internen Buffer (seine
  1301.                Adresse steht in dtg_PathArray)
  1302.  
  1303.     RESULT
  1304.         success - alles ok d0.l=0, sonst d0.l<>0.
  1305.  
  1306.  
  1307.   dtg_CopyDir
  1308.  
  1309.     SYNOPSIS
  1310.         dtg_CopyDir()
  1311.  
  1312.     FUNCTION
  1313.         Kopiert das Directory des von User angewΣhlten Files an das
  1314.         Ende des Strings, auf den dtg_PathArray(a5) zeigt.
  1315.  
  1316.  
  1317.   dtg_CopyFile
  1318.  
  1319.     SYNOPSIS
  1320.         dtg_CopyFile()
  1321.  
  1322.     FUNCTION
  1323.         Kopiert den Filenamen des von User angewΣhlten Files an das
  1324.         Ende des Strings, auf den dtg_PathArray(a5) zeigt.
  1325.  
  1326.  
  1327.   dtg_CopyString
  1328.  
  1329.     SYNOPSIS
  1330.         dtg_CopyString(string)
  1331.                    a0
  1332.  
  1333.     FUNCTION
  1334.         Kopiert den String, auf den das Register a0 zeigt, an das
  1335.         Ende des Strings, auf den dtg_PathArray(a5) zeigt.
  1336.  
  1337.     INPUTS
  1338.         string - der Pointer auf den anzuhΣngenden String steht
  1339.              in a0
  1340.  
  1341.  
  1342.   dtg_AudioAlloc
  1343.  
  1344.     SYNOPSIS
  1345.         success = dtg_AudioAlloc()
  1346.  
  1347.     FUNCTION
  1348.         Belegt alle AudiokanΣle.
  1349.  
  1350.     RESULT
  1351.         success - alles ok d0.l=0, sonst d0.l<>0.
  1352.  
  1353.  
  1354.   dtg_AudioFree
  1355.  
  1356.     SYNOPSIS
  1357.         dtg_AudioFree()
  1358.  
  1359.     FUNCTION
  1360.         Gibt die mit dtg_AudioAlloc belegten AudiokanΣle wieder
  1361.         frei.
  1362.  
  1363.  
  1364.   dtg_StartInt
  1365.  
  1366.     SYNOPSIS
  1367.         dtg_StartInt()
  1368.  
  1369.     FUNCTION
  1370.         Startet den Soundinterrupt. (Falls er nicht schon lΣuft.)
  1371.         Falls DTP_Interrupt existiert, startet DeliTracker einen
  1372.         Timerinterrupt, ansonsten wird DTP_StartInt aufgerufen.
  1373.  
  1374.  
  1375.   dtg_StopInt
  1376.  
  1377.     SYNOPSIS
  1378.         dtg_StopInt()
  1379.  
  1380.     FUNCTION
  1381.         Stoppt den Soundinterrupt. (Falls er nicht schon angehalten
  1382.         ist.) Falls DTP_Interrupt existiert, stoppt DeliTracker
  1383.         seinen Timerinterrupt, ansonsten wird DTP_StopInt
  1384.         aufgerufen.
  1385.  
  1386.  
  1387.   dtg_SongEnd
  1388.  
  1389.     SYNOPSIS
  1390.         dtg_SongEnd()
  1391.  
  1392.     FUNCTION
  1393.         Signalisiert DeliTracker, da▀ das Modul einmal komplett
  1394.         gespielt wurde. Diese Funktion verΣndert keine Register
  1395.         und darf auch von Interrupts aufgerufen werden.
  1396.  
  1397.  
  1398.   dtg_CutSuffix
  1399.  
  1400.     SYNOPSIS
  1401.         dtg_CutSuffix()
  1402.  
  1403.     FUNCTION
  1404.         Entfernt am Ende des Strings, auf den dtg_PathArray(a5)
  1405.         zeigt ggf. die Endung '.pp', '.im' oder '.xpk'
  1406.  
  1407.  
  1408.   dtg_SetTimer
  1409.  
  1410.     SYNOPSIS
  1411.         dtg_SetTimer()
  1412.  
  1413.     FUNCTION
  1414.         Programmiert den CIA-Timer mit dem Wert, der sich in
  1415.         dtg_Timer(a5) befindet. Diese Funktion verΣndert keine
  1416.         Register und darf auch von Interrupts aufgerufen werden.
  1417.  
  1418.  
  1419.   8.5 Tips zur Anpassung
  1420.  
  1421.   Der Player sollte den Zustand der LED unbeeinflu▀t lassen, da im
  1422.   Setupwindow eine entsprechende Funktion existiert.
  1423.  
  1424.   Diese kleine Checkliste fⁿr sollte fⁿr die Player/Custommodul Anpassung
  1425.   erfⁿllt werden, damit der Player systemkonform ist und einwandfrei
  1426.   funktioniert:
  1427.  
  1428.     [ ] ist die Checkroutine prΣzise genug ?
  1429.     [ ] werden die AudiokanΣle richtig belegt und freigegeben ?
  1430.     [ ] wird aller allocierter Speicher freigegeben ?
  1431.     [ ] werden alle Locks wieder freigegeben ?
  1432.     [ ] enforcer und mungwall - Test bestanden ?
  1433.     [ ] werden alle denkbaren Fehler korrekt abgefangen ?
  1434.     [ ] wurde der Player mit 1.3, 2.0 und 3.0 getestet ?
  1435.     [ ] spielt der Player in allen Videomodi korrekt ?
  1436.  
  1437.   Problemecke:
  1438.  
  1439.   Symptom    m÷gliche Ursache            Beseitigung
  1440.  
  1441.   Absturz    a5 ⁿberschrieben
  1442.         Register nicht gesichert
  1443.         falsche oder zu spΣte Initialisierung
  1444.         Modul zu neu fⁿr den Player        prΣziserer Check
  1445.  
  1446.   klingt schrΣg Audiodaten nicht im Chipmem        Player ins Chipmem
  1447.         falsche Initialisierung
  1448.         Modul zu neu fⁿr den Player        prΣziserer Check
  1449.         Player ben÷tigt bestimmte Werte in    zusΣtzliche
  1450.         einigen Registern            Initialisierung
  1451.         unvertrΣglicher Videomodus
  1452.  
  1453.   kein Ton    Audio-DMA abgeschaltet
  1454.    bei >68000    Player schreibt direkt auf        Betriebssystem
  1455.         Interruptvektoren            benutzen
  1456.  
  1457.   fast keine    fehlerhaftes Interrupt-Handling        bei VBlank-IRQ:
  1458.   freie CPU-Zeit                    Z-Flag setzen
  1459.  
  1460.  
  1461. 9. DANKSAGUNGEN
  1462.  
  1463.   Unser besonderer Dank gilt folgenden Personen:
  1464.  
  1465.     unseren Testern Stefan Becker, Daniel, B÷rnie und Manfred fⁿr ihre
  1466.     Bugreports und guten VorschlΣge.
  1467.  
  1468.     Armin Sander (Oktalyzer) und Carsten Schlote (Sonic Arranger) fⁿr
  1469.     die Anpassung Ihrer Soundsysteme.
  1470.  
  1471.     J÷rg W. Schmidt fⁿr den Sourcecode von PlayFTM.
  1472.  
  1473.     Tomas Partl fⁿr seinen Player.
  1474.  
  1475.     DoIO fⁿr diverse Module, Demos und Diskmag-Werbung.
  1476.  
  1477.     allen auf IRC #amiga (Internet Relay Chat)
  1478.  
  1479.     Markus Illenseer und Christian Rattei fⁿr die Korrektur der Docs.
  1480.  
  1481.     Kevin Dackiw fⁿr die Verbesserung der NoisePacker Player und die
  1482.     Korrektur der englischen Docs.
  1483.  
  1484.     Florian Vorberger fⁿr viele nette Module und die Verbesserung
  1485.     einiger Player.
  1486.  
  1487.     U. Dominik Mⁿller fⁿr XPK und seine dauernde N÷rglerei :-)
  1488.  
  1489.     Colin Fox and Bruce Dawson fⁿr die phantastische req.library.
  1490.  
  1491.     Eric Kennedy fⁿr TstApp.rexx.
  1492.  
  1493.     und allen, die uns Replay-Routinen, Module oder eine Registration
  1494.     geschickt haben.
  1495.  
  1496.  
  1497.  
  1498.