Soundkarten konfigurieren


Soundblaster

allgemein gilt, dass zur Übergabe der Soundblaster Ressourceneinstellung an Programme unter DOS  die BLASTER Umgebungsvariable genutzt wird.
Diese kann man sich durch den Aufruf des Befehls set ohne Parameter anzeigen und hat dieses Format:
BLASTER=Axxx Iy Dz Hv Pw Ekkk Tq

xxx - I/O Adresse, meist 220 , 240 , 260
y - IRQ, meist 5, 7
z - DMA für 8 bit Transfer 0, 1, 3
v - DMA für 16 bit Transfer 5, 7
w - Port für Wavetable oder General Midi bzw. des Midi Ausgangs Ports, meist 330 oder 300
kkk - Port des EMU8000 Chips der AWE32, meist 620
q - Typ der Soundblaster Karte
    1=SoundBlaster v1.x (8-bit mono 22khz) or compatible
    2=SoundBlaster Pro (8-bit stereo) or SB Pro compatible
    3=SoundBlaster v2.x clone (8-bit mono 44khz) or compatible
    4=Soundblaster Pro 2
    5=Soundblaster Pro MCA
    6=SoundBlaster 16 or SB16 compatible

Typische Einstellung fuer aeltere 8 bit Soundblaster ist:
Port 220
DMA 1
IRQ 5

damit würde BLASTER=A220 I5 D1 P330 T3 sein. (für SB 2.x)

SB16:
16 bit DMA: 5 oder 7

damit würde BLASTER=A220 I5 D1 H5 P330 T6 sein.

AWE32:
EMU8k Port: 620
damit würde BLASTER=A220 I5 D1 H5 P330 E620 T6 sein.

Im Rahmen der Kartenkonfiguration existieren drei verschiedene Soundblaster Versionen:
vollständig jumperbar -
Dies erkennt man daran, dass neben Jumpern für die I/O-Adresse (IOS0,IOS1) weitere Jumperblöcke für IRQ und DMA existieren.
Dies sieht man z.B. an dieser Soundblaster Karte, wo Jumper für IOS (Adressse), DASx (DMA low), DBSx (DMA high) und ISx (IRQ) existieren.
Hier schreibt man einfach in die autoexec.bat (am Beispiel einer SB16):
set BLASTER=A220 I5 D1 H5 P330 T6   - Hier sollte man natürlich die gejumperte Konfiguration einsetzen.
C:\SB\MIXERSET /P /Q                            - den Mixer einstellen

semi PnP -
Dies erkennt man daran, dass nur Jumper für die I/O-Adresse auf der Karte vorhanden sind. Wie z.B. bei dieser Soundblaster Karte.
Hier schreibt man einfach in die autoexec.bat (am Beispiel einer SB16):
set BLASTER=A220 I5 D1 H5 P330 T6   - Hier sollte die gejumperte Adresse der Karte stehen hinter A... und bei DMA und IRQ die gewünschten Ressourceneinstellungen.
C:\SB\DIAGNOSE /S                                - Das Tool Diagnose.exe übernimmt die Werte der BLASTER Umgebungsvariable und konfiguriert IRQ/DMA der Karte.
C:\SB\MIXERSET /P /Q                            - den Mixer einstellen

vollständig PnP:
Dies erkennt man daran, dass die Karte keine Jumper für die Ressourceneinstellung hat. Wie z.B. bei dieser Soundblaster Karte.
Hier geht die Konfiguration leicht anders. Hat man die Treiber für die PnP Soundblaster Karten vom Creative Server heruntergeladen, findet man für DOS zwei wichtige Tools: ctcm und ctcu.
Weiterhin gibt es eine Datei ctpnp.cfg. In dieser Textdatei stehen die Ressourcenvorgaben. Ruft man ctcm auf, liest es diese Datei aus und versucht die Karte auf diese Ressourcen zu konfigurieren.
Sind diese Ressourcen nicht frei, versucht ctcm andere freie Ressourcen zu finden. Ist es erfolgreich, so wird die Karte auf diese konfiguriert und ctcm schreibt die Datei ctpnp.cfg neu mit den aktualisierten Ressourcen.
Wenn man pragmatisch herangeht, ruft man einmal ctcm.exe manuell auf. Findet ctcm freie Ressourcen, so setzt es die BLASTER Variable entsprechend.
Durch Hardware Umbauten am System könnte es passieren, dass ctcm.exe je nach Zustand andere freie Ressourcen findet und damit sich die Einstellungen der Soundblaster ändern. Für Spiele, denen man direkt im Setup die Soundblasterressourcen vorgibt, ist dies natürlich unpraktisch, so dass es wünschenswert ist, dass ctcm immer die gleichen Ressourcen probiert. Dies kann man erreichen, indem man seine Wunschkonfiguration in die ctpnp.cfg einträgt und diese Datei danach mit attrib +r ctpnp.cfg auf Nur-Lesen setzt.
in der autoexec.bat
SET CTCM=C:\CTCM         - oder wo sich ctcm.exe sonst befindet
C:\CTCM\CTCM.EXE          - ctcm aufrufen, es die Karte konfiguriert und BLASTER gesetzt
C:\SB\MIXERSET /P /Q        - den Mixer einstellen

