source file: mills2.txt Date: Mon, 11 Mar 1996 06:38:00 -0500 (EST) Subject: MidiShare available for PC/Windows 3.x and Windows 95 (fwd) From: Mary Simoni From: letz@rd.grame.fr MidiShare 1.54 beta for PC/Windows 3.x and Windows 95 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 and now PC under Windows 3.x and Windows 95. MidiShare version 1.54 for Windows is delivered as a 16 Bit Dll, support up to 64 client applications, and 256 Midi ports. Interfaces are available for C,C++ and 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. MidiShare is a freeware software. It has been developed at GRAME. General and technical informations can be found at : http://www.grame.fr/english/MidiShare.html A ftp server is available at ftp.grame.fr Please, direct any comment or request to the following address: GRAME Research Lab. 6 quai Jean Moulin BP 1185 69202 LYON CEDEX 01 FRANCE e-mail : msh@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 Web : http://www.grame.fr Received: from eartha.mills.edu [144.91.3.20] by vbv40.ezh.nl with SMTP-OpenVMS via TCP/IP; Mon, 11 Mar 1996 17:29 +0100 Received: from by eartha.mills.edu via SMTP (940816.SGI.8.6.9/930416.SGI) for id IAA01696; Mon, 11 Mar 1996 08:28:34 -0800 Date: Mon, 11 Mar 1996 08:28:34 -0800 Message-Id: <9603111627.AA14437@ ccrma.Stanford.EDU > Errors-To: madole@ella.mills.edu Reply-To: tuning@eartha.mills.edu Originator: tuning@eartha.mills.edu Sender: tuning@eartha.mills.edu