Virtual OS/2 International Consumer Education
VOICE Home Page: http://www.os2voice.org
November 2003

[Newsletter Index]
[Previous Page] [Next Page]
[Feature Index]

editor@os2voice.org


Editing MMPM2.INI

By Juergen Gaida © November 2003, Translation: Christian Hennecke

Introduction

This article describes the structure, at least relating to the soundcard specific entries, as well as the various options to modify and edit the MMPM2.INI.

The decision to write this article arose out of the recommendations in many places and (most recently in Robert Fuchs article in VOICE Newsletter [February, 2003] to uninstall MMPM/2 and then reinstall it when having problems with soundcard installation in OS/2 Warp, Warp 4.5 (MCP1 and MCP2) and especially eCS 1.0x.

In some newsgroups and on some OS/2 specific websites there have been some proposals to try it first in a different way.

This article describes the "different way". There is no guarantee that it will work, but at the end the structure and the procedure to modify is trivial, so that under normal circumstances editing the MMPM2.INI will be successful.

Problems with the soundcard installation are usually encountered, when an ISA soundcard is replaced by a PCI soundcard. Especially if the ISA soundcard is supported by OS/2 directly "out of the box" but there is no uninstall routine available. Additionally some other external drivers do not always offer a working uninstall procedure, so at the end there is no alternate solution, except to uninstall MMPM/2. In particular eCS 1.0x has proven problematic, as in numerous installations of eCS 1.0x there is no menu entry "delete MMPM/2" available - it is not clear whether this is applicable to all eCS versions/installations. Possibly the author is the only one, having such system :-). However, to uninstall the MMPM/2 system will of course demand a lot of extra work, since after reinstallation all multimedia plug-ins for the browsers as well as all MMPM/2 specific add-ons need to be reinstalled as well.

Editing an existing MMPM2.INI to prepare the installation of a new soundcard or better, the installation of a new driver, can now prevent the deinstallation of MMPM/2. If the stated solution here is not successful - you can still remove and reinstall MMPM/2.

This article contains examples of 6 different soundcards - some of them have been made available by Robert Fuchs and they partly derive originally from members of Team OS/2 Ruhr e.V.. So, Thanks for support!

Due to this numerous examples the article is not easy to read, but each example has certain structural peculiarities, which might be applicable to other soundcards, not mentioned here and therefore ease their identification.

Structure of MMPM2.INI with relevant soundcard entries

The contents of MMPM2.INI are shown with a typeface that is different from comments and other text. The sequence of entries/sections may vary from the one shown here. Sections always start with an identifier in square brackets [abcxyz] and end with the next section. This structure is more or less typical for ASCII configuration files.

generic entries

[systemvalues]
closedcaption=0
mastervolume=100
headphones=1
speakers=1
workpath=C:\MMOS2
qosvalue=65537
qoserrorflag=2
There might be another path mentioned in "workpath". It is important to check to make sure the path/the directory is valid!
[IBMDIGVIDPLAYER01]
VERSIONNUMBER=1.2
PRODUCTINFO=Software Motion Video
MCDDRIVER=SVMC
MCDTABLE=MDM
RESOURCENAME=VIDEO PLAYER01
DEVICEFLAG=1
DEVICETYPE=12
SHARETYPE=3
RESOURCEUNITS=10
RESOURCECLASSES=2,10,1
CONNECTORS=1,3,,1
EXTNAMES=5,AVI,FLC,FLI,MOV,QT
EATYPES=Digital Video
ALIASNAME=DigitalVideo Player

[SPEAKER]
VERSIONNUMBER=1
PRODUCTINFO=SPEAKER
RESOURCENAME=SPEAKER
DEVICEFLAG=2
DEVICETYPE=13
SHARETYPE=1
RESOURCEUNITS=0
RESOURCECLASSES=1,1
CONNECTORS=1,15,,0

[HEADPHONE]
VERSIONNUMBER=1
PRODUCTINFO=HEADPHONE
RESOURCENAME=HEADPHONE
DEVICEFLAG=2
DEVICETYPE=14
SHARETYPE=1
RESOURCEUNITS=0
RESOURCECLASSES=1,1
CONNECTORS=1,15,,0

[MICROPHONE]
VERSIONNUMBER=1
PRODUCTINFO=MICROPHONE
RESOURCENAME=MICROPHONE
DEVICEFLAG=2
DEVICETYPE=15
SHARETYPE=1
RESOURCEUNITS=0
RESOURCECLASSES=1,1
CONNECTORS=1,16,,0

