HUMidi Help

Copyright

Private copyright Dr.E.Huckert 02-2006. V1.0  

HUMidi Features

I wrote HUMidi for musicians who need occasionally to manipulate MIDI files. This need to manipulate MIDI files occurs probably more frequently in classical music than in pop music. When using MIDI files musicians may feel the following needs:

New language variants for HUMidi can easily be created (I18N).

Missing Features

HUMidi is not a replacement for a conventional MIDI sequencer nor for the Microsoft multimedia player.

HUMidi has not been designed as a sequencer but rather as a MIDI interpreter. At the moment the follwing features at not implemented:

I do not exclude that some of these missing features will be implemented in one of the next versions.

User Interface

The user interface design was definitely not the center of my interest - I kept the user interface very simple therefor. It was my main interest to allow the control rather via musical parameters like "measure" or "beat" or "dynamics" than via technical parameters like "events".

The user interface follows these design principles:

Concepts and Terms:

Syntax Dynamic Lists

A dynamic list is a sequence of dynamic instructions separated by commas. A dynamic instructions consists of a dynamic character (see list below) and a bar range. Typical example: p17-32,f36:3-40:2. A bar range consists of a start bar:start beat combination, the "-" symbol and an end bar:end beat combination. The beat parameters may be omitted.

The dynamic characters:

Interpretation files

HUMidi keeps the song specific interpretions parameters (dynamic lists etc) in files with the extension .int. These files are created in the directory configured via the parameter mididir in the general configuration. The interpretation files contain the following information: When loading a new MIDI file HUMidi tries to find an associated interpretation file. If no such file is found no error message is output! Interpretation files are optional.

Interpretation files are automatically saved when a new MIDI file is selected or when HUMidi is terminated.

Sample Files

In the HUMidi zip archive you will find some sample files. You may use them for test purposes. Here are the features in these files:

There are no interpretation files coming with the sample files.

Instrument assignments (Program Change)

You may insert program change events (instrument assignments) in a special dialog uner menu MIDI/insert instrument change. Please note that instrument assignments may vary depending on the synthesizer you use. The following list it not complete. It shows the most frequent assignments in "General Midi (GM)":

1=grand piano
5=Fender Rhodes
9=celesta
10=bells
12=vibraphone 17=Hammond organ
20=church organ
22=accordion
25=classic guitar
34=E Bass
41=violin
42=viola/alto
43=violoncello
44=double bass
51=strings
53=choir
57=trumpet
67=tenor sax
69=oboe
70=english horn
71=bassoon
72=clarinet
74=flute

Technical Details

HUMidi has been written by me in C++. It has been compiled with the C++ compiler by Digital Mars. The program consists of 15 classes laid down in 15000 code lines. For the user interface I used the portable wxWidgets library. All MIDI related stuff is my own design - I use no foreign classes or libraries exept clsses from wxWidgets. Note that the internal threads use TCP/IP as an internal communication protocol (a TCP port is used!).

Contact

Please send your comments, error reports or improvment proposals to edgar.huckert@huckert.com