Preferences

There are a number of options which can be configured to your liking, under the Settings and Colours tabs of the Preferences dialog box (which can be found in the Configure menu.)

Default author name

You should enter your name (or the name of the person who will be using the program most) so that, for every new song, the author name is automatically filled in. Of course, if someone else uses Midget, they can choose to have their name on that particular song instead, using the author text box on the main window.

Default tempo

Use the slider to set the default tempo for each new song created. The default value is 120 bpm.

Intelligent clipboard

Enabling this option will automatically adjust your selections, so that they include both note/effect and velocity/value data. So, if you selected a column of notes, their velocities would automatically be selected too. Disable this option if you want to be able to copy individual columns (for copying note velocities but not notes, for example.)

Lead-in bar for XG MIDI files

Some Yamaha XG devices require a delay between the transmission of MIDI messages. Enabling this option will ensure sufficient time at the start of MIDI files so that devices can respond to all the messages. Note that MIDI files created with this option enabled, when loaded back into Midget from MIDI files, may lose the initial control/effect values.

Display quiet values with dimmed text

If you are using a graphics card and monitor which support more than 256 colours (most do these days), enable this option to have note and effect data appear as text, dimmed and lightened to indicate the corresponding velocity or value. Disable this option if Midget’s colours look weird.

Colour preferences

You can also adjust the colours of the song grid by clicking on a grid cell (under the Colours tab) with the left and right mouse buttons.

A left-click will let you specify a new text colour, and a right-click will let you specify a new background colour. Note that the changes affect all the cells of the same type, so, for example, changing the colour of a beat will affect all beats.

Also note that not all the colours are customisable.


Choosing an Output Device

To choose an output device, click on MIDI Output under the Configuration menu. This will bring up the following dialog box:

Output Device Selection

By default, the Microsoft MIDI Mapper device is selected. This is basically the device which programs such as Media Player use for playing MIDI music.

However, it may not be the best device available on your system. Experiment by choosing each device in the list and seeing what works well and what doesn’t.

Some devices listed are actually MIDI ports. These require additional hardware to be linked up to your computer. For example, you may have a MIDI keyboard with on-board sounds attached to the MIDI port of your sound card. You will be given a warning message if you select a port, because you won’t hear anything unless there is actually something attached to that port.

You can usually attach MIDI devices to your computer via the MIDI/Joystick port of your sound card (this usually requires a MIDI break-out lead which has two 5-pin DIN connectors on one end, and a D-connector on the other.) It is possible to use other ports, if you have the right cables.

Device Options

Many devices have additional capabilities, or require different configuration in order to operate properly.

Click on the option you wish to learn more about:

•	Swap high and low instrument banks

•	Send Yamaha XG-specific messages

•	Enable SB AWE/Live!/Audigy filter controls

[Note: The SB filter controls option was added after the above screenshots were taken, and is a very primitive addition to the program, and may not work properly.]

Troubleshooting

If you have difficulties getting Midget to work with your external MIDI instrument, please see the frequently asked questions section.


Choosing an Input Device

To choose an input device, click on MIDI Input under the Configuration menu. This will bring up the following dialog box:

Input Device Selection

If you do not have any MIDI input devices, you should leave this set to (None). If you want to use MIDI input, and have an external MIDI instrument (for example, a MIDI keyboard) attached to your computer, select the port which your desired input device is attached to.

Device Options

Several device options are provided so you can configure how MIDI input is handled.

Click on the option you wish to learn more about:

•	Record note velocity data

•	Allow remote instrument selection

•	Interpret MIDI controllers

•	Interpret pitch wheel

•	Record channel pressure

Troubleshooting

If you have difficulties getting Midget to work with your external MIDI instrument, please see the frequently asked questions section.


Swapping high and low instrument banks
Some MIDI devices swap the high and low instrument bank numbers around, which means that incorrect instrument sounds are played. If you are finding that instruments don’t sound as they should, try enabling the Swap high and low instrument banks option.


Enabling Yamaha XG-specific messages
Yamaha XG devices make use of System Exclusive (SysEx) messages to select instruments, so if you have Yamaha XG hardware you wish to use with Midget, you must enable the Send Yamaha XG-specific messages option for the instrument selection to work properly.

If you don’t have any Yamaha XG hardware, this option should have no effect, since only Yamaha devices respond to it.


SoundBlaster AWE/Live!/Audigy Filters
Most of the more recent SoundBlaster cards don’t support the standard MIDI controllers for brightness and resonance, so, changing the values for these controls will have no effect.

The following cards are known not to support controllers 71 and 74 for filters:

- SoundBlaster AWE

- SoundBlaster Live!

- SoundBlaster Audigy

These cards do not completely remove support for filters, however, they just use a different method of accessing them. I have added a recent feature to Midget which allows access to two of the filter controls of the SoundBlaster cards, via the Brightness and Resonance controls.

You may have problems with these, and things may sound different to how they did before. This is due to the way in which the SoundBlaster cards’ default values for these controls differ from the standard MIDI ones.

NOTE:

This feature is provided “as-is”, with no guarantee that it will work as expected!


Velocity Data
Most modern MIDI instruments send out “velocity data”. This is basically a number which states the velocity at which a note is played. For a keyboard, the note velocity is the strength at which a key is hit.

If you turn this option off, the maximum velocity will be used for all notes, regardless of what the actual note velocity is.


Remote Instrument Selection
This option is useful if you are using the same device for input and output. It allows you to change instruments using external hardware. Note that the instrument configuration in Midget must match that of the device, or this feature won’t work properly.

It is switched off by default.


Controller Input
Midget supports many MIDI controllers, and you can modify effect values by using external controllers (as long as they are connected to the selected input device.)

If you enable this option, you can use the external device to modify effect values in Midget. For example, if you push on a sustain pedal, you would see SUS 99 appear on the display. Disable this option if you do not want the external device to modify effect values in Midget.


