On Thu, Oct 04, 2001 at 04:37:12PM +0200, Rickard Lind wrote:
> oplout_open
> oplout_close
> oplout_instruments_program
> oplout_note_play
> oplout_note_stop
> oplout_volume
> 
> just to make it life a bit easier... splitting the adlib driver into
> itself and oplout_ossseq.c

Eh, the adlib is quite different than MIDI.  Teh card itself doesn't
care about notes -- the atom there is the voice.  A voice is either
playing or not playing, and the instrument/note/volume is actually the
register set.

Basically, we need the following layout

adlib_core 
   adlib_ossseq
   adlib_pcmemu

The core translates the MIDI note/channel view to the lower-level adlib
voice-only view.  It also handles the polyphony limits and that sort
of thing.

The interface would end up woth something like:

oplout_open()
oplout_setupinsruments(patch.002)
oplout_close()
oplout_voiceon(voice, instrument_id, note, velocity) 
// literally equates to: oplout_voiceon(voice, register_set)
oplout_voiceoff(voice)

The adlib itself has no master volume, so any volume control should be
handled by the adlib_core layer in the form of velocity scaling.

Things get trickier when squeezing adlib through a sequencer interface.
Emperical evidence suggests that the ossseq's timing is shot to hell,
and can't really handle the polyphony/voice management requirements.
(hence the OSS /dev/fm interface) I need to look into ALSA's FM
sequencer support still, but I suspect it's not well suited for
real-time FM stuff either.

Basically, once the opl_pcmemu driver works, I vote for tossing out
opl_oss and possibly even opl_alsa as well.   (I'm biased, none of my
linux boxen have FM synthesis, and FM is now going the way of MIDI)

Hmm.  I wonder if Tatsuyuki Satoh's opl3 emulator would be
licence-kosher to drop into FreeSCI?

 - Pizza
-- 
Solomon Peachy                                    pizzaATfucktheusers.org
I ain't broke, but I'm badly bent.                           ICQ# 1318344
Patience comes to those who wait.
    ...It's not "Beanbag Love", it's a "Transanimate Relationship"...

-- Attached file included as plaintext by Listar --

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE7vIzyysXuytMhc5ERAq7gAJ0Z3AnWnevzKEvGioCT6pXCBeYGgQCeJXCX
TvKIJD9gA9WIXmKKEGfOBXY=
=4SRL
-----END PGP SIGNATURE-----



Reply via email to