From owner-freebsd-hackers Tue May 11 19:48:10 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from rina.naklab.dnj.ynu.ac.jp (rina.naklab.dnj.ynu.ac.jp [133.34.17.16]) by hub.freebsd.org (Postfix) with ESMTP id C718A14E80; Tue, 11 May 1999 19:48:04 -0700 (PDT) (envelope-from tanimura@naklab.dnj.ynu.ac.jp) Received: from rina.naklab.dnj.ynu.ac.jp (localhost [127.0.0.1]) by rina.naklab.dnj.ynu.ac.jp (8.9.1a/3.7W-Naklab-2.1-19981120) with ESMTP id LAA60000; Wed, 12 May 1999 11:47:54 +0900 (JST) Message-Id: <199905120247.LAA60000@rina.naklab.dnj.ynu.ac.jp> To: luigi@labinfo.iet.unipi.it Cc: freebsd-hackers@FreeBSD.ORG, freebsd-multimedia@FreeBSD.ORG, nox@jelal.kn-bremen.de, zinnia@jan.ne.jp Cc: Seigo TANIMURA Subject: Re: Updated: Call for Review: VoxWare/LGSND(Yes!) midi driver for serial ports From: Seigo TANIMURA In-Reply-To: Your message of "Tue, 11 May 1999 06:03:20 +0200 (MET DST)" References: <199905110403.GAA16253@labinfo.iet.unipi.it> X-Mailer: Mew version 1.70 on Emacs 19.34.1 / Mule 2.3 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Wed, 12 May 1999 11:47:54 +0900 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Tue, 11 May 1999 06:03:20 +0200 (MET DST), Luigi Rizzo 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