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>