[IBMFILTER01]
VERSIONNUMBER=2.0
PRODUCTINFO=IBM Mapper
MCDDRIVER=FILTMCD
VSDDRIVER=IBMMAP
MCDTABLE=MDM
RESOURCENAME=Filter1
DEVICEFLAG=2
DEVICETYPE=18
SHARETYPE=3
RESOURCEUNITS=10
RESOURCECLASSES=1,1
PARMSTRING=Mapper
ALIASNAME=MAPPER

[IBMFILTER02]
VERSIONNUMBER=2.0
PRODUCTINFO=IMA CODEC
MCDDRIVER=FILTMCD
VSDDRIVER=IMAFILT
MCDTABLE=MDM
RESOURCENAME=Filter2
DEVICEFLAG=2
DEVICETYPE=18
SHARETYPE=3
RESOURCEUNITS=10
RESOURCECLASSES=1,1
PARMSTRING=IMAADPCMFilter
ALIASNAME=IMACODEC

[IBMFILTER03]
VERSIONNUMBER=2.0
PRODUCTINFO=Microsoft CODEC
MCDDRIVER=FILTMCD
VSDDRIVER=MSFILT
MCDTABLE=MDM
RESOURCENAME=Filter3
DEVICEFLAG=2
DEVICETYPE=18
SHARETYPE=3
RESOURCEUNITS=10
RESOURCECLASSES=1,1
PARMSTRING=MSADPCMFilter
ALIASNAME=MSCODEC

[IBMMPEGPLAYER01]
VERSIONNUMBER=1.2
PRODUCTINFO=OpenMPEG Video
MCDDRIVER=DVMC
MCDTABLE=MDM
RESOURCENAME=OpenMPEG01
DEVICEFLAG=5
DEVICETYPE=12
SHARETYPE=3
RESOURCEUNITS=10
RESOURCECLASSES=2,10,1
CONNECTORS=1,3,,1
EXTNAMES=7,MPG,VBS,DAT,M2P,CDI,M2T,M1T
ALIASNAME=OpenMPEG Video 2

[IBMCDAUDIO01]
VERSIONNUMBER=2.0
PRODUCTINFO=IBMCDAUDIO
MCDDRIVER=CDAUDIO
VSDDRIVER=GENCDVSD
PDDNAME=CDROM
MCDTABLE=MDM
RESOURCENAME=CD1
DEVICEFLAG=1
DEVICETYPE=3
SHARETYPE=2
RESOURCEUNITS=1
RESOURCECLASSES=1,1
PARMSTRING=Drive=1
CONNECTORS=1,6,HEADPHONE,1
ALIASNAME=Compact Disc

[IBMCDAUDIO02]
VERSIONNUMBER=2.0
PRODUCTINFO=IBMCDAUDIO
MCDDRIVER=CDAUDIO
VSDDRIVER=GENCDVSD
PDDNAME=CDROM
MCDTABLE=MDM
RESOURCENAME=CD2
DEVICEFLAG=1
DEVICETYPE=3
SHARETYPE=2
RESOURCEUNITS=1
RESOURCECLASSES=1,1
PARMSTRING=Drive=2
CONNECTORS=1,6,HEADPHONE,1
ALIASNAME=CD 2
The following entry makes plain the the simple structure of the MMPM2.INI:
this section shows the Digital Video Encoder which is listed in section [drivers] (see below) in line -Digitalvideo-.
[IBMDIGVIDENC01]
VERSIONNUMBER=1.21J
PRODUCTINFO=Hauppauge WinCast TV
MCDDRIVER=SVMC
VSDDRIVER=VIDVCI
PDDNAME=WCAST 1$
MCDTABLE=MDM
RESOURCENAME=Wcast01
DEVICEFLAG=1
DEVICETYPE=12
SHARETYPE=3
RESOURCEUNITS=10
RESOURCECLASSES=2,10,1
CONNECTORS=1,3,,1
ALIASNAME=Wcast 3
The next section shows all available drivers and is the most important section, since it states all names and terms which have to be used for later editing.
[drivers]
Digitalvideo=IBMDIGVIDPLAYER01,IBMMPEGPLAYER01,IBMDIGVIDENC01
Speaker=SPEAKER
Headphone=HEADPHONE
Microphone=MICROPHONE
Filter=IBMFILTER01,IBMFILTER02,IBMFILTER03
CDaudio=IBMCDAUDIO01,IBMCDAUDIO02
CDXA=IBMCD0XA_1
Depending on the hardware, there might be more or less CD audio devices listed. There might be more players or less than shown. The filters as well as the CD audio devices should be available, means all filters must be listed in MMPM2.INI as well as the CD audio devices, which of course should be installed as hardware!

The following entries (still section [drivers]) refer to the installed soundcard

ProAudioSpectrum 16

