Copyright: Improvise 1.2 ® 1992-1994 David Pannett


Contents for Improvise Help

Improvise 1.2 © 1992-1994 by David Pannett

Help is organized into the following categories:

Button Bar

Current Selections Display

Dialogs

Getting Started

How to Register

Menu Commands

Message Boxes

Multiple Instances


Dialogs

'Adjust Jazz Tempo' Dialog

'Create Mix File' Dialog

'Create Programs File' Dialog

'File Open' Dialog

'File Save As' Dialog

'Load Mix File' Dialog

'Load Programs File' Dialog

'MIDI Channels' Dialog

'Mixer' Dialog

'Save MIDI File' Dialog

'Select MIDI Channel to Adjust' Dialog

'Select MIDI Thru Devices' Dialog

'Select Seed' Dialog

'Send Program Change' Dialog

'Set Parameters' Dialog


Menu Commands

Controls Menu Commands

File Menu Commands

Help Menu Commands

MIDI Menu Commands

Options Menu Commands

Parameters Menu Commands

Reseed Menu Commands

Style Menu Commands

System Menu Commands


Message Boxes

'Can't Enable MIDI Thru' Message Box

'File Not Opened' Message Box

'File Not Saved' Message Box

'Insufficient Memory' Message Box

'Invalid File Extension' Message Box

'Mem Alloc Failed -- Can't Record' Message Box

'Mem Alloc Failed -- Can't Save' Message Box

'MIDI Error' Message Box

'MIDI Recorder Being Used' Message Box

'MIDI Thru Being Used' Message Box

'MIDI Value Out of Range' Message Box

'Modified Settings Exist' Message Box

'No MIDI Output Driver' Message Box

'No MIDI Programs to Send' Message Box

'Not a MIDI File' Message Box

'Not a Mix File' Message Box

'Not a Programs File' Message Box

'Not a Settings File' Message Box

'Overwrite Existing File?' Message Box

'Recording Terminated -- Save MIDI Data?' Message Box

'Save Recorded MIDI Data?' Message Box

'Seed Number Out of Range' Message Box

'Selected File Invalid' Message Box

'Send Program Changes?' Message Box

'Standard Mode' Message Box

'Style Will Be Ignored' Message Box

'Timer Error' Message Box

'Unrecognized File Type' Message Box

'Use Mix Information?' Message Box


Multiple Instances

Improvise 1.2 lets you use multiple running instances of the program to switch among various settings configurations in real time, as algorithmic MIDI music is generated.  This is done by sending a seed from the instance of program to which you wish to switch, using either the 'Randomize' or the 'Select...' command from the 'Reseed' menu.  The current settings of the instance from which the seed is sent will be used.

Note that this strategy only works with the 'MM Timer' algorithms, and that only one instance is playing (although another instance's settings may be in use at any given time).  Program change and mix information will still be controlled by the 'playing' instance, even though another instance's settings may be in effect.

It may be possible for more than one instance to be playing simultaneously if your system hardware and configuration support this, but only if no more than one 'playing' instance uses an 'MM Timer' algorithm at any given time, and only if each 'playing' instance uses a different MIDI driver.

Sending a seed from an instance using the 'Jazz (MM Timer)' algorithm while algorithmic MIDI music is playing will have a result that will not in general be reproducible, since the specific effect of reseeding will depend on where exactly the playing music is (metrically, harmonically, etc.) at the precise moment of reseeding.


System Menu Commands

The system menu contains the standard Windows commands to resize, move or close the application window:

Restore 	restores the minimized application window to its previous size.

Move 	lets you move the application window using the cursor keys.

Size 	lets you resize the application window using the cursor keys.

Minimize 	shrinks the application window to an icon.

Maximize 	enlarges the application window to fill the entire display.

Close 	closes the application window, exiting the application.

Switch To... 	brings up the Task List, which can be used to switch to another active program.

Additionally, some third-party utilities (e.g. PC Tools) may add their own commands to the system menu.  Consult the documentation for any utility packages you may have installed for information about any other commands appearing in this menu.


File Menu Commands

The file menu contains commands for manipulating the files used by Improvise 1.2 to save and restore settings and groups of MIDI program changes:

Open... 	lets you select a settings file from which to retrieve information.

Save 	saves the current settings to file.

Save as... 	lets you specify a file in which to save the current settings.

Load programs file... 	lets you select a programs file containing MIDI program changes to send.

Create programs file... 	lets you specify a file in which to save a group of MIDI program changes.

Load mix file... 	lets you select a mix file containing relative MIDI volume information.

Create mix file... 	lets you specify a file in which to save the current mix.

Exit 	exits Improvise 1.2.


Controls Menu Commands

The controls menu contains commands to start and stop playing algorithmic MIDI music, to control recording of program output to MIDI files, and to access the mixer:

Play 	starts playing, using the current settings.

Stop 	stops playing.

Record to MIDI 	starts recording (if playing) or prepares to record.

End recording 	ends a recording session.

Mixer... 	lets you adjust channel levels and master volume.


Style Menu Commands

The style menu contains a list of available algorithms:

Jazz (MM Timer) 	uses tonal harmony, diatonic scales and conventional meters.

Experimental (MM Timer) 	uses the full chromatic pitch-field and no meter.

Experimental (System Timer) 	identical, but cooperatively multitasking.

The selected algorithm determines what kind of music is heard when the program is playing.  Note that some program options change depending on which algorithm is selected -- for example, the nature of the user-adjustable rhythm parameters depends on whether 'Jazz' or 'Experimental' is selected.


Parameters Menu Commands

The parameters menu contains commands allowing you to adjust musical dimensions such as rhythm, texture, dynamics and tempo:

Defaults 	restores default parameter settings.

Tempo... 	lets you adjust the tempo.

Set parameters... 	lets you adjust pitch, texture, dynamics, sustain and rhythm.

Jumble all 	resets parameters randomly.

Note that the behavior of some of these commands depends on which program options are in effect -- for example, selecting 'Defaults' will not restore the default values for individual channel parameters if 'Hold channel parameters' is currently selected (checked) in the options menu.


Reseed Menu Commands

The reseed menu contains commands for reseeding the compositional algorithm:

Use default 	reseeds with the default seed, which is 1.

Randomize 	reseeds with a random seed.

Select... 	lets you specify the seed number to use.


MIDI Menu Commands

The MIDI menu contains commands to manage the use of MIDI channels, send MIDI program changes, specify the active MIDI output device and enable/disable MIDI pass-through:

Channels... 	lets you toggle each MIDI channel, use of individual channel parameters.

Program change... 	lets you send a MIDI program change to any MIDI channel (1 - 16).

Devices 	lets you specify the MIDI output device to use.

Enable MIDI thru... 	lets you enable MIDI pass-through.

The last item in the MIDI menu changes to Disable MIDI thru when MIDI pass-through has been enabled.


Options Menu Commands

The options menu contains selections affecting the operation of a variety of program functions:

Disable sustain 	disables the sustain parameter (no sustain).

Hold channel parameters 	holds individual channel parameters when these are not in use.

Include programs saving imp file 	includes MIDI program changes when saving a settings file.

Include mix saving imp file 	includes mix information when saving a settings file.

Include mix saving pgs file 	includes mix information when saving a programs file.

Device compatibility mode 	prevents some MIDI devices leaving notes stuck 'on'.

Reset mix full on exit 	resets mix to full volume when exiting Improvise 1.2.

Save preferences on exit 	saves options, window position when exiting Improvise 1.2.

Options that appear with a checkmark beside them in the menu are currently in effect.


Help Menu Commands

The help menu contains commands to access help and version information about Improvise 1.2:

Contents 	brings up the contents page for the Improvise 1.2 help system.

Search for help on... 	lets you search for help by topic keyword.

Getting started 	brings up an introduction to Improvise 1.2.

How to use help 	brings up a general tutorial on using Windows help.

About Improvise... 	displays version and copyright information.

Help is also available in two other ways: 1) by reading the message bar at the bottom of the main application window, which provides context-sensitive help for all program functions, and 2) by pressing the F1 key at any time, which will bring up the appropriate help topic for whatever menu, dialog box control, etc. has the current focus.


Button Bar