für AWE32/64 PnP kommt noch das hinzu:
in autoexec.bat
SET MIDI=SYNTH:1 MAP:E MODE:0
C:\SB\AWEUTIL /S                  - aktiviert die Adlib OPL3-Funktionalität auf der AWE Karte.
Hierbei wird aweutil nicht resident geladen, sondern nur der OPL3-Chip durch den EMU8000-Chip laut geschaltet. Das feste Routing des OPL3 durch den EMU8000 Chip auf der AWE32 nimmt in jedem Fall 2 Stimmen weg, so dass 30 Stimmen für den Wavetable Synthesizer übrig bleiben.

Um mit einer SB32/AWE32 General Midi Kompatibilität zu bekommen muss man AWEUTIL resident laden, mit:
AWEUTIL /EM:GM
statt GM kann man auch GS fuer General Sound oder MT32 fuer Roland MT32 Emulation wählen.
Die Dateien Synthgm.sbk , Synthgs.sbk und Synthmt.sbk müssen sich dafür im Verzeichnis befinden.
AWEUTIL /U  entläd den Emulator aus dem Speicher.
AWEUTIL funktioniert nicht mit Software, die den Protected Mode nutzt, also allen Programmen, die z.B. DOS Extendern wie DOS4GW oder ähnliches nutzen.
Weiterhin kann AWEUTIL keinen MPU401 Smart Modus emulieren.

In einer Windows9x DOS-Box benötigt man kein AWEUTIL und die General Midi Emulation wird über den Windows Treiber zur Verfügung gestellt. Sie ist recht gut, nur leider laufen in der Win9x Dosbox nichtmehr alle Spiele. Wenn man Speicher auf der Karte aufgerüstet hat, empfiehlt sich das Laden eines guten SoundFonts mit dem AWE Control Panel.

Ein Nachteil der SB16 und AWE ist, dass sie als SB Pro angesprochen nur Mono ausgeben. Leider liefern gerade ältere Spiele die noch auf Disketten erschienen sind oft nur 8 Bit Samples und dazu passende SB Pro Unterstützung mit. Falls man Wert auf Stereo Wiedergabe bei solchen Spielen legt, ist zu überlegen eine günstige Karte eines Drittherstellers zu nutzen. Diese sind oft SB Pro kompatibel.

Sogut wie alle Soundblaster Karten lassen sich ueber die CTxxxx Nummer identifizieren. Diese steht auf der Karte drauf.

Gravis Ultrasound

Bild (eines Nachbaus?)

Die Hardware der GUS wird normalerweise per Jumper festgelegt.
Guenstig ist Port 240, IRQ Aufnahme und IRQ Wiedergabe auf 7 und DMA Aufnahme und Wiedergabe auf 7.
Dadurch kann man nicht mehr gleichzeitig Aufnehmen und Wiedergeben, jedoch hat nur einen IRQ und DMA belegt und Port 220 für Soundblaster frei.
Nach der Installation der GUS Software (aktuell 4.11, gussetup schlägt immer fehl beim testen von DMA - kein Grund zur Sorge) trägt man in der autoexec.bat ein:
SET ULTRASND=240,7,7,7,7
SET ULTRADIR=C:\GUS                    - oder wo man sonst seine GUS Software hin installiert hat.
C:\GUS\ULTRINIT.EXE -dj                 - Initialisiert GUS und deaktiviert Game Port (aktuell V2.31)

