Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 May 1999 11:47:54 +0900
From:      Seigo TANIMURA <tanimura@naklab.dnj.ynu.ac.jp>
To:        luigi@labinfo.iet.unipi.it
Cc:        Seigo TANIMURA <tanimura@naklab.dnj.ynu.ac.jp>
Subject:   Re: Updated: Call for Review: VoxWare/LGSND(Yes!) midi driver for serial ports
Message-ID:  <199905120247.LAA60000@rina.naklab.dnj.ynu.ac.jp>
In-Reply-To: Your message of "Tue, 11 May 1999 06:03:20 %2B0200 (MET DST)"
References:  <199905110403.GAA16253@labinfo.iet.unipi.it>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 11 May 1999 06:03:20 +0200 (MET DST),
  Luigi Rizzo <luigi@labinfo.iet.unipi.it> said:

luigi> If i understand well, you are supporting the handling of MIDI commands
luigi> through the sio port only -- so i wonder what are the changes to the
luigi> audio driver(s) other than intercepting the device i/o calls and pass
luigi> them to your driver.

The following figure is the framework for the midi drivers and the sequencer I have at this moment:

	/dev/seqnencer
	       |
	       | <-- (Abstruct sequencer events and delays)
	       v
	Sequencer driver (sys/i386/isa/snd/sequencer.c)
	       |
	       | <-- (Abstruct synthesizer events)
	       +--------------------------------------------------------------------------+
	       |                                                                          |
	       v                                                                          v
	Midi synthesizer interface (struct synthdev_info, sys/i386/snd/midisynth.c) OPL synthesizer interface
	       |                                                                          |
	       |            <--                  (Midi events)               -->          |
	       v                                                                          v
	Midi driver (sys/i386/isa/snd/uartsio.c)       <--      /dev/midi    -->    OPL driver
	       |                                                                          |
	       |            <--           (Device-specific operations)       -->          |
	       v                                                                          v
	Midi interface                                                              OPL chip

Abstruct sequencer events are SEQ_* events. Abstruct synthesizer events are the entries in struct synthdev_info.
Device-specific operations are the lowest-level functions to transmit midi messages or operate the OPL.

The midi buffer manager(in sys/i386/isa/snd/midibuf.c) is now only a library, and will not handle I/O calls directly.

The interrupts by a midi interface or an OPL chip go up to the sequencer driver in the inverse direction of the arrows
in the figure.

Writing a new midi/OPL driver involves two sorts of codes to implement: the lowest-level driver(like uartsio.c)
and the synthesizer interface(the most functions in midisynth.c can be re-used).


luigi> Second thing: i think (but i may be wrong) in the Voxware driver
luigi> the name "sequencer" was used to identify the syntesizer
luigi> (OLP3/4/whatever). What do you mean by "sequencer" instead, and should
luigi> i perhaps change the name generated by /dev/sndstat to avoid confusion ?


I understand that a sequencer interprets only time-related events (delays, syncs, etc),
and it is completely device-independent.


Seigo TANIMURA           |M2, Nakagawa Lab, Dept of Electronics & CS
=========================|Faculty of Engineering, Yokohama National Univ
Powered by SIEMENS,      |http://www.naklab.dnj.ynu.ac.jp/~tanimura/
FreeBSD 4.0-CURRENT      |http://www.sakura.ne.jp/~tcarrot/
(9th May 1999) & muesli. |tanimura@naklab.dnj.ynu.ac.jp tcarrot@sakuramail.com

VoxWare/LGSND Midi Driver for Serial Ports on FreeBSD:
    http://www.naklab.dnj.ynu.ac.jp/~tanimura/freebsd-serialmidi/


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199905120247.LAA60000>