Copyright: Copyright 1994, Computer Systems & Solutions


MidiSmith Sequencer Version 2.0 - Contents
MidiSmith Sequencer Version 2

Contents

Introduction

Shareware Registration

Main Window

Play Control Window

Track Control Window

Text Event Window

Map Events Window

Instrument Selection Window


Introduction to MidiSmith

 The MidiSmith program is a Midi file Player with extended control capabilities.   It bridges the gap between MIDI file players such as the Windows Media Player or the Creative Labs Soundblaster Jukebox and the full sequencer programs which can produce complete MIDI files from scratch.

MidiSmith is used to play Standard Midi (*.mid) files.  Standard Midi files are defined by the International MIDI Association and can be played through software written for various computers and operating systems (DOS, Windows, Macintosh, Atari ...).  Midi files are broken into components called "Tracks" which contain the Instrument definitions, tempo information and notes to be played.

MidiSmith allows you to view and modify the following information used in playing the music:

Instruments/Voices being used in tracks.

The tempo (speed) of playback

The pitch at which the notes play (Transposition).

Additional items which may be altered include:

Playback Main Volume

General Midi defined Base and Extended Sequencers (in addition to all tracks)

The Midi Output device.

Dynamics (how much the volume changes from soft to loud).

The Mapping of Instrument Numbers and Controllers to different values

(this is to allow you to play MT32 songs on General Midi devices and ...).

Features for a performance environment - automatic and/or manual spacing of songs

The time in seconds before the selection is played.

A stop between each song.  The Play button must be selected to start the next song

Changes you make may be saved to a MidiSmith Sequenence (*.msq) file which records playback information for the file.  Original files are not altered in any way.  If multiple files have been selected, all the files and the settings for each file will be saved as a sequence.


Shareware Registration

You may freely distribute the shareware version of MidiSmith (which has the word "Shareware" over the version number displayed on the main screen) provided that no fee is charged for copying, distribution, or use, and that it is unmodified and distributed with all of its original accompanying files and documentation. Registered copies of MidiSmith (which display a registration number)  may not be copied or distributed in any way or form.  Computer Systems & Solutions disclaims all warranties, express or implied, including but not limited to warranty of merchantability or fitness for a particular purpose, and will not be liable for any damages resulting from the use of this software.

MidiSmith is copyrighted © 1994-95 by Computer Systems & Solutions.  Registration of this software is required for use beyond a 30-day trial period.  A registered copy of MidiSmith can be obtained for $40, including shipping and handling.  Registered users will receive an individual registered copy of MidiSmith.  In addition, registered users will be able to use any new versions that might be distributed (as shareware) and they will still be properly registered..

If you register through an online service or have an accessable E-Mail (Electronic Mail) ID, I will send major updates and fixes through it.  Please indicate your Mail ID on the form if you register through the mail.

To register, fill out and send the enclosed form (or a facsimile thereof) with your payment.

The form can be accessed from this help file (Reigistration form) and printed through the Help menus:

"File" ""Print Topic"

Checks may be made out to Richard J. Ellis.

Access Registration Form

Send Registration forms to:

Richard J. Ellis

Computer Systems & Solutions

112 Avon Road

Narberth, PA  19072-2306

You may also register On-Line through Compuserve (GO SWREG).  The product registration number is 2858.  If you do, registration and update files will be sent to you via Compuserve Mail.

Any comments or suggestions are welcome and may be sent to the above address or you may send me correspondence at Compuserve ID 72072,371


Product Registration Form
From: _______________________

         _______________________

         _______________________

Richard J. Ellis

Computer Systems & Solutions

112 Avon Road

Narberth, PA   19072-2306

----------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------

MidiSmith V2 Product Registration Form             Date _______________.

Name_________________________________________            Phone (______) _______-___________

Company Name (if any applicable) ________________________________________________________

Mailing Address________________________________________________________________________

City_________________________________________________   State ________   Zip______________

Copies - 5.25" _____  3.5" ____  Total copies ____  X $40.00 per copy =  $ _________

Please List an Electronic Mail ID if you have one: ____________________________________________

(CompuServe, AmericaOnlLine, Internet)

Fold form on lines and seal edges with tape after enclosing check. Affix Postage.