Waveaudio=IBMWAVEPAS1601
Sequencer=IBMSEQPAS1601
Ampmix=IBMAMPMIXPAS1601
Regardless of the chosen example in this 3 lines all installed drivers and control devices as well as mixer-/controller units are listed. The lines Sequencer and Ampmix may bear several entries.

Aureal Vortex AU8820

Waveaudio=AURVORTEXWAVE01
Ampmix=AURVORTEXAMPMIX01,AURWTAMPMIX01,AURMPUAMPMIX01
Sequencer=AURVORTEXWT01,AURVORTEXMPU40101
WaveAudio (Crystal chipset)
Waveaudio=IBMWaveBusAudio01
Ampmix=IBMAmpMixBusAudio01,IBMAMPMIXMPU40101
Sequencer=IBMSEQMPU40101
Soundblaster Live
Waveaudio=SBLIVEWAVE01
Ampmix=SBLIVEAMPMIX01
Sequencer=DOCTiMidity01
Soundblaster 32 AWE
Waveaudio=IBMWAVESB01
Ampmix=IBMAMPMIXSB01,IBMAMPMIXMPU40101
Sequencer=IBMSEQSB01,IBMSEQMPU40101
Yamaha M724
Waveaudio=IBMWAVEYMF01
Sequencer=IBMSEQYMF01
Ampmix=IBMAMPMIXYMF01
Important! Before these entries are edited: the driver names refer to further sections in MMPM2.INI.

So first, those sections should be located and modified. Afterwards the 3 entries from above can be modified or deleted.

Important likewise: The wave and the sequencer sections are listed additionally with the extension PLAY and at least once with the extension RECORD. Overall the wave driver as well as the sequencer can be listed up to 3 times in MMPM2.INI. The order of the entries may differ from the given examples. However, the important lines aer always Waveaudio, Sequencer and Ampmix.

soundcard dependent entries

Below the soundcard specific entries according to the samples above.

waveaudio drivers

ProAudioSpectrum 16

[IBMWAVEPAS1601]
VERSIONNUMBER=2.0
PRODUCTINFO=Pro AudioSpectrum 16
MCDDRIVER=AUDIOMCD
VSDDRIVER=AUDIOIF
PDDNAME=PAS161$
MCDTABLE=MDM
RESOURCENAME=ProAudioSpecW01
DEVICEFLAG=1
DEVICETYPE=7
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=1,3,IBMAMPMIXPAS1601,1
PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=16,CHANNELS=1,DIRECTION=PLAY
EXTNAMES=7,WAV,_AU,VOC,AU,SND,AIF,IFF
EATYPES=Digital Audio
ALIASNAME=Digital Audio