Pitch Wheel Input
The pitch wheel is usually a slider of some form that controls the pitch of the current notes. When centred, all notes sound at their correct pitch. Otherwise, the notes are shifted up or down by a maximum of 2 semitones, depending on the pitch wheel position.


Channel Pressure Input
The channel pressure control is usually found in more expensive MIDI hardware, and modifies the sound in some pre-defined way. For keyboards, channel pressure is the amount of pressure applied to the keys after they have been pressed.


***GLOSSARY? NOT QUITE…***

MIDI

MIDI: Musical Instrument Digital Interface

MIDI allows different devices to communicate by sending messages over MIDI cables. Any device could potentially be a MIDI device - you could control lights with MIDI, with the right equipment.

MIDI devices can send and receive data on up to 16 channels.

System Exclusive (SysEx) Messages

SysEx messages are blocks of data which are relevant to a particular device or device type. They contain proprietary data, and are used to implement additional features not available in standard General MIDI devices.


Frequently Asked Questions

Q: How do I use the drum kits? I select them but hear a piano or other instrument instead.

A: General MIDI devices map channel 10 as the only rhythm/drum channel. All the others are melody channels. If you click on the tab for track 10, you should find that only the drum kits will function properly. Yamaha XG devices do not have this limitation, but you must make sure you have enabled Yamaha XG support in order for this to work.

Q: What differences are there between the free and paid-for versions of Midget 3.5?

A: The paid-for version of Midget lets you edit 250 bars of song data, while the free one only 50 bars. And you can save/load MIDI files with the paid-for version. All other features are identical in both versions.

Q: When I run Midget, it crashes, and/or I get error messages about an invalid device.

A: This may occur if you uninstall the driver for the device which Midget was previously using. Open midget3.ini using Notepad, and set the Input and Output settings to -1:

Input=-1

Output=-1

If this does not solve the problem, or you don’t know how to do that, un-install Midget and choose “Yes” when asked if you want to delete the settings.

It’s also possible that your Windows multimedia settings are incorrect. Try selecting a different MIDI device in the Multimedia applet of Control Panel.

Q: I get a “device list could not be created” error when starting Midget. What’s wrong?

A: It’s most likely caused by an incompatible device driver, and is especially common with Hubi’s MIDI Loopback. The only solution is to remove the offending driver. You may also find that other MIDI programs will begin working after that, too!

Q: The effects/controllers are wrong when loading MIDI files, and/or I get a long gap at the start of the songs, especially when loading a MIDI file created by Midget.

A: This is a side-effect of the Yamaha XG compatibility features, and the way Midget stores notation/effect data.


Welcome to Midget 3.51

Silver Blade Software

- Midget 3.51 -

© Andrew Greenwood, 1999 - 2003. All rights reserved.

What is Midget?

Midget is a music program for people who like to compose music without using a score-based interface (ie: one where you place notes on a music score, using a mouse). I originally developed it because I had purchased a new sound card, which had extra MIDI voices on it, and I needed a piece of software that supported it - and I also needed a piece of software that used MIDI, without the hassle of point-and-click or MIDI keyboard input.

What's different? The interface allows the composer to hear notes as they are entered, and review them if necessary. With most MIDI programs, the user has to enter data on to an image of a music manuscript. This takes considerable skill and time to get it to sound as you want it to. It has been my experience that while errors are corrected in the music, my inspiration has to be ignored. Midget allows the composer to enter a note, instantly change it if necessary, and continue, in a fraction of the time this operation would take with common MIDI file editors.

It’s fairly straightforward to use, once you get the hang of it. Hopefully, by reading through the information in this manual, you should be able to get started making music with Midget.

What’s new in this version?

The History of Midget

Your comments, bug reports and suggestions are welcome:

silverblade@silverblade.co.uk

The latest version of Midget can be obtained from:

http://www.silverblade.co.uk/


What's New in Midget 3.51?
Whats new in Midget 3.51?

Midget 3.51 is an updated version of Midget 3.5 (which, in turn, is an update of Midget 3.0), which contains a few new features, along with bug-fixes. No software is perfect, and Midget is no exception! So from time to time, updates may be available from the website.

New features and bugs fixed in Midget 3.51

25-level undo (I thought it was about time one was added!)

M3MEMORY.DLL has now been merged into the main application.

The main window can now be vertically resized.

Menus have been slightly rearranged for more convenient usage. This include the right-click song menu.

Some more options, and windows have been added for the transpose and fade manipulations.

Fixed some conflicting menu shortcuts.

New features and bugs fixed in Midget 3.5

A new Configuration dialog box, which also replaces the Device Input/Output selection dialogs.

New option for fading the appearance of notes depending on their velocity.

Remote instrument changes (requires an external device that transmits bank and program changes corresponding to the currently loaded instrument list.)

Options for enabling/disabling certain MIDI input events.

New about box (wow!) and playback buttons (double wow!)

There is no longer a restriction on the number of input and output devices you can use. The start-up code has been modified to prevent Midget from crashing on start-up. There was a bug which caused Midget to crash if no input devices were installed.

You can choose effects by right-clicking the song grid while an effect cell is highlighted.

A new supported effect - “Overall Volume”

Helpful hint dialog boxes.

Insert/Delete for individual or a selection of columns.

Chord generator (with chord preview feature).

Master Volume control.

You can now load and save standard MIDI files!

The file format has been updated, and can store notepad data (information about the song) and the channel’s mute status is saved correctly.

Extra warning and information dialog boxes.

Improved instrument editor - now using a tree-view list which supports drag ‘n drop.

Fixed a few MIDI input bugs.

…Plus many other minor adjustments and improvements!


The History of Midget

Midget started off as a personal project, back in February, 1999. The first version had no save/load dialogs, no menus, and no mouse support. Everything was keyboard-driven. I'd bought a new sound card, which had Yamaha XG voices on, but I had no software which could easily let me choose the instruments on the card. I got tired of using the notation package I was using at the time, too. So, I decided to write my own program.

Prior to this, I had written a small program named "Board", which simply was a virtual MIDI keyboard, and you could play around with controllers. I abandoned this project because it was very badly implemented and really couldn't be updated easily.