Das reicht für die GUS aus.
Die GUS hat keinen direkten digitalen Ausgabekanal wie eine Soundblaster. Sie besitzt einen Digitalen Signalprozessor (GF1) mit Speicher (512KB original, 1MB aufgerüstet und Standard).
Jede digitalen Audiodaten müssen erst in den Speicher geladen werden um sie dann auszugeben. Die GUS bietet 32 unabhängige Stimmen, die vom GF1 unabhängig von der originalen Sample Rate hochgesampled,
interpoliert und gemixt werden. Durch die begrenzte Rechenleistung ergibt sich ein Abfall der internen Sampling-Rate bei der Nutzung von vielen Stimmen:

  Active   Playback    Active   Playback    Active   Playback
  voices     rate      voices     rate      voices     rate
    14      44100        21      29400        27      22866
    15      41160        22      28063        28      22050
    16      38587        23      26843        29      21289
    17      36317        24      25725        30      20580
    18      34300        25      24696        31      19916
    19      32494        26      23746        32      19293
    20      30870

Daher deaktiviert gute Playersoftware ungenutzte Stimmen. Trotz diesen Einschränkungen bietet diese Karte mehrere Features, die sie besonders macht.
Sie ist sehr gut dokumentiert und hat viel Software Support. Insbesondere Demos der Demoszene unterstützen die GUS direkt, seltener eine SB.
Sie entlastet den normalen Computer vom mixen der Audiostimmen, was bei älteren CPUs erheblich Performance kostet. So ist beispielsweise ein 386DX-16 mit dem einfachen Mixing von 6 Stimmen schon vollständig ausgelastet.
Auch ein schneller Pentium ist ausgelastet, wenn 32 Stimmen mit qualitativ hochwertigerer Interpolation über die FPU per Software gemixt werden müssen. Bei älteren Spielen, die diese Methode der Musikwiedergabe genutzt haben, wurden also eher schnelle und einfache Softwaremixing Routinen ohne Interpolation verwendet. Hier hat eine GUS den Vorteil, dass diese Berechnung vollständig und in hoher Qualität auf der Soundkarte abläuft und damit einerseits die CPU davon befreit und gleichzeitig qualitativ besser ist als die das Software-Mixing.

Der Speicher wird als dynamischer Wavetable bei Midi Wiedergabe genutzt, wobei nur die für den Song nötigen Instrumentensamples geladen werden. Daher bekommt man trotz geringen onboard Speichers eine sehr gute Samplequalitaet. Der gesamte Instrumenten Sample Pool liegt dabei auf  Festplatte und umfasst knapp 6,5 MB. Damit hat man 1 MB Wavetable RAM pro Song zur Verfügung. Eine normale AWE32 im Vergleich hat alle 192 Instrumentensamples in 1 MB ROM.

Gravis hat fuer nahezu jedes ältere DOS Spiel Treiber nachgeliefert, die die GUS direkt unterstützen.

Desweiteren gibt es einen Emulator der Soundblaster und General Midi / MT32 umfasst und nur knapp 2 kb im unteren Speicherbereich benoetigt.
Er heisst MegaEm (aktuell 3.11) und benötigt EMM386 , QEMM386 oder einen ähnlichen V8086 Speichermanager.
Er wird per megaem -gm aufgerufen. Statt gm kann man auch mt schreiben fuer MT-32 Emulation.
Mit megaem -i kommt man in einen interaktiven Modus, wo man über ein Menü den Emulator auch einstellen kann.
megaem beinhaltet die Funktionalität von Ultramid (siehe weiter unten).

Hat man die ältere 2.x Version von Megaem ist das Setup eine getrennte Datei: mesetup.exe
Bei der Wahl des emulierten MIDI-Ports kann man einen real vorhandenen 'überdecken'. MegaEm gibt zwar einen Hinweis, aber funktioniert trotzdem. Es fängt die Ausgabedaten ab, bevor sie das eventuell vorhandene echte Gerät erreichen und spielt über die GUS ab.
Beim ersten Start baut sich Megaem einen General Midi Soundfont aus den *.pat Dateien. Für eine GUS mit 1 MB RAM wird z.B. eine Datei mit dem Namen large.bnk erstellt.

Falls man nur himem.sys laden darf, kann man nur ultramid.exe nutzen.