[IBMWAVEPAS1601-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=0,3,1,1,3,1

[IBMWAVEPAS1601-RECORD]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=1,3,1,0,3,1

Aureal VortexAU8820
[AURVORTEXWAVE01]
VERSIONNUMBER=0.1.3
PRODUCTINFO=Aureal Vortex AU8820
MCDDRIVER=AUDIOMCD
VSDDRIVER=AUDIOIF
PDDNAME=ASPOS21$
MCDTABLE=MDM
RESOURCENAME=AurealWave01
DEVICEFLAG=1
DEVICETYPE=7
SHARETYPE=3
RESOURCEUNITS=17
RESOURCECLASSES=1,1
CONNECTORS=1,3,AURVORTEXAMPMIX01,1
PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=8,CHANNELS=1,DIRECTION=PLAY
EXTNAMES=1,WAV
EATYPES=Digital Audio
ALIASNAME=Digital Audio

[AURVORTEXWAVE01-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=0,3,1,1,3,1

[AURVORTEXWAVE01-RECORD]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=1,3,1,0,3,1

As mentioned above, the waveaudio driver is listed 3 times. A complete removal therefore requires to delete all 3 sections. Furthermore it is easily visible, with the line CONNECTORS a hook to AMPMIX is installed.

WaveAudio (Crystal chipset)

[IBMWaveBusAudio01]
VERSIONNUMBER=1.76.
PRODUCTINFO=Crystal Audio
MCDDRIVER=AUDIOMCD
VSDDRIVER=AUDIOIF
PDDNAME=BSAUD1$
MCDTABLE=MDM
RESOURCENAME=BusAudioW01
DEVICEFLAG=1
DEVICETYPE=7
SHARETYPE=3
RESOURCEUNITS=2
RESOURCECLASSES=2,1,2
VALIDCOMBINATIONS=1,2,2,1
CONNECTORS=1,3,IBMAmpMixBusAudio01,1
PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=16,CHANNELS=2,DIRECTION=PLAY
EXTNAMES=4,WAV,VOC,OGG,MP3
EATYPES=Digital Audio,
ALIASNAME=Digital Audio

[IBMWaveBusAudio01-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=0,3,1,1,3,1

[IBMWaveBusAudio01-RECORD]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=1,3,1,0,3,1

Soundblaster Live
[SBLIVEWAVE01]
VERSIONNUMBER=0.8.0
PRODUCTINFO=SoundBlaster Live! Wave Audio
MCDDRIVER=AUDIOMCD
VSDDRIVER=AUDIOIF
PDDNAME=SBLIVE1$
MCDTABLE=MDM
RESOURCENAME=SBLiveWave01
DEVICEFLAG=1
DEVICETYPE=7
SHARETYPE=3
RESOURCEUNITS=33
RESOURCECLASSES=2,32,1
VALIDCOMBINATIONS=1,2,2,1
CONNECTORS=1,3,SBLIVEAMPMIX01,1
PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=8,CHANNELS=1,DIRECTION=PLAY
EXTNAMES=1,WAV
EATYPES=Digital Audio
ALIASNAME=Digital Audio

[SBLIVEWAVE01-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=0,3,1,1,3,1

[SBLIVEWAVE01-RECORD]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=1,3,1,0,3,1

Soundblaster 32AWE
[IBMWAVESB01]
VERSIONNUMBER=1.1
PRODUCTINFO=Sound Blaster AWE32
MCDDRIVER=AUDIOMCD
VSDDRIVER=SBAWEVSD
PDDNAME=SBAUD1$
MCDTABLE=MDM
RESOURCENAME=SoundBlasterW01
DEVICEFLAG=1
DEVICETYPE=7
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=1,3,IBMAMPMIXSB01,1
PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=16,CHANNELS=2,DIRECTION=PLAY
EXTNAMES=2,WAV,VOC
EATYPES=Digital Audio
ALIASNAME=Digital Audio

[IBMWAVESB01-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=0,3,1,1,3,1

[IBMWAVESB01-RECORD]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=1,3,1,0,3,1

Yamaha M724
[IBMWAVEYMF01]
VERSIONNUMBER=2.0
PRODUCTINFO=YM724
MCDDRIVER=AUDIOMCD
VSDDRIVER=AUDIOIF
PDDNAME=YM7241$
MCDTABLE=MDM
RESOURCENAME=YmfW01
DEVICEFLAG=1
DEVICETYPE=7
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=1,3,IBMAMPMIXYMF01,1
PARMSTRING=FORMAT=1,SAMPRATE=22050,BPS=16,CHANNELS=1,DIRECTION=PLAY
EXTNAMES=1,WAV
EATYPES=Digital Audio
ALIASNAME=Digital Audio

[IBMWAVEYMF01-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=Ampmix01
CONNECTION01=0,3,1,1,3,1

[IBMWAVEYMF01-RECORD]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=Ampmix01
CONNECTION01=1,3,1,0,3,1

With these entries all settings und references of the soundcard dealing with waveaudio are covered. Once deleted, there will be no longer sound available. But, the soundcard driver is not yet removed, since sequencer and ampmix are still outstanding.

As one can see from the samples, the settings from the old ISA cards are not oldfashioned compared to the new PCI cards. The AWE32 is besides the WaveAudio (Crystal chipset) the only card in the examples with 2 channels as a standard. And even the standard setting from the ancient PAS16 is neither to be hidden by the Aureal chipset nor by the Soundblaster Live.

Amplifier/Mixer

Examples for section AMPMIX.

ProAudioSpectrum 16

[IBMAMPMIXPAS1601]
VERSIONNUMBER=2.0
PRODUCTINFO=Pro AudioSpectrum 16
MCDDRIVER=AMPMXMCD
VSDDRIVER=AUDIOIF
PDDNAME=PAS161$
MCDTABLE=MDM
RESOURCENAME=ProAudioSpecA01
DEVICEFLAG=2
DEVICETYPE=9
SHARETYPE=3
RESOURCEUNITS=2
RESOURCECLASSES=2,1,1
VALIDCOMBINATIONS=1,2,2,1
CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
PARMSTRING=TREBLE=50,BASS=50,PITCH=50,GAIN=70,BALANCE=50,VOL=70,INPUT=MIC,OUTPUT=SPEAKER,RESOURCEDLL=AUDIOIF,RCID=5

Aureal Vortex AU8820
[AURVORTEXAMPMIX01]
VERSIONNUMBER=0.1.3
PRODUCTINFO=Aureal Vortex AU8820
MCDDRIVER=AMPMXMCD
VSDDRIVER=AUDIOIF
PDDNAME=ASPOS21$
MCDTABLE=MDM
RESOURCENAME=AurealAmpMixer01
DEVICEFLAG=2
DEVICETYPE=9
SHARETYPE=3
RESOURCEUNITS=17
RESOURCECLASSES=2,16,1
VALIDCOMBINATIONS=1,2,2,1
CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
PARMSTRING=BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER

[AURWTAMPMIX01]
VERSIONNUMBER=0.1.3
PRODUCTINFO=Aureal Vortex AU8820 Wavetable
MCDDRIVER=AMPMXMCD
VSDDRIVER=AUDIOIF
PDDNAME=ASPOS21$
MCDTABLE=MDM
RESOURCENAME=AurealWtMixer01
DEVICEFLAG=2
DEVICETYPE=9
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
PARMSTRING=BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER

[AURMPUAMPMIX01]
VERSIONNUMBER=0.1.3
PRODUCTINFO=Aureal Vortex AU8820 MPU-401
MCDDRIVER=AMPMXMCD
VSDDRIVER=AUDIOIF
PDDNAME=ASPOS31$
MCDTABLE=MDM
RESOURCENAME=AurealMpuMixer01
DEVICEFLAG=2
DEVICETYPE=9
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
PARMSTRING=BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER

WaveAudio (Crystal chipset)
[IBMAmpMixBusAudio01]
VERSIONNUMBER=1.76.
PRODUCTINFO=Crystal Audio
MCDDRIVER=AMPMXMCD
VSDDRIVER=AUDIOIF
PDDNAME=BSAUD1$
MCDTABLE=MDM
RESOURCENAME=BusAudioA01
DEVICEFLAG=2
DEVICETYPE=9
SHARETYPE=3
RESOURCEUNITS=2
RESOURCECLASSES=2,1,2
VALIDCOMBINATIONS=1,2,2,1
CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
PARMSTRING=TREBLE=50,BASS=50,PITCH=50,GAIN=70,BALANCE=50,VOL=75,INPUT=LINE,OUTPUT=SPEAKER,RESOURCEDLL=BSAUDRES,RCID=8

[IBMAMPMIXMPU40101]
VERSIONNUMBER=2.0.0
PRODUCTINFO=MPU-401
MCDDRIVER=AMPMXMCD
VSDDRIVER=AUDIOIF
PDDNAME=MPU4011$
MCDTABLE=MDM
RESOURCENAME=MPU-401AMPMIX01
DEVICEFLAG=2
DEVICETYPE=9
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=2,4,,0,14,,0
PARMSTRING=TREBLE=50,BASS=50,PITCH=50,GAIN=70,BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER,RESOURCEDLL=MPU401,RCID=9

Soundblaster Live
[SBLIVEAMPMIX01]
VERSIONNUMBER=0.8.0
PRODUCTINFO=SoundBlaster Live! Wave Audio
MCDDRIVER=AMPMXMCD
VSDDRIVER=AUDIOIF
PDDNAME=SBLIVE1$
MCDTABLE=MDM
RESOURCENAME=SBLiveAmpMixer01
DEVICEFLAG=2
DEVICETYPE=9
SHARETYPE=3
RESOURCEUNITS=33
RESOURCECLASSES=2,32,1
VALIDCOMBINATIONS=1,2,2,1
CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
PARMSTRING=BALANCE=50,VOL=100,INPUT=LINE,GAIN=70,OUTPUT=SPEAKER

Soundblaster 32 AWE
[IBMAMPMIXSB01]
VERSIONNUMBER=1.1
PRODUCTINFO=Sound Blaster AWE32
MCDDRIVER=AMPMXMCD
VSDDRIVER=SBAWEVSD
PDDNAME=SBAUD1$
MCDTABLE=MDM
RESOURCENAME=SoundBlasterA01
DEVICEFLAG=2
DEVICETYPE=9
SHARETYPE=3
RESOURCEUNITS=2
RESOURCECLASSES=2,1,1
VALIDCOMBINATIONS=1,2,2,1
CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
PARMSTRING=TREBLE=75,BASS=75,PITCH=50,GAIN=50,BALANCE=50,VOL=100,INPUT=MIC,OUTPUT=SPEAKER,RESOURCEDLL=SBAWEVSD,RCID=4

[IBMAMPMIXMPU40101]
VERSIONNUMBER=2.0.0
PRODUCTINFO=MPU-401
MCDDRIVER=AMPMXMCD
VSDDRIVER=AUDIOIF
PDDNAME=MPU4011$
MCDTABLE=MDM
RESOURCENAME=MPU-401AMPMIX01
DEVICEFLAG=2
DEVICETYPE=9
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=2,4,,0,14,,0
PARMSTRING=TREBLE=50,BASS=50,PITCH=50,GAIN=70,BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER,RESOURCEDLL=MPU401,RCID=9

Yamaha M724
[IBMAMPMIXYMF01]
VERSIONNUMBER=2.0
PRODUCTINFO=YM724
MCDDRIVER=AMPMXMCD
VSDDRIVER=AUDIOIF
PDDNAME=YM7241$
MCDTABLE=MDM
RESOURCENAME=YmfA01
DEVICEFLAG=2
DEVICETYPE=9
SHARETYPE=3
RESOURCEUNITS=2
RESOURCECLASSES=2,1,1
VALIDCOMBINATIONS=1,2,2,1
CONNECTORS=5,4,,0,9,,0,8,,0,10,,0,7,,0
PARMSTRING=TREBLE=75,BASS=75,PITCH=50,GAIN=70,BALANCE=50,VOL=100,INPUT=LINE,OUTPUT=SPEAKER,RESOURCEDLL=AUDIOIF,RCID=4

The structure of section AMPMIX at least is always the same. Together with section [systemvalues] one can manipulate volume, balance, basses, heights and so on even without a GUI mixer. In any case, these entries are worth to take a look at, if the sound becomes sleazy.

Sequencer

The next and for the time being last section is the sequencer. As mentioned before, more than only one section SEQUENCER is likely to appear.

Examples of section SEQUENCER follow.

ProAudioSpectrum 16

[IBMSEQPAS1601]
VERSIONNUMBER=2.0
PRODUCTINFO=Pro AudioSpectrum 16
MCDDRIVER=MIDIMCD
VSDDRIVER=AUDIOIF
PDDNAME=PAS161$
MCDTABLE=MDM
RESOURCENAME=ProAudioSpecS01
DEVICEFLAG=1
DEVICETYPE=8
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=1,1,IBMAMPMIXPAS1601,1
PARMSTRING=CHANNELS=1111111111111111 MIDITYPE=General MIDI
EXTNAMES=1,MID
EATYPES=MIDI
ALIASNAME=MIDI

[IBMSEQPAS1601-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=0,1,1,1,4,1

Aureal Vortex AU8820
[AURVORTEXWT01]
VERSIONNUMBER=0.1.3
PRODUCTINFO=Aureal Vortex AU8820 Wavetable
MCDDRIVER=MIDIMCD
VSDDRIVER=AUDIOIF
PDDNAME=ASPOS21$
MCDTABLE=MDM
RESOURCENAME=AurealWavetable01
DEVICEFLAG=1
DEVICETYPE=8
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=1,1,AURWTAMPMIX01,1
PARMSTRING=CHANNELS=1111111111111111 MIDITYPE=General MIDI
EXTNAMES=1,MID
EATYPES=MIDI
ALIASNAME=MIDI

[AURVORTEXWT01-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX02
CONNECTION01=0,1,1,1,4,1

[AURVORTEXMPU40101]
VERSIONNUMBER=0.1.3
PRODUCTINFO=Aureal Vortex AU8820 MPU-401
MCDDRIVER=MIDIMCD
VSDDRIVER=AUDIOIF
PDDNAME=ASPOS31$
MCDTABLE=MDM
RESOURCENAME=AurealMPU40101
DEVICEFLAG=1
DEVICETYPE=8
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=1,1,AURMPUAMPMIX01,1
PARMSTRING=CHANNELS=1111111111111111 MIDITYPE=General MIDI
ALIASNAME=MIDI 2

[AURVORTEXMPU40101-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX03
CONNECTION01=0,1,1,1,4,1

WaveAudio (Crystal chipset)
[IBMSEQMPU40101]
VERSIONNUMBER=2.0.0
PRODUCTINFO=MPU-401
MCDDRIVER=MIDIMCD
VSDDRIVER=AUDIOIF
PDDNAME=MPU4011$
MCDTABLE=MDM
RESOURCENAME=MPU-401SEQ01
DEVICEFLAG=1
DEVICETYPE=8
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=1,1,IBMAMPMIXMPU40101,1
PARMSTRING=CHANNELS=1111111111111111, MIDITYPE=General MIDI
EXTNAMES=1,MID
EATYPES=MIDI
ALIASNAME=MIDI

[IBMSEQMPU40101-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX02
CONNECTION01=0,1,1,1,4,1

Soundblaster Live
[DOCTiMidity01]
VERSIONNUMBER=2.10.
PRODUCTINFO=TiMidity 2.10.4
MCDDRIVER=TIMIDITY
MCDTABLE=MDM
RESOURCENAME=TiMidity01
DEVICEFLAG=1
DEVICETYPE=8
SHARETYPE=1
RESOURCEUNITS=1
RESOURCECLASSES=1,1
ALIASNAME=TiMidity
EXTNAMES=2,MID,MOD

If TiMidity has an uninstall routine, this should be used!

Soundblaster 32 AWE

[IBMSEQSB01]
VERSIONNUMBER=1.1
PRODUCTINFO=SoundBlaster AWE32
MCDDRIVER=MIDIMCD
VSDDRIVER=SBAWEVSD
PDDNAME=SBAUD1$
MCDTABLE=MDM
RESOURCENAME=SoundBlasterS01
DEVICEFLAG=1
DEVICETYPE=8
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=1,1,IBMAMPMIXSB01,1
PARMSTRING=CHANNELS=1111111111111111, MIDITYPE=Soundblaster
EXTNAMES=1,MID
EATYPES=MIDI
ALIASNAME=MIDI

[IBMSEQSB01-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX
CONNECTION01=0,1,1,1,4,1

[IBMSEQMPU40101]
VERSIONNUMBER=2.0.0
PRODUCTINFO=MPU-401
MCDDRIVER=MIDIMCD
VSDDRIVER=AUDIOIF
PDDNAME=MPU4011$
MCDTABLE=MDM
RESOURCENAME=MPU-401SEQ01
DEVICEFLAG=1
DEVICETYPE=8
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=1,1,IBMAMPMIXMPU40101,1
PARMSTRING=CHANNELS=1111111111111111, MIDITYPE=General MIDI
ALIASNAME=MIDI2

[IBMSEQMPU40101-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=AMPMIX02
CONNECTION01=0,1,1,1,4,1

Yamaha M724
[IBMSEQYMF01]
VERSIONNUMBER=2.0
PRODUCTINFO=YM724
MCDDRIVER=MIDIMCD
VSDDRIVER=AUDIOIF
PDDNAME=YM7241$
MCDTABLE=MDM
RESOURCENAME=YmfS01
DEVICEFLAG=1
DEVICETYPE=8
SHARETYPE=3
RESOURCEUNITS=1
RESOURCECLASSES=1,1
CONNECTORS=1,1,IBMAMPMIXYMF01,1
PARMSTRING=MIDITYPE=General MIDI 16 CHANNELS=1111111111111111
EXTNAMES=1,MID
EATYPES=MIDI
ALIASNAME=MIDI


[IBMSEQYMF01-PLAY]
NUMDEVICES=1
NUMCONNECTIONS=1
DEVICE01=Ampmix01
CONNECTION01=0,1,1,1,4,1

Default Names

In some installations another section can be found: [default names]. This section may be there but does not need not to be there always.

ProAudioSpectrum 16

[defaultnames]
Waveaudio=IBMWAVEPAS1601

SoundblasterLive
[defaultnames]
CDaudio=IBMCDAUDIO01

This section can be found only in those cases, where a specific device was defined as the preferred device. If a soundcard needs to be deinstalled, one must search for this section, since it can contain invalid references. Not all of the entries under [defaultnames] are related to the soundcard (see Soundblaster Live). Therefor only those lines referring to the soundcard should be edited or removed.

On the basis of the shown examples it should be possible now, to find soundcard specific entries in MMPM2.INI, even though the soundcard might be a different one than those from the examples.

MMPM/2 seems to be able, to complete missing or incomplete entries. If one entry missed during modification, it might happen with the next restart the MMPM2.INI will be initialized with the former settings again.

Editing MMPM2.INI

To edit MMPM2.INI the E editor, the extended E or Tedit can be used as well as common INI editors, i.e. in Gorans INI Tools, as long as they can deal with flat text files. As seen with the examples, MMPM2.INI is a plain ASCII file!

But there is one hitch: like other INI files the MMPM2.INI is loaded by the WPS during startup and then converted into a WPS-internal binary format. Not until shutdown the data will be written back. All changes until then made to the MMPM2.INI will be overwritten then.

Thus remaining two options:

  1. Editing of MMPM2.INI during standard uptime and then forcing a restart after saving the changes with the unbeloved Windoze keys <Ctrl-Alt-Del>. On the next restart it should be checked, of course, if all changes have been saved correctly.
  2. The elaborate and safe way by booting via <Alt-F1>, <F2> to a prompt session and edit MMPM2.INI with Tedit. A restart with <Ctrl-Alt-Del> (respectively after closing with EXIT) is obligatory then anyway.

Editing MMPM2.INI with Tedit

After booting to a prompt the tiny editor is started with by keying tedit <enter>. With function key <F8> and submission of the file position X:\MMOS2\MMPM2.INI ("X" = boot drive) the MMPM2.INI to edit will be loaded.

First of all, the drivers need to be located. Still on the command line in Tedit the driver section will be found with L /drivers /c <enter>. Now with pen and paper (or print the file with command PRINT LPT1 and mark the entries on the printout) note from section [drivers] the lines Waveaudio, Sequencer and Ampmix. Upper or lower case does not matter, but it has to be complete.

In my home computer I had installed a PAS16, which due to restricted resources on the ISA slot of a EPOX 8KTA3Pro had neither an IRQ nor a DMA channel available - a ISA/PCI-shared slot is "valuable" but at least unusable if all other PCI slots are in use, since the ISA/PCI-shared slot has to share its resources with a other PCI slot - so there is nothing available for ISA devices which draw on exclusiveness.

The entries were (see also the mentioned examples):


Waveaudio = IBMWAVEPAS1601 Sequencer = IBMSEQPAS1601 Ampmix = IBMAMPMIXPAS1601

On the command line in Tedit (<Esc> switches between command line and file) the search for the "keywords" is released: L /ibmwavepas1601/c <enter> will find first the line from the section [drivers]. This hit will be skipped until later and with <Alt><F> the next hit will be shown.

The so located line will be marked immediately with <Alt><L>. With common cursor keys <arrow up> - <arrow down> the cursor will be positioned on the last line of this section.

This line will be marked with <Alt><L>, too. By that, the whole section will become marked automagically.

With <Alt><D> it will be removed straight away.

<Alt><F> will give the next hit. As described above, <Alt><L>, then place cursor on the last line of the section, <Alt><L>, <Alt><D> and the goal comes closer.

This procedure has to be continued until <Alt><F> will not find further hits. Now the remaining line from section [drivers] still needs to be removed. <Strg><Pos1> will find the starting line. <Alt><F> will find again the line in section [drivers], <Alt><L> marks the line and <Alt><D> solves problems.

The same procedure must be carried out for all entries behind Waveaudio, Sequencer and Ampmix.

Editing MMPM2.INI with INI-Editor 1.10

A copy of my original MMPM2.INI from the system with the PAS16 is used as example.

Once started the INI-Editor shows the sections in the left pane as Applications. The right pane displays the Keys and the bottom pane contains Values in ASCII and below in HEX format. Due to this representation the MMPM2.INI appears much better sorted and the structure is easier to get.

First of all section [drivers] needs to be located. View and scroll in the left pane will be successful soon.

Clicking on Application Drivers will bring up the requested entries Waveaudio, Sequencer and Ampmixin the right pane.

It is also easy to detect the first candidates for deletion in the left pane.

Iniedit_1.png
picture.1: Ini-Editor

Again, all entries for Waveaudio, Sequencer and Ampmix are referring to further entries in the applications pane. The selected sequencer entry refers to IBMSEQPAS1601. So, all entries that bear the string IBMSEQPAS1601 have to be found in the left pane. "View and scroll". Besides the IBMSEQPAS1601 entry one can find IBMSEQPAS1601-PLAY next to it. At least, both entries must be deleted.

Take care, the INI-Editor is not running in Safe-Mode (easily seen by the "invisible" icons)!

The line with IBMSEQPAS1601 will be selected and from the menu Application will be chosen. From the dialog Delete App is selected, the appearing question is answered accordingly and the first entry is already gone.

Proceed in the same way with the other entries.

Iniedit_2.png
picture.2: Ini-Editor

Finally the entries Waveaudio, Sequencer and Ampmix have to be removed from section [drivers] and references from section [defaultnames], if there is such entry.

Deletion of the entries under Keys is similar to the Applications.

The entry under Keys will be selected, from the menu Keys is chosen, then within the dialog Delete Key and after that the deletion is confirmed by clicking Ok. The key is removed then.

After editing is complete, there will no reference to the originally installed soundcard ProAudioSpectrum16 remaining.

Once the lines for the specific soundcard in CONFIG.SYS are removed (i.e. with ConfigTool) and a reboot, the new soundcard can be installed. On my system, the installed Terratec DMXfire 1024 came up with the systemsound, right after installing the new drivers.

Well, after I prepared the description on how to edit the file with the TinyEditor, I found another way of editing MMPM2.INI, even without a warm restart or reset.

When I finished my activities, I ran Checkini to clean up the system, which forced a WPS reset after cleaning.

As a result of this, MMPM2.INI was stored and saved in the desired, modified version.

Instead of restarting the system, a WPS reset seems to be sufficient.

Therefore, editing MMPM2.INI with an INI-Editor is much more interesting and convenient.

References:

Links referenced in article:
   PCI sound cards for OS/2 and eComStation: http://de.os2voice.org/VNL/past_issues/VNL0303H/vnewsf3.htm
   Team OS/2 Ruhr e.V.: http://www.teamruhr.de/
   TiMidity : http://www.reamined.on.ca/doconnor/timidity.html
   Gorans INI Tools: http://www.os2world.com/goran/initools.htm
   ConfigTool: http://www.os2world.com/goran/cfgtool.htm


[Feature Index]
editor@os2voice.org
[Previous Page] [Newsletter Index] [Next Page]
VOICE Home Page: http://www.os2voice.org