Help Topics for MidiPro.org
Contents
Application Overview
      Summary of Entire Process
      What this program CANNOT do
      Advantages of Online Program
Midi Player
Tracks
      Midi Channel Settings: ADSR Envelopes, Low-pass Filters, and LFO Modulation
Events
      Event List
      Add Note Event
      Edit Note Event
      Drum Kit
      Chords and Keys
Microtones
      Quick Microtonal Demo
Range Features
      Copy Range
      Edit Range
Controller Events
      Add Controllers
      Series of Controllers
      Notes and Controllers
Patterns
      Overview
      Create and Render Pattern
Tempo Features
Other Features


Application Overview

MidiPro.org is an Online Midi Editor and Player:
  • Add an unlimited number of Tracks.
  • For each Midi Channel: Create an Amplitude ADSR Envelope, a Low-pass Filter ADSR Envelope, and LFO Modulators.
  • Edit the Pitch, Velocity, and Duration of every Midi Event, including Microtonal pitches.
  • Copy, Transpose, Change Durations, and Change Velocities for Notes in any time Range.
  • Add Controllers and Pitch Bends, and create a Series of Controllers in any time Range.

Summary of Entire Process

You can use MidiPro.org to create a new midi file, or you can edit existing midi files that were created by any other program.

The following websites contain hundreds of midi files that you can download for free:
   Classical Archives
   MFiles

After you create or import your midi file, and complete all your modifications, you will then Download the midi file to your computer.

The final step is to use Audacity to convert your midi file to a .wav or .mp3 file. After clicking the [Record] button in Audacity, use one of the following two techniques to play the file:
  • If you used the ADSR Envelope, Filter, or LFO features (as described in the section on Midi Channel Settings), then you will need to play the Midi file using the Midi Player on this website.
  • To use the sounds in your sound card, double-click the midi file from File Explorer, which will cause Windows Media Player to play the file.
Audacity also has excellent effects that you can add to your compositions.

You can then upload your .wav or .mp3 file to SoundCloud, so the entire world can hear your glorious creation.


What this program CANNOT do

  • The Sounds are Just for Reference: The online instruments are not intended to be high quality, and sounds will occasionally drop-out. Their small data sizes allow for fast downloads, so you don't have to wait a long time for a midi file to play. To hear full audio quality: Download the midi files and use Windows Media Player to play them through your sound card.
  • It Does Not React To Controllers That Were Entered Externally: If you import a midi file that contains System Exclusive Messages, Program Changes, or any controller data that was entered outside of this website, then the non-note data will not be used when the midi file is played at this website. However, Controllers and Pitch Bends that you enter on this website are heard when you download the midi file and play it through your sound card.
  • Always 4/4: You can't change the time signature.


Advantages of Online Program

Although there are many midi editing programs that you can download, here are a few advantages of using an online program instead:
  • Downloaded Programs Are Risky: Whenever you download a program, you are allowing the developer of that program to have complete control of your computer.
    It is much safer to use an online program, since the Chrome browser prevents websites from causing damage to your computer.
  • It's Free: Most downloaded programs are not free. They may allow you to run their program for a limited amount of time, but then you have to pay. MidiPro.org is 100% FREE.
  • Updates Are Immediate: You don't have to take any actions to benefit by the additional features that are continually being added to MidiPro.org.
  • Use From Any Computer: It sometimes takes hours to move a downloaded program from one computer to another. MidiPro.org instantly runs the first time, from any computer.


Midi Player

After you Import a midi file (or create a new midi file), you can play it by clicking the Play button at the top of the screen.

While a midi file is playing, changes you make to settings will not affect the playback. To hear changes you make to settings, you must click the Stop button, and then click Play again.

Clicking the Rewind button is the same as clicking Stop and Play. When a midi file is playing, the Play button changes to the Pause button.

The Start Playing At textbox allows you to start the playback at any location in the midi file. You may also click anywhere in the Player Progress bar, to start the playback at any location.


Tracks

The left side of the screen lists all the Tracks in the midi file. Clicking View will display that Track's notes in the Event List.