The button bar provides mouse users quick access to many of the most frequently used program functions.  Additionally, the appearance of certain buttons changes depending on the state of program options and functions, providing visual feedback to let you know at a glance what the program is doing, which options are currently selected and which functions are temporarily unavailable.  The functions of the buttons are:

play button.  Starts playing, using the current settings.  Grayed when unavailable (when the program is already playing, or when in the process of closing the MIDI output device when stopping).

stop button.  Stops playing.  Grayed when unavailable (when the program is already stopped, or when in the process of closing the MIDI output device when stopping).

record button.  If Improvise is playing, immediately begins recording program output (to be saved as a MIDI file); otherwise enters ready-to-record mode.  When in ready-to-record mode, the indicator light (upper right corner of the button) flashes on and off; while recording, the indicator light is steady.

file open button.  Accesses the 'File Open' Dialog, letting you select a settings file from which to retrieve information.  Grayed when unavailable (while playing).

load programs file button.  Accesses the 'Load Programs File' Dialog, letting you select a programs file containing MIDI program changes to send.

file save button.  Saves the current settings to file.  You will be prompted before an existing settings file is overwritten (answering 'No' will bring up the 'File Save As' Dialog).

create programs file button.  Accesses the 'Create Programs File' Dialog, letting you specify a file in which to save a group of MIDI program changes.  Grayed if no program changes have been sent.

mixer button.  Accesses the 'Mixer' Dialog, letting you adjust the relative volume level of each MIDI channel, as well as the overall master volume.

load mix file button.  Accesses the 'Load Mix File' Dialog, letting you select a mix file from which to load a mix.

create mix file button.  Accesses the 'Create Mix File' Dialog, letting you specify a file in which to save the current mix.

randomize button.  Reseeds the compositional algorithm with a random seed.  The button is animated to 'spin' when a random seed has been sent; when it stops, the arrow may point in any direction.

individual channel parameters button.  Toggles use of separate parameters for each MIDI channel.  When individual channel parameters are in effect, the button will display three separate arrows.

help contents button.  Brings up the contents page for the Improvise 1.2 help system.


Current Selections Display

The current selections display shows which MIDI channels are currently selected to receive musical output, as well as which MIDI programs have been sent to which channels.  Clicking with the mouse on any part of either pane of the display will access the appropriate function, as follows:

Clicking on any channel number, or clicking on the word 'Channel', will bring up the 'Set Parameters' Dialog, either for that particular channel (if individual channel parameters are in effect), or for all channels.

Clicking on any program number, or clicking on the word 'Program', will bring up the 'Program Change' Dialog, initialized with the number of the channel on the row where you clicked.

Clicking on the word 'Yes' (representing an active channel) will toggle that channel off; the word 'No' will replace the 'Yes', to indicate that the channel is now inactive.  Conversely, clicking on a 'No' will toggle that channel on, and 'Yes' will replace the 'No'.


'Standard Mode' Message Box

This message box appears at program startup if Windows is running in Standard Mode.  When Windows is running in Standard Mode, only the 'Experimental (System Timer)' algorithm is available for use.  If you are using a 386 or better computer with at least 2 Meg of RAM, Windows will normally run in 386 Enhanced Mode.  Exit Windows, then restart with the 'WIN' command at the DOS prompt in order to run Windows in Enhanced Mode; otherwise you will not be able to use all of the features of Improvise 1.2.

Note that in some cases it may be necessary to start Windows with the 'WIN/3' command at the DOS prompt in order to force Windows to run in Enhanced Mode.

You can check to see in which mode Windows is currently running by selecting 'Help | About Program Manager...' in Program Manager.  See your Windows documentation for more information about Windows operating modes.


'Insufficient Memory' Message Box

This message box appears when there is insufficient memory available for the control structures used by Improvise 1.2.  Close one or more running applications to increase available memory, then restart the program.


'File Not Opened' Message Box

This message box appears when Improvise 1.2 is unable to open or load a file that you have requested, typically because the file does not exist or the wrong path has been specified.  Your only recourse is to try again.  The file-handling capabilities provided by the various file dialogs used by Improvise 1.2 make it possible to confirm the presence of a file before attempting to open it: by specifying '*.*' as the file mask, all files in the current directory will be listed.


'Selected File Invalid' Message Box

This message box appears when you attempt to open, load or write to a file that is not a settings, programs or mix file created by Improvise.  Improvise includes a signature in the files that it creates that is checked to prevent you from accidentally trying to load -- or worse, overwriting -- some other kind of file.  Try specifying the filename again.


'Send Program Changes?' Message Box

This message box appears when you open a settings file that contains program change information (in addition to the parameters and other information included in all settings files).  Select 'Yes' to send the program changes to your MIDI hardware, or 'No' to ignore the program change information.


'Use Mix Information?' Message Box

This message box appears when you open a settings file or load a programs file that contains mix information (in addition to the other information included the file).  Select 'Yes' to use the mix information found in the file, or 'No' to ignore the mix information.


'Not a Settings File' Message Box

This message box appears when you specify a programs file or a mix file, rather than a settings file, in the 'File Open' Dialog.  The 'File Open' Dialog is used to specify a settings file from which to restore settings.  If you wish instead to load a programs file, select 'Load programs file...' from the file menu; if you wish to load a mix file, select 'Load mix file...' from the file menu.


'Unrecognized File Type' Message Box

This message box appears when you specify a file to open or load that contains an unrecognized data type.  Possibly the file has been corrupted, or was not created by Improvise (or was created by a later version of Improvise than the one you are running).


'Not a Programs File' Message Box

This message box appears when you specify a settings file or a mix file, rather than a programs file, in the 'Load Programs File' Dialog.  The 'Load Programs File' Dialog is used to specify a programs file from which to load MIDI program changes.  If you wish instead to open a settings file, select 'Open...' from the file menu; if you wish to open a mix file, select 'Load mix file...' from the file menu.


'Not a Mix File' Message Box

This message box appears when you specify a settings file or a programs file, rather than a mix file, in the 'Load Mix File' Dialog.  The 'Load Mix File' Dialog is used to specify a mix file from which to load mix data.  If you wish instead to open a settings file, select 'Open...' from the file menu; if you wish to load a programs file, select 'Load programs file...' from the file menu.


'MIDI Error' Message Box

This message box appears when the currently selected Windows MIDI output driver reports a failed operation, either in opening the MIDI device or in sending a MIDI message.  You can expect to receive a 'midiOutOpen returns error' message if another task is using the currently selected MIDI driver when Improvise 1.2 attempts to open the MIDI device.  You may have to close other active MIDI applications to correct this problem, although some applications may co-exist happily with Improvise 1.2 as long as both are not attempting to play, or otherwise send MIDI data, at the same time.

Other MIDI errors may be caused by a problem located in one of your Windows MIDI drivers.  Since the source of this error is the active Windows MIDI output driver, a software bug in that driver may be indicated.  Try a different MIDI output driver, or investigate the availability of an updated driver for your MIDI device.


'Overwrite Existing File?' Message Box

This message box appears when you ask Improvise 1.2 to overwrite an existing file.  If you are about to overwrite a file with a file of a different type (e.g. overwriting a settings file with a programs file), this is indicated by the message displayed.  Select 'Yes' to overwrite the existing file, or 'No' to preserve the existing file.  If you select 'No', you will be given the opportunity to specify a different filename to use.


'File Not Saved' Message Box

This message box appears when an error occurs in attempting to save a settings, programs, mix or MIDI file.  One possible cause for such an error would be trying to overwrite an existing file that has its read-only attribute set.


'Timer Error' Message Box

This message box appears when an error occurs in creating or killing a system timer.  System timers are a limited resource under Windows.  A timer error might potentially result from some other program's monopolization of this resource.  Should a timer error occur, try closing one or more other active programs before retrying the operation that led to the error condition.  If problems persist, some buggy application may have consumed system timers without releasing them when done; in such a case, your last resort should be to reboot Windows.


'No MIDI Output Driver' Message Box

This message box appears when Improvise 1.2 cannot find a MIDI output driver to use at startup.  Improvise 1.2 will locate all installed MIDI output drivers (up to eleven devices) at startup, and by default select the Microsoft MIDI Mapper to use if available; otherwise the first driver found is used.  If you have not yet installed any Windows MIDI drivers on your system, double-click on the 'Drivers' icon in the Control Panel applet, then select 'Add...'.


