| | // | \X/ Flowerpower präsentiert *verdammt* stolz | -----+------------------------------------------------------------------------ | | einen Stereo CD-DA Spieler basierend auf einem 14 Bit Treiber | | mit einem coolen CLI, Workbench und DeliTracker Interface | | für Toshiba 4101 CDRom Laufwerke und Kompatible (*) | | (*) Unterstützung für andere Laufwerkstypen ist geplant EMAIL: flowerp@eikon.e-technik.tu-muenchen.de EINLEITUNG ---------- Dieses Utility entstand, weil ich mich zur Zeit stark mit Sound-Programmierung beschäftige. Ich habe vor, die alten Amiga Soundtreiber (audio.device, Sound Datatypes) durch mächtigere und flexiblere zu ersetzen. Der CD-DA Spieler wurde eigentlich nur geschrieben, um den 14 Bit Treiber zu testen, der ebenfalls in diesem Archiv enthalten ist. Dieser Treiber ist mein erster Schritt in Richtung eines komplexen Mehrkanal-Soundsystems (Arbeitsname: "CyberSound"). Da sich dieses Utility sich als sehr lustig und auch nützlich erwiesen hat, habe ich mich entschlossen, eine Benutzerschnittstelle zu erstellen und das Programm zu veröffentlichen. Außerdem kann ich ein wenig mit meinem 14 Bit-Treiber angeben und Ihnen das Konzept meines geplanten Soundsystems etwas näherbringen. Ich hoffe wirklich, daß dieses Projekt erfolgreich abgeschlossen werden kann. Zu dem Zeitpunkt, da ich dieses Dokument schreibe, höre ich gerade einen schönen CD-DA Soundtrack in vollem Multitasking über die Amiga-Soundkanäle. Man kann wirklich kaum einen Unterschied zu "echtem" CD-Sound heraushören. LEISTUNGSMERKMALE ----------------- Dieses Programm spielt CD-DA Daten durch die Amiga Soundkanäle in 22kHz Stereo auf ECS-Maschinen und in 44kHz auf AGA-Rechnern in bestimmten Screenmodi ab. Sie können auch gemischte CDs anhören, die sowohl Daten- auch als Musik enthalten (z.B. Spiele-CDs). Die Datenspuren werden übersprungen. DIE CLI-SCHNITTSTELLE --------------------- Die Kommandoschablone ist wie folgt: TRACKS/N/M,DEVICE/K,UNIT/N/K,SOUNDDRIVER/K,REPEAT/S,... FREQUENCY/N,QUALITY/N,BUFFERS/N,HIGHPRI/S TRACKS/N/M Eine Liste der Audio Titel, die in der angegebenen Reihenfolge gespielt werden sollen. Wird hier nichts angegeben, so werden alle Titel gespielt. DEVICE/K Hier geben Sie Ihren SCSI Treiber an. Ansonsten wird "scsi.device" benutzt. UNIT/N/K Hier geben Sie die SCSI-Einheit Ihres CDRom an. Ansonsten wird die Nummer 3 benutzt. SOUNDDRIVER/K Hier wird gewöhnlich "14bit.driver" benutzt. Es ist der einzige Soundtreiber, der bisher existiert. Er ist noch lange nicht perfekt oder fertiggestellt. REPEAT/S Ein Schalter, der den Wiederholungs-Modus aktiviert. Die Titelliste wird wiederholt abgespielt, wenn dieser Parameter angegeben wird. FREQUENCY/N Sie können hiermit versuchen, die CD in einer anderen Frequenz anzuhören. Normal werden 44100 Hz verwendet. Höhere Frequenzen werden wahrscheinlich nicht gut funktionieren (CDRom zu langsam), aber langsameres Abspielen kann sehr lustig klingen. QUALITY/N Hier können Sie den Qualitätsfaktor angeben. Er steht normalerweise auf 1. Das bedeutet, dass jedes Sample-Wort ausgegeben wird. Der Wert 3 zum Beispiel bedeutet, dass nur jedes dritte Sample ausgegeben wird, weshalb die effektive Ausgabefrequenz durch drei geteilt wird. Anmerkung: Das Programm wird diesen Wert automatisch erhöhen, wenn Ihre Hardware nicht in der Lage ist, die gewünschte Frequenz auszugeben. Auf ECS-Rechnern wird dieser Wert immer auf zwei erhöht. Auf AGA Maschinen paßt sich dieser Wert während des Abspielens immer dem aktuellen Screenmode an. BUFFERS/N Dieser Wert definiert die Größer der Puffer, die im RAM belegt werden, um die CD-DA Daten vom Laufwerk aufzunehmen. Drei Puffer werden benötigt. Ein Wert von 75 bedeutet Platz für eine Sekunde. Der voreingestellte Wert beträgt hier 20. Der gesamte Speicherverbrauch kann mit folgender Formel berechnet werden: Speicherverbrauch = BUFFERS * 7056 Byte. HIGHPRI/S Dieses Flag erhöht die Task-Priorität Ihres SCSI Treibers, sodaß das Abspielen nicht länger durch das Bewegen und Verändern von Fenstern gestört wird. Seien Sie vorsichtig: Das muß nicht unbedingt mit allen SCSI Treibern funktionieren. Sie sind also gewarnt. Wenn Sie dieses Flag setzen, so können Sie sehr kleine Puffer-Werte benutzen (z.B. 3). Die Priorität wird beim Verlassen des Programmes wieder zurückgesetzt. PUBSCREEN/K Diese Option erlaubt Ihnen, den Namen des öffentlichen Bildschirms anzugeben, auf dem sich das Fenster des CDPlayers öffnen soll. GUI/S Hiermit öffnet der CDPlayer seine grafische Benutzerschnittstelle. Das kann nützlich sein, wenn Sie den CDPlayer von einer Shell aus starten. DIE WORKBENCH-SCHNITTSTELLE --------------------------- Die Workbench-Schnittstelle benutzt das TapeDeck Gadget, das von Commodore auf den Workbench 3.0 Disketten ausgeliefert wird. Dieses benötigt also wahrscheinlich auch Kickstart 3.0. Ich weiß nicht, ob diese Gadget-Klasse auch mit Kickstart 2.0 funktioniert. Das TapeDeck Gadget ist einfach, aber funktional. Manch einer mag die DeliTracker-Schnittstelle vorziehen, die weiter unten erklärt wird. Sie können die folgenden Tooltypes in das Programm-Icon eintragen: TRACKS = DEVICE = UNIT = SOUNDDRIVER= REPEAT = FREQUENCY = QUALITY = BUFFERS = HIGHPRI = PUBSCREEN = Wenn Sie bei REPEAT oder HIGHPRI das Argument weglassen, nimmt das Programm an, der Schalter sei gesetzt (TRUE). DIE DELITRACKER-SCHNITTSTELLE ----------------------------- Dieses Programm kann auch zusammen mit DeliTracker verwendet werden. Kopieren Sie es einfach in die Players-Schublade Ihrer DeliTracker-Installation. Um den Player zu aktivieren, müssen Sie ein oder mehrere "Alibi"-Module erstellen. Benutzen Sie einen Text-Editor und schreiben die folgende Zeile: CD-DA [OPTIONEN] Speichern Sie diese Datei, wohin Sie wünschen. Der [OPTIONEN] Parameter ist (man glaubt es kaum) optional und darf alle Argumente enthalten, die oben bei der CLI-Schnittstelle beschrieben wurden. Wenn Sie dieses Modul dann mit dem DeliTracker abspielen, können Sie sich die CD anhören. Benutzen Sie die Schalter des DeliTracker, um sich auf der CD zu bewegen. Mit den +/- Geschwindigkeits-Knöpfen auf der linken Seite können Sie die Abspielfrequenz in 100 Hz-Schritten justieren. Mit den << und >> Knöpfen ist es möglich, im aktuellen Lied um 10 Sekunden zu springen. VOREINSTELLUNGEN ---------------- Um zu vermeiden, daß man immer wieder die selben Optionen angeben muß, können Sie die am häufigsten verwendeten Parameter in einer Environment-Variable namens CD-DA_DEFAULTS abspeichern. Diese Parameter sind die gleichen, die auch bei der CLI-Schnittstelle gelten. Sie werden durch die Optionen überlagert, die dann jeweils im CLI, den ToolTypes oder im "Alibi"-Modul angegeben werden. Beachten Sie: Eine Titel-Liste wird in den Voreinstellungen ignoriert. HINWEISE, TIPS & TRICKS ----------------------- Dieses Programm wird Ihr System merklich verlangsamen. Wie stark, hängt vor allem von Ihrem SCSI Controller ab (DMA-Zugriff ist von großem Vorteil). Die 14Bit Soundausgabe ist nicht so laut, wie Sie es von Ihrem Amiga gewohnt sind. Sie werden wahrscheinlich die Lautstärke an Ihrem Verstärker etwas hochregeln müssen. Wenn Sie Unterbrechungen beim Spielen bemerken, versuchen Sie die Unit-Nummer Ihres CDRoms höher zu setzen, als die Ihrer Festplatten. Höhere Unit-Nummern haben auf dem SCSI-Bus den Vorrang. Bei starkem Festplattenzugriff werden Unterbrechungen allerdings kaum ganz zu vermeiden sein. Das Toshiba CDRom liefert die Daten leider nur mit "Single-Speed", deshalb ist das Timing *sehr* kritisch. Ich habe eine ganze Menge Arbeit in die Perfektion der I/O Routinen investiert. Wenn Sie beim Bewegen oder Verändern von Fenstern Unterbrechungen hören, dann versuchen Sie einmal, den HIGHPRI-Schalter zu setzen. Dieser wird die Priorität Ihres SCSI Treibers über die des input.device erhöhen. Das funktioniert allerdings nur, wenn der SCSI Treiber als ein Task läuft und die IORequest von diesem Task aus beantwortet werden. Im Programm befindet sich ein wenig Extra-Code, um dem A590/A2091 Controller in dieser Hinsicht zu unterstützen (er benutzt zwei Tasks). Kleinere Puffer-Werte bedeuten eine kürzere Reaktionszeit auf die Schalter im DeliTracker. Aber kleine Puffer erhöhen auch die Gefahr von Audio-Unterbrechungen. Vernünftige Werte beginnen ungefähr mit 3. Versuchen Sie nicht, auf die Daten-Sektion der CD zuzugreifen, während Sie die CD anhören. Leider gibt es kein Protokoll, um das CDRom Laufwerk zwischen zwei Tasks zu teilen. Deshalb können sich CDRom-Treiber wie AmiCDRom und dieser Spieler gegenseitig in die Quere kommen. Nachdem Sie eine CD ins Laufwerk eingelegt haben, warten Sie bitte eine Weile, bis das DOS und die Workbench die CD identifiziert haben und das Icon dargestellt haben. Erst dann sollten Sie das Abspielen starten. 14 Bit ist nicht ganz so gut wie 16Bit. Aber versuchen Sie mal, den Unterschied herauszuhören. Sogar mit Kopfhörern ist das recht schwierig. Die 22kHz auf ECS Maschinen sind natürlich nicht *ganz* so gut wie 44kHz. Nunja, schieben Sie es auf Paula. Aber auch das klingt immernoch sehr gut! RECHTLICHES ----------- Das Programm ist Public Domain. Es darf nur zusammen mit den Quelltexten und der Dokumentation weitergegeben werden. Dieses Programm funktioniert auf meinem Computer. Ich kann weder garantieren, daß dieses Programm auch auf Ihrem Rechner funktioniert, noch daß es fehlerfrei ist. Ich bin nicht verantwortlich für irgendwelche Schäden, die dieses Programm unter Umständen bei Ihnen anrichtet. PROGRAMM-ENTWICKLUNGSGESCHICKTE ------------------------------- CDPlayer 1.1 * GUI und PUBSCREEN Optionen hinzugefügt * Auswahl des Stream-Formates beim Soundtreiber (16 Bit Big Endian) MÖGLICHE ERWEITERUNGEN ---------------------- * ebenfalls eine Datatypes-Schnittstelle (und alles in einem File!) * eine "echte" CD-DA Version des Spielers (über die Audio-Kanäle des CDRoms) * Unterstütztung anderer CDRom-Laufwerke (senden Sie mir Infos dazu!) * Verbesserung des 14 Bit Treibers * Treiber für andere Soundkarten schreiben (Toccata, Maestro) * Nachdem CyberSound fertiggestellt ist, diesen Treiber anpassen, um die Fähigkeiten des neuen Soundsystems auszunutzen. Dann kann jeder Task jeden beliebigen Sound spielen, während Sie der CD zuhören! (genug CPU-Power vorausgesetzt!) KONTAKT-ADDRESSE ---------------- EMAIL: flowerp@eikon.e-technik.tu-muenchen.de FidoNet: 2:2480/465 Schneckenpost: Christian Buchner Ganghoferstraße 2 82110 Germering Deutschland Tel.: +49-(0)89/844872