I used Impulse Tracker for a while, and found that the interface was easier to use than the notation package I was using, but unfortunately, it took a lot of patience and effort to get things as I wanted them. The idea of having one note on each track, and arranging patterns, didn't appeal to me.

It's worth noting at this point, that the interface adopted by Midget, and Impulse Tracker, has been around since the days of the Commodore 64, I believe. I decided to base Midget's interface on the "tracker" interface, and make my own refinements, like giving the controls 3-letter abbreviations (as opposed to a single letter) and allowing more than one note per track.

The early versions of Midget were not at all popular. A few of my friends played around with it and gave me some ideas, like implementing menus. There were various improvements made, each resulting in a new release of Midget (1.1, 1.2 and finally, 1.3) until I decided that it was not worth doing any more to it. It was too difficult for anyone to understand!

Towards the end of 1999, I started writing Midget 2.0. This time, the interface was a lot more user-friendly, and mouse-oriented. The song layout was in bars/beats as opposed to "rows", the tempo actually in BPM, and the instrument lists displayed in list boxes. There were even file load/save dialogs!

Although I did get some feedback from users, it was mostly because Midget 2.0 didn't work on their computer. It was very picky about hardware! Plus, there was a bug in the installer which caused it to not install if Windows wasn't running.

A year passed, and I no longer had interest in developing Midget any further. There seemed to be no demand for it.

Then, I got a SoundBlaster Live! card. SoundFonts didn't work in DOS - even if Windows was running. It was time to make a Windows version of Midget! It started off fairly simple, as an interface which didn't actually do a lot. The majority of the coding took about a month, and there were one or two severe bugs, which prevented me from actually releasing anything more than an "inside" beta. The bug actually turned out to be a multi-threaded timer I was using, which was making Midget hang, and was no good at precise timing anyway! A few months went by, and I re-wrote the timer code.

At the start of summer 2001, Midget 3.0 was released. Most of the sites featuring Midget 3.0 also had previously featured the earlier DOS-based versions. Around the same time, I also released the final version of Midget 2.0.

Fairly recently, it was featured on the cover CDs of Personal Computer World magazine (PCW) and What PC? magazine, along with a small article and screenshot. I'm considering putting copies of the articles up on my site soon.

After receiving plenty of feedback, I've been working on Midget 3.5. Now it is more than just a personal project. I had re-coded most of Midget 3.0 and added many features (most of which were never actually used in the end), but I scrapped that version of Midget 3.5 and decided to simply make this an update of 3.0 and let the next major version be an even better program. After all, would you want an application which is half-Midget 3 and half something else?

My days of working on Midget are slowly coming to an end. I’ll probably only be releasing minor updates from now on, as I’m moving on to bigger projects.

But for now, here is Midget 3.51. Enjoy!


Quick-Start Guide
Quick-Start-Guide

The first thing you’ll need (and probably want) to do, after installing Midget, is choose an output device from the Configuration menu. This will allow you to hear what you are playing.

If you have an external MIDI instrument (for example, a MIDI keyboard) connected to your computer, you may also wish to enable MIDI input (by selecting the appropriate input device from the Configuration menu.)

You are now ready to begin writing songs in Midget.

If you have difficulties starting Midget, please see the list of frequently asked questions. If you are still encountering difficulties, contact me.


Effects Overview

Midget supports most of the commonly used MIDI effects, and you can use them in two ways.

A selection of controls are available from the initial effects control panel, and these determine the initial state of the effects for each track.

You can make changes to the effect values within a song, so that the effect settings are changed as the song plays. In order to do so, you need to enter the effect abbreviation, which consists of 3 letters.

Midget supports the following effects. Click on one for more information.

General

PAN: Panning

OVL: Overall Volume

VOL: Passage Volume

VIB: Vibrato (Modulation)

BTH: Breath

PSR: Channel Pressure

PCH: Pitch Bend

Pedals

SUS: Sustain

SST: Sostenuto

SFT: Soft

LGO: Legato

SU2: Sustain 2

Envelope

ATK: Attack Time

REL: Release Rate

Ambient Effects

REV: Reverb

CHO: Chorus

TRM: Tremulo

CEL: Celeste

PHS: Phaser

Filters

BRI: Brightness (Filter Cut-Off)

RES: Resonance (Filter Q)


Initial Controls Panel

The initial controls/effects panel is located underneath the song grid, and looks like this:

To adjust an effect/control, hold the mouse button down on the grey slider in the bar of the effect/control you wish to adjust, and drag it to the left or right (or up/down in the case of the volume control.)

Note that each channel has individual effect settings, so changing these will only affect the current channel.

The effects on this panel are only a few of those supported by Midget. You can use the others by placing effect events in a song. See the section entitled “Using Effects within a Song” for information on how to do this.

You can right-click on any of the controls, to be provided with a menu offering the following options:

Reset to Default Value

Sets the control’s value to the saved default value, or Midget’s default value, if none is set.

Save as Default

Sets and saves the control’s current value as default for this control. You can reset to this value later by using the Reset to Default Value command. Note that this default value is also used for new songs.

100% / 75% / 50% / 25% / Off

These options allow you to quickly select a particular percentage of control value, without having to drag the sliders around.


Using Effects within a Song

After setting the initial control values, you can cause these controls’ values to change during song playback. This allows you to, for example, increase and decrease the brightness or modify the panning of a channel, while the song is playing.

The method for doing this may seem slightly daunting at first, and is quite inefficient - but it works, and there are some shortcuts. I hope to refine this somehow in the future.

Each supported control has a 3-letter abbreviation. To see a list of the supported controls and their abbreviations, click on the Controls tab (under the Song Information panel.)

To use a control, click on, or navigate to, one of the columns on the right, with the lines. The columns with longer lines are where you place the effect abbreviations, and the shorter lines are where you enter or edit the value for that control.