Für die GUS gibt es auch eine Soundblaster Emulation. Hierbei sollte jedoch gesagt werden, dass die GUS sich konzeptionell stark von einer Soundblaster unterscheidet, was die Emulation erschwert.
Daher ist zu empfehlen eine echte Soundblasterkarte parallel zur GUS zu nutzen. Durch die Häufigkeit der verfügbaren SB-Karten ist es vergleichsweise einfach eine zu besorgen.
Falls man die Soundblasteremulation der GUS trotzdem nutzen will:
Nutzt man einen V8086 Speichermanager wie EMM386, so kann man die SB Emulation in MegaEm 3.x aktivieren.

Falls man ein Spiel hat, das nicht mit EMM386 funktioniert, kann man immernoch SBOS (aktuell 3.82) benutzen.

Für die Audio Interface Libraries (AIL bzw. Miles Driver) muss man vorher die Funktionalität von ultramid laden. Also entweder megaem oder ultramid.exe.
UltraMid dient dazu die 32 Stimmen der GUS für die AIL Treiber aufzuteilen. Einige Stimmen bekommt der AIL Treiber für die Ausgabe der digitalen Samples und andere der AIL Treiber für die Musikwiedergabe.
Typisch wählt man in diesen Spielen im Soundsetup immer zwei Soundlösungen aus, eine für Digital und eine für Musik.
Mit ultramid -f kann man das TSR wieder entladen.
In seltenen Fällen startet man ultramid mit dem Parameter -c , der die *.pat Dateien in den Speicher der GUS vorläd. Im allgemeinen übernimmt das das Spiel selbständig.

Bei Spielen die den AIL32 Treiber nutzen, wie Sim City 2000 muss man kein ultramid laden.

Ein weiteres erwähnenswertes Tool ist GusDrive II , womit man den Speicher der GUS als RAM Drive nutzen kann.
Startet man es von der Kommandozeile, so verhält es sich wie ultrinit.exe (nur mit mehr Ausgabe von Informationen zur Karte).
Der Gusdrive Treiber benötigt nur ein paar hundert Byte Speicher, wenn man ihn in der config.sys läd. Natuerlich sollte man nicht gleichzeitig die GUS fuer Musik benutzen.
Das RAM Laufwerk behält selbst nach einem Computerkaltstart die Dateien und ist danach wie vorher verfügbar, wenn man GusDrive II wieder läd.

Das Basispaket findet man hier.
(ca. 16 MB)

Enthalten ist:

GUS Software V4.11 incl. der Midi Patches
MegaEm 3.10b
Ultramid 1.12
Ultrainit 2.31
SBOS 3.82
alle AIL Treiber (Miles)
Digpak Treiber
alle? verfügbaren Zusatztreiber für Spiele
GusDrive2

Falls jemand wirklich ALLES möchte (ca. 114MB ohne EAW Patches), möge er mir doch bitte eine mail schicken.


Maxi Sound 64 Home Studio

Bild der Karte

Bei dieser Karte handelt es sich um eine spaete ISA Soundkarte, die wie der Name schon vermuten laesst 64 unabhaengige Stimmen beherrscht.
Kernstueck ist der Dream SAM9407. 9407 heisst der Chip weil er im Juli 1994 erschien. Dieser Chip ist ein Digitaler Signalprozessor mit eigener Firmware.
Um der Karte noch etwas mehr Standards zu geben wurde ein Crystal 4236 davor verbaut. Dieser Chip liefert SB, SB Pro, Windows Soundsystem und Adlib Kompatibilitaet. Dazu ISA PnP und der SAM9407 wurde als externer Midi Synthesizer eingebunden. Wie man auf dem Bild sieht kann man Wavetablespeicher zu den 4 MB Wavetable Rom nachruesten, bis zu 32 MB.
Weiterhin bietet der Dream Chip nicht nur Midi Funktionalitaet, sondern auch 8 digitale Stereokanaele bis 64khz als Ausgabe und 2 als Aufnahme - gleichzeitig. Dazu kann der DSP noch die
ueblichen Effekte wie Reverb, Chorus usw. auf die Kanaele rechnen.
Klingt soweit absolut super und um einiges fortgeschrittener als der EMU8000 der auf den SB AWE verbaut ist.