'MIDI Value Out of Range' Message Box

This message box appears when you provide a value outside of the allowable range for MIDI channel number, MIDI program number, or both:

MIDI channel number 	Improvise 1.2 supports MIDI channels one through sixteen.

MIDI program number 	MIDI programs are numbered 0 through 127, inclusive.

Press 'OK' or the 'Enter' key, then correct your input so that it falls within the above ranges.


'No MIDI Programs to Send' Message Box

This message box appears when Improvise 1.2 loads a defective (empty) programs file.  In fact, Improvise will refuse to create such a 'null' file; hence the file can only have been created in some other way, or else has somehow become corrupted.


'Seed Number Out of Range' Message Box

This message box appears when you try to send an invalid seed number.  The seed must be an integer value from 1 to 32767, inclusive.  Press 'OK' or the 'Enter' key, then correct your input so that it falls within the valid range.


'Style Will Be Ignored' Message Box

This message box appears when Windows is running in Standard Mode and you open a settings file that uses either the 'Experimental (MM Timer)' or the 'Jazz (MM Timer)' algorithm.  The former case is unproblematic, since the 'Experimental (System Timer)' algorithm, which is available in Standard Mode, provides a reasonable alternative -- the same music will be produced, but may be interrupted (or slowed down) by other active programs.  In the case where the settings file uses the 'Jazz (MM Timer)' algorithm, however, no equivalent style (i.e. algorithm) is available in Standard Mode; therefore the results are likely to be accidental at best.  In this latter case, the 'Experimental (System Timer)' algorithm will be used and the current rhythm parameters preserved, radically altering the original effect of the music produced by the settings and parameters stored in the settings file.


'Can't Enable MIDI Thru' Message Box

This message box appears when an attempt to enable the MIDI pass-through facility has failed due to the unavailability of the selected MIDI thru input device.  Most likely, another program is currently using the input device.  Try closing any other running MIDI programs, or select a different MIDI input device for MIDI pass-through use.


'MIDI Thru Being Used' Message Box

This message box appears when an attempt to enable the MIDI pass-through facility has failed because another running instance of Improvise currently has MIDI thru enabled.  Only one instance at a time may use this feature.


'Modified Settings Exist' Message Box

This message box appears when you are about to abandon changes to settings that have not yet been saved, either by opening a settings file or exiting Improvise.  (The tracking of whether modified settings exist is reflected in the title bar of the Improvise main window.)  Note that neither MIDI program change information nor changes to the current 'mix' of MIDI volume information are tracked, since these components are optional to settings files.

Choose 'Yes' to save the modified settings; choose 'No' to proceed without saving.  Choose 'Cancel' to cancel the current operation and return to the file.


'Recording Terminated -- Save MIDI Data?' Message Box

This message box appears when a recording session has been prematurely terminated due to insufficient available memory buffers at runtime.  This could happen due to insufficient available physical RAM, or due to excessive system activity interfering with the scheduled extension of the chain of buffers used for MIDI recording.

Choose 'Yes' to attempt to save recorded MIDI data; choose 'No' to discard recorded MIDI data.


'Save Recorded MIDI Data?' Message Box

This message box appears at the end of a recording session (when you either stop playing, or select 'End recording' from the 'Controls' menu), if there is any recorded MIDI data to be saved.

Choose 'Yes' to save the recorded MIDI data; choose 'No' to discard the recorded MIDI data.


'MIDI Recorder Being Used' Message Box

This message box appears when an attempt to enable MIDI recording has failed because another running instance of Improvise currently has recording enabled.  Only one instance at a time may use this feature.


'Mem Alloc Failed -- Can't Record' Message Box

This message box appears when recording buffers could not be allocated prior to recording program output.  This almost certainly indicates insufficient available physical RAM.

Close any other active applications to free up available memory, then try again.


'Mem Alloc Failed -- Can't Save' Message Box

This message box appears when a translation buffer could not be allocated prior to creating a MIDI file from recorded program output.  This almost certainly indicates insufficient available RAM.

Unfortunately, any recorded MIDI data will be lost at this point.  Close any other active applications to free up available memory, then try again.


'Not a MIDI File' Message Box

This message box appears when you select an existing file in the 'Save MIDI File' Dialog that does not have the extension '.MID'.  If you want to overwrite an existing file, choose a file with the extension '.MID'.


'Invalid File Extension' Message Box

This message box appears when you attempt to create a new MIDI file in the 'Save MIDI File' Dialog with an extension other than '.MID'.  The only valid file extension for a MIDI file is '.MID'.  You may omit the extension if you wish; Improvise will add it for you.


Open

Choosing the 'Open...' command from the file menu lets you select a settings file from which to retrieve information, including the style, seed and MIDI channels to use, various parameters governing rhythm, pitch, texture, dynamics, sustain and (where applicable) tempo, and, optionally, MIDI program changes.  (Not all settings files include program change information.  If program changes are specified in the selected settings file, you will be prompted whether to send those program changes.)


Save

Choosing the 'Save' command from the file menu saves the current settings, including the style, seed, MIDI channel status, and various parameters governing rhythm, pitch, texture, dynamics, sustain and (if applicable) tempo, to a settings file.  If a settings file has previously been specified (by opening or saving a settings file), that settings file will be updated with the current settings.  Otherwise you will be given the opportunity to specify a new or existing file to use.  In either case, you will be prompted before any existing file is overwritten.

If 'Include programs when saving' has been selected from the options menu (i.e. if it currently appears in the options menu with a checkmark beside it), then the MIDI program selections currently displayed in the main program window will also be included in the settings file.  Similarly, if 'Include mix saving imp file' has been selected from the options menu, then the current mix will also be included in the settings file.


Save as

Choosing the 'Save as...' command from the file menu lets you specify a new or existing settings file in which to save the current settings, including the style, seed, MIDI channel status, and various parameters governing rhythm, pitch, texture, dynamics, sustain and (if applicable) tempo.

If 'Include programs when saving' has been selected from the options menu (i.e. if it currently appears in the options menu with a checkmark beside it), then the MIDI program selections currently displayed in the main program window will also be included in the settings file.


Load programs file

Choosing the 'Load programs file...' command from the file menu lets you select a programs file from which to retrieve a group of MIDI program changes.  The MIDI program changes retrieved from the file are immediately sent to the currently selected MIDI device.


Create programs file

Choosing the 'Create programs file...' command from the file menu lets you specify a new or existing programs file in which to store a group of MIDI programs.  The MIDI program selections currently displayed in the main program window will be included in the new programs file.


Load mix file

Choosing the 'Load mix file...' command from the file menu lets you select a mix file from which to retrieve mix information, specifying relative volume levels for all MIDI channels.  The mix retrieved from the file is immediately sent to the currently selected MIDI device.


Create mix file

Choosing the 'Create mix file...' command from the file menu lets you specify a new or existing mix file in which to store mix information, specifying relative volume levels for all MIDI channels.  The mix currently in effect, as shown in the 'Mixer' Dialog , will be saved in the new mix file.


Exit

Choosing the 'Exit' command from the file menu exits Improvise 1.2, first closing the active MIDI output device if the program is playing at the time.  Unless Improvise 1.2 is running full-screen (maximized) or iconic (minimized), the current coordinates of the Improvise 1.2 main window will be saved for the next session.


Play

Choosing the 'Play' command from the controls menu starts playing algorithmic MIDI music, using the current settings.


Stop

Choosing the 'Stop' command from the controls menu stops playing.


Record to MIDI

Choosing the 'Record to MIDI' command from the controls menu tells Improvise to record program output to a MIDI file.  If Improvise is not currently playing algorithmic MIDI music, recording will not begin until you select 'Play' from the controls menu; otherwise recording begins immediately.  You will be prompted to save the recording when you stop playing, or if you select 'End recording' from the controls menu.


End recording

Choosing the 'End recording' command from the controls menu ends any current recording and cancels recording mode.  If any program output has been recorded, you will be prompted to save the recording.


Mixer

Choosing the 'Mixer...' command from the controls menu lets you adjust the relative volume level of each MIDI channel, as well as adjust the overall master volume.


Jazz (MM Timer)

