Users of the IBM PC family of personal computers have a reputation for being hardy individualists who don't balk at the thought of rolling up their sleeves and doing some programming. This is partly due to the fact that early users had a very limited choice of software, and partly because PC users tend to have a more technical background than the users of other music computers. Another reason for this DIY approach is that it is actually pretty easy to get a simple program to work on the PC (ie. a PC running MS-DOS), since you don't have to worry about the complicated graphic environment that you find on the Atari and the Apple Macintosh computers.
The idea of being able to write your own music software is very attractive; if you can't get a piece of software that does exactly what you want, then why not write your own? In practice you will find that you only write fairly small programs, and then only in the event that you really have to. For instance, I had to deliver a file of custom patches for a Roland synth module to a client in Standard MIDI File format. Unfortunately, the only software I had for this task didn't actually extract all the required information, so I just wrote a little program that 'brain dumped' the Roland's memory and wrote it to a standard MIDI file, thus turning a potential disaster into a minor hassle.
Until the introduction of Windows 3.1, MIDI and sound in general weren't supported by the PC operating system, which meant that the first decision the PC programmer had to make was which MIDI interface to use. The MPU401 standard has to be by far the most popular MIDI interface for the PC, either from Roland or from companies like Voyetra and Music Quest who manufacture compatible products. The MPU is an intelligent card and can be complicated to control, but luckily it has a dumb or UART mode, which is ideal for starting out. The main problem is getting information about the software interface — how the card 'talks' to the PC.
Should you want to try your hand at a little programming, there are a number of ways of getting technical information about the MPU. The first is to get the technical reference manual from Roland UK ((Contact Details)). This defines the commands that you need to use to control the card. Although complete, this manual is not specific to the IBM-PC, since the MPU was originally designed to be used with a number of different computers. Voyetra produce a more complete technical reference for their V4000 series of interfaces, which are 100% hardware compatible with the MPU401. This manual includes sample code (in C and assembler), plus a complete reprint of the Roland manual, and comes with a disk to save you having to re-type the code (CMS, (Contact Details)). If you want a more guided approach to writing programs for your MPU401, then try Jim Conger's books C Programming For MIDI and MIDI Sequencing in C (available from the SOS Bookshop, (Contact Details)).
If you have a Music Quest interface, Digital Music ((Contact Details)) can supply you with a programmer's toolkit, which comprises a slim manual and a set of disks with example code and libraries for various common languages. Music Quest also do a toolkit for handing Standard MIDI Files, which is useful if you want to produce files that can be read by other MIDI applications. If you don't have an MPU-compatible interface, you are quite likely to have a Sound Blaster card, for which CMS also do a programmer's pack. For other interfaces you will need to contact your dealer or, more likely, the original manufacturer for technical details.
If you would prefer to write programs that use the multimedia features of Windows 3.1, you might care to have a look at the Multimedia series of books published by Microsoft, namely Programmer's Reference, Programmer's Workbook, and Authoring and Tools Guide. The first two books define the Windows multimedia environment from the point of view of the programmer, whilst the third concentrates on the creation of Multimedia titles (The PC Bookshop, (Contact Details)). To be able to use the multimedia facilities in Windows you will, of course, need to have a compiler that implements the function calls, data structures, and so on. The new release of Borland's C++ v3.1 should be worth looking at, since they have a reputation for value for money and their Application Frameworks gives a 'fast track' for developing Windows applications (Borland, (Contact Details)). Voyetra are due to release a set of multimedia programming tools, though I have no further information on the contents of this at the moment.
If you don't care to 'roll your own' music software, it may be worth your while to look at the new offering from Twelve Tone Systems, Cakewalk for Windows. Although there are a number of sequencers that can run under Windows 3.0 and 3.1, the new Cakewalk seems to be the first to make full use of the built-in multimedia facilities. So, as well as being able to control your usual MIDI devices, Cakewalk can "seamlessly integrate digital audio into your sequences". Just exactly what this means is not clear at the moment, but this looks like a piece of software to watch; call Sound Technology ((Contact Details)) if you want more information on this product.
If you can't afford to buy a commercial MIDI sequencer but would still like to take advantage of the new features in Windows 3.1, then there is a new version of Dan McKee's WinJammer available. Apart from fixing a few minor bugs, the new release now supports the Windows MIDI mapper, which means that you can use any MIDI interface for which there is a Windows 3.1 driver. WinJammer can be downloaded from the route66/progs area of CIX ((Contact Details) modem) as shareware, or you can order it direct from Software Excitement! in the USA ((Contact Details)).
The most common way to upgrade your PC to use the Windows 3.1 multimedia features is to buy the Sound Blaster Pro MPC Upgrade Kit. If you do this, you will probably be dismayed by the quality of the FM sound generators on the Sound Blaster when your multimedia application plays a MIDI file. However, if you have a Roland LAPC card or an MPU-compatible interface and a Roland CM32L or MT32, you can get Windows to use this superior hardware to improve the quality of the sound. To do this you must first ensure that you have the LAPC1 (or MPU401) driver installed (go to Drivers from the Control Panel) then go into the MIDI Mapper (Control Panel) and edit your MIDI Setup (select the Setup radio button and then click on the [Edit] button).
You can update each entry in the 'Port Name' column to use the LAPC port, which should appear as an option in the drop down box. You can then patch the audio outputs from the LAPC (or CM32L/MT32 module) into the Line In on the SB Pro and the improved sounds should appear along with your other MM sounds (ie. WAV and CD). You can adjust the balance using the SB Pro Mixer applet in the Control Panel. This should also work with the Roland SCC1 card, although you will need to select (or create) a General MIDI patch map.
Feature by Brian Heywood
Previous article in this issue:
Next article in this issue:
mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.
If you value this resource, you can support this project - it really helps!