Wenn da nicht die Software wäre...
Zurück nach 1994, es gab noch kein Windows 95 und Dream lieferte eine Standard Firmware fuer den SAM9407 und einen Referenztreiber fuer Windows 3.1.
Dies wurde nahezu 1:1 von Guillemot übernommen. Als Windows 95 herauskam, wurde der alte Windows 3.1 Treiber nur insoweit geändert, als dass man Schnittstelle schrieb, die den 16bit Treiber Win9x fähig machte. Die Software zu dem Crystal Chip wurde immer aktuell gehalten, weil dort ja neue Referenztreiber von Analog Devices kamen.
Der DSP hat eine eigene Firmware, durch deren eigene Änderung man beliebig viele neue Faehigkeiten hinzufügen kann. Da die Karte 2 Stereo Ausgänge hat, z.B. 5.1 Sound oder ähnliches.
Terratec hat es mit ihrer EWS64XL, die eine nahezu identische Hardware hat vorgemacht, dass es durchaus möglich ist.
Einen ambitionierten Programmierer schien es jedoch bei Guillemot gegeben zu haben, der die Maxi Sound 64 Utilities geschrieben hat, die jedoch irgendwann im Beta Stadium abgebrochen wurden und
daher noch recht buggy sind.

Zurueck zur Konfiguration und wie man trotzdem die Faehigkeiten bei DOS Spielen aktiviert. Da der Crystal Chip nur SB Pro Kompatibilitaet bietet, liegt das Hauptaugenmerk auf der General Midi Faehigkeit des Dream Chips.
Zuerst muss man den Crystal Chip konfigurieren, dazu gibt es das Programm CS4232C.EXE das die Ressourceneinstellungen aus der CWDAUDIO.INI liest.
Man muss beachten dass die Einstellungen fuer die WSS und SB Pro Ressourcen bei Int, DmaPlay und DmaCapture dieselben sind.
Hinter CDIO und CDInt verbirgt sich der Dream Chip, meist auf 330, 9.
cs4232c ist eines der Programme die über PnP konfigurieren und den Chip initialisieren. Mit /O /C erzwingt man die Einstellungen zu setzen, wie in der *.ini Datei vorgegeben..

Nun sollte der Crystal Chip sichtbar sein und damit auch der Dream Chip. Dieser muss auch noch initialisiert werden.
Dazu gibt es zwei Programme:
94dinit.exe oder eine aus Korea, was zur Hoontech Soundtrack 97 mitgeliefert wird, die auch nahezu baugleich ist und pnp97set.exe heisst.
Mit diesen Programmen muss man die Firmware in den DSP laden und soll auch einen Soundfont laden können, wobei ich das bisher nicht geschafft habe.
Keines der Programme bringt eine Fehlermeldung, wenn man eine Datei statt ROM angibt, aber 10MB sind irgendwie auch nicht in 1s auf einem langsamen Rechner geladen... (ohne Smartdrv und Festplattenaktivität?!?)
Auf jeden Fall muss man den Port angeben, mit dem man den Dream Chip konfiguriert hat und die Firmware.

Falls jemand 'wirklich' unter DOS einen Soundfont geladen bekommen hat, möge er mich mach anschreiben :-)

Danach sollte der Dream Chip im General Midi Modus bei Port 300 oder 330 (je nachdem) verfügbar sein und einen guten Klang liefern.
Wenn man mehr möchte, kann man vorher Win9x hochfahren einen Soundfont mit den Maxi Utilities laden und dann das DOS Spiel im Fenster starten.

Fuer die 8 digital Stimmen des DSPs gibt es wohl keine Unterstützung unter DOS.

Hier nun noch die Ressourcen zu der Karte sortiert.
Treiber Version 5 fuer Win 9x
Treiber die DirectX5 unterstuetzen fuer Win 9x  (neuer als V5)
Treiber V3.0 fuer NT4
Treiber fuer die Hoontech Soundtrack 97, teilweise auch fuer die Maxisound nutzbar
Der DLS Reader von Dream
Maxi Sound 64 Utilities fuer Win9x und NT4, trotz Beta und Bugs ein sehr nuetzliches Programm
9 MB General Midi Soundfont
11 MB General Sound Soundfont

Hier noch ein wenig Dokumentation zum Dream Chip, die ich im Netz gefunden habe:
Dream 9407 Datasheet
Dream 9407 Treiber API

Mittlerweile gibt es auch einen Treiber für Win 2K/XP. Es handelt sich um eine Auskopplung des SAM9407 Treibers der Maxi Sound 64 Home Studio Pro. Diese hat als Codec einen Chip von ESS.
Dazu installiert man unter Win2K zuerst den recht allgemeinen Treiber für den Crystal 4236 Codec. Danach installiert man den SAM9407 Treiber.
Falls jemand diesen Treiber möchte -> mail.