Selecting the 'Jazz (MM Timer)' algorithm from the style menu lets you create algorithmic MIDI music that uses tonal harmony, diatonic scales and conventional meters.  This algorithm uses diatonic harmonies up to and including eleventh chords, meters having from two to seven quarter-note beats per measure, note values from half notes to triplet thirty-second notes, and modulation through all major keys (and the associated transpositions of the dorian, phrygian, lydian, mixolydian, aeolian and locrian modes).  The music produced on any given MIDI channel may derive its pitches either as components of the current harmony or as melodic material, depending on the settings of the various parameters for that channel.  Melodic material is based on diatonic scales (ionian, dorian, phrygian, lydian, mixolydian, aeolian and locrian), and developed according to weighted rules that express preferences favoring continuity, flexibility and coherence.  Knowledge of the current harmony is maintained by all MIDI channels, but the rhythmic anticipation of a chord change or modulation is permitted.

The designation 'MM Timer' indicates that this algorithm uses the multimedia timer rather than the system timer.  The multimedia timer may interrupt other active processes in order to guarantee rhythmic accuracy when playing MIDI music; thus there is the potential (as with other Windows MIDI applications) for degrading the performance of other active programs, particularly an issue with telecommunications file transfers on many slower machines while MIDI music is playing.  This is not a problem with 'System Timer' algorithms, since the system timer mechanism is implemented as cooperatively multitasking; on the other hand, for that same reason the system timer is not rhythmically reliable.  This particular algorithm can only use the multimedia timer.

The currently selected algorithm will appear with a checkmark beside it in the style menu.


Experimental (MM Timer)

Selecting the 'Experimental (MM Timer)' algorithm from the style menu lets you create algorithmic MIDI music that uses atonal harmony, aleatory chromaticism and unmetered rhythm.  This algorithm treats all pitches as fundamentally functionally equivalent.  Conventional harmonies and pitch successions are neither preferred nor avoided, but unusual combinations will tend to predominate.  Rhythm is handled simply on the basis of the relative likelihood of the occurrence of any musical event (a note, a chord or a rest) at any given time, without establishing any kind of proportional system of rhythmic values.  This makes possible effects of extreme rhythmic freedom, suggesting (for example) a flexible tempo -- depending, of course, on the particular parameters selected.

The designation 'MM Timer' indicates that this algorithm uses the multimedia timer rather than the system timer.  The multimedia timer may interrupt other active processes in order to guarantee rhythmic accuracy when playing MIDI music; thus there is the potential (as with other Windows MIDI applications) for degrading the performance of other active programs, particularly an issue with telecommunications file transfers on many slower machines while MIDI music is playing.  This is not a problem with 'System Timer' algorithms, since the system timer mechanism is implemented as cooperatively multitasking; on the other hand, for that same reason the system timer is not rhythmically reliable.  This particular algorithm is also available in an otherwise identical version that uses the system timer.

The currently selected algorithm will appear with a checkmark beside it in the style menu.


Experimental (System Timer)

Selecting the 'Experimental (System Timer)' algorithm from the style menu lets you create algorithmic MIDI music that uses atonal harmony, aleatory chromaticism and unmetered rhythm.  This algorithm treats all pitches as fundamentally functionally equivalent.  Conventional harmonies and pitch successions are neither preferred nor avoided, but unusual combinations will tend to predominate.  Rhythm is handled simply on the basis of the relative likelihood of the occurrence of any musical event (a note, a chord or a rest) at any given time, without establishing any kind of proportional system of rhythmic values.  This makes possible effects of extreme rhythmic freedom, suggesting (for example) a flexible tempo -- depending, of course, on the particular parameters selected.

The designation 'System Timer' indicates that this algorithm uses the system timer rather than the multimedia timer.  The multimedia timer may interrupt other active processes in order to guarantee rhythmic accuracy when playing MIDI music; thus there is the potential (as with other Windows MIDI applications) for degrading the performance of other active programs, particularly an issue with telecommunications file transfers on many slower machines while MIDI music is playing.  This is not a problem with 'System Timer' algorithms, since the system timer mechanism is implemented as cooperatively multitasking; on the other hand, for that same reason the system timer is not rhythmically reliable.  This particular algorithm is also available in an otherwise identical version that uses the multimedia timer.

The currently selected algorithm will appear with a checkmark beside it in the style menu.


Defaults

Choosing the 'Defaults' command from the parameters menu resets pitch, texture, rhythm, sustain and dynamics parameters to the default values in effect at program startup.

Note that if 'Hold channel parameters' is currently selected (checked) in the options menu, the 'Defaults' command will not affect individual channel parameters.


Tempo

Choosing the 'Tempo...' command from the parameters menu lets you adjust the tempo (specified in beats per minute, or 'bpm').  If algorithmic MIDI music is playing at the time, you will be able to hear the effect of any tempo changes as you make them.


Set parameters

Choosing the 'Set parameters...' command from the parameters menu lets you adjust various pitch, texture, rhythm, sustain and dynamics parameters, providing control over many aspects of the music produced by Improvise 1.2.  If algorithmic MIDI music is playing at the time, you will be able to hear the effect of any changes to these parameters as you make them.

If individual channel parameters are in effect when you select the 'Set parameters...' command, you will be prompted to specify the MIDI channel for which to adjust parameters; otherwise parameters will apply to all channels.


Jumble all

Choosing the 'Jumble all' command from the parameters menu sets pitch, texture, rhythm, sustain and dynamics parameters to random values.

Note that the 'Jumble all' command is unavailable when individual channel parameters are in effect.


Use default

Choosing the 'Use default' command from the reseed menu reseeds the compositional algorithm with the default seed, which is 1.


Randomize

Choosing the 'Randomize' command from the reseed menu reseeds the compositional algorithm with a random seed.


Select

Choosing the 'Select...' command from the reseed menu lets you specify a seed number with which to reseed the compositional algorithm.  The seed number must be an integer from 1 to 32767, inclusive.


Channels

Choosing the 'Channels...' command from the MIDI menu lets you manage the use of MIDI channels by toggling output to individual channels on and off, and by specifying whether separate parameters are to be used for each channel.


Program change

Choosing the 'Program change...' command from the MIDI menu lets you send a MIDI program change to any MIDI channel, one through sixteen.  The MIDI program number must be an integer from 0 to 127, inclusive.


Devices

The 'Devices' submenu, located as the penultimate selection in the MIDI menu, lists all installed MIDI output devices for which Improvise 1.2 could locate a Windows MIDI driver, up to a maximum of ten devices plus the MIDI Mapper.  If the Microsoft MIDI Mapper (included with Windows 3.1) is installed, Improvise 1.2 selects it as the active MIDI output device at startup; otherwise, the first MIDI device appearing on the list is used.  The currently selected MIDI output device will appear with a checkmark beside it in the 'Devices' submenu.

You can change the selection of the active MIDI output device simply by selecting another from the list.  Note that you cannot change the active MIDI output device while Improvise 1.2 is playing.


Enable MIDI thru

Choosing the 'Enable MIDI thru...' command from the MIDI menu brings up the 'Select MIDI Thru Devices' Dialog, letting you specify the MIDI input and MIDI output devices to be used by the MIDI pass-through facility.


Disable MIDI thru

Choosing the 'Disable MIDI thru' command from the MIDI menu shuts down the active MIDI pass-through facility.


Disable sustain

Selecting the 'Disable sustain' option from the options menu sets the sustain parameter to 'None' for all MIDI channels and disables future changes to the sustain parameter as long as 'Disable sustain' remains selected.


Hold channel parameters

Selecting the 'Hold channel parameters' option from the options menu causes Improvise 1.2 to preserve the current individual channel parameters even when individual channel parameters are not in effect.  This option is ignored when opening a settings file.


Include programs saving imp file

Selecting the 'Include programs saving imp file' option from the options menu causes the MIDI program selections currently displayed in the main program window to be included when saving a settings file.  If this option is not selected, no MIDI program information will be included when saving settings files.


Include mix saving imp file

Selecting the 'Include mix saving imp file' option from the options menu causes the current mix information to be included when saving a settings file.  If this option is not selected, no mix information will be included when saving settings files.


Include mix saving pgs file

Selecting the 'Include mix saving pgs file' option from the options menu causes the current mix information to be included when saving a programs file.  If this option is not selected, no mix information will be included when saving programs files.


