WARNING: The midi-base.scm and midi-lib.dll are updated. In order to update your version DO NOT download the .plt file again. Just download the new midi-base.scm from the Clusters section below and overwrite your midi-base.scm with this file. You should also replace the .dll file same way. (9/9/01)

Follow the links below to download the DrScheme for different platforms:

MS-Windows (exe), Linux (tarball), Linux (rpm), Macintosh (bin), Solaris (tarball)

 

These files are hosted on Rice University's Computer Science Department's web server. Please note that the MIDI library has only been tested with the Windows version of DrScheme. Links to the other versions are provided to so that the students can experiment with Scheme on different platforms. The other versions of DrScheme will be tested with the MIDI library and if any are found to be working, the procedure of getting it to work will be posted here.

Our book also has a webpage served on the MIT's website.

 

Getting DrScheme to Work with the MIDI library under Windows

1. Download and run the DrScheme setup program from the link shown above.
2. The .zo file creation is your call (when asked during the setup) but it does speed up the loading of the program.
3. Download the .plt file for the MIDI library from here.
4. Double-click on the plt file that you just downloaded - DrScheme will automatically extract the midi-library and add it to it's list of libraries to be loaded during it's startup.
5. You will need to change the contents of a file manually. Follow the directions given below.
6. Run DrScheme and go to Set Language under Languages menu. Make sure that Full Scheme is selected.
7. Run the command require-library "midi-base.scm" "midi-lib" to tell DrScheme that you want to use midi-lib.

A Correction might have to be made in the midi-library that you just extracted. In the file midi-base.scm in program-files/PLT/collects/midi-lib please check and make sure that you have the corrected version:

Please replace the former 4 lines:

(define (make-note pitch duration dynamics . args)
(let ((timbre (if (null? args) (car args)
(note-timbre default-note))))
(primitive-make-note pitch duration dynamics timbre)))

with:

(define (make-note pitch duration dynamics . args)
(let ((timbre (if (not (null? args)) (car args)
(note-timbre default-note))))
(primitive-make-note pitch duration dynamics timbre)))

 

Getting The MIDI-LIB to work in CLUSTERS

The Windows machines on campus have DrScheme installed (Start->Program Files->Programming->PLT). You will need to download these 2 files (midi-base.scm, midi-lib.dll) and save them under c:\temp. After starting DrScheme all you will have to do would be:
> (load-extension "c:/temp/midi-lib.dll")
------------------------------------------
Midi-lib loaded.
Midi is now open.
Remember to close it at the end of your work with (midi-close).
------------------------------------------
#t
> (load "c:/temp/midi-base.scm")

After that everything should be ready.

Scheme-Help on the WEB:

Here are some useful links in case you are having trouble with SCHEME syntax and such:
A very basic scheme tutorial from WWC.
Teach Yourself Scheme in Fixnum Days from Rice U.
The Scheme Language from Adelphi U.
Revised Report 5 from Schemers.Org