Make Checks Payable To Richard J. Ellis


MidiSmith Main Window

The main screen is always visible while MidiSmith is running.  It contains several groups of controls to manipulate the Midi files.

File Actions	Opening, closing, saving files.

Play Control	Start, stop, pause, resume play.

Open Windows	Control which screens are seen.

Volume Control	Adjust play volume.

Configuration Information and Settings

Map File Display

Volume Mode Button

Channel Mode Button

Midi Output Device Button

Registration and Copyright Display

The serial number of the registered owner of MidiSmith is displayed along with the current software version number and Copyright notice.  If the program has not been registered, "Shareware" will be displayed instead of the serial number


File Group

Open

Selects Midi files to play.  This button is changed to Add when at least one file is in the current play list so more files may be selected later and added to the play list.

A file selection dialog box is presented with Add and Done buttons.  Select files to play in the order you wish either by double clicking on the filename to choose or by selecting the name and then pressing the Add button or pressing return.  When all files have been selected, choose the Done button or press the ESCape key.

Close/Exit

Clears the play list files from memory.  This button is displayed as Exit when no file is currently loaded.

Save

All the files in the current Play List are saved along with the parameters used for playback.  If only one file is in the playlist the filename will default to the Midi file name with an extension of ".MSQ".  If more than one file is in the playlist no default filename is supplied.

Play List

This drop-down list displays the current files in the order they are to be played.  By selecting a song file from this list, it will be the next song to be played (unless it is the same song as is currently playing).


Play Control Group

Play

Starts playing the currently loaded file  The play key changes to either Pause or Resume as appropriate to the current position in the file and whether playback is active.

Pause

Stops playing the current file, leaves the current measure at the point that play was stopped  This button is displayed when playback is active.

Resume

Restarts playback at the current measure.  This button is displayed when playback is stopped and the current measure is not the beginning measure of the file.

Manual Play

When checked, on termination of the current song the next song will not start playing until the Play button is pressed.  Use this if you wish to control when a song will start.

Stop

Stops playback and resets current measure to the beginning.  When a file being played reaches the end, the Stop function is automatically activated.

Skip

Advances the list of files to be played by one.  The next file in the list is opened  This button is displayed instead of the stop button if playback is not active.  If the Resume button is active (playback was paused) the next file will start playing.


Volume ControlGroup

Volume

The scrollbar arrows increase or decrease the playback volume.  The volume setting is a percentage of the Midi File key velocity unless the Absolute Volume box is checked in the configuration screen.  In this case, the volume number is the actual key velocity used when playing the file.

Normal

Soft

Mute

These are three preset volume level settings which take effect when the buttons are selected.  The default settings are Normal=100, Soft=60, Mute=30.  When a Volume Preset is selected and the "Preset" button is pressed, the current volume setting shown will be remembered for that preset.

Preset

When pressed, this button saves the current volume value as the level for the preset which was last selectd.

Lock

When checked, the volume settings in the recorded volume information related to a song are ignored.  The volume setting is only changed through manual control of the presets and scroll bar.

Dynamics

The relative differences in volume contained in a file can be altered through use of the two Dynamics scroll bars.  The top bar has values from -10 to 10 which control the factor altering the key velocity based on the difference in velocity from the Center velocity, defined by the bottom bar.  Positive numbers of Dynamics cause the velocity differences (volume changes) to be magnified while negative numbers cause a reduction in changes - a value of -10 creates a background music type of volume level, with only very small changes in apparent volume.


Open Windows Group

This section of the Main Screen allows you to control the information you want displayed when MidiSmith is running.  It also allows you to remember the positions of various windows or to retain previous values (if you want to expand the Text Event window temporarily...).

The windows which are checked to be displayed are remembered from one session to the next.

Save Window Pos

When this box is checked, every time a window is moved (or sized) the new position and size is recorded.  When MidiSmith is started again, the window positions last saved will control where they are displayed.

Play Control

Shows or hides the window displaying the current play position and the playback tempo control information.

Track Control

Shows or hides the window which is used to edit the instruments used by tracks defined by the Midi file.

Text Events

Shows or hides the display of the Text Event window.

Event Mapping

