Professional Documents
Culture Documents
gnmidi 2.20
MIDI Utilities for Windows 95/NT4
Shareware
by Guenter Nagler
1997/98
(info@gnmidi.com)
******************************
[1] BACKGROUND
I wrote some commandline MIDI utilities for DOS/UNIX.
This program should offer many operations of these
utilities. Many people are not familiar with computers, DOS, UNIX,
commandline, so they have problems using even simplier utilities
that need a commandline input filename.
I hope that the Windows program is easier to use.
This is also a programming test for me. I want to use the sources of the
DOS utilities without extra changes in my windows program.
The project now starts with some popular utilities and I will add new
one from time to time.
The project has become a big program with so many features and is in a very stabile
state.
[3] COPYRIGHT
Price might change anytime. Download newest demo version to see price.
You can give GNMIDI 2.0 and later versions to your friends, on a
shareware cdrom, www page, bbs etc.
but must include whole unmodified gnmidi.zip (including this .doc, program,
picture, readme).
Personal license files must not be distributed (they are never
included in a gnmidi.zip). Users personal data
is included readable in personal license files, so any illegal
distribution of these files uncover the copyright violation with
consequences by law.
[4] DISCLAIMER
Use GNMIDI at your own risk. Anything you do with GNMIDI is your
responsibility, and not the author's. Any damage caused to any person,
computer, software, hardware, company, or business by running GNMIDI
is your responsibility, and the author will not be liable.
You can test each program version for 5 days for free, to see if it
satisfies your needs.
After receiving error reports author will do the necessary tests and
if error is reproducable and a program fault then will correct it till
next program version. Author decides self between error and features and
only includes new features that he thinks to be useful.
If you use a stolen license then you (as thief) are responsible for any
aggressive actions of the program!
When you ordered a license, we send you a license file by floppy disk (and
sometimes also by email).
After we have sent the license file, it is not possible to give the license
back and pay the payment back.
It is not possible to sell a license to other persons (only the users
who's name are mentioned in the license file have permission to use the
license file). The license is not a material thing, it is the permission
of author to use this software.
[5] INSTALLATION
This program runs only under MS Windows (tm), Win95, Win98 or Win NT.
For future use you can add the program item to one of your desktop
groups (or create a new one), use Explorer or Program Manager to do this.
[6] USAGE
If the file is not a MIDI file or contains errors an error message is shown
instead.
6. Save As ...
This command can rename a MIDI file or move a MIDI file to another location.
It is also used to save a modified MIDI to an other filename.
Current directory changes after this operation when new location is used.
For copying files to a slow drive (e.g. floppy disk) better use Windows Explorer
than this
operation because the operations will use this drive for work.
7. Change Format
You can choose between destination formats 0 (single track) and 1
(more tracks, one per used channel).
Look into the window information what format MIDI files currently have.
When you choose same format then it will tell that conversion is not
necessary. Otherwise it will convert the format and open a new window
with the new generated MIDI. You can directly play the new MIDI.
The Fadein button sets time range to fade in 10 seconds from no sound to
original volume.
The Fadeout button sets time range to fade out 10 seconds before end of song
from original volume to mute.
Now the utility checks MIDI format and converts all MIDI files temporarily
to format 0. If there are invalid files or files that are not format 0 or
format 1
in the list then the operation stops and the first invalid file is opened.
You could try to repair the file with repair function.
All MIDI files are concatenated to a file containing the songs in a sequence
(medley).
No pauses are removed or inserted. If you want a pause between the songs
then
insert a small midi that has only this pause.
The MIDI medley will be opened as a new document.
This utility can copy a part of the song into a new MIDI file.
Choose a time unit (real time, midi units, beats) depending of what
kind of start and end you want to use. Usually real time is wanted.
The others are for precision cuts in logical units (=smallest possible
distance between two commands) or beats (=quarternotes).
For real time enter a time range (start time, end time) in seconds or
minutes:seconds
(m:ss) format or more precisely (m:ss.milliseconds) and then choose ok.
For the other time unit formats enter an integral unsigned number and choose
ok.
The number is number of units or beats from beginning of song.
A new MIDI song with content from the chosen part (start-end) will be created
and ready to play. Settings are not removed, so the part plays with original
settings.
The dialog box lets you specify many parameters for the rhythmic or random
operation.
Most important parameters are:
control number: choose one that you know (usually volume, balance)
channel number: only one channel can be chosen 1-16
track number: only necessary if channel is used in more than 1 tracks
looping: no loop
loop cycle (if at end then start with initial value again)
loop up and down (when at end then direction changes and
starts again)
direction: increasing, decreasing, random (direction can change after
each loop)
Track information is shown inside MIDI window, beginning with "Track 1".
The information can be toggled between short and long with menu option
Window/View/Verbose Trackinfo.
A line e.g. looks like:
Track 4 [1]: "Melody" (Brass)
that means: track number is 4, contains only one channel with number 1,
track title is "Melody" and initial program (sound) is Brass.
You can redefine the buttons to play own midi files by modifying gnmidi.ini
file:
[Settings]
GM=drive:\\path\filename.mid
GS=drive:\\path\filename.mid
XG=drive:\\path\filename.mid
Init=drive:\\path\filename.mid
23. Convert all MIDI files from directory and subdirectories into format 0
The operation can be found in menu Convert when all MIDI files are closed
(Alt-C 0) and in menu Convert file format/convert all midi files to format 0
when
a midi document is open (Alt-C a).
It opens a directory chooser for source directory where midi files
are and for destination directory where converted results should be
placed. You can create a new directory with the New button.
It is not allowed to convert files into same directory, since the
operation can't be 100% reversed.
The destination drive should have enough disk space left free that
all files can be converted to format 0.
After Ok the operation shows the source and destination directory
and gives last chance to stop (if you choosed wrong directories).
Start operation with answer Yes or cancel it with answer No.
Operation will convert all files *.* in source directory and its
subdirectories.
Directories are created in destination, files that are already format 0 or are
not convertable (wrong file format or unknown MIDI version) are copied.
During conversion the action operation can be aborted with the button.
After conversion or abort it will display errors and warnings for
files/directories that were not generated in a text document with notepad.
Read the information (you can also save or print).
If more track use same channel number then changes are done in all these
tracks.
31. Guess Chords
Open a MIDI file and start the operation. Choose an output text format
(Marker, Lyrics, Text) and frequency (guess chord each bar or half bar).
It will collect the notes of each bar and try to guess a chord. Currently
Major and minor chords are recognized. If too few notes are available or
the program has no idea which chord it might be then the missing chord will be
marked with [?]. The operation creates a new midi file that contains
a new track with chords as text meta events in chosen text format
(e.g. [C], [Cm], [F], [F#m]).
The text events are synchronized to the bar positions.
Some players can show them while playing
(e.g. DOS/Win95 midimach player at http://www2.iicm.edu/midiprog)
Since v2.14 recognizes also chord types 6th, 7th, 7Maj.
Since v2.20 chords can be converted to harmony notes (select a channel between
1 and 16, low velocity).
Add copyright only if you are owner of copyright, i.e. you are composer of the
song or have licensed the distribution rights for this song from the copyright
owner.
Since 2.17 the initial instrument names for channels are shown (assuming GM)
and the tracknames.
[Settings]
RangeDefinitions=myranges.rng
54. Guess song key and optionally set midi song key
Load a midi file and start this operation. It will analyze the midi
song for best choice of a song key (number of # or b, major or minor).
That is the one which would require minimum exception symbols on a
score sheet. The guessed key is suggested in a message box and
you are asked if want to set this key as song key signature in the
midi file. If choosing yes then a new modified midi file is created
that has this key, existing key settings are replaced.
If choosing no then operation does not create a modified midi file.
Note that a song can be printed on scoresheet with any key, with a bad
choice only the number of necessary exception symbols within measures
can be high and score might be difficult to read.
56. MIDI time calculator (calculate position, time, tact, tempo within a song)
The MIDI calculator opens a dialog that lets you enter a position, or beat number
or time, or measure position and calculates the position (midi unit) within the
song. If a position exceeds end of song then the end position of song is shown.
From this position (unit) various information values are calculated for current
song:
beat number, measure number, real time, tact, tempo
The values have following format and meaning:
unit: number of midi units from beginning of song (integral number e.g. 30000)
time: time since beginning of song ( minutes:seconds.milliseconds )
beat: beats (= quarternotes) since beginning of song ( beats.units )
measure: measures since beginning of song ( measures.beats.units )
tact: tact at this song position ( nominator / denominator e.g. 4/4, 6/8,
3/4 )
tempo: tempo at this song position ( beats per minute e.g. 120.0 )
57. Player status information
With Ctrl-I a dialog with status information about the current playing midi
file (with internal MIDI player) is shown. The info dialog displays current
midi filename, midi position and time, current tact and tempo.
New utilities might be added from time to time. Check out the www site for
new versions.
WWW: http://www.gnmidi.com
(old address http://www.iicm.edu/Cpub )
contains all my dos/windows/unix MIDI programs
EMAIL: info@gnmidi.com
[8] SHAREWARE
Shareware production takes much time, so please register after testing (5 days)
if you like it. The concept makes it safe for you, you don't purchase
something that you haven't tried and the feature list increases
without purchasing extra for updates. You can contact author directly
and discuss problems or wishes and you don't need to wait several month
for an updated version, because this shareware updates more often.
Rules:
o Don't use pseudonyms or shortcuts, use full name
o The information must be complete that a license file for you can be
generated (e.g. send missing information by email or with letter).
o Use your international post address
o Use (if possible) only english characters and no special characters
from your language (e.g. japanese, chinese, ...)
o After valid registration we create a personal license file from your
personal data
o normal License is only valid for single users, if you more than one
person to use the program (e.g. company) then tell us the
number of users (price multiplies by this number) or
ask us for conditions of a multiuser license.
o After valid registration we send license on floppy disk with priority
mail to given address and name.
o In case of wrong registration (e.g. price changed, missing information,
not enough payment) we try to contact you by email.
o Your personal data won't be given to others.
You get a personal license file on a floppy disk. Program and updates
can be downloaded from http://www.iicm.edu/Cpub
[10] CHANGES:
25.4.1998:
* bug fixed: saving failed when saving result to existing file or
different drive to that containing windows temporary directory.
* temporary files are prefered written to same directory as
loaded file, alternative directory is windows temporary directory.
This makes it easier when doing Save As, it suggests better
directory.
Temporary files are called new0*.mid
* added feature: rhythmic controls
15.5.1998:
* added track information output to MIDI window
* added option short/verbose track information to menu
* remembering medley song list and its order also if canceling dialog
25.5.1998:
* stricter handling of bad MIDI files when loading
9.9.1998:
* converter .kar -> MIDI with lyrics added
* converter MIDI with lyrics ->.kar added
* toolbar save replaced by "save As" so that it can be renamed and saved
at different location
19.9.1998:
* added copy information to clipboard
(allows exporting information or printing with other program,
e.g. wordpad)
* show lyrics information
* allow scrolling of active window with keys
* trim mute song ending if longer than a second (miditrim -end)
* show maximum notepolyphony operation
* Reset GM, GS, XG
15.10.1998:
* added settings menu for MIDI player and other options
* added settings/MIDI Standard option (MIDI preparation for playing
with certain MIDI mode)
30.10.1998:
* convert all MIDI files from directory and subdirectories into format 0
must choose any file in directory with MIDIs and choose a destination
directory where to copy the results
* version 2.0 created. It becomes keyringware (shareware).
+ testing 5 days after installing shareware allowed, then must
register or delete software, using it longer without registering
is illegal.
+ cheap registration (for sending one keyring)
+ now program can be distributed (also on shareware cd's,
bundles etc.).
3.11.1998 v2.01
* operation "sort track order" added
14.11.1998 v2.02
* operation Change Volume extended by real volume control change.
if volume controls are missing for channel then default volume controls
are inserted and modified.
* Select MIDI output device for internal player
Menu Settings/Midi Output/...
27.11.1998 v2.03
* temporary files deleted if not saved to a file
* sort dialog channel output corrected
* operation compress MIDI added
* splitted large toolbar into two smaller ones, they are separately
movable and dockable.
* quicker loading of MIDI files
* more recent filenames remembered in file open menu
1.12.1998 v2.04
* Bug of v2.03 fixed: deleting temporary files after playing MIDI
with internal or external player, safety included so that
original files are not deleted by accident. With previous version
2.03 original files could have been deleted by accident.
* Closing modified MIDI files will ask if modified file should
be saved, if not then file will be deleted. If currently playing with
internal player then player stops.
* play internal button as toggle between play and stop if using it
for same MIDI file:
when playing it is checked (down) and click stops playing
when stopped it is not checked (up) and click starts playing
When clicking it while other MIDI file is selected, it will
stop old play and start new play.
* New operation Initialize MIDI device (menu File/Reset MIDI
device/Initialize)
2.1.1999 v2.05
* MIDI humanize integrated
* Registered users get a personal license file gnmidi.txt that
must be copied into same directory as gnmidi.exe,
if you already registered and didn't get license file
then send me email.
* Unregistered free use for 5 days reminds user to register.
Might also remind during operations randomly.
For registered users no more annoying registering reminders
appear (if correctly copied file into same directory where
gnmidi.exe is placed.
* Registration price is a correctly filled registration form and a
keyring (keyring). Then your personal license file will be
sent to you by Internet Email for no extra costs. If you want to
get program and license file on floppy disk (PC-HD 1.44MB) then add 5$ (US
currency)
or Eurocheck (EC) ATS 50.-- (Austrian currency) or 5.-- EUR
(European currency) for disk, package and shipping costs.
16.1.1999
* open midi files from command line:
gnmidi filename.mid
* show registration information in status bar (registered to or not
registered)
21.1.1999
* note shift operation (simple transpose), increments all notes of
specified channel(s) by number of halfnotes (-12..+12).
23.1.1999
* midi2txt operation integrated, document lists the readable midi
commands, display limited, larger text must be browsed with
own text browser or editor (e.g. wordpad)
* recognize if documents are modified by external editor, updates
document information
* txt2midi operation integrated, if current document is a text generated
by midi2txt operation then this text can be converted back into a new
midi file. Textfile content must be according to midi2txt output file
syntax. Textfiles with syntax errors are not converted.
26.1.1999
* drag one or more files (from Windows Explorer) into program,
all MIDI documents are automatically loaded
31.1.1999
* map channel numbers operation added
27.2.1999
* guess chords operation added
* split drums operation added
* split programs operation added
* replace notes operation added
2.3.1999
* support format 0 files for guess chord
* recent file list reduced to 10 because of limited number of available
key shortcuts (0-9)
* redrawn icons
* fixed bug in splitting operations that produced several duplicated lyrics
* added count-in operation
* added edit button to toolbar (editing midi as ascii text with notepad)
7.3.1999
* successful check file format result now in status bar instead of an
information dialog
* added logging of commands into gnmidi.log
* several improvements in DOS utilities, GNMIDI profits also from them
14.3.1999
* added change resolution
20.3.1999
* show/add copyright information
* show/edit track titles
* scrolling text in information window now more comfortabler (page, line)
* added some shortcut keys for operations
(polyphony=Ctrl-P, titles=Ctrl-T, edit text=Ctrl-E)
* directory chooser dialog (used by midi format to 0 in directories)
* replace notes dialog load/save operation remembers recently used directory
* edit text for midi document now generates a notepad text file from midi
information
9.4.1999 - 11.4.1999
* translation to German (now program is multilingual English and German)
depending on System language other text resources are used
* update of all windows when changing verbose track info menu option
* coloring fields in information window
14.4.1999
* calculate tempo (BPM)
16.4.1999 - 18.4.1999
* translation of GNMIDI.DOC to German GNMIDI.DOK
22.4.1999
* assign operation to button "0" when all documents closed:
convert all midi files to format 0
24.4.1999
* added rudimentare karaoke display in information window
* scroll information window content left right with keys
26.4.1999 v2.11 released
7.5.1999
* solved a minor miditran problem with channel 16
15.5.1999
* version number in about box
* added guess chords options dialog (choose text format and frequency)
20.5.1999
* added stretch notes duration
24.5.1999
* new registration price: 20 Euro or 25 US$ or 40 DM or 280 ATS
license and newest program version will be sent on floppy disk only
17.6.1999 - 25.6.1999
* added operation mute with 4 different methods (to play karaoke or play an
instrument track self):
delete all events for given channel/track
delete only notes for given channel/track
silent channel/track by changing volume
silent notes of channel/track by changing their velocities
27.6.1999
* added operation "generate setup measure"
2.7.1999 - 3.7.1999
* improved chord guessing including 6th, 7th, 7Maj chords
23.7.1999 - 25.7.1999
* added new function "secret copyright"
25.7.1999
* added online order (help menu)
* added link to GNMIDI homepage (help menu), here you can download new version
6.8.1999
* found and repaired bug in midiio that caused problem with stretch notes
6.8.-7.8.1999
* added new feature check all midi files
16.8.1999
* found problem with encrypted copyright,the encoded commands can affect
sound of song
* new encoding of copyright within song
23.8.1999
* cut has more time units to choose (real time, midi units, beats)
* midi reverse added
26.8.1999
* save as: move temporary midi files (new00*.mid), copy all other files
28.8.1999
* GM, GS, XG, Init button can be set to play userdefined midi file
modify gnmidi.ini
[Settings]
Init=drive:\\path\filename.mid
GM=drive:\\path\filename.mid
GS=drive:\\path\filename.mid
XG=drive:\\path\filename.mid
if not specified then a temporary standard midi sequence is played.
2.9.1999
* added midi check notes range operation
10.9.1999 make mute dialog more user friendly by displaying track names and
initial program for each channel (assuming GM).
1.10.1999 fixed problem with time limited license and saving in different
directory
13.11.1999 fixed minor bug in demo: temporary files new000*.mid were not deleted
13.11.1999 added Roland option to kar->midi conversion
4.1.2000 changed program names that they are equal in text conversion and
information window
5.1.2000 XF support in some operations (midifix, midierr, midi2txt)
6.1.2000 fixed problem with midi playing status when same midi file
was opened more than once (e.g. could not stop midi or stopped
already after closing first window)
8.1.2000 default text editor/browser "notepad" now can be configured in
gnmidi.ini by setting
[Settings]
TextEditor=c:\programs\myeditor.exe
the filename will be added as first argument to the commandline
15.1.2000 .kar -> XF converter (SL02 version)
17.1.2000 increased compatibility that some karaoke players
are able to read .kar files generated by GNMIDI
18.1.2000 added option to convert the guessed chords to harmony notes
19.1.2000 added channel option for harmony notes
20.1.2000 released 2.20