Simply make sure one of the longer-lined cells are selected, then type the 3-letter code for the control you wish to edit at that point within the song. For example, to modify reverb, type REV. If you enter an invalid code, it will be removed. The default value is placed in the column to the right of this cell. You can edit this value by navigating to that cell, and typing a 2-digit number (between 00 and 99) for the new value at this point.

To change which control is edited at a certain point, simply navigate to the cell containing the 3-letter abbreviation, and type a new 3-letter abbreviation. Or press the period/dot key [.] to remove an entry.

To simplify things, in Midget 3.5, you can also right-click on one of the long-lined cells, or a control/effect abbreviation within the song grid, and choose which control you wish to place there. If a control modification is already present in the selected cell, it may be removed. Note that you must already have selected the cell you wish to modify, in order for this to work!

You can also repeat and auto-increment/auto-decrement values, by pressing the [ENTER] key, underneath an existing control modification, in an empty cell. This will cause the previous two values to be compared, and the difference between the two will be added to the second value, to create a third value. This will allow you to, for example, specify:

BRI 60

BRI 70

When you press [ENTER] on the third row, underneath these two entries, the next cell will automatically be filled with BRI 80.

Additional Notes

You do not need to have the cells immediately above or below each other, for this to work.

You may encounter strange auto-values if you use both effect columns, as the auto-value feature only works on the current column. Also, if you have two different effects being modified within a song, Midget does not distinguish between different effect types, so will create a new value based on the values of the previous two control values, regardless of their type.


Panning Control
Panning (Left / Right)

Default Default abbreviation:	PAN

Has an initial control:	Yes

MIDI controller:	10	(0x0A)

Value range:	00 (Left) - 50 (Centre) - 99 (Right)

Description:

Controls where the sound is coming from.

Compatibility:

All MIDI devices should respond to this control.


Overall Track Volume Control
Overall Track Volume

Default abbreviation:	OVL

Has an initial control:	Yes

MIDI controller:	7	(0x07)

Value range:	00 - 99

Description:

Determines the loudest volume level possible for a particular channel, within the master volume level.

Compatibility:

All MIDI devices should respond to this control.


Passage Volume Control
Passage Volume (Expression)

Default abbreviation:	VOL

Has an initial control:	No

MIDI controller:	11	(0x0B)

Value range:	00 - 99

Description:

Determines the loudest volume level for a particular channel, within the overall track volume.

Compatibility:

Most MIDI devices should respond to this control.


Vibrato Control
Vibrato (Modulation)

Default abbreviation:	VIB

Has an initial control:	Yes

MIDI controller:	1	(0x01)

Value range:	00 - 99

Description:

Applies a certain amount of “wobble” to the notes playing on a particular channel.

Compatibility:

Most MIDI devices should respond to this control.


Breath Control
Breath Controller

Default abbreviation:	BTH

Has an initial control:	No

MIDI controller:	2	(0x02)

Value range:	00 - 99

Description:

Usually for wind instruments, this indicates the amount of force being put into blowing the instrument.

Compatibility:

Rarely implemented in device.


Channel Pressure Control
Channel Pressure

Default abbreviation:	PSR

Has an initial control:	No

MIDI status:	(0xD0 - 0xDF)

Value range:	00 - 99 (sometimes only 00 (off) or 99 (on))

Description:

Channel pressure changes the sound, based on how hard the keys of a MIDI keyboard are pressed. The sound may be varied, depending on the amount of pressure being applied.

Compatibility:

Usually only implemented in high-end (ie, expensive) devices.


Pitch Bend Control
Pitch Bend

Default abbreviation:	PCH

Has an initial control:	No

MIDI status:	(0xE0 - 0xEF)

Value range:	00 (down 2 semitones) - 50 (centre) - 99 (up 2 semitones)

Description:

Changes the pitch of a note (detunes it) by the amount specified. The range of the pitch bend can be changed by using certain MIDI messages, but defaults to 2 semitones +/-.

Compatibility:

Most MIDI devices should respond to this control.


Sustain Pedal Control
Sustain Pedal

Default abbreviation:	SUS

Has an initial control:	No

MIDI controller:	64	(0x40)

Value range:	00 - 49 (off) or 50 - 99 (on)

Description:

Causes the currently playing notes, and any notes playing after sustain is on, to be sustained (held) for a while. Some devices infinitely hold notes down, others fade them out. Some devices apply a certain amount of sustain, based on the value given.

In any case, 00 should specify that there is no sustain, and 99 should specify full sustain.

Compatibility:

Most MIDI devices should respond to this control.


Sostenuto Pedal Control
Sostenuto Pedal

Default abbreviation:	SST

Has an initial control:	No

MIDI controller:	66	(0x42)

Value range:	00 - 49 (off) or 50 - 99 (on)

Description:

Causes any notes played after sostenuto is on to be sustained (held) for a while. Any notes playing before sostenuto is applied are not affected. Some devices infinitely hold notes down, others fade them out. Some devices can apply a certain amount of sostenuto, based on the value given.

In any case, 00 should specify that there is no sostenuto, and 99 should specify full sostenuto.

Compatibility:

Some devices respond to this control, some don’t.


Soft Pedal Control
Soft Pedal

Default abbreviation:	SFT

Has an initial control:	No

MIDI controller:	67	(0x43)

Value range:	00 - 49 (off) or 50 - 99 (on)

Description:

Causes notes to be dampened (softened) when soft pedal is applied. Some devices can apply a certain amount of softness, based on the value given.

In any case, 00 should specify that there is no softness, and 99 should specify full softness.

Compatibility:

Some devices respond to this control, some don’t.


Legato Pedal Control
Legato Pedal

Default abbreviation:	LGO

Has an initial control:	No

MIDI controller:	68	(0x44)

Value range:	00 - 49 (off) or 50 - 99 (on)

Description:

Causes a legato effect between notes, when legato is applied. This causes notes to be played as if they were played as a single note (for example, a guitar could have an initial note plucked, and a second note might be played in the same pluck as the first.) Some devices can apply a certain amount of legato, based on the value given.

