Welcome

What IS this thing?

The MIDInight Express is a real time, wavetable MIDI player and MID to WAV renderer. "So what", you say? The point is that you don't need a wavetable card to run it! Any cheap sound card capable of playing stereo, 16 bit digital audio at a rate of 22050 Hz will do.

You can use the MIDInight Express...

•	As a standalone General MIDI player

•	As a quick & dirty MID to WAV renderer

•	As a WAVmaker "pre-listener"

•	As a better WAV player

Operations are straightforward - if you can run a tape deck, you can run the MIDInight Express.

IMPORTANT:

The MIDInight Express is designed as an add-on to WAVmaker for Windows 95/NT. The distribution package does not contain a full General MIDI library, just a few demo files. The full General MIDI library is delivered with the WAVmaker Registered Package. A Compact GM Library suited for standalone, real time operation is scheduled for release late in May or in June 1996.

See the license information for all boring legal details.

Want to contact the author? Here's how!


As a standalone General MIDI player

If you are tired of listening to your MIDs as rendered by the toy FM synth chips found on Sound Blasters and on other inexpensive sound cards, then this program is for you!

For best performance in standalone operation, I recommend the Compact GM Library scheduled for release late in May or in June 1996. This will minimize memory and CPU usage. Check WAVmaker's Home Page (http://www.abc.se/~m9303) or contact me for info.


As a quick & dirty MID to WAV renderer

Sometimes you need to create a song on WAV format for a Web page, a program, or a multimedia application.

The MIDInight Express offers the fastest route - just check the "Record to file" box and play the MID as usual! In most cases, the result will sound MUCH better than recording off your sound card while playing.

This function is also useful for listening to MIDs which are just too complicated for real time rendering on your current hardware (too little free RAM to hold all samples, causing the disk swapper to kick in, or too slow a CPU). Note that the MIDInight Express can play WAVs, too.

For CD quality MID to WAV rendering, check out  WAVmaker.


As a WAVmaker "pre-listener"
Musicians and multimedia creators all over the world are using WAVmaker, its powerful MID and WAV editing functions, and its fully editable 160 MB library of General MIDI patches and 16 bit, 44.1 kHz samples to create top quality recordings of their music.

The MIDInight Express reads the same file formats, and can be used together with WAVmaker's library as a quick pre-listener to check levels and instrument choices. When you are satisfied with your arrangement, it's time to let WAVmaker take over and create a CD quality song.


