xref: /reactos/dll/win32/beepmidi/readme.txt (revision 527f2f90)
1BEEPMIDI :: BEEP.SYS MIDI DRIVER
2(c) Andrew Greenwood, 2007.
3
4http://www.silverblade.co.uk
5
6Released as open-source software. You may copy, re-distribute and modify
7this software, provided this copyright notice remains intact.
8
9WHAT'S THIS ?
10    BeepMidi is a MME MIDI driver for NT-compatible operating systems,
11    which uses BEEP.SYS (the kernel-mode PC speaker driver) to play
12    MIDI data. It installs as a standard MIDI output device and can even
13    be selected as your default MIDI output device. The fundamental
14    code for interacting with BEEP.SYS was taken from ReactOS' kernel32
15    module.
16
17WHY WAS THIS WRITTEN ?
18    Primarily for educational reasons - in the process, I've learned more
19    about the driver side of the MME API and how to interact with kernel
20    device drivers. It aids as a good starting point from which to
21    move on to bigger and better things :)
22
23HOW TO INSTALL :
24    Copy the file to C:\WINDOWS\SYSTEM32\BEEPMIDI.DLL
25
26    Go into HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\
27    Drivers32 in RegEdit and look for the "midi" entries on the right hand
28    side. Find the highest numbered one (eg: midi1) and create a new STRING
29    value. Give it another midi name, but one above the current highest
30    entry present (eg: midi2.)
31
32    You'll now see a "PC Speaker" entry in Sound & Audio Devices.
33
34TWEAKING:
35    See the comments toward the top of beepmidi.c for tweakable driver
36    parameters. These can only be adjusted in the source code at present.
37
38FEATURES :
39    * Supports note-on and note-off messages on channels 1-9 and 11-16
40      (channel 10 is rhythm, which is not supported.)
41    * Fake polyphony (actually just arpeggiates playing notes!)
42    * Threaded design for continuous playback (optional.)
43
44ROOM FOR IMPROVEMENT :
45    * Pitch bend is not supported
46    * Velocity could determine timeslice
47    * Should wait for timeslice to complete before adding/removing notes
48    * Would be nice to allow configuration of polyphony etc. via Control Panel
49
50BUGS :
51    * Crashes when used with Windows Media Player (mplayer2 is fine though)
52