Device compatibility mode

Selecting the 'Device compatibility mode' option from the options menu causes a brute-force method of turning all notes off to be used when stopping (and when toggling channels off, or selecting the 'Disable sustain' option, while playing).

Some MIDI devices may leave notes stuck 'on' when stopping if this option is not selected.  If your synthesizer exhibits this problem, select this option; otherwise do not select this option, as it adds significant overhead to the affected program functions.  In particular, a pause may be inserted into the playing of algorithmic music when one of the affected program functions is used while playing if this option is selected and an external MIDI device is in use.  The 'Device compatibility mode' option is intended to correct a problem observed with certain MIDI synthesizers; in the case of most internal devices, the performance overhead involved will in general not be noticeable.


Reset mix full on exit

Selecting the 'Reset mix full on exit' option from the options menu causes the mix to be reset to full volume on all MIDI channels when exiting Improvise 1.2.


Save preferences on exit

Selecting the 'Save preferences on exit' option from the options menu causes the selected/unselected status of all options appearing in the options menu, as well as the main program window size and position (if the main program window is neither minimized nor maximized), to be preserved when exiting Improvise 1.2.  The saved preferences will be restored when the program is subsequently restarted.

Unselecting this option will cause Improvise 1.2 to start up with the same options selected each time it is run.


Contents

Choosing the 'Contents' command from the help menu brings up the contents page of the Improvise 1.2 help system.


Search for help on

Choosing the 'Search for help on...' command from the help menu lets you search for help by keyword.


Getting started

Choosing the 'Getting started' command from the help menu brings up the Getting Started with Improvise help topic, a brief introduction to some of the main features of the program.


How to use help

Choosing the 'How to use help' command from the help menu brings up the Windows How to Use Help contents page.


About Improvise

Choosing the 'About Improvise...' command from the help menu lets you view version and copyright information about Improvise.


How to Register

Improvise 1.2 © 1992-1994 by David Pannett

Register Improvise 1.2 by sending a check or money order for $25 U.S. funds to:

David Pannett

10 Garfield St.

Natick, MA  01760     USA

Please indicate whether you prefer 3.5" or 5.25" floppy disks.  Registered users will receive an enhanced version of this program as well as notification of free future upgrades.


'Select Seed' Dialog

This dialog box permits a user-selected seed number to be sent to the compositional algorithm.  You may choose any integer value from 1 to 32767 to use as the seed.  When the dialog comes up, the seed number displayed is the one most recently sent to the algorithm.  You may reseed the algorithm with this same number, choose a new seed number to send to the algorithm or leave the dialog without reseeding.  Pressing the 'OK' button on the dialog box (or pressing the 'Enter' key while the 'OK' button has the focus) immediately reseeds the algorithm with the seed number currently displayed, whether the program is playing or not.

Note that the 'Select Seed' dialog is unavailable while the 'Jazz (MM Timer)' algorithm is playing; in this case you will have to stop the music to select a new seed, although a random seed can be sent to the 'Jazz (MM Timer)' algorithm while it is playing by selecting 'Randomize' from the reseed menu (or pressing 'Ctrl+R').  The particular result of a 'Randomize' operation executed while the 'Jazz (MM Timer)' algorithm is playing will not be reproducible, since the effect of whatever seed was sent will have depended on precisely where the music was with respect to the beat and meter at the time of reseeding.  On the other hand, reseeding this algorithm with any given seed number while the algorithm is not playing will have the same result every time, regardless of where in the measure the music was when last stopped, as is the case when reseeding the other algorithms.  (Reseeding either of the 'Experimental' algorithms with any given seed number will always have the same result every time, whether or not the music is playing when the seed is sent.)

Press the 'Cancel' button on the dialog box to avoid reseeding the algorithm.


'Set Parameters' Dialog

This dialog box allows you to control many of the dimensions of the music produced by the program, including the range of pitches used, the degree of sustain, the density of the texture and maximum number of notes in a chord, the range of dynamics (softest to loudest), and the complexity and relative 'busy-ness' of the rhythm.

Note that all changes to the settings in this dialog take effect as you make them, so that you can instantly hear the effect of these changes if the program is currently playing; however, if you press 'Cancel', or otherwise close the dialog without pressing the 'OK' button (or pressing the 'Enter' key while the 'OK' button has the focus), all parameters controlled by this dialog will revert to the settings that were in effect when the dialog was opened.

If 'Disable sustain' has been selected from the options menu (i.e. if it currently appears in the menu with a checkmark beside it), you will not be able to change the 'Sustain' selection.

See also:

Dynamics Parameters

Pitch Parameters

Rhythm Parameters

Sustain Parameter

Texture Parameters


'File Open' Dialog

The 'File Open' dialog permits the selection of a file from which parameters and settings affecting the music produced by the program will be restored.  These files, created by selecting the 'File | Save as' menu item, always contain settings for the parameters that appear in the 'Set Parameters' Dialog, as well as MIDI channel selections, a seed number, a style (i.e. the compositional algorithm to be used), and a tempo, used only when the style is 'Jazz (MM Timer)'.  All settings, including the style (as long as Windows is running in 386 Enhanced Mode), can be adjusted after the file has been selected.

Some settings files will also contain program change information.  If this is the case, you will be asked when you select the file whether to send these program changes.

Selecting a file, done by pressing the 'OK' button on the dialog box (or pressing the 'Enter' key while the 'OK' button has the focus) while a valid filename appears in the 'Filename:' input control of the dialog, or by double-clicking with the mouse on a valid filename in the 'Files:' listbox, has the effect of reseeding the algorithm with the stored value contained in the file, updating all relevant settings and parameters, and also updating the information displayed by the main program window and the various menus and dialogs.

Note that if 'Disable sustain' has been selected from the options menu (i.e. if it currently appears in the menu with a checkmark beside it), the 'Sustain' parameter will remain set to 'None' for all channels when settings are restored from a file, regardless of any contrary settings contained in the file.  Also note that if Windows is running in Standard Mode, the current style will remain 'Experimental (System Timer)', regardless of the style setting actually found in the selected file.  In this latter case, if the selected file contains values associated with the 'Jazz (MM Timer)' algorithm, the 'Meter' and 'Shortest' rhythm parameters contained in the file will be ignored, and the current rhythm parameters will remain in effect.


'File Save As' Dialog

The 'File Save As' dialog is used to specify the filename and path when creating or updating a settings file.  All settings that appear in the 'Set Parameters' Dialog, as well as MIDI channel selections, a seed number, a style (i.e. the currently selected compositional algorithm), and a tempo -- used only when the style is 'Jazz (MM Timer)' -- are all saved in the new file.

If 'Include programs when saving' has been selected from the options menu (i.e. if it currently appears in the menu with a checkmark beside it), then the MIDI program selections currently displayed in the main program window will also be saved in the file.

Confirm the filename and path to be used for the new settings file by pressing the 'OK' button on the dialog box (or pressing the 'Enter' key while the 'OK' button has the focus) while a valid filename appears in the 'Filename:' input control of the dialog, or by double-clicking with the mouse on a valid filename in the 'Files:' listbox.


'Load Programs File' Dialog

The 'Load Programs File' dialog permits the selection of a file from which a group of MIDI program changes will be read and sent to your synthesizer(s).  Such files, created by selecting the 'File | Create programs file' menu item, associate particular MIDI programs with specific MIDI channels.  Note that not every such file necessarily contains program changes for all channels; only those channels for which MIDI programs are specified in the file will be affected by loading any given programs file.

Select a file by pressing the 'OK' button on the dialog box (or pressing the 'Enter' key while the 'OK' button has the focus) while a valid filename appears in the 'Filename:' input control of the dialog, or by double-clicking with the mouse on a valid filename in the 'Files:' listbox.  Once a file has been selected, the information displayed in the main application window will be updated to reflect any new MIDI programs that have been sent.


'Create Programs File' Dialog

The 'Create Programs File' dialog is used to specify the filename and path when creating or updating a programs file.  The new file will contain program change information for each channel for which a MIDI program number currently appears in the main application window.  Once such a file has been created, these programs can be restored to the specified MIDI channels at any time by reselecting the file in the 'Load Programs File' Dialog.