In any case, 00 should specify no legato, and 99 should specify full legato.

Compatibility:

Some devices respond to this control, some don’t.


Sustain 2 Pedal Control
Sustain 2 Pedal

Default abbreviation:	SU2

Has an initial control:	No

MIDI controller:	69	(0x45)

Value range:	00 - 49 (off) or 50 - 99 (on)

Description:

Causes the currently playing notes, and any notes playing after sustain is on, to be sustained (held) for a while. While notes will be sustained for longer, when more notes are played, the sustained notes will begin to die out. Some devices apply a certain amount of sustain, based on the value given.

In any case, 00 should specify that there is no sustain, and 99 should specify full sustain.

Compatibility:

Some devices respond to this control, some don’t.


Attack Time Control
Attack Time

Default abbreviation:	ATK

Has an initial control:	Yes

MIDI controller:	73	(0x49)

Value range:	00 (short) - 50 (default) - 99 (long)

Description:

The attack time is the amount of time it takes for a note to reach its maximum volume level. The lower the value is, the quicker the note reaches its maximum level. On some devices, this also causes the initial sound of a note (for example, the bow hitting the string of a violin) to be cut or expanded.

Compatibility:

Quite a few devices respond to this control, but some don’t.


Release Rate Control
Release Rate

Default abbreviation:	REL

Has an initial control:	Yes

MIDI controller:	72	(0x48)

Value range:	00 (short) - 50 (default) - 99 (long)

Description:

The release rate determines the amount of time it takes for a note to fade out, after a note has been stopped (ie, released.) Shorter values will cause the note to suddenly stop, while longer values will cause a sustain effect.

Compatibility:

Quite a few devices respond to this control, but some don’t.


Reverb Control
Reverb

Default abbreviation:	REV

Has an initial control:	Yes

MIDI controller:	91	(0x5B)

Value range:	00 - 99

Description:

Reverb causes a channels sounds to appear as if they are being played within a room or hall. It is an ambient echo, which dramatically improves almost any sound, when used in the right quantities.

Generally, you should avoid using too much reverb, as it can take over and sound messy. This tends to hold true, especially for rhythm channels.

Compatibility:

Most devices respond to this control.


Chorus Control
Chorus

Default abbreviation:	CHO

Has an initial control:	Yes

MIDI controller:	93	(0x5D)

Value range:	00 - 99

Description:

To make an instrument sound thicker, you can use chorus. This manipulates playing sounds to make them sound like there is more than one of that sound playing at a time. For example, you could have a single trombone sounding like there are many of them playing.

Compatibility:

Most devices respond to this control.


Tremulo Control
Tremulo

Default abbreviation:	TRM

Has an initial control:	No

MIDI controller:	92	(0x5C)

Value range:	00 - 99

Description:

I have not had the chance to find out what this does yet! Sorry.

Compatibility:

Rarely implemented.


Celeste Control
Celeste

Default abbreviation:	CEL

Has an initial control:	No

MIDI controller:	94	(0x5E)

Value range:	00 - 99

Description:

I have not had the chance to find out what this does yet! Sorry.

Compatibility:

Rarely implemented.


Phaser Control
Phaser

Default abbreviation:	PHS

Has an initial control:	No

MIDI controller:	95	(0x5F)

Value range:	00 - 99

Description:

I have not had the chance to find out what this does yet! Sorry.

Compatibility:

Rarely implemented.


Brightness Control
Brightness (Filter Cut-Off)

Default abbreviation:	BRI

Has an initial control:	Yes

MIDI controller:	74	(0x4A)

Value range:	00 - 99

Description:

The brightness control causes a sound to have a bright or dull feel to it. The lower the value, the duller the sound appears to be, and the higher the value, the brighter it appears to be. Usually, the middle value is the default, but on some devices, this may not be correct.

Combine this with the resonance control, for more variety of sounds.

Compatibility:

Commonly implemented, but some devices have other methods of controlling brightness, and some do not support the control of brightness at all.

If you enable the Sound Blaster AWE/Live/Audigy filter options, this effect will behave differently. Also, it will not be saved if you save to a MIDI file.


Resonance (Filter Q) Control
Resonance (Filter Q)

Default abbreviation:	RES

Has an initial control:	Yes

MIDI controller:	71	(0x47)

Value range:	00 - 99

Description:

Filter Q, or resonance, determines the wetness of the sound. This tends to add a more squidgy sound to instruments, and shouldn’t be overdone (unless that is what you are aiming for!)

Compatibility:

Commonly implemented, but some devices have other methods of controlling resonance, and some do not support the control of resonance at all.

If you enable the Sound Blaster AWE/Live/Audigy filter options, this effect will behave differently. Also, it will not be saved if you save to a MIDI file.


MIDI Controllers Reference

Below is a list of the currently defined MIDI controllers. This is taken from Jeff Glatt’s website. The underlined entries are those which are supported and usable by default in Midget 3.5. Entries in red are those which are supported or used by Midget, but which aren’t listed as effects (eg: Bank Select.)

0	Bank Select

1	Modulation Wheel (coarse)

2	Breath Controller (coarse)

4	Foot Pedal (coarse)

5	Portamento Time (coarse)

6	Data Entry (coarse)

7	Volume (coarse)

8	Balance (coarse)

10	Pan Position (coarse)

11	Expression (coarse)

12	Effect Control 1 (coarse)

13	Effect Control 2 (coarse)

16	General Purpose Slider 1

17	General Purpose Slider 2

18	General Purpose Slider 3

19	General Purpose Slider 4

32	Bank Select (fine)

33	Modulation Wheel (fine)

34	Breath Controller (fine)

36	Foot Pedal (fine)

37	Portamento Time (fine)

38	Data Entry (fine)

39	Volume (fine)

40	Balance (fine)

42	Pan Position (fine)

43	Expression (fine)

44	Effect Control 1 (fine)

45	Effect Control 2 (fine)

64	Hold Pedal (on/off)

65	Portamento (on/off)

66	Sustenuto Pedal (on/off)