As a better WAV player
An auxiliary function of the MIDInight Express is the ability to play WAV files using the standard Media Control Interface (MCI). On most systems, it will do a better job than the Windows 95 media player (which apparently tries to load the whole WAV before playing it, bringing the whole system to a virtual standstill when there isn't enough free RAM).


Operations

The MIDInight Express has a very simple User Interface, and especially if you are already using WAVmaker you will probably never need to consult this page.

However, if you aren't already familiar with WAVmaker's library file structure (especially the relation between PRGs and WAVs) you may want to read at least the section on patch and sample libraries.

•	Playing a MID

•	Selecting MIDI drum tracks and channels

•	Selecting MIDI patch and sample libraries

•	Rendering a MID to WAV

•	Playing a WAV

IMPORTANT:

The MIDInight Express is designed as an add-on to WAVmaker for Windows 95/NT. The distribution package does not contain a full General MIDI library, just a few demo files. The full General MIDI library is delivered with the WAVmaker Registered Package. A Compact GM Library suited for standalone, real time operation is scheduled for release late in May or in June 1996.

Back to the opening page...


Playing a MID

Provided that the MIDInight Express has been properly set up (i.e. that the necessary patch and sample files are available) playing a MID is just a matter of selecting it in the Files box and clicking the play (green arrow) button in the Player control box.

The most important buttons in this box are...

You can pause and restart playback at any time. The forward, back and rewind buttons are activated when playback is stopped, either by clicking the stop (red square) button or by the MID reaching the end.

Loudspeaker output can be toggled on/off by clicking the

button. This is mainly useful when you need the MIDInight Express to shut up NOW (boss coming through the door?).

During playback, the Volume and Balance controls need several seconds to take effect, so be patient with them! This is the well-known latency problem common to all buffered sound output system. The MIDInight Express does not "talk" directly to the hardware when playing WAVs; instead, it fills memory buffers with data and sends them to Windows, which passes them on to your sound card, using a driver supplied by the manufacturer. This means that there will usually be several seconds of sound data already queued for playback when you change a Volume or Balance setting. Until all that queued data has been played, you won't hear the new setting cutting in - the Volume and Balance controls are namely not hooked to the sound card amplifier circuits, but rather to the MID rendering routines which fill memory buffers with new data. This is to ensure full compatibility with the corresponding WAVmaker settings, and full control when rendering MIDs to WAVs.

In order to change your sound card's amplifier settings, use the ordinary Windows multimedia controls.

Unlike WAVmaker, the MIDInight Express does NOT check for overflows when mixing (thereby saving a few clock cycles for each sample). After all, saturation still sounds bad even if you do clip overflows - though it certainly sounds worse if you don't! So, if you hear loud clicks and other strange artefacts, try lowering the Volume setting.

If your hardware can't fill new sound buffers at the same rate that they are being played (too little free RAM to hold all samples, causing the disk swapper to kick in, or too slow a CPU) you will hear the song being played in chunks separated by silence. Each chunk is one buffer (they are pretty large, several seconds of sound data, to minimize buffer switching overhead and to make output intelligible even when chopped up like this). There are several possible remedies to this problem:

•	Free up as much RAM and CPU time as possible by terminating other processes.

•	Use the RAM-saving Compact GM Library scheduled for release late in May or in June 1996. Check WAVmaker's Home Page (http://www.abc.se/~m9303) or contact me for info.

•	Render the MID to a WAV file and play that instead.

•	Get a new PC with more RAM and a faster CPU (yeah, right!).

The MID and all WAV samples needed to render it are unloaded by clicking the Eject button. This will effectively reset the MIDInight Express to its startup status.

If you can't get any sound out of your card, there are only three real possibilities:

•	A really silly mistake, like leaving the sound card's digital audio volume set to zero. Use the standard Windows multimedia controls to check (and possibly correct) this.

•	Your sound card is not properly installed to work under Windows. Refer to your Windows and sound card documentation.

•	Your sound card can't handle digital audio data of the kind produced by the MIDInight Express (16 bit stereo, 22050 Hz). The SB Pro, for instance, can only play 8 bit digital audio.


Selecting MIDI drum tracks and channels

In order to play a MID, the MIDInight Express needs to know which MIDI channel(s) in which track(s) to use for drums (MIDI files can contain up to 65 535 tracks, each one containing data for up to 16 separate channels).

The GM (General  MIDI) standard reserves channel 10 on all tracks for drums, and this is also the default choice made by the MIDInight Express. You can change it by clicking the button labeled Drums.

This causes the Drum Track:Channel editor to be displayed. Add new entries with the Add button, remove them with the Remove button. You are not allowed to remove all drum track:channel entries in the list: there is always at least one entry. If you don't want a drum track, set this entry to an unused and/or out-of-range track:channel combination, such as 0:0.

The keyword ALL is accepted for both tracks and channels (internally, it's represented by the value -1, which you can also enter directly if you so prefer).


Selecting MIDI patch and sample libraries

Apart from MIDs, the MIDInight Express needs two other kinds of files to do its job, PRGs and WAVs:

•	PRG files contain instrument definitions (patches).

Each PRG file corresponds to a MIDI program (instrument). The information needed to handle MIDI program 0 (Piano 1) is in 0.PRG; MIDI program 6 (Harpsichord) is described by 6.PRG; and so on. Drum sets have their program number preceded by a "D", as in D0.PRG (Standard Set).

PRGs do not contain any sound data; the actual samples are kept in WAV files. PRGs assign sample files to keys (notes) and impose performance parameters (base volume and pan position, controller sensitivities, envelope shape, loop points...). Each key on the virtual 128-note "keyboard" described by the PRG file can be assigned its own individual sample file and performance parameters.

While you can use any text editor to create and modify PRG files, I strongly recommend getting WAVmaker and using its dedicated PRG editor for this task!

All PRGs needed to play a MID must reside in a common directory. Click the button labeled PRGs in order to select a new PRG directory.

•	WAV files contain the actual sound data (samples) referred to by PRG instrument definitions.

All WAVs needed to play a MID must reside in a common directory. Click the button labeled WAVs in order to select a new WAV directory.

IMPORTANT:

The MIDInight Express is designed as an add-on to WAVmaker for Windows 95/NT. The distribution package does not contain a full General MIDI library, just a few demo files. The full General MIDI library is delivered with the WAVmaker Registered Package. A Compact GM Library suited for standalone, real time operation is scheduled for release late in May or in June 1996.


Rendering a MID to WAV

When you select a MID in the Files box, the MIDInight Express suggests WAV file for recording. This function is useful for listening to MIDs which are just too complicated for real time rendering on your current hardware (too little free RAM to hold all samples, causing the disk swapper to kick in, or too slow a CPU). You may also need to create a song on WAV format for a Web page, a program, or a multimedia application.

Click the button labeled Songs if you want to change the destination directory.

In order to activate MID to WAV rendering, check the box labeled Record to file (above the Help button). Then play the MID as usual. The resulting song file is a 16 bit, stereo WAV with a sampling rate of 22050 Hz (for CD quality MID to WAV rendering, check out  WAVmaker).

While recording, you can toggle loudspeaker output on/off by clicking the

button in the Player control box. This will NOT affect the WAV file being created (changing the Volume and Balance settings will, on the other hand).

Don't worry if loudspeaker output comes in chunks separated by silence. This will happen unless you have an extremely fast hard disk, and simply reflects the time taken to store the sound data. The destination WAV file will not have those silent spots in it.

The destination WAV file is closed when you click the Eject button in the Player control box. You can then proceed to play it like any other WAV.


Playing a WAV

The MIDInight Express can not only play MIDs; it does WAVs, too. This is an auxiliary function provided mainly due to the inefficiency of the Windows 95 media player, which apparently tries to load the entire WAV in memory before playing it. When the WAV file is too large to fit in the available RAM, this will bring the system to a virtual standstill.

WAV playback is mainly useful for quick checking of instrument samples and for listening to MIDs previously rendered to WAVs.

In order to play a WAV, select it in the Files box and click the play (green arrow) button in the Player control box. All controls work just as with MIDs, except for Volume and Balance, which stay disabled. As explained in the section on MID playback, these controls are namely NOT hooked to the playback hardware, but rather to the MID rendering routines. You can affect your soundcard volume and balance settings using the ordinary Windows multimedia controls.

The MIDInight Express doesn't "talk" directly to the hardware when playing WAVs. Instead, it sends the data to the Windows Media Control Interface (MCI), which sends it on to your sound card, using a driver supplied by the manufacturer.

If you can't get any sound out of your card, there are only three real possibilities:

•	A really silly mistake, like leaving the sound card's digital audio volume set to zero. Use the standard Windows multimedia controls to check (and possibly correct) this.

•	Your sound card is not properly installed to work under Windows. Refer to your Windows and sound card documentation.

•	Your sound card can't handle WAV files of the kind you're trying to make it play. The SB Pro, for instance, can only play 8 bit files; when rendering MIDs to WAVs, the MIDInight Express produces 16 bit files. The sampling rate may also be too high. In particular, all sample files in WAVmaker's General MIDI library are 16 bit, mono, 44100 kHz.


License information

Last updated:  May 5, 1996.

This file contains important license information regarding the distribution and use of the MIDInight Express.

The MIDInight Express is NOT in the public domain. It is Copyright (C) Tommy Anderberg, 1996. All rights reserved worldwide. This software and all the accompanying data and documentation files are protected by national and European laws and by International Treaty provisions. You must treat the MIDInight Express like any other copyrighted material, except that you may copy it and give to others (subject to the limitations outlined below). Any use or distribution of this software, data and documentation in violation of Copyright law or of the terms outlined in this document will be prosecuted to the best of our ability.

The conditions under which you may copy and distribute the MIDInight Express are described below under Limited Distribution License Agreement.

The conditions under which you may use the MIDInight Express are described below under Limited User License Agreement.

All rights not expressly granted here are reserved to Tommy Anderberg.

Limited Distribution License Agreement

This Limited Distribution License Agreement (throughout this section, the "Agreement") is a legal agreement between you, the distributor, and Tommy  Anderberg. By copying any part of the MIDInight Express, you are agreeing to be bound by  the terms of this Agreement.

As the copyright and trademark holder for the MIDInight Express, Tommy Anderberg authorizes individuals and organizations to copy the files contained in the MIDInight Express distribution package for their own use or for giving to others, ONLY when the following conditions are met:

•	The MIDInight Express distribution package - including all related program, data and documentation files - may not be modified in any way and must be distributed together, as a complete package, without exception. You may not distribute corrupted or otherwise damaged files.

•	No price or other compensation may be charged for the MIDInight Express. A reasonable distribution cost may be charged for the distribution media, shipping and handling. BBS systems may not charge beyond their normal rates for downloads of the MIDInight Express.

•	The MIDInight Express is designed to be easily extended by the addition of instrument patches and samples. You may not, however, distribute an extended version of the MIDInight Express without prior written permission from Tommy Anderberg.

•	Neither this Agreement nor any part or portion hereof shall be assigned or sublicensed, except as described herein. Should any provision of this Agreement be held to be void, invalid, unenforceable or illegal by a court, the validity and enforceability of the other provisions shall not be affected thereby. If any provision is determined to be unenforceable, you agree to a modification of such provision to provide for enforcement of the provision's intent, to the extent permitted by applicable law. Failure of a party to enforce any provision of this Agreement shall not constitute or be construed as a waiver of such provision or of the right to enforce such provision. If you fail to comply with any terms of this Agreement, your license is automatically terminated, and you may be prosecuted at any time under national and European laws and under International Treaty provisions.

•	You acknowledge that you have read this Agreement, you understand this agreement, and understand that by copying any part of the MIDInight Express, you agree to be bound by this Agreement's terms and conditions. You further agree that, except for written separate agreements between Tommy Anderberg and you, this Agreement is a complete and exclusive statement of your distribution rights. This agreement supersedes all prior oral agreements, proposals or understandings, and any other communications between Tommy Anderberg and you relating to the subject matter of this Agreement.

Limited User License Agreement

This Limited User License Agreement (throughout this section, the "Agreement") is a legal agreement between you, the user, and Tommy Anderberg. By installing the MIDInight Express, by loading or running any part of it, or by placing or copying any part of it onto your computer hard drive, you are agreeing to be bound by the terms of this Agreement.

For the purposes of this section, "use" means loading the software into RAM, as well as installation on a hard disk or other storage device.

 As the copyright and trademark holder for the MIDInight Express, Tommy Anderberg authorizes individuals or organizations to use the MIDInight Express, ONLY when the following conditions are met:

•	You shall not: modify, translate, disassemble, decompile or reverse engineer the compiled executables contained in the MIDInight Express.

•	You may not exploit running copies of the MIDInight Express commercially, e.g. by renting, leasing or selling access to a computer running the MIDInight Express.

•	The MIDInight Express is intended as an add-on to WAVmaker for Windows 95/NT. You may not distribute or otherwise exploit the output produced by the MIDInight Express if you have not purchased your own personal copy of the WAVmaker Registered Package.

•	You are free to distribute and exploit the output produced by the MIDInight Express, provided that you have purchased a personal copy of the WAVmaker Registered Package, and that the output in question is not part of a competing product (e.g. a sound data base for use with the MIDInight Express or WAVmaker, and hence in direct competition with the WAVmaker Registered Packages), in which case you must have prior written permission from Tommy Anderberg.

•	The user accepts sole and full responsibility for any damage or loss arising from the use or the inability to use the MIDInight Express. While this software has been extensively tested and is believed to be safe, Tommy Anderberg disclaims any warranties, either expressed or implied, including but not limited to warranties of fitness for ANY particular purpose and of uninterrupted, error free operation. Under no circumstances shall Tommy Anderberg be liable for loss of data, loss of profits, lost savings, special, incidental, consequential, indirect or other similar damages arising from the use or the inability to use the MIDInight Express.

•	Neither this Agreement nor any part or portion hereof shall be assigned or sublicensed, except as described herein. Should any provision of this Agreement be held to be void, invalid, unenforceable or illegal by a court, the validity and enforceability of the other provisions shall not be affected thereby. If any provision is determined to be unenforceable, you agree to a modification of such provision to provide for enforcement of the provision's intent, to the extent permitted by applicable law. Failure of a party to enforce any provision of this Agreement shall not constitute or be construed as a waiver of such provision or of the right to enforce such provision. If you fail to comply with any terms of this Agreement, your license is automatically terminated, and you may be prosecuted at any time under national and European laws and under International Treaty provisions.

•	You acknowledge that you have read this Agreement, you understand this Agreement, and understand that by installing any part of the MIDInight Express, by loading or running any part of the MIDInight Express, or by placing or copying any part of the MIDInight Express onto your computer hard drive, you agree to be bound by this Agreement's terms and conditions. You further agree that, except for written separate agreements between Tommy Anderberg and you, this Agreement is a complete and exclusive statement of the rights and liabilities of the parties involved in the use of the MIDInight Express. This agreement supersedes all prior oral agreements, proposals or understandings, and any other communications between Tommy Anderberg and you relating to the subject matter of this Agreement.


About WAVmaker

The best way to get up to date information about WAVmaker and related software is to visit WAVmaker's Home Page (http://www.abc.se/~m9303), where you can download the WAVmaker Evaluation Package, containing fully functional executables and online documentation.

At the time of writing (May 5, 1996) the latest version is 2.2 (April 24 build) available both for Windows 3.1 (16 bit executables) and Windows 95/NT (32 bit executables). Chances are that there will be a newer version by the time you read this, including full support for MIDInight Express (integrated sample file expansion and MIDInight launcher).

WAVmaker features (yes, I know the screen shots below are taken under Windows 3.1 - I still think the old style windows and buttons look better!)...

•	Pro quality MID to WAV rendering. While the MIDInight Express uses fast but low-quality linear interpolation to change the pitch of library samples, WAVmaker implements sophisticated resampling algorithms minimizing aliasing and distortion effects, for crystal clear sound. It can also produce output in any combination of mono and stereo; 11025,  22050 and 44100 Hz; 8 and 16 bits (MIDInight is always 22050 Hz, 16 bit stereo).

•	A 160 MB General MIDI library with all necessary patches and samples (16 bit, 44100 Hz mono WAVs) to render any GM file, plus several non-standard drum sets.

•	Full patch editing support. Using the built-in PRG editor, you can map any sound to any of 128 keys on up to 65 535, MIDI-controlled virtual keyboards. Each key can have its own unique set of envelope and performance parameters (bend width, modulation rate, velocity sensitivity...). All patches can be used both with WAVmaker and with the MIDInight Express, of course.

•	A rich selection of WAV editing functions, including filters, ring modulator, echo, flange, chorus, several reverb algorithms, a fully programmable, 32 band Vocoder, and many, many others.

•	A proprietary sound compression/decompression system, allowing the entire GM sample library to be distributed on three standard diskettes!

•	A textual song description language - edit songs using any text editor (or use the quick MIDI editing functions).

•	And much more!

Best of all, Standard Registration (which also includes the MIDInight Express) is only $40 + Shipping & Handling! Check out WAVmaker's registration screen...


Pro quality MID to WAV rendering.


Full patch editing support.


A rich selection of WAV editing functions


Vocoder


WAVmaker's registration screen


Contacting the author

At the time of writing, the best way to reach me is by e-mail to

Tommy.Anderberg@abc.se

The second best choice is by fax to

+46 8 591 162 23

The slowest way is by snail mail to

Tommy Anderberg

Almvagen 4

195 44 Marsta