Shows or hides the window controlling the mapping of Instruments and Controllers.

Current Instruments

Controls the display of the window which shows the current instruments which are playing on each Midi channel.

If you wish to use the keyboard to switch active windows, as long as one of the MidiSmith windows is currently active press <Alt> 'W' and a list of the currently visible windows will appear at the upper left corner of the screen.  Use the cursor keys or the first letter to select the window you want and then press <Enter>.


Configuration - Map File Display

The Configuration Map File defines the current instrument mapping as set up through the Map Events window.  MidiSmith is delivered with four mapping files:

GM-GM.MSM

-	Use for playing a General Midi song on a General Midi Synthesizer

MT32-GM.MSM

-	Use for playing a MT-32 song on a General Midi Synthesizer

GM-MT32.MSM

-	Use for playing a General Midi song on a MT-32 Synthesizer

DEFAULT.MSM

-	Delivered same as GM-GM.MSM.  You may edit this file through the Map Events window to match your Synthesizer patches to whatever type of file you most commonly use.  This map is loaded on MidiSmith startup. If you have not registered the software, changes to the map will always be save with this file name.

Choose the Map File to use by pulling down the list of files and selecting the desired name.  This map will now be associated with the current file on the PlayList.  To display and change the map settings, open the Map Events window with the correct name selected.


Midi Output Device Button

The available Midi Output devices are shown in this list.  Select the MIDI_MAPPER to use the default device.

OK

Accepts any changes to selections and returns to the main screen

Cancel

Discards any selections made and returns to the main screen


Channel Control Button

When this button is selected, it cycles through setttings of

All Channels

Base Sequencer

Extended Sequencer

The Authoring guidelines for General Midi files define Base and Extended level Synthesizers.  Files that follow these guidelines contain two independant copies of the data.  The Base and Extnd radio buttons enable correct playback of these files by selecting only the data used by the appropriate Synthesizer.

Base Level Synthesizer

Plays instruments on channels 13 to 15 and play percussion on channel 16.

Extended Level Synthesizer

Plays instruments on channels 1 to 9 and play percussion on channel 10

In Base and Extened modes, channels 11 and 12 are not used.

All Channels

Plays instruments on all channels.  With the advent of more capable Midi instruments and sound cards, many files are being produced which do not conform to these guidelines. Note that when this is selected, channel 10 is assumed to be the percussion instruments.


Volume Mode Button

When selected this button changes between Relative Volume and Absolute Volume.

When Relative Volume is selected, the Volume setting is a percentage of the volume defined in the Midi file (100 = as defined by the file).

When Absolute Volume is selected, the key velocity in the Midi files is fixed  at the setting of the Volume on the main screen.  Valid key velocities range from 1 to 127 (key velocity of zero is key not pressed -- note off --).


Play Control Window

Current Position

The scroll bar along with the Current measure value and the Length value shows where the current measure is in relation to the size of the file.  The left and right scroll pointers move the current measure down or up.  The thumb can be dragged to rapidly alter the current measure value.  Playback stops while the measure value is being changed and resumes when released.

Start

The scroll bar along with the Start measure value shows where the song playback starts in relation to the size of the file.  The left and right scroll pointers move the Start measure down or up.  The thumb can be dragged to rapidly alter the Start measure.  Playback will start at the specified measure the next time the play button is pressed (not resumed).

Stop

The scroll bar along with the Stop measure value shows where the song playback will stop in relation to the size of the file.  The left and right scroll pointers move the Stop measure down or up.  The thumb can be dragged to rapidly alter the Stop measure.  Playback will stop when the play position exceeds the specified measure.

Start/Current/Stop/Length Display

Displays the values in number of measures which apply to the current file.

Length shows the number of measures in the file.

Current shows the measure number which is playing or at which the next play function will begin.

Start and stop show the measures which have been set on the Start and Stop scroll bars.

Time Signature

Displays the current time signature and allows modification. Some Midi files dynamically alter the Time Signature.  This will override any changes you made..

Beats/Minute

The tempo of the playback is displayed in this field.  The scrollbar arrows may be used to alter the beats per minute, but frequently Midi files dynamically alter the tempo.  This will override any changes you made to the tempo.

Tempo Pct (Percent)

