Path: network.ucsd.edu!ihnp4.ucsd.edu!swrinde!gatech!udel!news.mathworks.com!news.duke.edu!ratatosk.yggdrasil.com!news From: letz@rd.grame.fr (stephane letz) Newsgroups: comp.archives Subject: [comp.lang.lisp.mcl] MidiShare Info Followup-To: comp.lang.lisp.mcl Date: 16 Apr 1995 04:29:28 GMT Organization: Apple Lines: 95 Sender: adam@yggdrasil.com Approved: adam@yggdrasil.com Distribution: world Message-ID: <3mq6f8$hn3@freya.yggdrasil.com> References: NNTP-Posting-Host: adam.yggdrasil.com X-Original-Newsgroups: comp.lang.lisp.mcl X-Original-Date: 13 Apr 1995 11:41:35 -0400 Archive-name: auto/comp.lang.lisp.mcl/MidiShare_Info MidiShare 1.68 is publicly available at ftp.grame.fr - OVERVIEW - MidiShare is a real-time multi-tasks Midi operating system specially devised for the development of musical applications. Its innovative features and careful design, result of 6 years of research and development, provide developers with a powerful and efficient toolbox for developing professional Midi applications. MidiShare is based on a client/server model. It is composed of four main components : an event manager, a time manager, a task manager and a communication manager. The event manager provides an uniform way to process and store midi events. The time manager and the task manager control the real-time behavior of applications. The communication manager is in charge of both inter-applications and midi communications. The system can be delivered for Apple Macintosh or Atari computers. MidiShare version 1.68 for the Macintosh support up to 64 client applications, 256 Midi ports, Midi TimePiece interface and Ethernet Midi communications. An application provided with the kit allows MidiShare and MidiManager applications to communicate. Interfaces are available for MPW-Pascal, MPW-C, Think-C, Common Lisp. - TECHNICAL CONSIDERATIONS - MidiShare offers several advantages to developers in terms of code efficiency, portability and easiness of developing sophisticated real time Midi applications. It avoids many complexities and limitations of other Midi operating systems. Communications are based on high level events instead of packets of midi bytes. These events are easier and faster to process than packets of Midi bytes. For example large system exclusive messages never need to be splitted into multiple packets. They are sent, received and processed as a whole like any other Midi events. Events are not limited to strict Midi messages. MidiShare offers full support for Midi File 1.0 events and future versions will provide additional events for multimedia. The communication manager allows multi-ports configurations (up to 256 physical ports) to be easily handled. All MidiShare events are stamped with a full Midi device address defined by a physical port number and a Midi channel. Client applications just need one input point and one output point to communicate with all the Midi devices (up to 4096 devices). Connections between applications are easier for users. Application code is simpler and the full device address of an event is never lost during inter-application communications. MidiShare includes its own dynamic memory manager, specially designed for real-time operations at interrupt level. This provides applications with a convenient and efficient way for storing, copying and deleting Midi events without using the host memory manager. All MidiShare internal buffers and queues are dynamically sized avoiding overflow problems encountered in other systems. Several mechanisms are proposed to control the real time behavior of Midi applications. The time manager offers 1ms resolution and supports accurate SMPTE synchronization in a transparent way. Application functions called "alarms" can be installed to deal with incoming events in real time at interrupt level. The heart of MidiShare is a real time scheduler. It allows events to be sent in the future as well as delayed function calls (functions to be called in the future). Delayed function call is a very fast and powerful mechanism for complex multi-tasking applications when multiple computing need to be done in parallel. A proprietary scheduling algorithm ensures a very low constant time scheduling costs per event, even when the scheduler is heavily loaded. A interface MCL 2.0 / MidiShare and a tutorial is provided in the developer kit. MidiShare is currently used by Peter Stone in Symbolic Composer to manage Midi input/output. MidiShare is a public domain product. It has been developped at GRAME. For any additionnal information, please, direct your request to the following address: GRAME Research laboratory 6 quai Jean Moulin BP 1185 69202 LYON CEDEX 01 FRANCE e-mail : grame@rd.grame.fr - -------------- GRAME 6 quai Jean Moulin BP 1185 69202 LYON CEDEX 01 Ph (33) 72.07.37.00 Fax (33) 72.07.37.01 e-mail : letz@rd.grame.fr