PAULA ][ (Paula, die Zweite!) Ein Amiga-MODfile-Player fr den Atari TT & STE Version 2.4 15.9.1994 Shareware von: Pascal Fellerich Shareware ========= Ab der Version 2.0 ist Paula Shareware. Das bedeutet, daž Sie das Programm frei kopieren, weitergeben und testen drfen. Sobald Sie es aber regelm„žig nutzen, wird die Registrierung f„llig. Ursprnglich war Paula nur ein kleines Utility zum Abspielen von MODfiles, das ich innerhalb relativ kurzer Zeit erstellt habe. Da die Reaktionen auf die 1.x-Versionen (die Freeware waren und auch noch sind...) aber sehr positiv waren und viele Anregungen und Verbesserungsvorschl„ge kamen, habe ich Paula in grožen Teilen neugeschrieben. Da mittlerweile auch schon 'etwas mehr' Arbeit in diesem Programm drinsteckt, ist Paula nun Shareware geworden. Lesen Sie hierzu mehr im Abschnitt 'Registrierung'. Folgende Dateien geh”ren zum 'PAULA'-Paket und mssen immer zusammen weitergegeben werden: 1. PAULA.APP das Programm (kann auch den Namen PAULA.ACC oder PAULA.PRG tragen) 2. PAULA_D.TXT die deutsche Anleitung, ASCII Format 3. PAULA_E.TXT die englische Anleitung, ASCII Format 4. MP.TTP ModPlay: Module auch aus CLI's abspielen. 5. MP.C Der Sourcecode zu ModPlay 6. MP.PRJ Project-File fr Pure-C 7. CHECKMOD.TTP Prft Module auf Korrektheit und repariert kaputte Module, soweit dies m”glich ist. Falls Ihre PAULA-Version einen Schlssel(** Die Versionen 2.0 bis 2.3 und m”glicherweise auch Versionen ab 2.5 ben”tigen einen sogenannten 'Schlssel', damit es sich um eine richtige Vollversion handelt.**) ben”tigt: Die Datei 'PAULA.INF' darf nicht mit weitergegeben werden, da diese Datei unter anderem die Registrierdaten enth„lt. Selbstverst„ndlich sind alle Manipulationen an dem Programm und an den begleitenden Dateien untersagt. Die Verteilung ber Mailboxen und PD-Versender ist erlaubt; jedoch „ndert das nichts an den Registrierbedingungen. Alle Rechte an Paula liegen bei P. Fellerich. Kontaktadresse: Pascal Fellerich 45, rue des Genˆts L-3482 Dudelange (Luxembourg) Postscheckkonto: CCP 65407-29 Bankkonto: BIL 6-117/8499 E-Mail: 2:270/16.3 (Fido-Net) fellerich@fido.lu (Internet) Registrierung ============= Paula ist Shareware. Das bedeutet, daž bei regelm„žiger Benutzung eine Zahlung f„llig wird. Die Versionen 2.0 bis 2.3 wurden erst durch Eingabe eines speziellen, beim Autor erh„ltlichen Code zur Vollversion. Die Version 2.4 aber hat keinerlei solche Hindernisse eingebaut. Um die Zahlung des Sharewarebetrags zu erleichtern, gilt jetzt: Sie bestimmen selbst den zu zahlenden Betrag! Wenn Sie sich registrieren lassen wollen, schicken Sie mir: ú Ihre Anschrift (bitte leserlich): Name: (30 Zeichen maximal) Addr: (30 Zeichen maximal) City: (30 Zeichen maximal) ú Den Sharewarebeitrag, den Sie selbst festlegen, mit dem Vermerk, daž es um Paula geht. Der Einfachheit halber akzeptiere ich nur noch Bargeld oder šberweisungen in LUF oder BFR auf mein Konto. Sie erhalten dann den Schlssel zu Paula 2.x, der fr „ltere und eventuell auch folgende Versionen ben”tigt wird; die Mitteilung erfolgt schriftlich (Brief oder E-Mail). Bei Fragen und/oder Problemen mit Paula ][ helfe ich auch gerne weiter. Wozu Paula? ========== Paula spielt die sogenannten 'MOD-Files' auf dem DMA-Soundchip des STE/TT ab. Diese MODfiles, auch als 'Module' bezeichnet, stammen ursprnglich vom Amiga, der einen speziellen 4-Kanal Soundchip namens 'Paula' besitzt. Natrlich gibt es haufenweise Modul-player fr den Atari. Aber Paula ist einzigartig - aber berzeugen Sie sich selbst! Was kann Paula? =============== Um lange Beschreibungen zu vermeiden hier eine stichwortartige Aufz„hlung der 'Features' von Paula 2: ú Kompatibel zu wirklich allen MOD-Formaten, vom Uralt- Soundtracker Format ber Noisetracker bis zum Protracker, ohne Wenn und Aber. ú Drei Samplingfrequenzen zur Auswahl: 12.5, 25, 50 KHz (mit Petra auf ST's sind 6, 9.6 und 12 KHz m”glich) ú Lineare Interpolation der Samples zur Verbesserung der Klangqualit„t, in Echtzeit. ú Booster - verbessert den Signal-Rauschabstand um 6 dB. ú Tonh”henver„nderung ohne Beeinflussung der Geschwindigkeit. ú Geschwindigkeits„nderung ohne Beeinflussung der Tonh”he. ú Untersttzt LZ5 oder AFX gepackte Module. ú Echte und saubere GEM-Einbindung, dadurch auf allen TOS- Rechnern lauff„hig - auch unter MultiTOS/MiNT. ú Einfache und intuitive Bedienung. ú Untersttzt die Auswahlm”glichkeiten von Selectric¿ und Gemini. ú Programmierbar wie einfache CD-Spieler. ú Random: Mehrere Module werden in zuf„lliger Reihenfolge gespielt. ú Repeat-schalter; Module bzw. ganze Programme k”nnen wiederholt werden. ú Anzeige der Prozessorbelastung und der Position im Modul. Paulas Entstehungsgeschichte ============================ Als ich meinen TT bekam, wollte ich natrlich den neuen Soundchip testen - also habe ich mir einige MOD-Player fr den STE geholt. Nur liefen die meisten Player nicht auf dem TT oder aber sie produzierten einen eher miesen Sound. Was blieb mir anderes brig, als selbst einen Player zu schreiben. Aber das war einfacher gesagt als getan, denn aužer der STE/TT Soundhardware mužte ich auch noch die Amiga- Soundhardware kennen, da ich einen Uralt-Player vom Amiga (D.O.C. Abspiel-routine 2.0 vom Juni 1986) portieren wollte. Ein paar Wochen sp„ter, Ende Juli 1991 war's dann soweit - Paula 1.0 war fertig. Zwar kannte das Programm nur die Soundtracker-Kommandos aber es lief erst einmal. Anschliežend folgten noch einige Optimierungen und Verbesserungen (Version 1.5), aber dann war Schluž. Erst im April 92 nahm ich die Entwicklung infolge einer Diskussion in der Mailbox (ATARI.GER im Fidonet) wieder auf - es entstanden die Versionen 1.7 und 1.8. Mittlerweile war die Tonqualit„t ganz brauchbar geworden, aber mit dem Bedienungskomfort war es nicht weit her. Also begann ich mit der Entwicklung einer 'anst„ndigen' Benutzeroberfl„che fr den Player. Das war's dann... Systemvoraussetzungen ===================== Paula l„uft auf allen Atari-Computern, die 1. ein TOS-kompatibles Betriebssystem haben, mindestens aber TOS 1.4 2. eine STE-kompatible Soundhardware besitzen... oder den Sound- treiber PETRA installiert haben. Damit ein sinnvoller Hintergrundbetrieb m”glich ist, sollte der Computer m”glichst viel Rechenleistung haben. Auf einem einfachen 8 MHz STE ist der Hintergrundbetrieb zwar m”glich aber wenig sinnvoll (12.5KHz Ausgabe bei 50% Rechenzeitverbrauch). Ein 'voll aufgedrehter' Mega STE sollte es schon sein - dann ist bei 50% CPU- Zeit 25KHz Ausgabe m”glich. Damit Paula auch ST's ohne DMA-Hardware l„uft, ist ein spezieller Sound-Treiber n”tig, der die Funktionalit„t der DMA- Soundhardware nachbildet. Einen solchen Treiber wurde von Christian Limpach geschrieben, heižt 'PETRA' und liegt diesem Paket bei. Hinweise zur Benutzung finden Sie als Textdatei bei dem Programm. Installation ============ Paula kann als Accessory (Endung .ACC) oder als Programm (Endung .PRG oder .APP) gestartet werden. Im Allgemeinen ist der Accessory-Betrieb vorzuziehen. Natrlich kann Paula auch von Chameleon geladen werden. Unter MultiTOS oder Magix kann Paula aber auch als Programm im Hintergrund laufen. Aužerdem ist es empfehlenswert, XCONTROL gleich mit zu installieren (falls nicht schon vorhanden), um Lautst„rke, Tiefen, H”hen und Balance einstellen zu k”nnen. Dann sollte der Rechner noch an die Stereoanlage angeschlossen sein, damit Ihre Mitbewohner m”glichst effektiv in ihrer Nachtruhe gest”rt werden k”nnen. Anleitung ========= Nachdem Paula gestartet worden ist, erscheint ein Fenster mit dem Haupt-Dialog. Dieser ist optisch in 6 Bereiche aufgeteilt: 1. Infozeile 2. Player & Sound Setup 3. SampleFreq 4. CPU Load 5. Position 6. Das Tastenfeld Es folgt nun die obligate Erkl„rung der einzelnen Schalter und Kn”pfe, danach kommen allgemeine Bedienungshinweise. Das Tastenfeld ============== Beginnen wir mit dem Einfachsten, dem Tastenfeld. Es ist aufgebaut wie bei einem Kassettenrecorder, daher sollte die Bedienung keine Probleme bereiten. Zus„tzlich ist in jedem Tastensymbol ein Buchstabe untergebracht. Das ist der zugeh”rige Tastatur-'Shortcut'. LOAD: Zuerst muž natrlich ein Modul geladen werden, dazu dient dieser Knopf. Es erscheint die Fileselektor-Box und Sie k”nnen ein Modul ausw„hlen. Bei 'OK' l„dt Paula sofort die ausgew„hlte Datei. Bei Erfolg erscheint in der Infozeile des Fensters der Text 'Stopped: '. Eventuell auftretende Fehler werden sofort mit einer Alertbox quittiert. Mit 'Selectric¿' als Fileselektor k”nnen Sie auch mehrere Dateien gleichzeitig ausw„hlen! STOP: Beendet das Abspielen eines Moduls und setzt Paula zurck. Waren mehrere Dateien ausgew„hlt, so wird diese Programmierung von Paula auch aufgehoben. Die Statusanzeige zeigt den Text 'Stopped: ...'. Wenn im Accessory-Betrieb in diesem Zustand das Fenster geschlossen wird, gibt Paula den fr das letzte Modul reservierten Speicher frei. PLAY: Startet das Abspielen. Wenn noch keine Datei(en) geladen war, erscheint zuerst der Fileselektor mit der Aufforderung 'Load MODfile'. Wurden mehrere Module angegeben, dann wird das laufende Modul beendet und Paula geht zum n„chsten Modul in der Liste ber. PAUSE: Dient dazu, das Abspielen zeitweilig anzuhalten. Im Gegensatz zu 'STOP' wird dabei nichts gel”scht, zurckgesetzt oder sonstwie beeinflužt. Im 'Pause'-Zustand kann das Accessory auch verlassen werden, ohne daž die geladene Datei freigegeben wird. Zum Weitermachen reicht es, einmal Pause oder Play anzuklicken. REW: (REWIND) Springt eine Position im Modul zurck. Diese Funktion arbeitet nur wenn der Paula sich im Play- oder Pause- Modus befindet. FF: (FAST FORWARD) Springt eine Position nach vorne im Modul, nicht jedoch ber das Ende hinaus. Auch dies Funktion arbeitet nur im Play- oder Pause-Modus. !: (Ausrufezeichen) Ruft den 'Setup' Dialog auf, in dem einige weitere Funktionen wie Tonh”hen- und Geschwindigkeitsver„nderung sowie Parameter sichern zur Verfgung stehen. ?: (Fragezeichen) Allgemeine Information ber das Programm und den Autor. šber diesen Dialog ist auch das Registriermen zug„nglich. Wie die Registrierung vorgenommen wird, ist im Abschnitt 'Registrierung' beschrieben. Am Besten ist wenn Sie alle Funktionen einmal ausprobieren. Paula ist durch unsinnige oder falsche Bedienung nicht aus der Ruhe zu bringen! Die Infozeile ============= In der Infozeile zeigt Paula die aktuelle Betriebsart und eventuell einen Modul-Titel an. Es gibt vier Zust„nde: Inactive: Paula tut gar nichts. Es ist keine Datei geladen und somit auch kein Speicher belegt. Im Accessorybetrieb muž Paula vor dem Aufl”sungswechsel in diesem Zustand sein um Speicherverlust oder gar Abstrze zu vermeiden. Stopped: Paula hat ein Modul geladen. Im Accessorybetrieb fhrt ein Aufl”sungswechsel jetzt zu Speicherverlust, da der von Paula allozierte Speicher nicht mehr freigegeben werden kann. Paused: Paula wartet darauf, weiterspielen zu drfen. Jetzt k”nnen Sie auch mit den Tasten '<<' und '>>' im Modul hin- und herspringen. Playing: Paula ist besch„ftigt - das sollten Sie auch h”ren! Wenn jemand anders auf den DMA-Soundchip zugreift, wird Paula dadurch natrlich gestoppt. Sobald der Soundchip wieder frei ist, versucht Paula weiterzuspielen. Das kann bis zu einer Sekunde dauern (funktioniert NICHT in Verbindung mit 'Petra'). L„uft der Player trotzdem nicht mehr an (-> Bugreport an mich!) k”nnen Sie sich helfen indem Sie einfach PAUSE/PLAY oder PAUSE/PAUSE drcken. SampleFreq ========== Damit kann die Samplingfrequenz bei der Tonausgabe eingestellt werden. Zur Auswahl stehen die Frequenzen 12.5, 25 und 50 KHz. Je h”her die Samplingfrequenz, desto h”her auch die obere Grenzfrequenz. Theoretisch ist die h”chstm”gliche erzeugt Tonfrequenz genau fsample/2 (Shannon'sches Abtasttheorem); praktisch etwa 40% der Abtastfrequenz infolge der im STE/TT verwendeten Filterstufen. Bei 25 KHz Samplingfrequenz k”nnen also T”ne von bis zu 10 KHz sauber erzeugt werden. Die Žnderung der Samplingfrequenz wird sofort bernommen. Beim Umschalten wird der Ton kurzzeitig unterdrckt, um St”rger„usche (Krachen, Zirpen usw.) zu vermeiden. Player & Sound Setup In diesem Bereich befinden sich zwei Arten von Schaltern: ú Schalter zur Beeinflussung der Tonerzeugung ú Schalter zur Einstellung der Abspielmodi Ä Interpolate: Schaltet die Interpolation ein. Dadurch verbessert sich die Tonqualit„t sehr stark (saubere H”hen), aber es kostet viel Rechenzeit. Auf TT's ist Interpolation eigentlich ein Muž, da der 68030 die n”tigen Shift- und Multiplikationsbefehle sehr viel schneller als der 68000 bew„ltigt. Das Gesagte gilt brigens auch fr STE's mit 68020 oder 68030 Beschleunigerkarte. Ä Booster: Hebt die Lautst„rke mit einem Trick um 6 dB an. Dadurch wird das Hintergrundrauschen besser verdeckt, allerdings nehmen die Verzerrungen bei lauten Passagen zu. Da diese Verzerrungen aber zweiter Ordnung sind, klingt das Ganze nach 'R”hrensound'. Ä Protracker: Schaltet die Protracker-Kompatibilit„t ein. Im Prinzip sind die Module zwar abw„rtskompatibel, so daž ein neuerer Player auch alte Module abspielen kann, aber mit dem Protracker wurden soviele Ver„nderungen eingefhrt, daž bei verschiedenen Modulen diese Abw„rtskompatibilit„t nicht mehr gegeben ist. Deshalb ist dieser Schalter vorgesehen, um im Falle eines 'kritischen' Moduls einige (nicht alle!) Protracker-Features ausschalten zu k”nnen. Bei 15- Instrument-Modulen wird dieser Schalter nicht beachtet, da es sich nicht um ein Protracker-format handeln kann. Ä Repeat: Dieser Schalter erfllt eine Doppelfunktion. Falls nur ein Modul ausgew„hlt wurde, bezieht sich Repeat auf das eine Modul. Das wird dann solange abgespielt, bis Sie Paula selbst unterbrechen. Wurden mehrere Module ausgew„hlt, so wirkt Repeat auf diese Liste von Modulen. Nachdem alle Module einmal abgespielt worden sind, beginnt Paula wieder von vorne. šbrigens existieren Module, die mit 'Jump'-Befehlen eine Endlosschleife aufbauen. Paula erkennt diese und knackt sie... Ä Random: Die Karten werden gemischt... Diese Funktion arbeitet nur, wenn mehrere Module ausgew„hlt worden sind. Nun werden die Module nicht mehr der Reihe nach abgespielt, sondern in einer zuf„lligen Reihenfolge - aber jedes Modul nur einmal. Sind alle Module abgespielt, h„ngt die weitere Verfahrensweise vom 'Repeat'-Schalter ab: ist er eingeschaltet, beginnt der Prozess wieder von vorne, andernfalls stoppt Paula und 'vergižt' die eben gespielte Liste. CPU-Load Indikator ================== Dieser Balken zeigt an, wieviel Rechenzeit Paula fr sich abzweigt. Es handelt sich hier um eine relative Anzeige, bei der 100% immer die gesamte Rechenleistung des Computers darstellen. Am rechten Ende des Balkens befindet sich noch ein rotes Anh„ngsel - das ist die šberlastungsanzeige, die jedesmal, wenn die Rechenzeit mal nicht gereicht hat, fr eine knappe Sekunde 'aufleuchtet'. Position ======== Diese Anzeige gibt die aktuelle Position im Modul an. Die Position wird Hexadezimal angezeigt, so wie das bei den Sound/Noise/Pro-trackern blich ist. Allgemeine Bedienungshinweise: ============================== Die grunds„tzliche Bedienung ist kein Geheimnis und sollte niemandem Probleme bereiten. Aber die Spezialit„ten wollen doch genauer erkl„rt sein. Darunter fallen: ú Verlassen des Haupt-Dialogs ú Mehrfachauswahl von Modulen ('Multiplay-Modus') ú Reaktion des Tastenfeldes ú Versteckte Funktionen Wenn das Fenster mit dem Haupt-Dialog im Accessory-Betrieb geschlossen wird, l„uft der Player weiter. Analog zu XCONTROL kann dieses Fenster auch mit Return geschlossen werden. L„uft Paula als normales Programm, wird es durch Schliežen des Fensters verlassen und das laufende Modul wird angehalten. Deshalb wird in dieser Betriebsart Return nicht als CloseWindow-Kommando interpretiert. Mehrfachauswahl... Die einfachste Art, mehrere Dateien anzugeben, besteht darin, in der Fileselektorbox eine Dateimaske (Wildcards) anstelle des erwarteten Namens anzugeben. Also LOAD anklicken, und in der Fileselektorbox im Namensfeld beispielsweise 'A*. MOD' eingeben. Paula sucht dann alle Dateien in dem angegebenen Pfad, die mit 'A' beginnen und deren Endung '.MOD' ist. Natrlich mssen im eingestellten Verzeichnis auch Module liegen! Um alle Module im angegebenen Pfad abzuspielen reicht es, keinen Namen anzugeben. Paula w„hlt dann alle Dateien aus, die die Endung '.MOD' haben. ...mit Selectric: Falls Sie 'Selectric¿' als Fileselektorbox installiert haben, wird es noch einfacher: w„hlen Sie einfach die gewnschten Dateien an. Das geschieht mit einem Mausklick mit gedrckter Shift-Taste; weitere Selektionsm”glichkeiten sind in der Anleitung zu Selectric¿ beschrieben. ...mit dem Desktop, Gemini, EASE u.s.w: Melden Sie PAULA als Applikation fr Dateien des Typs 'MOD' an. Paula wertet nicht nur die Kommandozeile aus, sondern versteht auch VA_START Nachrichten. Reaktion des Tastenfeldes: Paula versucht immer, den aktuellen Betriebszustand beizubehalten. Wenn schon ein Modul l„uft ('Playing: ...') und Sie w„hlen ein anderes Modul aus - egal ob mit der Taste 'LOAD' oder mit Gemini - dann spielt Paula sofort nach dem Laden des Moduls weiter. Wenn Paula gestoppt war und Sie w„hlen mehrere Module per 'LOAD' aus, springt Paula sofort in den Pause-Modus. Dies muž geschehen, weil Paula die eben angegebene Liste im Stop-Modus sofort vergessen wrde. Auch hier ist es am einfachsten, sich durch Probieren an die Funktionsweise des Programms zu gew”hnen. Spezialit„ten: Paula ist an Multitasking-Umgebungen angepažt. Das begreift folgende Funktionen: ú Paula wertet seine Kommandozeile aus. ú Paula versteht VA_START sowie eigene (MP_...)-Nachrichten ú Paula erkennt bereits laufende Kopien von sich selbst und bergibt die Kontrolle an das zuerst gestartete Programm. Es kann also immer nur eine Kopie ('Instanz') von Paula laufen(** Das gilt nicht fr die Accessory-Version: Paula kann beliebig oft als ACC installiert werden.**). Setup-Page - Dialog =================== Dieser Dialog wird aufgerufen, wenn Sie die Taste '!' bet„tigen. Hier stehen die Optionen zur Tonh”henver„nderung und zum Abspeichern der Einstellungen bereit. Pitch Bend (cent): Damit l„žt sich die genaue Stimmung des Players beeinflussen. In der Grundeinstellung hat Paula die gleiche Stimmung wie ein Amiga mit 7.15909 MHz (NTSC). PAL- Amigas sind aber mit nur 7.09379 MHz getaktet, klingen also tiefer. Diese Stimmung wird erreicht, wenn Pitch-Bend auf -10 bis -15 cent steht. So ganz genau braucht diese Einstellung nicht zu sein, da eine Tonh”hen„nderung um 5 cent sowieso die unterste Grenze der Wahrnehmbarkeit darstellt. Der Einstellbereich geht von +100 bis -1 00 cent, was +/- einem Halbton entspricht. Transpose: Fr's Grobe. Žndert die Stimmung in Halbtonschritten. Der Einstellbereich ist +/- 12 Halbt”ne, was +/- einer Oktave entspricht. Frame Speed: Das ist die 'Taktgeschwindigkeit', mit der die Modul abgearbeitet wird. Beim Amiga kommt dieser Takt vom VBI (Vertical Blank Interrupt) und betr„gt somit 50 Hz bei PAL- Amigas. Da Paula ohnehin alles emuliert, ist auch dieser Parameter einstellbar - von der halben bis zur doppelten Sollgeschwindigkeit. Save: Sichert die gegenw„rtig eingestellten Parameter in der Datei 'PAULA.INF' und verl„žt den Dialog. Es werden auch die im Hauptdialog gemachten Einstellungen gesichert. Exit: Verl„žt den Dialog. Die Einstellungen werden nicht beeinflužt. Reset: Setzt die drei Einstellung zurck und verl„žt den Dialog. Info Page Dialog: ================= Die obligate Informationsbox... Eine beliebte Art, auf die f„llige Registrierung aufmerksam zu machen. Gepackte Module! ================ Seit Version 2.1 untersttzt Paula auch gepackte Module. Zur Zeit wird nur das '-lz5-'-Verfahren benutzt, also das Gleiche wie bei AFX. Um Module entsprechend zu komprimieren, k”nnen Sie LHARC.TTP, ab Version 2.01 benutzen. Damit l„žt sich ein ganzes Directory einfach und einigermažen schnell packen. Wenn Sie alle Module in C:\MODFILES\ untergebracht haben, starten Sie LHARC.TTP und geben als Kommandozeile 'c C:\MODFILES\*.MOD' ein. Die Dateien behalten den gleichen Namen, schrumpfen aber auf durchschnittlich 75% ihrer Originalgr”že. Fehlermeldungen =============== Paula meldet eventuell auftretende Fehler per Alertbox. Dies sind normalerweise immer Dateifehler. Um Probleme mit pl”tzlich auftauchenden Alertboxen zu vermeiden, erfolgen diese Fehlermeldungen nicht, wenn Paulas Fenster geschlossen ist. Es seien die Module A.MOD, B.MOD und C.MOD angegeben. Paula beginnt mit A.MOD, danach wird das Fenster geschlossen. Nachdem A.MOD fertig ist, versucht Paula B.MOD zu laden. Wenn das schiefgeht, stoppt Paula alle Aktionen und 'vergižt' die angegebene Liste. Wenn Sie nun Paula erneut aufrufen und 'LOAD' anklicken, erscheint im Fileselektor der zuletzt benutzte Pfad und Dateiname. Wenn die Meldung 'Corrupted MODfile' kommt, bedeutet das, daž das angegebene Modul fehlerhaft ist. Oft ist ein Sample zu kurz oder es h„ngen falsche Daten am Modul dran. Als kleine Hilfestellung steht Ihnen das TOS-Programm 'CHECKMOD.TTP' zur Verfgung. Es liest Module, gibt Informationen darber aus und kann die Module in vielen F„llen reparieren, so daž Paula sie wieder akzeptiert. Weiterfhrende Erkl„rungen ========================== In einem Modul sind bis zu 31 Samples, manchmal auch als Instrumente bezeichnet, gespeichert. Um ein bestimmtes Sample in verschiedenen Tonh”hen auszugeben, spielt der Amiga das Sample einfach mit verschiedenen Abtastfrequenzen ab. Je h”her die Abtastfrequenz, desto h”her der erzeugte Ton. Da der Amiga vier unabh„ngige Tonkan„le besitzt, kann er vier Samples gleichzeitig abspielen, mit verschiedenen Abtastfrequenzen versteht sich. Damit ist die Tonerzeugung sehr einfach und kostet keine Rechenzeit. Auf dem Atari ist die Sache schon schwieriger: der STE/TT DMA-Soundchip hat nur zwei Kan„le (Stereo L + R), aužerdem stehen nur vier Abtastfrequenzen zur Auswahl, wobei immer nur eine ausgew„hlt sein kann und fr die beiden Stereo-Kan„le gilt. Also muž ein anderes Verfahren zur Tonerzeugung benutzt werden - die direkte digitale Synthese. Die Funktionsweise ist eigentlich ganz einfach: Die Daten des Originalsamples werden nicht mehr 1:1 ausgegeben, sondern 1:R, wobei R eine Realzahl ist. Soll also ein Sample bei einer tats„chlichen Abtastrate von 10 KHz mit 5 KHz ausgegeben werden, ist R gleich 2 - jedes Byte wird zwei mal ausgegeben. Sind 7.5 KHz gewnscht, so gilt R=1.5 . Da in der Praxis nur ganzzahlige Schritte m”glich sind, wird der erste Samplewert einmal ausgegeben, sein Nachfolger zwei mal, der n„chste wieder einmal usw. Im Mittel ergibt sich dann 1.5, und das Ohr bekommt was will: 7.5 KHz. Nun hat dieses Verfahren das Problem, daž das Sample nicht gleichm„žig abgetastet wird. Beim oben erw„hnten Beispiel ergibt sich folgendes Schrittschema: 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 Bei tiefen T”nen, wenn ein Sample von 10 KHz auf 1 KHz 'tiefergelegt' wird, muž jedes Wort im Sample 10 mal ausgegeben werden - also erh„lt man das Schrittschema: 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 usw. Wenn man die dabei entstehende Kurve aufzeichnet drften sofort die unregelm„žigen Treppen im Signal auffallen. Und genau diese Treppen werden als St”rger„usche (Sirren, Pfeifen) h”rbar. Um dieses Problem zu umgehen mžten eigentlich Zwischenwerte eingebaut werden - und genau dies bewerkstelligt die Interpolation. Ideal w„re die Spline- Interpolation; da dies aber Matrixrechnen erfordert benutzt Paula eine einfach lineare Interpolation. Auch damit wird das erzeugte Signal 'glatter' und klingt besser. Das ist nicht zu verwechseln mit dem Oversampling, das einige MODplayer anbieten, und das darin besteht, jeden Samplewert zu verdoppeln um ihn dann mit der (ebenfalls) verdoppelten Samplingfrequenz auszugeben. Damit wird das Signal nur h”henlastiger, da die Filterstufen im STE/TT entsprechend anders eingestellt werden. Noch ein paar Worte zur Tonqualit„t: Durch die 'echte' Interpolation klingt Paula (die Emulation) bei 25 bzw. 50 KHz besser als Paula (Der Amiga-Chip)! Das liegt vor allem daran, daž der Amiga einen fest eingestellten 7 KHz Tiefpažfilter hat, der die H”hen radikal wegrasiert. Wird der abgeschaltet, sind zwar die H”hen wieder da, aber auch die unvermeidlichen Aliasingprodukte. Skeptikern empfehle ich einen Amiga sowie dessen Hardware Reference Manual [2]. Dem Amiga bleibt noch der Vorteil der gr”žeren Dynamik, denn dort hat jeder der vier Kan„le seinen eigenen Lautst„rkesteller, durch den 6 bit gewonnen werden. Der Rauschabstand zum Nutzsignal bleibt zwar bei 48 dB - normal fr 8 bit - aber leise Module werden immer noch sauber abgespielt, wo Paula (die Emulation) schon mit dem Quantisierungsrauschen zu k„mpfen hat. Die im Amiga eingesetzten Wandler k”nnen auch als 'Fliežkommakonverter' bezeichnet werden. Um nicht das Nachsehen zu haben, bietet Paula die 'Boost'-Option. Dann wird eine nichtlineare Wandlerkennlinie benutzt, so daž eine Pseudo- Aufl”sung von 9 bit erreicht wird. Bei leisen Passagen wirkt das Wunder, bei lauten Passagen nehmen allerdings die Verzerrungen zu. Falls es Ihnen egal ist, wie die Interpolation funktioniert, berspringen Sie den folgenden Absatz! Falls nicht: Hier die Interpolationsroutine, der šbersichtlichkeit halber schematisch in C formuliert: /* Fix-Point Zahl, zu Angabe des Abtastschrittes */ typedef struct fxp { int ip; /* integer part (1/1) */ int fp; /* fractional part (1/65536) */ } fixpoint; /* Holt ein Byte aus dem gespeicherten Sample und berechnet * den passenden Zwischenwert. * Param: spl: Zeiger auf das Sample * index: Index im Sample als Fixpoint-Zahl * volume: Amiga-Volumeregister Wert, 0..64 * Return: Der resultierende Samplewert als integer. * Bereich: 14 bit (8 bit sample + 6 bit volume info) */ int get_samplevalue( char *spl, fixpoint index, int volume ) { int s1,s2; /* Samplewerte sn und sn+1 */ s1 = volume * spl[index.ip]; s2 = volume * spl[index.ip+1]; return (((s2-s1)*index.fp)/65536 + s1); } Dann muž der Index inkrementiert werden, was auf eine Addition zweier Fixpoint-Zahlen hinausl„uft, der Rckgabewert muž gespeichert bzw. auf den entsprechenden Wert eines anderen Kanals aufaddiert werden, das Ganze muž auf 8 bit zurckskaliert werden und nebenbei muž noch beachtet werden, daž ein Sample auch irgendwann zu Ende ist. Da vier Kan„le vorhanden sind, muž die obige Routine bei 50 KHz Ausgabefrequenz 200.000 (zweihunderttausend) Mal pro Sekunde ausgefhrt werden. Damit dieser Vorgang in Echtzeit ablaufen kann, ist Rechenleistung und eine geh”rige Portion Gehirnschmalz n”tig, denn ohne jegliche Optimierung h„tte selbst der 68030 keine Chance... Immer ein beliebtes Kapitel: BUGS & LIMITATIONS! ================================================ Kollisionen: Prinzipiell vertr„gt sich Paula mit allen anderen Programmen; da Paula aber direkt auf die DMA-Soundhardware zugreift, sind Kollisionen mit anderen Programmen, die das Gleiche tun wollen, unvermeidlich. Solange das 'andere' Programm einigermažen sauber programmiert ist und die Hardware stets in einem sauber definierten Zustand hinterl„žt, passiert nichts - aužer daž Paula gestoppt ist. šberlastung: Wenn der Rechner total berlastet ist, stimmt das interne Timing natrlich nicht mehr. Deshalb ist der Zeitpunkt, zu dem die Hardware-Register beschrieben werden, undefiniert. Dadurch kommt es manchmal vor, daž der Soundchip den falschen Speicherbereich abspielt, obwohl in den Chipregistern die richtigen Werte stehen (!) - dann gibt's Katzenmusik. Dagegen hilft: PAUSE, Samplingfrequenz herruntersetzen oder Interpolation ausschalten um Rechenzeit zu sparen, dann nochmals PAUSE. Oder hatten Sie etwa den Cache des 68030 ausgeschaltet ??? Aufl”sungswechsel: Vor jedem Aufl”sungswechsel muž sichergestellt sein, daž Paula inaktiv ist. Also Paula einmal aufrufen, 'S' (fr STOP) und dann Return (Fenster schliežen). Falls MultiTOS die spezielle (neu eingefhrte) GEM-Message AP_TERM, die den bevorstehenden Aufl”sungswechsel ankndigt, an die einzelnen Programme schickt, kann Paula darauf mit der Einstellung aller Aktivit„ten reagieren. Protracker 'CIA'-Replay-Speed: Seit Version 2.2 funktioniert das CIA- Speed-setup astrein, ohne Einschr„nkungen. Nachteil: Einige Noisetracker-Module werden jetzt falsch abgespielt. Abhilfe: Protracker- Modus ausschalten! Abstrze auf STE's: Irgendwie beižt sich Paula mit einigen 1040STE: Auf zwei STE's gab's totale H„nger, und auf einem mit 16MHz CPU ausgerstetem 1040'er gab's Bomben wegen Cache-fehler, unabh„ngig vom Modul. Das ist ein Hardwareproblem dieser STE's, da kann man leider nichts machen. Ab v2.4 sind jedoch TAS-Befehle entfernt worden, was die Chancen fr diese STEs erh”ht. Internes ======== GEM-Benutzerschnittstelle: Paula verarbeitet die von Gemini stammende 'VA_START'- Nachricht. In einer solchen Message ist in msg[3] und msg[4] ein Zeiger enthalten, der von Paula ausgewertet wird. Der Player reagiert folgendermažen: ú Nullpointer oder Zeiger auf Leerstring: Gleiche Reaktion wie bei AC_OPEN. ú Zeiger auf String mit einem Namen: Paula l„dt dieses Modul und startet es sofort. ú Zeiger auf String mit mehreren Namen: Paula geht in den 'Multiplay'-Modus ber und spielt alle MODs. Der bergebene String wird intern kopiert, kann auf der Aufruferseite lokal sein. Wichtig ist nur, daž Dateinamen im String durch genau ein Space/Komma/Semikolon getrennt sind und daž keine Wildcards benutzt werden. Zur Komplettierung des Dateinamens wird intern SHEL_FIND benutzt. Ab Version 2.4 gibt es auch neue GEM-Messages: ú MP_ACK (0x4800): Paula sagt OK! Das vorige Kommando ist verstanden worden. msg[7] enth„lt die Versionsnummer des Programms; 0x204 = v2.4 ú MP_NAK (0x4801): Paula sagt NICHT OK! Das vorige Kommando ist nicht verstanden bzw. abgelehnt worden. msg[7] enth„lt die Versionsnummer des Programms; 0x204 = v2.4 ú MP_START (0x4802): Funktion ist identisch mit VA_START. Nach šbernahme des Kommandostrings schickt Paula aber eine MP_ACK (bzw. MP_NAK)-Nachricht an den Absender zurck, und signalisiert so, daž der in der MP_START-Nachricht angegebene Speicherbereich anderweitig benutzt werden kann. Dies ist sehr wichtig in Multitasking-Systemen bzw. fr MP.PRG (Sourcecode MP.C liegt bei). ú MP_STOP (0x4803): Stoppt Paula und gibt den fr MODs und Playlisten allozierten Speicher frei. Das Fenster bleibt offen. Paula schickt MP_ACK zurck. ú MP_SHUTDOWN (0x4804): Stoppt und beendet Paula. Im Accessory- Modus wird nur der Speicher freigegeben und das Fenster geschlossen.Paula schickt MP_ACK zurck. Vektorverbiegerei... Paula belegt den I07 (monochrome monitor detect) - Interrupt der 68901 MFP. Dazu wird eine XBRA-Kennung 'PAUL' benutzt. Speicherverbrauch: Paula ben”tigt rund 45 KB fr den Programmcode und fixe Daten. Auf Maschinen mit dem 68000-Prozessor kommen noch 15 KB fr Volumetabellen hinzu. Notstop: Um Paula sofort 'abzuwrgen' und zur Freigabe des allozierten Speichers zu zwingen, reicht es, eine AP_TERM-Message zu schicken. (AP_TERM = GEM message Nummer 50). Allerdings sollte dazu besser MP_SHUTDOWN verwendet werden. Speeeeed! Um auf dem TT m”glichst wenig Rechenzeit zu verbraten, sollte Paula komplett ins 'Fast'-RAM geladen werden (soweit vorhanden). Der Prozessorcache sollte dabei unbedingt eingeschaltet bleiben, sonst sackt der TT auf ST-Leistung ab. Ohne Cache wird's selbst auf dem TT sehr knapp bei 50 KHz Interpolation (wobei zu bemerken ist, daž ein gewisser anderer MODplayer 50 KHz Interpolation selbst bei eingeschaltetem Cache kaum noch meistert!). Hardware: Weder der MFP-Timer A noch der Yamaha Soundchip werden angetastet. Somit bleibt Ihnen der Tastaturklick und die Systemglocke erhalten, es ist darber hinaus noch m”glich, digitale Soundeffekte mit dem Yamaha-Chip zu erzeugen. Mit STSPEECH.TOS lassen sich beliebige Texte in ein laufendes Modul einblenden. Entwicklung: Paula 2 wurde mit Pure C und dem Pure Assembler entwickelt. Der eigentliche 'MODplayer', also die Replay-Routine, basiert auf dem 'Protracker 2.1B Player' der Amiga Freelancers. Thanx for the help...: Hilfreich zur Seite standen mir: Joel Fran‡ois: Amiga Dokumentationen, D.O.C. Replay Routine Fridolin Koch: Protracker Replay Routine, gute Module Georges Kesseler: Betatester, Optimierungsvorschl„ge, 'Repeat-Killer' Christian Limpach: Betatester, ST-Sound Treiber! MP - ModPlay Interface ====================== MP.PRG ist ein sehr einfaches Utility, mit dem es m”glich ist, Paula auch aus Kommandoshells heraus zu starten. MP schickt die in der Kommandozeile angegebenen Dateien einfach in einer 'MP_START'-Nachricht verpackt an Paula weiter. Wildcards werden nicht von MP ausgewertet; dafr kennt MP aber das ARGV- Verfahren (beim Kompilieren mit 'PCVSTART.O' linken!). Somit werden Shells wie die Mupfel oder Mintshel voll untersttzt. Haben Sie PAULA als ACC installiert? Dann k”nnen Sie MP.TTP im normalen Desktop als Anwendung fr '*.MOD' anmelden; dann lassen sich Module auch auf Doppelklick hin abspielen. MP soll kein Musterbeispiel fr gelungene C-Programmierung darstellen, es wurde Wert auf Einfachheit gelegt. MP inklusive den Quellcodes ist Public Domain! CHECKMOD - kaputte Module reparieren ==================================== Irgendwann wird Paula ein Modul mit dem Kommentar 'Corrupted MODfile' verwerfen. In diesem Fall kann CHECKMOD helfen: einfach starten und als Parameter den Namen des Moduls (inklusive Pfad) angeben. Bei den neueren TOSsen reicht es, das fragliche Modul auf das CHECKMOD-Icon zu ziehen. Checkmod liest das Modul und gibt eine Liste mit den benutzten Samples aus. Aužerdem gibt Checkmod die Art des Fehlers aus. Corrupted Pattern List: Dieses Modul kann nicht mehr automatisch repariert werden. Short Sample: Ein Sample ist zu kurz geraten. Falls dieser Fehler nur das letzte Sample betrifft und die Differenz zwischen Ist- und Soll- L„nge nicht zu grož ist, sind die 'Heilungschancen' gut. Paula toleriert maximal 4 fehlende Bytes. Superfluous Data in MODfile: Am Modul h„ngen noch berflssige Daten. Diesen Fehler behebt Checkmod problemlos. Paula toleriert bis zu 256 Bytes berflssiger Daten. Nachdem Checkmod gelaufen ist, erscheint der Text: Save Module as: Einfach verl„žt das Programm ohne weitere Aktionen, ein Punkt '.' speichert das Modul unter gleichem Namen neu ab. Wenn Sie einen neuen Pfad und Namen angeben, wird das Modul unter diesem neuen Namen gespeichert. Bibliographie ============= [1] Jankowski/Rabich/Reschke Atari Profibuch ST/STE/TT Sybex Verlag, ISBN 3-88745-888-5 [2] Amiga Hardware Reference Manual Addison-Wesley, ISBN 0-201-18157-6 [3] Thomsen Digitale Audiotechnik Franzis' Verlag, ISBN 3-7723-7151-5 [4] DDS - Direkte Digitale Synthese Elektor No257, Mai 1992, s.52ff [5] Ulrich Michels dtv Atlas zur Musik, Band 1 (Akustik, Wellenlehre, Tonparameter) Deutscher Taschenbuch Verlag, ISBN 3-423-03022-4 Registrier-Formular =================== Ich benutze PAULA, Version 2._ _ und m”chte mich registrieren lassen. Vorname, Name: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Straže: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Plz, Ort: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Platz fr Kommentare, Verbesserungsvorschl„ge und Fehlermeldungen (bei Problemen bitte auch die verwendete Hard- und Software mit angeben): -----------------------------------------------------------------