67	Soft Pedal (on/off)

68	Legato Pedal (on/off)

69	Hold 2 Pedal (on/off)

70	Sound Variation

71	Sound Timbre

72	Sound Release Time

73	Sound Attack Time

74	Sound Brightness

75	Sound Control 6

76	Sound Control 7

77	Sound Control 8

78	Sound Control 9

79	Sound Control 10

80	General Purpose Button 1 (on/off)

81	General Purpose Button 2 (on/off)

82	General Purpose Button 3 (on/off)

83	General Purpose Button 4 (on/off)

91	Reverb Level

92	Tremulo Level

93	Chorus Level

94	Celeste Level

95	Phaser Level

96	Data Button Increment

97	Data Button Decrement

98	Non-Registered Parameter (fine)

99	Non-Registered Parameter (coarse)

100	Registered Parameter (fine)

101	Registered Parameter (coarse)

120	All Sound Off

121	All Controllers Reset

122	Local Keyboard On/Off

123	All Notes Off

124	Omni Mode Off

125	Omni Mode On

126	Mono Operation

127	Poly Operation


Midget MIDI Implementation

MIDI Message	Description	Midget Support
0x80 - 0x8F	Note Off	Fully supported
0x90 - 0x9F	Note On	Fully supported
0xA0 - 0xAF	Aftertouch	Not supported
0xB0 - 0xBF	Control Change	Common controls supported (coarse only)
0xC0 - 0xCF	Program Change	Fully supported
0xD0 - 0xDF	Channel Pressure	Supported (coarse only)
0xE0 - 0xEF	Pitch Bend	Supported (coarse only)
0xF0	System Exclusive	Partial support (transmission only)
0xF1	MTC Quarter Frame	Not supported
0xF2	Song Position Pointer	Not supported
0xF3	Song Select	Not supported
0xF6	Tune Request	Not supported
0xF8	MIDI Clock	Not supported
0xFA	MIDI Start	Not supported
0xFB	MIDI Continue	Not supported
0xFC	MIDI Stop	Not supported
0xFE	Active Sense	Not supported
0xFF	Reset	Not supported
Note Velocities and Controller Values

Due to the way which Midget handles MIDI data, it is only possible to have a maximum value of 99 (as opposed to 127, which is the maximum value of a MIDI data byte - excluding the actual message bytes.)

This does not mean that you won’t be able to have controllers set to their maximum value - Midget automatically expands the values (by multiplying by 1.28) when transmitting the values, and contracts them (by dividing by 1.28) when receiving.

Supported Note Off Methods

Midget will correctly recognise and translate both note off methods, as defined in the MIDI specification. Midget transmits 0x80 - 0x8F messages as note off events.

Any received 0x90 - 0x9F messages with a velocity of 0 will be automatically converted into a note off (0x80 - 0x8F) event.

Supported Controllers

Midget supports the most common MIDI controllers. Please see the MIDI Controllers Reference page for a complete list.

Midget does not currently make use of any RPN/NRPN messages, other than those required for SoundBlaster filter support.

Supported System Exclusive Messages

General MIDI Initialise

Yamaha XG Initialise

Yamaha XG High Bank Select

Yamaha XG Low Bank Select

Yamaha XG Program Select


Menu Functions
Midget’s Menu Options

The menu bar layout is fairly straightforward:

File

Deals with song/file-related operations

Edit

Contains various basic editing commands

Manipulate

Provides advanced editing features

Song

Allows playback/recording/stopping of songs

Configure

For device options and preferences

Help

If you get stuck, choose this!

For more information about what functions each menu provides, click on the menu name in the list above.


File Menu
The File menu allows you to load and save songs to and from the Midget 3 and MIDI file formats, as well as start a new song, open your songs folder or exit the program. You can also load and save instrument lists from this menu.

Shortcut keys

CTRL+N	New song

F9	Open song

F10	Save current song

ALT+F10	Save current song with new name

SHIFT+F9	Load instruments

SHIFT+F10	Save instruments

The load/save MIDI file options are not available in the free version of Midget 3.5.


Edit Menu
You will find commands to cut and paste and insert/delete rows from the song under the Edit menu. There is now an undo function, which can be used to undo the last 25 operations.

You can also edit the song “notepad” (information about the song), and go to a specific bar within the song, via this menu.

Shortcut keys

ALT+U	Undo (up to 25 times)

ALT+X	Cut

ALT+C	Copy

ALT+I	Paste (Insert)

ALT+O	Paste (Over)

Ins	Insert empty row on current column

ALT+Ins	Insert empty row on current channel

CTRL+Ins	Insert empty row on all channels

Del	Delete current row from current column

ALT+Del	Delete current row from current channel

CTRL+Del	Delete current row from all channels

ALT+N	Edit song notepad data

ALT+G	Go to a specific bar within the song


Manipulate Menu
The Manipulate menu provides some basic functions for transforming note and effect data. There isn’t much you can do here - just basic stuff, really. It’s good practise to use the shortcut keys once you have made a selection, as this is far quicker than going through the menu each time!

Transposition (up and down) and fading (out only) of song data can be performed by selecting the notes you wish to transpose or fade, and choosing the appropriate menu item from the Manipulate menu. You may also use ALT+Q and ALT+A to transpose up/down a selection, and ALT+F to fade notes in/out.

You may also select a range of notes and then fade or transpose them by using the fade/transpose windows. These are also available from the Manipulate menu.

Shortcut keys

ALT+T	Display the transpose window

ALT+Q	Transpose selection up by one note

ALT+A	Transpose selection down by one note

ALT+V	Display the velocity/value change window

ALT+E	Increase velocity/value

ALT+D	Decrease velocity/value

ALT+F	Fade selection (note velocities or effect values)


Song Menu
You will find the same functions provided in the playback panel on the Song menu. These are Play, Play from Here, Stop, and Record.

Again, a great time-saver is to learn the shortcut keys for the playback operations.

Shortcut keys

F5	Play song from beginning

F6	Play song from current position