You may edit the following parameters for each Track:
  • Track Name
  • Instrument: In addition to the standard 128 Midi Instruments, this program also includes the following Special Instruments:
    • Drum Kit (the last instrument on the list): In addition to 47 Percussion Sounds, note D5 contains White Noise, and note D#5 contains Pink Noise. These Noise sounds are fun to use with the Low-pass Filter. See the section on Midi Channel Settings.
    • Four Oscillators (Square, Sawtooth, Triangle, and Sine): These Oscillators allow controllers to immediately affect the sound. See the section on Controller Events.
  • Midi Channel
  • Solo: If any Track has been Solo'd, then only Solo'd Tracks will be heard when the midi file is played.
  • Mute
  • Volume: This is the initial Volume (Controller #7) of the track.
  • Pan: This is the initial Stereo Pan (Controller #10) of the track.
You may also enter Controller #7 (Volume) and Controller #10 (Stereo Pan) events within your tracks, to have the Volume and Stereo Pan change while the midi file is being played. These Controllers will also affect the sound when you download the midi file and play it through your sound card. See the section on Controller Events.

Deleting a Track: Clicking the Red X will cause a Track to be Deleted. If any Track has been Solo'd, then you will be prompted "Do you want to Delete all Tracks that are not Solo'd?". This is an easy way to Delete ALL Tracks except the ones that have been Solo'd.


Midi Channel Settings: ADSR Envelopes, Low-pass Filters, and LFO Modulation

The [Settings] button (to the right of the Channel dropdown box) displays a popup screen with the following Channel Settings, which pertain to
ADSR Envelopes, Low-pass Filters, and LFO Modulation. IMPORTANT: You must click [Save Settings] for changes to these settings to take effect.

All settings are saved with the midi file when you click [Download Midi File], so they will remain the same when you Import that midi file into this website.
These settings will only affect the sound when the midi file is played from this website. These settings will have no effect when the midi file is played by any other program.
  • Amplitude ADSR: These four controls determine the shape of the overall volume of each note (in the selected Midi Channel). The Sustain Change (%) control determines the note's relative volume after the Attack and Decay envelopes have completed. If you want the note's volume to result in silence, then select -100.
  • Low-pass Filter Resonance and ADSR: These controls will only have an effect if Resonance is set to a non-zero value.
    During the Attack Time, each note's brightness will gradually change from the 1st Frequency to the 2nd Frequency, using a Linear Ramp (a "straight" time-line).
    During the Decay Time, each note's brightness will gradually change from the 2nd Frequency to the 3rd Frequency, using an Exponential Ramp (a "curved" time-line).
    During the Release Time, each note's brightness will gradually change from the 3nd Frequency to the 1st Frequency.
    PLEASE NOTE: You may dynamically use Controller #74 to change the 3rd Frequency. See the section on Controller Events.
  • LFO Modulation: These controls will only have an effect if Depth is set to a non-zero value. If the Waveform is set to sine, LFO Modulation will produce a vibrato effect.
    A ring modulation effect can be achieved by setting Frequency to above 20.
    PLEASE NOTE: You may dynamically use Controller #1 to change the Depth. See the section on Controller Events.
  • LFO Modulation Destinations: LFO Modulation can affect Pitch, Amplitude, or Filter Cutoff (Filter must have Resonance set to a non-zero value).


Events


Event List

The middle of the screen displays a list of the Notes or Controllers in the selected Track. You can view a different Track's events by clicking that Track's View button (on the left side of the screen).

The Event List also displays the Chords and Keys that are assigned to all Tracks. Chords and Keys are used by Patterns (which is described later).

When a midi file is Paused, the Event List will highlight the event that will be played next.


Add Note Event

To Add Note Events to the current Track, select Notes from the Notes/Controller dropdown box (located to the right of the Track# caption, and to the left of the Range textboxes), then click keys on the virtual synth keyboard at the bottom of the screen. The following parameters (located just above the synth keyboard) will determine the events that are added:
  • Note / Pattern / Chord / Key: These are the four types of events that you can add. A Chord or Key will affect all Tracks. The Pattern option is explained in detail later.
  • M:B:T: The Measure:Beat:Tick when the Note will occur.
  • Velocity: A number from 1 to 127.
  • Duration: A value entered as Beat:Tick. For example, if there are 120 ticks per beat then a Duration of 1:60 would last 1 1/2 beats. You may also select a Duration by clicking one of the note images that appear directly above the Duration textbox.
  • Step By: Determines the M:B:T of the next event that you add. A value of 1:000 will allow you to continually enter notes one beat apart. To enter multiple events that occur at the same time, enter 0 as the Step By amount, and the M:B:T will then not change when you add new events.
  • Range: Determines the note range of the virtual synth keyboard.
  • Sound: The virtual synth keyboard may sound like a keyboard or guitar.


Edit Note Event

Clicking a note in the Event List will cause its data to be displayed in the four textboxes located directly beneath the Event List. You can then edit those four textboxes (M:B:T, Pitch, Velocity, and Duration), and the selected row in the Event List will immediately reflect changes that you make.

Delete Event: Click the event you want to Delete, and press the [Delete] key.
Sort Events: To place the events in chronological order (by M:B:T), click [Sort] (above the Event List).


Chords and Keys

The same Chords and Keys are displayed on all Tracks. Chords and Keys are used with Patterns, which is explained later.

When Chord is selected (above the virtual synth keyboard), clicking a key on the synth keyboard will add a Chord to the Event List. To add a Minor Chord, select Minor before clicking a key.

When Key is selected (above the virtual synth keyboard), clicking a key on the synth keyboard will add a Key to the Event List.

Drum Kit

The Drum Kit is the last entry in each instrument dropdown box (on the left side of the screen). The Drum Kit has a different percussion instrument assigned to each note. Click here to display the Midi Percussion Key Map.

IMPORTANT: You must assign a track to Channel 10 for your sound card to correctly play a Drum Kit.


Microtones

To enable Microtones, click the [Microtonal] button for any Track (on the left side of the screen). You may then add plus signs to raise a pitch by 1/8 steps. For example, G++ is 1/4 step higher than G. The three possible microtones for each note (+, ++, and +++) are sent to three separate midi channels that are raised in pitch by 1/8, 1/4, and 3/8 steps.

The Microtonal feature uses four channels (the original pitch, plus three additional eighth-steps), so the next three midi channels must be available for the Microtonal feature to be enabled. Channel 10 is reserved for a drum set, so a Microtonal Track must be set to one of the following midi channels: 1, 2, 3, 4, 5, 6, 11, or 12.


Quick Microtonal Demo

The following instructions will quickly demonstrate the Microtonal features:
  1. Click here to display the Midi Editor.
  2. Click [Load Sample] (on the upper-right side of the page).
    The notes shown will play a 1/8 step chromatic scale (16 notes gradually ascend from C to E).
  3. Next to Track 2 (Strings) (on the left side of the page), click [View]. The B note gradually ascends to C in 1/8 steps, then it descends back to B.
  4. Next to Track 3 (Trumpets), click [View]. Quarter-tones are used to alternate between an F# and G triad.
  5. Click [Download Midi File] (on the upper middle section of the page).
  6. From Windows File Explorer, double-click MidiProOrg.mid (which is the file that you just downloaded), to play it in Windows Media Player.

Range Features

You may enter the Range Start and Range End in the two textboxes located above the Event List. Each textbox will accept time values in the M:B:T format (Measure:Beat:Tick).

For an event to be within the Range, its M:B:T must be greater than or equal to the Range Start, and less than the Range End.

For example, if the Range End is 2:01:000, then an event at 2:01:000 would not be within the range, since it is not less than the Range End. Before you Download a Midi File, you should remember to click the [All] button (to the right of the Range End textbox), because the [Download Midi File] feature will only download events that fall within the selected Range.


Copy Range

The [Copy Range] button (located on the right side of the screen) will copy events from the current Track that fall within the Range. The following parameters are used:
  • Destination: The M:B:T time location that the events will be copied to.
  • To Track: This will default to the current Track. You may also copy events to any other Track, or to a Pattern. The To Track will automatically become the Current Track after the events are copied.
  • Replace / Insert: If Replace is selected, all events within the Range will be deleted from the Destination track, before the events are copied.
    If Insert is selected, existing events in the Destination track within the Range will be moved up to make room for the copied events.
  • Repetitions: The number of consecutive times that the copied events will be pasted.
  • Include Chords and Keys: If this is checked, then the Chords and Keys within the Range are also copied.


Edit Range

Clicking the [Edit Range] button will display a popup screen with the following features that will be performed to notes in the current Track that are within the selected Range:
  • Delete Notes: All notes within the Range are deleted. If Collapse Deleted Area is checked, then subsequent notes are moved backwards, to fill the deleted area.
  • Transpose Notes: Use the dropdown box to select the number of half-steps that you want to Transpose. An octave is 12 half-steps.
  • Insert Blank Space: Notes in the Range are moved up, and the Range is replaced with blank space.
  • Change Durations: You may select a constant Duration that will be assigned to all notes in the Range, or a Percentage of Current Duration.
  • Change Velocities: You may select a Start and End Velocity that will be evenly disbursed throughout the Range, or a Percentage of Current Velocity.

If Include ALL Tracks is checked, then the features described above will be performed to all the Tracks in the midi file.

If Include Chords and Keys is checked, then the features are also performed to the Chord and Key events (within the selected Range).

To continue with this tutorial, click the [Close] button on the Edit Range popup screen.


Controller Events

IMPORTANT: This program only displays Controllers that were created from within this program. If an Imported midi file contains Controllers that were not created by this program, then those Controllers will not be shown on this website.

To add and edit Controller Events, select Controllers from the Notes/Controller dropdown box (located to the right of the Track# caption, and to the left of the Range textboxes).

Oscillators: The controllers described below will immediately affect the sound when any of the four Oscillators (Square, Sawtooth, Triangle, or Sine) has been selected as the Track's Instrument. This allows you to create gradual pitch bends, continuous stereo pans, and customized filter sweeps.

Non-Oscillator Instruments: When an Instrument is selected that is not an Oscillator, the Controllers listed below will only affect notes after the Controller has been sent. For example, for a note located at 2:01:000 to be affected, the Controller must be sent before 1:4:119.

The following Controllers will affect the sound when the midi file is played at this website:
  • Controller #1 (Modulation) See the section on Midi Channel Settings.
  • Controller #7 (Track Volume)
  • Controller #10 (Stereo Pan)
  • Controller #74 (Filter) See the section on Midi Channel Settings.
  • Pitch Bends: Only affects Oscillators, and not other Instruments.
  • Pitch Bend Sensitivity: Only affects Oscillators, and not other Instruments.
All other Controllers will not affect the sound when the midi file is played at this website. To hear all Controllers that you edit on this website, download the midi file and play it through your sound card.

Add Controllers

The following steps will allow you to add just one Controller:
  1. Select Controllers from the Notes/Controller dropdown (towards the top of the screen).
  2. Select a Controller Type from the Add Controller dropdown (towards the bottom of the screen).
  3. Select a Time in the Start M:B:T textbox.
  4. Enter a Value for the selected Controller.
  5. Click [Add One Controller].
You may add and edit the following Controller Types. Except for Pitch Bend and Pitch Bend Sensitivity, all Values are 0 to 127.
  • Pitch Bend: Values are 0 to 16383. For no change in pitch, set to 8192.
  • Modulation: Usually affects vibrato depth.
  • Volume: Overall volume of the track. Each note's Velocity also affects that note's volume.
  • Pan: The left-to-right sound of the track. A setting of 64 is in the middle.
  • Pitch Bend Sensitivity: Determines the number of Semitones that the Pitch Bend control will affect. When Semitones is set to 2, a Pitch Bend Value of 0 will be 1 full step below normal pitch, and a Value of 16383 will be 1 full step above normal pitch.
  • All Other Controllers: You may also create controller events for any of the other allowable controller numbers (0 to 127).


Series of Controllers

To create a gradual change from one Controller Value to another, follow the instructions described above to add one controller (except don't click [Add One Controller]), and then do the following three steps:
  1. Select a Time in the End M:B:T textbox.
  2. Enter an ending Value for the Controller Series.
  3. Click [Add Series of Controllers].
If your midi file contains many lengthy Controller Series, then the number of midi messages may become excessive. To prevent this, you may change the Granularity for Series of Controllers, which allows you to select the number of Controllers that are added in each Controller Series.


Notes and Controllers

If the Notes and Controllers box is checked next to any of the following Controller features, then that feature will affect both Notes and Controllers in the selected Range:
  • Copy Range
  • Delete Range
  • Insert Blank Space
Otherwise, each feature will only affect Controllers (and not Notes).


Patterns

Overview

Imagine entering just two notes, and your entire bass track is created. And then enter three more notes, and your rhythm guitar track is done.
Patterns are used to create new notes for your entire midi file (or a time Range), which have the same relative position with the chords and keys that you enter. This is exemplified below.
Here are the chord and key changes for Giant Steps by John Coltrane:

Chords BM7  D7GM7 Bb7EbM7    Am7 D7GM7 Bb7EbM7 F#7BM7    
KeysB    G    EbG    Eb     B
PatternB D# D F#G B Bb DEb G Ab BbA C D F#G B Bb DEb G F# A#B D# E F#
If a Pattern of notes was entered as C E F G (relative to the key of C), then the Pattern shown above would be rendered. The four notes are treated as their relative position of 1 3 4 5. This is different than simply transposing, which would cause the Am7 chord to be rendered as A C# instead of A C
This example would be created from the following pattern: C E G A

ChordsCEAmFF#G
KeysCGC
PatternC E G AE G# B CA C E F#F A C DF# A# C# DG B D E
You will notice that the root, 3rd, and 5th will always match the Chord; but the 6th (which is A in the key of C) is affected by the Key.


Create and Render Pattern

To create a Pattern, first click the Pattern square on the left side, just above the synth keyboard.

Adding Pattern notes is the same as adding notes to the Event List, except the notes will be added to the Pattern List (on the right side). Select the parameters directly above the synth keyboard, and click the synth keyboard to add notes. You will normally want your Pattern to start on the first beat (1:01:000).

Clicking [Render Pattern] will cause the Pattern to be repetitively rendered for each Chord in your song. Therefore, a Pattern can only be rendered if the Event List contains at least one Chord. The Pattern will only be rendered within the selected Range. For example, if the End Range is set to 5:01:000, then all Chords on-or-after 5:01:000 will not be rendered.

The Pattern is relative to the Key that is selected at the top of the Pattern List. For example, if the Pattern Key is G, then a B note will represent the 3rd note of the scale. If a D Chord was in your song, then the Rendered Pattern would insert F# (the 3rd note in a D scale).

To save a Pattern with your midi file, enter the Pattern as notes in a "dummy track" that is muted. You can then Copy the notes from the Track to the Pattern, by selecting Pattern in the To Track dropdown.


Tempo Features

The Tempo textbox (at the top of the screen) will allow you to select the beats-per-minute (bpm) for your song. Allowable entries are 5 to 900.

The ticks per beat (shown to the right of the Tempo textbox) will default to 120. The midi files that you Import may contain a different ticks per beat.

The ticks per beat will affect the M:B:T and Duration values that are used by the song. For example, when there are 120 ticks per beat, a value of 60 is equal to 1/2 of a beat.

Split or Double Tempo: This allows you to match the Tempo of any Drum Sample, without altering the pitch. For example, if your Midi File is 240 bps, splitting the Tempo will cause all M:B:T and Duration time values to be split in half, so the Tempo will become 120 bps.


Other Features

Download Midi File: The Downloaded file is always named MidiProOrg.mid. Before you download a midi file, you should remember to click the [All] button (to the right of the Range End textbox), because the [Download Midi File] feature will only download events that fall within the selected Range.

Load Blank File: This button will Delete all Tracks and Notes, and leave just one blank Track with no notes. The Pattern List will remain unaltered.

Load Sample: The following sample midi files have been provided. Our home page allows you to hear the completed version of these files, which were processed with Audacity.
  • Giant Steps by John Coltrane
  • Sonata Pathetique by Ludwig van Beethoven
  • Toccata by Aram Khachaturian