Confirm the filename and path to be used for the new programs file by pressing the 'OK' button on the dialog box (or pressing the 'Enter' key while the 'OK' button has the focus) while a valid filename appears in the 'Filename:' input control of the dialog, or by double-clicking with the mouse on a valid filename in the 'Files:' listbox.


'Load Mix File' Dialog

The 'Load Mix File' dialog permits the selection of a file from which a mix will be read and sent to your synthesizer(s).  Such files, created by selecting the 'File | Create mix file' menu item, contain relative volume information for each MIDI channel, as well as an overall volume level.

Select a file by pressing the 'OK' button on the dialog box (or pressing the 'Enter' key while the 'OK' button has the focus) while a valid filename appears in the 'Filename:' input control of the dialog, or by double-clicking with the mouse on a valid filename in the 'Files:' listbox.  Once a file has been selected, the information displayed in the 'Mixer' Dialog will be updated to reflect the new mix.


'Create Mix File' Dialog

The 'Create Mix File' dialog is used to specify the filename and path when creating or updating a mix file.  The new file will contain relative volume information for each MIDI channel, as well as an overall volume level.  The values currently displayed in the 'Mixer' Dialog will be preserved in the new mix file.

Confirm the filename and path to be used for the new mix file by pressing the 'OK' button on the dialog box (or pressing the 'Enter' key while the 'OK' button has the focus) while a valid filename appears in the 'Filename:' input control of the dialog, or by double-clicking with the mouse on a valid filename in the 'Files:' listbox.


'Save MIDI File' Dialog

The 'Save MIDI File' dialog is used to specify the filename and path when saving a MIDI file.  This dialog appears when you answer 'Yes' when prompted whether to save recorded MIDI data at the end of a recording session.

Confirm the filename and path to be used for the MIDI file by pressing the 'OK' button on the dialog box (or pressing the 'Enter' key while the 'OK' button has the focus) while a valid filename appears in the 'Filename:' input control of the dialog, or by double-clicking with the mouse on a valid filename in the 'Files:' listbox.

Note that the filename must use the extension '.MID'.  If you omit the extension when creating a new MIDI file, Improvise will append this extension for you.


'Select MIDI Channel to Adjust' Dialog

The 'Select MIDI Channel to Adjust' dialog comes up when 'Set parameters...' has been selected from the parameters menu, if 'Individual channel parameters' is currently selected in the 'MIDI Channels' Dialog (if 'Individual channel parameters' is currently selected, the checkbox at the bottom left of the 'MIDI Channels' dialog box will appear with a checkmark on it).  When the 'Select MIDI Channel to Adjust' dialog appears, enter a number from one to sixteen, corresponding to the MIDI channel for which you wish to adjust the parameters; then press the 'OK' button on the dialog box (or the 'Enter' key while the 'OK' button has the focus) to confirm your selection.  This will bring up the 'Set Parameters' Dialog for the specified MIDI channel.

Press the 'Cancel' button on the 'Select MIDI Channel to Adjust' dialog box to avoid bringing up the 'Set Parameters' dialog.


'Mixer' Dialog

The 'Mixer' dialog is used to adjust the relative volume level of each MIDI channel, as well as adjust the overall master volume.  If Improvise 1.2 is currently playing, changes made to the settings in this dialog will take effect as they are made; otherwise, changes will take effect the next time Improvise begins playing.

The sixteen individual channel level scrollbars control the volume level of each MIDI channel, using a scale from 0 to 127, with 0 being silence and 127 being full volume.  The values given by these individual channel volume controls are then scaled by the value set by the master volume control, found below the individual channel volume controls in the dialog.  Values for the master volume control range from 0% to 100%.  The result of the value of each individual volume control multiplied by the value (percentage) of the master volume control is sent as a MIDI volume change message to the appropriate MIDI channel.

If you press the 'Cancel' button, or otherwise close the dialog without pressing the 'OK' button (or pressing the 'Enter' key while the 'OK' button has the focus), all settings controlled by this dialog will revert to those that were in effect when the dialog was opened.  Pressing the 'OK' button (or pressing the 'Enter' key while the 'OK' button has the focus) confirms the current mix settings and closes the dialog.

Note that not all synthesizers respond to MIDI volume change messages.  In particular, certain low-end internal synthesizers ignore volume change messages.  If your synthesizer does not support MIDI volume change, the 'Mixer' dialog (and all mix information) will have no effect whatsoever on the music produced by Improvise 1.2.


'MIDI Channels' Dialog

The 'MIDI Channels' dialog is used to control which MIDI output channels are active and whether the parameters for those channels will be controlled individually or collectively.  Clicking on any channel name or its adjacent checkbox (or selecting a channel with the keyboard, either by using the underlined accelerator-key shortcuts, or by pressing the spacebar when the target channel has the focus) toggles the selected channel between off (checkbox unchecked) and on (checkbox checked).

The 'Individual channel parameters' checkbox is used to determine whether all channels will share the same parameters (checkbox unchecked), or each channel will use its own parameter settings (checkbox checked).  When 'Individual channel parameters' are in effect, choosing 'Set parameters...' from the parameters menu will bring up the 'Select MIDI Channel to Adjust' Dialog, so that you can specify individual channels to adjust one at a time.

Note that all changes made in this dialog box take effect as you make them, so that you can instantly hear the effect of these changes if the program is currently playing; however, if you press 'Cancel', or otherwise close the dialog without pressing the 'OK' button (or pressing the 'Enter' key while the 'OK' button has the focus), all settings controlled by this dialog will revert to those that were in effect when the dialog was opened.  Pressing the 'OK' button (or pressing the 'Enter' key while the 'OK' button has the focus) confirms the current selections, closes the dialog and updates the main program window to reflect any changes that have been made affecting the active/inactive status of any MIDI channels.


'Send Program Change' Dialog

The 'Send Program Change' Dialog allows any MIDI channel (one to sixteen) to be set to any MIDI program (0 to 127).  By sending a different program change to each channel you can take advantage of the full range of possible combinations of sounds supported by your MIDI setup.  The particular sound, patch, instrument or timbre associated with any given MIDI program number is specific to the synthesis hardware and the way it is set up, so you will need to consult the reference material for your particular hardware if you want to be able to predict the effect of a program change message; for example, most MIDI synthesizers, both internal and external, associate MIDI program 0 with a piano sound, but a Proteus/2 synthesizer, which does not have a piano sound, responds with a solo cello.

In the upper input control of the dialog box, enter the MIDI program number for the MIDI program change that you want to send; in the lower input control, enter the number for the MIDI channel to which you wish to send the program change.  Pressing the 'OK' button on the dialog box (or pressing the 'Enter' key while the 'OK' button has the focus) immediately sends the specified program change (whether Improvise 1.2 is currently playing or not), closes the dialog and updates the main application window to reflect the new MIDI program on the affected channel.  Once you have a selection of MIDI programs on particular MIDI channels that you would like to preserve for easy future restoration, you can save the current configuration of MIDI programs by choosing 'File | Create programs file...', which will bring up the 'Create Programs File' Dialog.

Press the 'Cancel' button on the dialog box to avoid sending a program change.

Note that not all synthesizers support full sixteen channel multi-timbral polyphony, while some respond idiosyncratically to program change messages depending on the way that the synthesizer has been set up; see your synthesizer or sound card documentation for more information.


'Select MIDI Thru Devices' Dialog

The 'Select MIDI Thru Devices' dialog, accessed by choosing 'Enable MIDI thru...' from the MIDI menu, lets you specify the MIDI input and MIDI output devices to be used for MIDI pass-through.  Press the 'OK' button to enable MIDI thru using the selected devices; press 'Cancel' to close the dialog without enabling MIDI thru.

Please note that the following limitations may apply to the use of the MIDI pass-through facility, depending on what MIDI hardware and drivers you are using and on what other tasks are running concurrently (the speed of your computer, factored with the particular algorithm and settings selected, may also be a limiting factor):

1) Switching to a DOS box or full-screen DOS session may interfere with MIDI pass-through.  This is almost certain to be the case when switching to a DOS session under Windows running in Standard mode.

2) Sending MIDI thru to the same channel of a MIDI output device simultaneously being used for playing algorithmic MIDI may be unreliable with some MIDI devices and/or drivers.