ALT+F8	Record

F8	Stop song


Configure Menu
There are various options which you should explore and configure as appropriate to your needs, on the Configure menu. From here, you can select which device is used for input/output, along with various other device options, and can set preferenceslike which colours are used and the default author name.

You can also edit the instrument lists using this menu.

Shortcut keys

F11	Edit preferences

ALT+F11	Edit instrument lists

CTRL+ALT+I	Select input device and related options

CTRL+ALT+O	Select output device and related options


Help Menu
The Help menu provides you with access to this manual, along with a link to the Midget web site and contact information for the author of Midget.

Shortcut keys

F1	Read this manual

CTRL+F12	Contact the author (email)

ALT+F12	Visit the Midget web site

F12	Display information about the program


Writing Tunes in Midget

The main aim of Midget is to make it easy to create music, with the least amount of effort needed to change something if you make a mistake.

In this section of the manual, you will learn about the functions provided by the basic song controls.

The Song Information Panel

You can edit the song title, author, tempo and time signature, from this panel. Tempo is measured in BPM (Beats Per Minute), so a tempo of 120 BPM is equal to 2 beats every second. The lower this value is, the slower the song will play. And vice versa. You can use the slider to edit the tempo, or enter a value in the blue text box.

The time signature is more of a visual thing - it doesn’t actually affect how the song plays back. Most songs are written in either 4/4 or 3/4 but you can use anything from 1/4 to 9/4, should you be so inclined to do so! You cannot, however, alter the bottom value - this is fixed at 4.

The Zoom In and Zoom Out buttons have been moved from where they were in Midget 3.0, and they expand and contract the visible song data, so you can finely place notes.

Beneath the Song Information panel are controls for editing the current octave and the master volume.

These are fairly straightforward to use - the octave slider determines the base octave for the computer keyboard, and the volume slider determines the maximum volume level for all the channels. You can also use the forward slash [/] and asterisk [*] keys of the numeric keypad to select the base octave, much like you would in Impulse Tracker.

The song playback/record controls are located beneath this, and are fairly straightforward - the arrow pointing to the right plays the song from the beginning, the arrow pointing downwards plays the song from the current editing position, the square stops the song, and the red circle lets you record MIDI data sent from the selected MIDI device.

Channel Tabs

Towards the top of the main window are 16 tabs with green status lights:

Each tab represents a single MIDI channel. The status lights indicate whether the channel is enabled or not (ie, muted.) To change the current channel being edited, you can either click on one of the tabs, or use the plus [+] and minus [-] keys.

To enable or disable a channel, simply click on the green status light above the relevant channel.

Song Bar/Beat Position Column

Beneath the channel tabs, and to the left of the song grid, is a column of numbers and dashes. This tells you what part of the song you are editing.

Each green block indicates the first beat of a bar. The red blocks indicate other beats within a bar. It makes life a lot easier if you create tunes using this structure! There have been times when I have strayed off and created a pattern which is out-of-time with the bar/beat indicators. This makes it very difficult to work on tunes. You just need to make sure everything “fits”.

Generally, you should keep chord changes to, at most, once or twice in a particular bar.

When you “zoom in” on the song, the bar/beat indicators will expand.

Controls/Effects Panel

Underneath the song grid is the Controls/Effects panel. From here, you can modify some of the more common MIDI controllers, and set the channel volume, etc. by moving the appropriate sliders. See the Initial Controls Panel section of the manual for more information on what this is and how to use it.


Working with Notes

Midget uses a tracker-style interface, which is popular among the underground music scene, but rarely, if ever, found in commercial set-ups.

Personally, I think tracker-style editing is brilliant for people who like working using their computer keyboard, as opposed to a mouse. I have been one of these people for quite a while, ever since I had endured several years of pain while entering notes using a mouse in a notation package!

The editing interface is fairly simple, although it may seem daunting at first. It consists of two main types of column - notes and effects. Between each note column and each effect column is a velocity/value column.

To place a note, select one of the triple-dotted columns, and press a key on the computer keyboard, or play a note on the selected input device.

The note-mappings on the computer keyboard are:

You can access just over 2 octaves of notes at any one time, via the computer keyboard. The base octave is selectable using the slider under the song grid or the forward slash [/] and asterisk [*] keys of the numeric keypad. The base octave defines the octave of the lower half of the keyboard. The upper half of the keyboard provides notes in the octave above the base octave (and some notes in the octave above that!)

Notes are placed with a default velocity of 99 (maximum.) Effects are placed with the default value for the corresponding effect.

You can change note velocities and effect values by selecting the appropriate column (either the two-dotted column to the right of a note, or the short-lined column to the right of an effect abbreviation), using either the arrow keys or the mouse, and entering the two-digit number you wish to replace the current value with.

You can delete a note or effect by pressing the period/dot key [.] while in a note or effect column.

By default, all notes stop playing when another note in the same column is played. There will be times when you just want a note to stop playing, without any other notes starting. For this purpose, there is a special note name called “note off”. Simply press the comma key [,] in a note column, to stop a note in that column from playing.


Working with Drums / Percussion

To use a drum kit, simply select the Drum Kits instrument category, and the drum kit you wish to use in the instrument drop-down list.

Due to a limitation/feature of the General MIDI standard, most MIDI devices will only let you use the drum kits on channel 10. If channel 10 is not the current channel, you will be prompted to switch to it.

This limitation is not imposed on most Yamaha XG devices.

Each part of the drum kit is assigned to an individual note, and is thus represented as note values (which can seem confusing at first, although you should get the hang of it after a while.)

The best way of finding where everything is, is to experiment. The lower octaves contain common drum sounds (kick drum, snares, tom-toms.) Above this, you will find cymbals, and then even higher are various other types of percussion.

You can find the individual key assignments, along with anything else you could ever possibly want to know about MIDI, at:

http://www.borg.com/~jglatt/

If you have not already done so, please read the section entitled Working with Notes, which will aid you in creating music with Midget.


Working with Chords

