This is the source code in form suitable for using directly as one of the source files 
of ones program.

You need to add  winmm.lib to the list of library modules for the link - as is done
in this MSVC Project. In MSVC you go to Project | Settings | Link | Object / Library Modules.

If you want to have support for Quicktime, you need to have QTMusicLib.dll  in its folder
or in the MSDOS path (e.g. c:\windows\system)

However, you do not need to add its library in to the linker's list of libraries and modules
- the PlayMidiLib dll will find the routines in the QTMusicLib dll for itself. The library QTMusicLib.lib 
is included in case you need it for something else - e.g. to link the routines into a QuickTime
dedicated app - but isn't used in this project.

SetMidiScale(..) uses the scala convention that decimal point = cents, and 1/1 should be left out
- should be able to read SCALA scales.

For harmonic / overtone series, use "h 2" (gives undertone series for negative scale degrees)

Example scales:
Equal temperament:  100.0
Just_temperament:  16/15 9/8 6/5 5/4 4/3 45/32 3/2 8/5 5/3 9/5 15/8 2/1
Well tempered scale, Bach's time - Werckmeister III: 256/243 192.18 32/27 390.225 4/3 1024/729 696.09 128/81 888.27 16/9 1092.18 2/1
Well t. s., Mozart's time - Vallotti & Young scale (Vallotti version) : 94.135 196.09 298.045 392.18 501.955 592.18 698.045 796.09 894.135 1000.0 1090.22 2/1
Quartet comma Mean-tone: 76.049 193.157 310.265 5/4 503.422 579.471 696.578 25/16 889.735 1006.84 1082.89 2/1
Pythagorean twelve tone: 256/243 9/8 32/27 81/64 4/3 729/512 3/2 128/81 27/16 16/9 243/128 2/1
Pythagorean twelve tone: 256/243 9/8 32/27 81/64 4/3 729/512 3/2 128/81 27/16 16/9 243/128 2/1
Pygmie scale: 8/7 21/16 3/2 7/4 2/1
Gamelan from South Bali (Slendro): 235.419 453.56 704.786 927.453 2/1
Japanese Koto scale: 9/8 6/5 3/2 8/5 2/1
Harmonic series: h 2
Just intonation major chord: 5/4 3/2 2/1

Home page:
http://tunesmithy.co.uk/playmidilib/index.htm

E-mail
support@tunesmithy.co.uk

Copyright (c) Robert Walker 2002

You can freely use / modify this code in your own programs. 