3) Most Windows MIDI drivers cannot be shared by multiple tasks running concurrently.  For example, if Improvise is using the Microsoft MIDI Mapper as as the output device for MIDI thru, no other program will be able to use the MIDI Mapper until Improvise releases it, e.g. because the user has disabled MIDI thru and is not currently playing algorithmic MIDI to the MIDI Mapper.

4) Other problems with the reliability of MIDI thru may be encountered depending on the limitations of specific MIDI hardware and drivers, especially with regard to two-way MIDI.

Experimenting may be necessary to determine the effectiveness of software MIDI pass-through with your particular system and drivers.  In some cases, the best approach may be a hardware solution -- for example, recabling or adding a dedicated MIDI switch box.


'MIDI Thru Input Device' Listbox

The 'MIDI thru input device' listbox, found in the 'Select MIDI Thru Devices' Dialog, lets you specify the MIDI input device to be used for MIDI pass-through.  Select from among the available MIDI input devices appearing in the drop-down list.  The currently selected MIDI thru input device appears in the selection box.


'MIDI Thru Output Device' Listbox

The 'MIDI thru output device' listbox, found in the 'Select MIDI Thru Devices' Dialog, lets you specify the MIDI output device to be used for MIDI pass-through.  Select from among the available MIDI output devices appearing in the drop-down list.  The currently selected MIDI thru output device appears in the selection box.


'Adjust Jazz Tempo' Dialog

This dialog box, available only when the 'Jazz (MM Timer)' algorithm has been selected from the style menu (the currently selected algorithm will have a checkmark beside it in the menu), provides direct control of the tempo of the music produced by this algorithm.  Move the scrollbar in the dialog to adjust the tempo; the numerical value displayed is the selected tempo, expressed in beats per minute ('bpm'), with a quarter note equal to one beat.  Note that changes to the 'Jazz Tempo' setting take effect immediately, so that you can instantly hear the effect of these changes if the program is currently playing.

Pressing the 'OK' button on the dialog box (or pressing the 'Enter' key while the 'OK' button has the focus) confirms the currently selected tempo and closes the dialog.  Choosing 'Cancel' will restore the tempo setting that was in effect when the dialog was opened.


Pitch Parameters

The pitch parameters determine the range of pitches used by Improvise 1.2 when producing algorithmic music.  They can be specified in the 'Set Parameters' Dialog, either separately for each individual MIDI channel (if individual channel parameters are currently in effect), or globally for all channels.  Two scrollbars are used: one to specify the lowest valid pitch, the other to specify the highest valid pitch.  All changes to these parameters take effect immediately, and can be heard as you move the scrollbars if the program is playing music at the time.  Pressing the 'Cancel' button in the dialog will cause the parameters to revert to those in effect when the dialog was opened.

The values 'Lowest' and 'Highest', appearing to the right of the scrollbars, are MIDI note numbers corresponding to the selected boundary pitches.  MIDI note numbers are integers from 0 to 127, with higher numbers representing higher pitches.  Notes are numbered chromatically in the MIDI specification, with 60 (normally) equal to middle C (C4), 72 equal to C5, etc.

It is important to be aware that not all patches on all synthesizers respond to the full range of possible MIDI pitches, 0 through 127, so that (for example) if you wish to hear some low rumbling sounds, say MIDI notes 0 through 8, played by a piccolo, whether your synthesizer responds or not depends on your synthesizer and the particular patch used.


Texture Parameters

The texture parameters determine the texture of the music produced on each MIDI channel: how often denser chords are to be played (as opposed to single notes, dyads and chords containing fewer notes), how many notes maximally are to be played at once, and how much of the music will be taken up by rests.  These aspects of the musical texture are determined by the following three values:

Density 	a percentage expressing how often chords will contain 'Max Notes'.

Max Notes 	the maximum number of notes to be struck simultaneously as a chord.

Rests 	count of rests as a percentage of total events (rests + chords + single notes).

These values can be specified in the 'Set Parameters' Dialog, either separately for each individual MIDI channel (if individual channel parameters are currently in effect), or globally for all channels.  Each of the three values determining texture is controlled by its own scrollbar.  All changes to these parameters take effect immediately, and can be heard as you move the scrollbars if the program is playing music at the time.  Pressing the 'Cancel' button in the dialog will cause the parameters to revert to those in effect when the dialog was opened.


Rhythm Parameters

The rhythm parameters determine the rhythmic vocabulary used for each MIDI channel by Improvise 1.2 when producing algorithmic music.  They can be specified in the 'Set Parameters' Dialog, either separately for each individual MIDI channel (if individual channel parameters are currently in effect), or globally for all channels.  The specific nature of the rhythm parameters depends on the current algorithm, as follows:

If either the 'Experimental (MM Timer)' algorithm or the 'Experimental (System Timer)' algorithm is selected (the currently selected algorithm will appear with a checkmark beside it in the style menu), the available rhythm parameters will be:

Base 	how many (55 msec) clock ticks to consider as constituting a time-unit.

Events 	the average number of musical events, including rests, in each time-unit.

If the 'Jazz (MM Timer)' algorithm is selected, the available rhythm parameters will be:

Meter 	always in terms of the quarter note: 2/4, 3/4, 4/4, 5/4, 6/4 or 7/4.

Shortest 	the shortest note value to use, from 32nd note triplets to half notes.

If the 'Jazz (MM Timer)' algorithm is selected, you will also be able to adjust the tempo directly, via the 'Adjust Jazz Tempo' Dialog.  Tempo cannot be adjusted directly if one of the 'Experimental' algorithms is selected, since the concept of tempo depends on meter.  Nevertheless, the 'Experimental' algorithms can employ rhythmic vocabularies ranging from absurdly fast to ridiculously slow, all accessed by way of the 'Base' and 'Events' parameters described above.

All changes to these parameters take effect immediately, and can be heard as you move the scrollbars if the program is playing music at the time.  Pressing the 'Cancel' button in the dialog will cause the parameters to revert to those in effect when the dialog was opened.


Sustain Parameter

The sustain parameter determines whether notes are held beyond their given values.   The degree of sustain to be applied can be specified in the 'Set Parameters' Dialog, either separately for each individual MIDI channel (if individual channel parameters are currently in effect), or globally for all channels.  Three settings are available, controlled by radio buttons:

None 	means to apply no sustain.

Some 	means to sustain some notes and not others, with the duration of sustain variable.

All 	means to sustain all notes indefinitely (i.e. forever).

Selection of a new value for the sustain parameter takes effect immediately, and the change can be heard when the selection is made if the program is playing music at the time.  Pressing the 'Cancel' button in the dialog will cause the parameters to revert to those in effect when the dialog was opened.

Note that the sustain parameter is not implemented using MIDI sustain, but instead by altering the duration of individual notes, permitting subtler effects when 'Some' is selected.  In most contexts, use of sustain will be found appropriate only for MIDI instruments and patches with a fairly rapid decay, e.g. a piano sound.

Sustain will be set to 'None', and the sustain radio buttons disabled, if 'Disable sustain' is selected (appears with a checkmark beside it) in the options menu.


Dynamics Parameters

The dynamics parameters control the range of dynamics, from softest to loudest, used by Improvise 1.2 when producing algorithmic music.  They can be specified in the 'Set Parameters' Dialog, either separately for each individual MIDI channel (if individual channel parameters are currently in effect), or globally for all channels.  Two scrollbars, labelled 'Min' and 'Max', are used to set the low and high boundaries of the dynamic range.  All changes to these parameters take effect immediately, and can be heard as you move the scrollbars if the program is playing music at the time.  Pressing the 'Cancel' button in the dialog will cause the parameters to revert to those in effect when the dialog was opened.

The numbers appearing beneath the 'Min' and 'Max' labels are MIDI values for 'velocity', which normally translates directly to dynamics, with 0 meaning silence and 127 equal to the maximum dynamic.  Note, however, that some MIDI instruments and patches do not respond to inflections of velocity, or may map velocity to some musical parameter other than dynamics.  In such cases some experimentation, patch editing, etc. may be needed to get the desired results.


Active MIDI Output Channels