Located at the bottom right corner of Midget’s main window is the chord generator:

This feature appears is something many Midget users have requested, so here it is!

It is fairly straightforward to use - select the type of chord you want (ie, Major/Minor etc.) and click on the note names to hear what it sounds like.

To place chords in the song grid, press the [Scroll Lock] key (usually this can be found at the top right of the keyboard, just left of the status LEDs) and press a note key as if you were going to enter a note.

To disable chord placement mode, simply press [Scroll Lock] again.

Note: Chord placement only works from the computer keyboard!


Choosing Instruments

Many MIDI programs force you to wade through menus in order to get to the instrument you want.

It’s very easy to change the instrument for each channel in Midget. There are two drop-down list boxes (aka: combo-boxes). These are located on the panel above the song grid.

The first of these lists contain instrument categories. The list to the right of this contains the names of instruments within the currently selected category.

By default, these lists should show Piano and Grand Piano, respectively.

To change the category, simply click on the drop-down category box, and click on the category you wish to access the instruments for. Then, select the instrument you wish to use from the box to the right. It’s as simple as that!

Additional Notes and Limitations

Midget 3.0 and 3.5 have a fixed set of 18 categories - you cannot add new categories or rename existing categories, nor can you delete them.

The first 16 categories are the General MIDI categories. Each category should contain at least 8 instruments, giving a total of 128 instruments, as defined by the MIDI specification.

The Drum Kits category will only function properly on channel 10, and you will find that the other instruments will not play back correctly on this channel, and that drum kits won’t play back properly on any other channel. If you have a card which supports Yamaha XG, this limitation may not be present.

In addition to the above categories, one final category is defined, with the name of (Custom). This is the default location for detected SoundFonts, and may be used for instruments which don’t fit into any other category.


Creating a New Instrument

To create a new instrument:

1. Click on the Edit button by the instrument lists. You will be presented with a dialog, containing a list of all the available instruments, and their bank/patch numbers.

2. Select the category you want the new instrument to appear in,

3. Click the New button in the Instrument Settings panel,

4. Enter the instrument’s bank and patch numbers - don’t forget to also give the instrument a name.

Once this has been done, you may close the dialog or add more instruments, by following steps 2 through to 4.


Editing an Existing Instrument

To edit an instrument’s properties:

1. Select the instrument you wish to edit, from the main window,

2. Click the Edit button,

3. The channel’s instrument will be auto-selected, and its details displayed. Simply modify the name, bank and/or patch values in the Instrument Settings panel.

Once you have modified an instrument’s settings, you can edit another instrument’s settings by selecting it in the left-hand pane (you don’t need to close the dialog after each edit!) The changes are automatically saved.

You may also load and save instrument lists using the buttons in the Instrument List panel.

If you wish to move an instrument into a different category, please read Changing an Instrument’s Category.


Changing an Instrument's Category
Changing an Instrument’s Category

To change which category an instrument appears in:

1. Select the instrument and click the Edit button,

2. Hold the mouse button down on the name of the instrument you wish to move, in the left hand pane,

3. Drag the item to its new location - this can be a different category, or just a different location within the current category.

You may move additional instruments around, by repeating steps 2 and 3 for each instrument you wish to move, and click Close when you have finished.


Deleting an Instrument

To delete an instrument:

1. Click the Edit button in the main window (next to the instrument lists),

2. Click on the name of the instrument which you wish to delete (click the [+] next to

the category the instrument is in, if necessary),

3. Click on the Remove button (in the Instrument Settings panel.)

Repeat steps 2 and 3 for each instrument you wish to delete.


Using SoundFonts with Midget

Midget has fairly basic support for SoundFonts, which are used by SoundBlaster AWE/Live!/Audigy cards.

Before Midget can make use of SoundFonts, they must first be loaded into memory. This is done using the relevant AudioHQ applet (for the SB Live!/Audigy - I believe the SB AWE cards have a different applet for this purpose.) Please see the documentation for your card if you do not know how to do this.

Once you have loaded the SoundFont(s) you wish to use:

1. Click the Edit button in Midget’s main window,

2. Click the Detect Instruments button in the Instrument List panel,

3. Answer Yes to the warning prompt,

4. Choose the device you wish to detect the SoundFonts from,

5. Click OK to that dialog box and the one which appears afterwards.

The instrument lists should now show all the loaded SoundFonts.

WARNING: THIS FEATURE IS VERY TEMPERAMENTAL AND MAY CAUSE MIDGET TO HANG, OR THE INSTRUMENT LISTS TO APPEAR EMPTY. I SHALL BE IMPLEMENTING MORE ADVANCED AND LESS BUGGY SOUNDFONT SUPPORT IN THE NEXT RELEASE OF MIDGET.


Midget 3.5

Designed and Coded by

Andrew “Silver Blade” Greenwood

-

Originally coded for the DOS platform in 1999

Re-coded for Windows in 2001

Thanks to everyone who has given me feedback. Sorry if I didn’t implement a feature you requested!

Special mentions go out, in no particular order, to:

Adam Wilks

For helping me code Midget 3 and giving me ideas. Adam has coded various programs, which have given me inspiration for coding my own variants of things he has done. A little reminder here - please restrain yourself from calling me at 2:00 AM in the future!

James Dean

For testing all versions of Midget all the way from version 1.0 thru to this version. James even played around with Board, the predecessor to Midget.

Tom Byrne

Thanks for offering encouragement. There are days when I really just can’t be bothered coding, and the popularity and features of other music packages dwarf my own.

Aaron Carter

Although Aaron hasn’t had any input into this version of Midget, he has helped me with simplifying the design of the next version. Many hours have already been spent discussing alternative ways of doing things in Midget.

John Brunk

So enthusiastic about SoundFonts that he has his own website hosted on a T1 connection, John has been generous enough to send me some CDs packed with thousands of SoundFonts. This has given me a lot of enthusiasm to continue working on Midget!

Greetz go out to everyone I know (and everyone I don’t!), including everyone who has downloaded and supported the development of Midget.