Commons:OnlineMidi.com
OnlineMidi.com is an Online Midi Editor and Player, which allows you to view and edit the thousands of midi files available at Wikimedia Commons. This program requires no downloading, since it runs entirely in the Chrome browser.
The purpose of this article is to teach techniques that can be used with midi files. To follow these instructions, Launch the Midi Editor & Player.
This page contains text from the OnlineMidi.com Help Page, which is licensed under the Creative Commons Attribution-ShareAlike CC BY-SA License.
Commons interaction
editMIDI files from Commons, or any other website, can be submitted to OnlineMidi.com with URLs constructed with the parameter ?wp=
. Example:
https://www.onlinemidi.com?wp=https://upload.wikimedia.org/wikipedia/commons/9/96/Chopin_-_Etude_Op._10,_No._1.mid
will send File:Chopin - Etude Op. 10, No. 1.mid to the website. Note that the proper URL for a MIDI file must be obtained from the blue-linked filename under the player, not from the browser's address bar.
A script to add a button to all MIDI-file pages on Commons with that functionality can be installed by adding the following code to Special:MyPage/common.js:
/* OnlineMidi gadget code start.
Depends on mediawiki.util. */
$.when(mw.loader.using('mediawiki.util'), $.ready).then(function () {
'use strict';
if ( mw.config.get('wgNamespaceNumber') == 6 && mw.config.get('wgAction') === "view" && document.getElementById('file') ) {
var mid = document.getElementsByClassName('fullMedia')[0].getElementsByTagName('a');
var midURL = mid[0].href;
//Conditionally add the portlet link
if (midURL.substr(midURL.length - 4, midURL.length).toLowerCase() == '.mid'){
mw.util.addPortletLink('p-cactions', 'https://www.onlinemidi.com/Editor.php?wp=' + encodeURIComponent(midURL), 'Edit MIDI', 'ca-midiedit', null).children[0].target = '_blank';
}
}
});
Application Overview
edit- Add an unlimited number of Tracks.
- Create unique URL's which automatically load your midi files. Post those URL's on your social network pages, to share your songs with the world.
- The Drum Kit has 11 drum loops on the lowest notes, synched to any tempo.
- Output the audio to MP3 or WAV audio files.
- Import audio files and assign them to Midi notes.
- For each Midi Channel: Edit settings for a 3-band Equalizer, Volume, Stereo Pan, Reverb, Amplitude ADSR Envelope, 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.
Sample Midi Files
editThe quickest way to exemplify this website's features is to play the 12 Sample Midi Files, which you can load on the upper-right section of the Midi Editor & Player:
- Queen: Original vocals and instruments from 'Bohemian Rhapsody'.
- Beatles: Original vocals and instruments from 'Come Together' on Abbey Road.
- Led Zeppelin: Original vocals and instruments from 'Ramble On' on Led Zeppelin II.
- Pink Floyd: Re-created drums, guitars, and synths from 'The Wall'.
- Do It: Exemplifies samples which can be assigned to any midi note on the Custom Mappings screen.
- Drum Loops: Plays the 11 drum samples that are generated from the 11 lowest notes on the Drum Kit instrument. These drum samples will be in synch with any Tempo that you select.
- Giant Steps: by John Coltrane.
- Spoken: 33 sounds spoken by a female.
- Noises: Demonstrates effects created by the Low-pass Filter.
- Microtonal: Demonstrates the microtonal features.
- Sonata Pathetique: by Ludwig van Beethoven.
- Toccata: by Aram Khachaturian.
- Silence: You should load this file before recording from an external audio source (like YouTube or a PodCast).
Summary of Entire Process
editYou can use OnlineMidi.com to create a new midi file, or you can edit existing midi files that were created by any other program. In addition to Wikimedia Commons, the Classical Archives and MFiles also contain hundreds of midi files that you can download for free.
While editing your midi file, you should frequently click [Download Midi File], which will save all your changes, including any audio files that you imported and mapped to midi notes.
If you Register (which is free), you can share your midi files. Click just one button to create a unique URL that automatically imports your midi file.
You can also save the audio output of your midi file to a .wav or .mp3 file, by clicking the [Record] button. You can then upload your .wav or .mp3 file to SoundCloud, so the entire world can hear your creation.
Share Your Songs
editClick the Register link on the upper-right corner of the Midi Editor & Player, and complete the form (it's free). You will then receive a confirmation email, which includes a link that you must click to complete the registration. When you Login, a Manage Your Songs link will be displayed at the top of the screen. Clicking that link displays a form which allows you to add, replace, and remove midi files that you would like to share, and edit your profile.
Add a Shared Song: When you enter a New Song Title and click [Share Current Song], the currently loaded midi file will be uploaded to our server. A unique URL will be generated, which you can add to your social network pages. That URL will cause your midi file to be automatically loaded on the Midi Editor & Player.
Replace a Shared Song: If you enter a New Song Title that already exists in the Your Shared Songs list, then that song will be replaced with the currently loaded midi file.
Remove a Shared Song: In the Your Shared Songs list, click [Remove] to remove a Song Title. The unique URL previously assigned to that shared song will no longer load that midi file.
You may add up to ten Shared Songs. Each midi file must be less than 1 megabyte in size.
Midi Player
editAfter 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.
Midi Recorder: Output Audio to MP3 or WAV files
editBefore using the Midi Recorder, you must first use the Windows Control Panel to set your Audio Device Input to Stereo Mix, and NOT to Microphone.
The first time you use the Midi Recorder, you will be prompted to confirm that this website can access your Microphone (even though it is accessing your Stereo Mix). If you do not click [OK], then you may have to reset the Site Settings, by clicking [Reset permissions] (for www.OnlineMidi.com) at chrome://settings/content/all (or at the equivalent Firefox settings page).
The red Record button (to the right of the Player Controls) will cause the audio output of the current midi file to be saved to a WAV or MP3 file.
The Record button will play the midi file while it is being recorded. If you click Stop, Pause, or Rewind, the audio file will stop recording at that point in the song.
Record Other Audio Sources
editIn addition to Recording audio from a midi file, you can also record from any audio source, including YouTube videos and Podcasts.
You must first load the Sample File named Silence, before clicking the Record button. Then start the YouTube video or Podcast, which will cause the audio output to be recorded until you click Stop.
Import Audio Files & Map Them To Midi Notes
editThe [Custom Mappings] features are demonstrated by loading the Sample Midi Files named Do It and Spoken (on the upper-right section of the screen). The [Custom Mappings] button (on the upper-middle portion of the screen) will display a popup screen which allows you to assign MP3 or WAV audio files (that you Upload) to any Midi Notes. To play audio files that you have uploaded, select CUSTOM MAPPINGS from the Instrument dropdown (on the left side of the screen). In that dropdown box, CUSTOM MAPPINGS is at the bottom of the list of Instruments.
When a Track has been assigned to the CUSTOM MAPPINGS Instrument, you can play the audio files by entering the Midi Notes that you had assigned them to. The settings on the [Custom Mappings] popup screen (and the audio files that you Uploaded) are automatically Saved with the Midi File (when you click [Download Midi File]).
Audio files that you upload (and midi note mappings) will only affect the sound when the midi file is played from this website. These features will have no effect when the midi file is played by any other program.
Tracks
editThe 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, the lowest 11 notes each play a 2-bar Drum Loop. This can be exemplified by playing the Drum Loops sample midi file (on the upper right section of the screen).
- Also, 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).
- 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: Reverb, 3-band EQ, ADSR Envelopes, Low-pass Filters, and LFO Modulation
editThe [Settings] button (to the right of the Channel dropdown box) displays a popup screen with the following Channel Settings; which pertain to Reverb, a 3-band Equalizer, 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.
- 3-band Equalizer: If the Gain for EQ #1 is set to 0, the channel will have no EQ adjustment. Selecting the maximum Gain for all three EQ's will produce distortion.
- Reverb: A setting of 0 will have no Reverb, and a setting of 20 (the maximum setting) will sometimes produce distortion.
- 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
editEvent List
editThe 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
editTo 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
editClicking 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.
Fast Event Editing: Pressing [Enter] after editing any of the four textboxes described above will cause the next row on the Event List to be selected, and the cursor will remain in the same textbox. This allows you to rapidly enter sequential event settings.
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
editThe 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
editThe 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.
The lowest 11 notes of the Drum Kit each play a 2-bar Drum Loop. These loops are played at the correct speed to be in synch with the selected Tempo. This can be exemplified by playing the Drum Loops sample midi file (on the upper right section of the screen), and changing the Tempo. Also, note D5 contains White Noise, and note D#5 contains Pink Noise. These Noise sounds are fun to use with the Low-pass Filter.
IMPORTANT: You must assign a track to Channel 10 for your sound card to correctly play a Drum Kit. However, when playing a midi file from this website, the Drum Kit can be assigned to any midi channel.
Microtones
editTo 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
editThe following instructions will quickly demonstrate the Microtonal features: 1. On the upper-right side of the page, select the Microtonal sample file, and click [Load Sample]. 2. 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 OnlineMidi.mid (which is the file that you just downloaded), to play it in Windows Media Player.
Range Features
editYou 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
editThe [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
editClicking 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
editIMPORTANT: 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).
The controllers described below will immediately affect the sound. This allows you to create gradual pitch bends, continuous stereo pans, and customized filter sweeps.
The following Controllers will affect the sound when the midi file is played at this website:
- Controller #1 (Modulation)
- Controller #7 (Track Volume)
- Controller #10 (Stereo Pan)
- Controller #74 (Filter)
- Pitch Bends: A setting of 8192 is "unchanged", and the maximum setting is 16383.
- Pitch Bend Sensitivity: The Firefox browser will only "bend" a maximum of 12 semitones up or down. The Chrome browser will bend a maximum of 48 semitones up or down.
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
editThe 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
editTo 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
editIf 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).
Thin Controllers
editIf the number of midi controllers is excessive, your midi file may not play correctly. To correct this, click the [Thin Controllers] button, after selecting how many controllers you want to keep (in the dropdown to the right of the button). This feature will only affect controllers within the time Range selected at the top of the screen.
Patterns
editImagine 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.