The active MIDI output channels used by Improvise 1.2 when producing algorithmic music can be specified in either of two ways: 1) in the 'MIDI Channels' Dialog, individual checkboxes for each channel can be used to toggle active MIDI channels on and off, and 2) in the Current Selections Display, appearing in the main program window, clicking on the word 'Yes' or 'No' appearing to the right of a particular channel number has the identical effect, toggling that channel on and off.

All changes made to the selection of active MIDI output channels take effect immediately.  Pressing the 'Cancel' button in the 'MIDI Channels' Dialog will cause all selections to revert to those in effect when the dialog was opened.


'Individual Channel Parameters' Checkbox

The 'Individual channel parameters' checkbox, located at the bottom of the 'MIDI Channels' Dialog, controls whether separate parameters will be used for each MIDI channel.  Note that individual channel parameters can alternatively be selected/unselected using the Button Bar.

Changes made to this selection take effect immediately.  Pressing the 'Cancel' button in the 'MIDI Channels' Dialog will cause all selections to revert to those in effect when the dialog was opened.


MIDI Program Number

MIDI program numbers correspond to particular instruments (samples and/or patches) stored in your MIDI synthesizer or on your sound card.  MIDI program numbers are integer values ranging from 0 to 127, inclusive.  Specify a MIDI program number in the 'Send Program Change' Dialog to select the instrument to be used on a given MIDI channel.

Note that the particular instrument associated with a given MIDI program number is not quite standardized for all synthesizers and sound cards (although many vendors have now begun using a standard 'General MIDI' program map for certain newer products).  Consult the documentation for your MIDI hardware -- or simply use trial and error -- to determine what sound is associated with which program number.  In some cases it may be useful to remap program numbers with the 'Patch Map' feature of the Microsoft MIDI Mapper utility, included with Windows 3.1.  Also, certain synthesizers (e.g. Roland U-220) are capable of using MIDI program change messages for purposes other than the straightforward selection of an instrument to use on a given MIDI channel; again, in case of surprising results, consult your synthesizer documentation.


MIDI Channel Number

MIDI channel numbers correspond to independent musical parts, each typically capable of polyphony (playing more than one note at a time), and each usually associated with a particular instrument (sample and/or patch).  Improvise 1.2 lets you control up to sixteen MIDI channels, numbered one through sixteen.  You can specify the instrument to be used on a given channel (in the 'Send Program Change' Dialog), as well as determine many other aspects of the music to be produced.

Note that not all synthesizers and sound cards are capable of full sixteen channel polyphonic operation, so that whether or not you are able to use all sixteen channels as described above depends on the capabilities of your MIDI hardware.


MIDI Channel Levels

The relative volume level of individual MIDI channels can be adjusted in the 'Mixer' Dialog.  The sixteen individual channel volume scrollbars in the upper part of the dialog control the volume level of each MIDI channel.  The value shown (from 0 to 127) is scaled by the value of the 'Master Volume' scrollbar in the lower part of the dialog prior to sending the resulting value as a MIDI volume change message to the appropriate MIDI channel.

See also Master Volume Level.


Master Volume Level

The overall volume level can be adjusted in the 'Mixer' Dialog.  The value of the 'Master Volume' scrollbar in the lower part of the dialog, ranging from 0% to 100%, is used as a scalar by which each individual MIDI channel volume level value (set by the scrollbars in the upper part of the dialog) is multiplied prior to sending the resulting value as a MIDI volume change message to the appropriate MIDI channel.

See also MIDI Channel Levels.


'Filename' Input Box

Use the 'Filename' input box to specify a file mask (e.g. *.imp) or filename to use (relative to the directory path appearing just below the input box).  Clicking on a filename in the 'Files' Listbox will fill the 'Filename' input box with that filename.  Press the 'OK' button to confirm your selection.


'Files' Listbox

The 'Files' listbox contains a list of files located in the currently selected directory (the currently selected directory path appears just above the listbox).  Clicking on a filename with the mouse (or selecting a filename using the arrow keys, or typing the first letter of the filename while the 'Files' listbox has the focus) will fill the 'Filename' Input Box with that filename.  Double-clicking on a filename with the mouse selects that filename.

You can change the current file mask (e.g. *.imp) by typing a new file mask (e.g. *.*) in the 'Filename' input box.  Use the 'Directories' Listbox to select a different directory.


'Directories' Listbox

Use the 'Directories' listbox to select a drive and directory when dealing with files.  Three kinds of items can appear in the listbox:

[..] 	Select this symbol to move to the parent of the current directory.

[subdirectory name] 	Select a subdirectory name to move to that subdirectory.

[-drive letter-] 	Select a drive letter to move to that drive.

The currently selected directory path appears just above the listbox.  Double-clicking on one of the above symbols with the mouse (or selecting one of the above symbols using the arrow keys, then pressing 'Enter') will move to the specified drive or directory.


Getting Started with Improvise

Improvise 1.2 © 1992-1994 by David Pannett

Improvise 1.2 is a program that produces MIDI music on up to sixteen MIDI channels at once.  The user can select the algorithm used by the program, as well as control (in real time, as the music plays!) a host of other aspects of the music produced.  The program supports saving groups of settings and parameters; you can also save the current map of MIDI programs (as part of a settings file and/or as a separate programs file) and the current 'mix' of MIDI volume information (as a separate mix file and/or as part of a settings or programs file), if desired.  Program output can be saved to a MIDI file for later editing by a sequencer, for printing by a notation program, or simply for preserving a record of a live algorithmic performance, allowing you to take full advantage of the extensive real-time support built into Improvise.  Whether used as a tool for algorithmic composition, as a virtual instrument for real-time performance, or just for desktop background music, Improvise provides a remarkably versatile and powerful environment for producing algorithmic MIDI music on your PC.

To get started, first press the 'Play' button (or press 'Ctrl+P', or choose 'Play' from the 'Controls' menu), to be sure that your MIDI setup is on and responding.  The main program window shows which MIDI channels the program is currently using.  If the channels marked 'Yes' in the Current Selections Display are not available in your MIDI setup, you can choose other channels by invoking the 'MIDI Channels' Dialog (either by pressing 'F3', or by choosing 'Channels...' from the MIDI menu), or simply by clicking on the labels 'Yes' and 'No' for the appropriate channels.  You can inspect the 'MIDI | Devices' submenu to see which installed MIDI device is being used by the program for output; if more than one device is listed, you can select a different device if the program is not currently playing.  Stop the program by pressing the 'Stop' button (or by pressing 'Ctrl+S', or by choosing 'Stop' from the 'Controls' menu).

Find out some of the things the program will do by opening the 'Set Parameters' Dialog (by pressing 'F8', by choosing 'Set parameters...' from the parameters menu, or by clicking on any channel number label in the Current Selections Display).  Experiment by making various changes to the settings in this dialog while the music is playing; you should be able to hear the immediate effects of the changes you make.  Change instruments on any channel by sending a MIDI program change, which you can specify by using the 'Send Program Change' Dialog, invoked by pressing 'F2' (or by choosing 'Program change...' from the MIDI menu, or clicking on any program number label in the Current Selections Display).  Try selecting different algorithms from the style menu (for you to be able to change the selected algorithm, the program cannot currently be playing); browse the menus, both while the program is playing and while it is not, to see which menu items are available when for what algorithms.  Experiment with these menu items to quickly get a sense of how they affect the music produced.

Try opening any of the provided settings files by invoking the 'File Open' Dialog (choose 'Open...' from the file menu; you cannot open a settings file while the program is playing).  These files have the extension '.IMP', which you might also want to use for your own settings files to help identify them as such.  The name of the current settings file appears in the title bar of the Improvise main window, together with the word 'unmodified' if no unsaved modifications have been made to the settings contained in that file.  (Note that neither MIDI program change information nor changes to the current 'mix' of MIDI volume information are tracked for modifications, since these components are optional to settings files.)

Once you've opened a settings file, inspect the various dialogs and menu items to see what parameters and settings have been restored from the file, preferably while listening to the music resulting from the use of the new settings.  You may adjust the restored parameters and settings in any way that you like, even using the provided files as the starting place for your own compositions.

Note that context-sensitive help is available at all times by pressing the F1 key.  Note also that the message bar at the bottom of the main program window provides information about whatever control or menu item is currently focused or highlighted.

See the Improvise 1.2 Help Contents for access to more detailed information, arranged by topic.