Re: App database, libsynth

Ryan Underwood
2003-07-13T21:27:37Z

Hi Stas,

On Sun, Jul 13, 2003 at 11:50:05PM +0400, Stas Sergeev wrote:
> >Just to make sure, the PC speaker needs no programming
> >besides writing to the two hardware ports, correct?
> Which ones do you mean?
> There is only one port to control the
> speaker - 0x61. But one have to also
> program a PIT channel 0 and 2 to do the
> PWM, which uses 3 more ports.
> So you have to define the interface for
> client to provide the timestamps to your
> lib for the decoding.

Ok, will look into this more.

> >If I make it an ALSA client, people using midid will not
> >be able to use it. If I make it a server application
> >that midid talks to, it is less flexible for the people
> >who could use it through ALSA applications.
> There might be some misunderstanding.
> The OPL3 software synthesizer can be used in
> two ways:
> 1. It implements a sequencer interface *for midi*.
> The app (like midid) writes the midi messages
> to it, and the lib is trying to generate some music
> for them (yes, OPL3 is not very good for midi
> I would say, but I know several DOS midi players
> that can use OPL3 as an output device).
> This is good to have in general, but it
> has zero use for dosemu. Dosemu/midid can work with
> timidity, which does much better than an OPL3
> synthesizer can do for midi.
> 2. It implements an OPL3 emulator, i.e. provides
> its ports and produces some sound output (or the
> midi output, like the bochs does IIRC).
> In this case only dosemu can use it, but then
> it will be used not for playing midi (which is
> done by timidity much better anyway), but rather
> for emulating the Adlib.

Yes, I am talking about both ways. the 1st is where the opl3-emulated
ALSA sequencer client is used, the 2nd is where libsynth is used.

> Overall I might be misunderstanding you, but it
> seems to me that you have confused the midi with
> an OPL synth, which are very different and orthogonal
> things.

Definitely not :)
Any program in DOS that writes to OPL port goes to libsynth. That
includes DOS programs that program the synth directly, or even a DOS
program that plays midi files through OPL.

However, the user might like to use an OPL-emulated chip for playing
MIDI music from DOS programs that don't support OPL for music. The
DOS program would write to MPU-401, the data would go to the sequencer, and
the sequencer would use the emulated OPL3 that is connected to it to
play the MPU-401 data.

> >Those VCPI-games should be taken care of like that too,
> >Privateer, Strike Commander et.al.
> I don't understand why the game would require a
> ring-0 access. I think that is a bad design so I
> wouldn't care too much about it. The authors must
> fix that games, use a proper extender or whatever.
> I hope there are not too much of those.
> But VCPI would be good to have after all:)

Yes it is a very bad design, but I've waited a long time to play
Privateer under DOSEMU. :)

--