This field displays the current percentage of the tempo at which the file will play.  The value can be modified by the scrollbar in increments of 10 percent from 10 percent (1/10th of the original tempo) to 300 percent (3 times the original tempo.

XPose

Transpose all the notes in all tracks of the file by up to 2 octaves (up or down).  Channel 10 (Drums) is not affected..

Delay

This value sets the number of seconds after the play button is pressed (or the previous song ends) until the current song starts playing.


Track Control Window

This screen shows the Instrument data for the MIDI file.  Midi files are organized into "Tracks" which contain the Midi commands needed to play the music.  A Midi file may contain one or more Tracks based on how the file author defined the layout of the instruments and how the sequencer program divides up the information.  A Header (referedt to as Track 0) is always present and contain information that applies to the whole file.

Tracks 1 ... (n) contain the playing instructions for pieces of the music.

Current Track

Displays and sets the track of the Midi file which is to be acted upon.  Track number 0 when selected displays all of the active channels in the file.  Control the track number by using the scroll bar by the displayed track number.

Active Channels

Displays all of the channels defined in the current track.  If data is to be sent to a channel  the radio button will be enabled.  Selecting an active channel radio button allows display and alteration of the track ank channel information.  The current instrument number and name is displayed at the bottom of the screen.

Volume

Volume for the selected track and channel can be modified using the scrollbar.

Mute Chan

When checked , all notes on the selected channel of the current track are ignored.

Mute Trk

When checked , all notes in the current track are ignored.

Transpose

This control allows the pitch of the instrument on the current channel to be modified.

Test

Pressing the Test button alternatly turns on and off a note on the current channel.  Auditioning of instruments may be performed in this way

Reset

This button resets any voice override that has been set on the current channel.

Voices

Displays the voice selection screen.

MoveChan

You can move a channel in a track to another channel in the same track.  Use this when a Midi file contains multiple tracks which have instruments on the same channel and you wish to change the instrument in one of these tracks.

First select the channel to move and press the MoveChan button.  Available (empty) channels will have thier radio buttons enabled.  Select a target (enabled) channel radio button and the data from the original channel will be redirected to the new channel.  To change the instrument, select the channel button again and select the instrument from the voices screen.

CopyChan

You can copy a channel in a track to another channel in the same track.  Use this when you wish to play all the notes in a particular track and channel on a second channel also (doubling).  This also can be used to build Organ Pipe Registrations..

Select the channel to copy and press the CopyChan button.  Available (empty) channels will have thier radio buttons enabled.  Select a target (enabled) channel radio button and the data from the original channel will be reflected to the new channel.  To change the copied instrument, select the desired channel button and select the instrument from the voices screen.

Current Instrument Number/Name Display

All the available Midi Channels are displayed  on this screen and when a track has data for a particular channel, the radio button by the channel is enabled and any instrument selection for that channel is displayed.


Instrument Selection Window

Group

Displays the selection list for the groups of instruments.

There are 16 groups, each of which contains 8 instruments.  Selecting a group with the cursor or mouse causes the instrument list to display that group.  The group and instrument lists track the current channel.

Instrument

Displays the selection list for the instruments within a group.

The currently selected instrument in the group is displayed in the top box of the screen and as it is moved the instrument is changed in the selected channel of the current track.

Note: The groups and instruments displayed are the Gemeral Midi definitions.  Later enhancements will allow other instrument mappings to be displayed.


Text Event Window

This window shows the messages embedded in the Midi file including copyright, instruments, lyrics, cue points and markers.  Check boxes allow for selection of the type of messages to be displayed.

Normal CheckBox

shows Midi events not displayed through the other chekboxes

Debug CheckBox

shows internally generated events   (Time signature changes, tick time in microseconds ...)

Lyrics CheckBox

shows text and lyric events

ProgChg CheckBox

shows program change events

Pitch Bend CheckBox

shows pitch bend events

Controllers CheckBox

shows controller events

AfterTouch CheckBox

shows after touch events   (both channel pressure and key aftertouch)

The Normal and Lyric check boxes are automatically checked, but may be unchecked.


Map Events Window

MidiSmith can change the Instrument numbers as it is playing files to correct for the differences in positional definitions of instruments in various Midi devices.  It can also re-map controller numbers for the same purpose.

The Map Events window has the controls needed to perform these functions..

Configuration File Selection

The configuration file defines the instrument and controller mapping data.  The name of the current configuration file is displayed in the Main Window.

Save Button

Selecting this saves the current mapping information to the filename currently shown in the Main Window.

Instrument Maps Group

Source/Target Map File Selection

The names corresponding to particular instrument numbers are defined in files that have an extension of MSP.  These files are displayed and can be selected from the drop-down lists.  Two files are defined currently - one with the General Midi Instrument names and the other with the MT-32 Instrument names.

Source Instrument Number and Name Display

You can change the instrument in the source (Midi file) to be mapped by scrolling the Instrument number or by dropping down the list of instruments in the name display ans selecting it.

Target Instrument Number and Name Display

You can change the instrument in the target (Midi synthesizer device) to the instrument which corresponds to the instrument currently selected in the Source Map area by scrolling the Instrument number or by dropping down the list of instruments in the name display ans selecting it.

First, Second and Third Instrument Target Instrument Selection

Up to three program change commands can be sent for every program change encountered in the Midi file.  This is used to select instruments on a synthesizer in which a bank is first selected and then an instrument in the bank is selected.  Define the bank selection as the first instrument ("1st" instrument box checked) with the correct bank number in the targen instrument number and then define the instrument in the bank by checking the "2nd" box and then selecting the proper target instrument number.

(someone might find a use for the "3rd" instrument value).

Controllers Group

Source Controller Number

Select the controller number which is to be mapped by scrolling this value.

New Controller Number

Select the controller number which is to be used when a command is sent to the Source controller number by the Midi file.

Disable CheckBox

If the Disable checkbox is selected, any commands sent to the Source controller are ignored.


Xpose

Alters the pitch of  all notes being played.  Notes may be moved up or down by up to 2 octaves.

/* page */

PlayList

Displays the list of files which will be played in the order they will be played.  If a filename is selected from the list, it wil be the next file to play either when "Play" is selected or when the current file is skipped or finished.

/* page */

Skip

Advances the list of files to be played by one.  The next file in the list is opened  When playback is not active, the file is updated and opened but playback does not start.  If a file is currently playing, the next file will be loaded and playback will start at the beginning of that file.

/* page */

Stop

Stops playback and resets current measure to the beginning.  When a file being played reaches the end, the Stop function is automatically activated.

/* page */

Play

Starts playing the currently loaded file  The play key changes to either Pause or Resume as appropriate to the current position in the file and whether playback is active.

Pause

Stops playing the current file, leaves the current measure at the point that play was stopped  This button is displayed when playback is active.

Resume

Restarts playback at the current measure.  This button is displayed when playback is stopped and the current measure is not the beginning measure of the file.

/* page */

Open

Selects Midi files to play.  This button is changed to Add when at least one file is in the current play list so more files may be selected later and added to the play list.

A file selection dialog box is presented with Add and Done buttons.  Select files to play in the order you wish either by double clicking on the filename to choose or by selecting the name and then pressing the Add button or pressing return.  When all files have been selected, choose the Done button or press the ESCape key.

/* page */

Close/Exit

Clears the play list files from memory.  This button is displayed as Exit when no file is currently loaded.

/* page */

Save

All the files in the current Play List are saved along with the parameters used for playback.

If only one file is in the playlist the filename will default to the Midi file name with an extension of ".MSQ".

If more than one file is in the playlist no default filename is supplied.

/* page */

Tempo Pct (Percent)

This field displays the current percentage of the tempo at which the file will play.  The value can be modified by the scrollbar in increments of 10 percent from 10 percent (1/10th of the original tempo) to 300 percent (3 times the original tempo.

/* page */

Beats/Minute

The tempo of the playback is displayed in this field.  The scrollbar arrows may be used to alter the beats per minute, but frequently Midi files dynamically alter the tempo.  This will override any changes you made to the tempo.

/* page */

Time Signature

Displays the current time signature and allows modification.

/* page */

Transpose File

Alters the pitch of  all notes being played.  Notes may be moved up or down by up to 2 octaves.

/* page */

Current Position

The scroll bar along with the Current measure value and the Length value shows where the current measure is in relation to the size of the file.  The left and right scroll pointers move the current measure down or up.  The thumb can be dragged to rapidly alter the current measure value.  Playback stops while the measure value is being changed and resumes when released.

/* page */

Current Song Position

The scroll bar along with the Current measure value and the Length value shows where the current measure is in relation to the size of the file.  The left and right scroll pointers move the current measure down or up.  The thumb can be dragged to rapidly alter the current measure value.  Playback stops while the measure value is being changed and resumes when released.

/* page */

Song Length

Displays the length of the current file in measures.

/* page */

Master Play Volume Level

Alters the playback level of the Midi file.

If the configuration is set to Relative volume, this is a psercentage of the individual note velocities.

If the configuration is Absolute volume, this is the note velocity to be sent.  Channel volumes are applied as a percentage after this value is set.

/* page */

Volume Preset - Normal

This button selects a "Normal" volume level for playback.  The default value for this is 100

/* page */

Volume Preset - Soft

This button selects a "Soft" volume level for playback.  The default value for this is 60

/* page */

Volume Preset - Mute

This button selects a "Mute" volume level for playback.  The default value for this is 30

/* page */

Set Volume Preset Level

Sets the currently displayed Master volume as the Preset volume for the currently selected Preset.

(Normal, Soft or Mute)

/* page */

Lock

Prevents the Master volume level from changing when switching between Midi files.

/* page */

Event Text

Displays text events contained in the file as they occur.

Text events also include Instruments, Lyrics, Markers, Cue Points and Copyright notices.

/* page */

Text Events

Shows the messages embedded in the Midi file including copyright, instruments, lyrics, cue points and markers.  If the Debug checkbox is checked, additional control information is displayed as the file is being played.  These events include Program changes, Control changes, Tempo changes, Aftertouch commands, and other potentially useful information such as the number of Time Signature records (Measure Blocks).

/* page */

Text Event Debug Information

When the Debug checkbox is checked, additional control information is displayed as the file is being played.  These events include Program changes, Control changes, Tempo changes, Aftertouch commands, and other potentially useful information such as the number of Time Signature records (Measure Blocks).

/* page */

Current Configuration Display

Displays the currently selected output device, the channel group being used and whether the volume mode is Relative or Absolute.

/* page */

Active Channels

Displays the channel(s) that have events in the current track.  The radio buttons and instrument names are displayed on active channels.  If no instrument is defined on an active channel "None" will be displayed.  When more than one channel has data, select the radio button for the channel to change the instrument, alter the volume, or change the pitch (Xpose).

/* page */

Track Mute

Prevents playback of any notes in this track.

/* page */

Track

Controls which of the tracks of the file is to be displayed and potentially manipulated.

/* page */

Move

This button allows you to move a channel in a track to another channel in the same track.  Use this when a Midi file contains multiple track which have instruments on the same channel and you wish to change the instrument in one of these tracks.

First select the channel to move and press the MoveChan button.  Available (empty) channels will have thier radio buttons enabled.  Select a target channel radio button and the data from the original channel will be redirected to the new channel.  To change the instrument, select the channel button again and select the instrument from the voices screen.

/* page */

Mute

Prevents playback of notes on the current channel in this track.

/* page */

Volume

Sets the relative volume of notes played on the current channel for this track.

This is a percentage of the note velocity.

/* page */

Transpose

Alters the pitch of notes played on the current channel for this track (+/- 2 octaves).

/* page */

Voice

Opens the Voice (Instrument) selection window.

/* page */

Current

Displays the Midi Instrument Number and the Name of the current instrument.

/* page */

Test

Alternately starts and stops playback of the currently selected instrument.

This allows for auditioning of instruments.

/* page */

Reset

Reverts the current channel to the original instrument and resets transposition to none.

/* page */

Close

Closes the Track Control window.  If the Instrument selection window is open, it is closed also.

/* page */

Instrument Groups

Displays the sixteen group names, each of which contains eight instruments

/* page */

Instrument Names

Displays the eight instrument names which are contained in the Instrument Group.

/* page */

Current Instrument Name

Displays the currently selected instrument for the channel

/* page */

Close

Closes the Instrument Selection Window