MIDIopsy Help

What is MIDIopsy?

MIDIopsy is used to view, edit, and play MIDI files. The user is assumed to be familiar with the standard MIDI file format. (For more information, see Online Resources at the bottom of this page.)

When a file is open, its contents are shown as rows in a grid/list view. Chunks are separated by empty rows (which cannot be selected). Each row within a track chunk represents an MTrk event.

The leftmost column contains the binary contents of the file (in hexadecimal format), while the other columns contain user-friendly comments. (Note that Total Time is not stored in the file; it is calculated from Delta-time.) Column widths can be adjusted as desired.

Open an existing MIDI file

Create a new MIDI file

  1. Click New (or press Ctrl+N).
  2. Specify a File name.
  3. Specify the Format.
  4. If the format is 1 (one or more simultaneous tracks) or 2 (one or more independent tracks), specify the Number of tracks.
  5. Under Delta-time division, check either Metrical time or Time-code-based time.
  6. Click OK (or press Enter). The new file is shown with a new MThd (header) chunk created as specified, along with the specified number of MTrk (track) chunks, each with an End of Track meta-event.

Save a MIDI file

Close an open MIDI file

Edit a MIDI file

Warning: MIDI file editing is for expert users only. If not done correctly, it could result in data corruption, making the file unusable. Proceed at your own risk!
EventButtonRequired Input
MIDI channel message Channel Event
  • Running status
  • If Running status is not checked:
    • Message type
    • Channel
  • Data 1 (interpreted as you type, based on Message type and Channel)
  • If Message type is not Program Change or Channel Pressure (Aftertouch), Data 2 (interpreted as you type, based on Message type)
system exclusive (sysex) message SysEx Event
  • Escape
  • Data
    • must be entered as hex
    • interpreted as you type (to the extent possible) as plain text, which is not directly editable
meta-event Meta-event
  • Type (interpreted as you type, for known meta-events)
  • Data
    • must be entered as hex if Type is any of the following:
      • 0 (Sequence Number)
      • 32 (MIDI Channel Prefix)
      • 47 (End of Track)
      • 81 (Set Tempo)
      • 84 (SMPTE Offset)
      • 88 (Time Signature)
      • 89 (Key Signature)
    • otherwise, can be entered as hex or plain text
    • interpreted as you type, based on Type

MIDI file navigation

MIDI file playback

When a MIDI file is opened or saved, MIDIopsy also loads it for media playback. (A new file must be saved before it can be played.) If the file has not been saved since it was last edited, it must be saved in order to play the current version (with the most recent edits).

Playback starts at the indicated Starting Position (SP), which can be set to any position within the indicated Duration. When a file is loaded for playback, its Starting Position defaults to 00:00:00, and its Duration is determined. During playback, the current Position is updated.

Keyboard Shortcuts

GroupCommandShortcut
Open RecentAlt+number
FileNewCtrl+N
OpenCtrl+O
SaveCtrl+S
Save AsCtrl+Shift+S
CloseCtrl+F4
ApplicationSettingsAlt+S
HelpF1
AboutAlt+A
New ItemTrackAlt+K
Channel EventAlt+C
SysEx EventAlt+X
Meta-eventAlt+M
Edit ItemPropertiesF4
CutCtrl+X
CopyCtrl+C
PasteCtrl+V
DeleteDel
NavigationGo ToCtrl+G
PlaybackPlayF5
Stop
Starting Position (SP)Alt+T
Reset SPF6
Sync SPF7
PositionAlt+P
DurationAlt+D

MIDI Reference

Note Numbers
NumberNoteNumberNoteNumberNoteNumberNote
0C - / B# -32Ab 1 / G# 164Fb 4 / E 496C 7 / B# 7
1Db - / C# -33A 165F 4 / E# 497Db 7 / C# 7
2D -34Bb 1 / A# 166Gb 4 / F# 498D 7
3Eb - / D# -35Cb 1 / B 167G 499Eb 7 / D# 7
4Fb - / E -36C 2 / B# 268Ab 4 / G# 4100Fb 7 / E 7
5F - / E# -37Db 2 / C# 269A 4101F 7 / E# 7
6Gb - / F# -38D 270Bb 4 / A# 4102Gb 7 / F# 7
7G -39Eb 2 / D# 271Cb 4 / B 4103G 7
8Ab - / G# -40Fb 2 / E 272C 5 / B# 5104Ab 7 / G# 7
9A -41F 2 / E# 273Db 5 / C# 5105A 7
10Bb - / A# -42Gb 2 / F# 274D 5106Bb 7 / A# 7
11Cb - / B -43G 275Eb 5 / D# 5107Cb 7 / B 7
12C 0 / B# 044Ab 2 / G# 276Fb 5 / E 5108C 8 / B# 8
13Db 0 / C# 045A 277F 5 / E# 5109Db 8 / C# 8
14D 046Bb 2 / A# 278Gb 5 / F# 5110D 8
15Eb 0 / D# 047Cb 2 / B 279G 5111Eb 8 / D# 8
16Fb 0 / E 048C 3 / B# 380Ab 5 / G# 5112Fb 8 / E 8
17F 0 / E# 049Db 3 / C# 381A 5113F 8 / E# 8
18Gb 0 / F# 050D 382Bb 5 / A# 5114Gb 8 / F# 8
19G 051Eb 3 / D# 383Cb 5 / B 5115G 8
20Ab 0 / G# 052Fb 3 / E 384C 6 / B# 6116Ab 8 / G# 8
21A 053F 3 / E# 385Db 6 / C# 6117A 8
22Bb 0 / A# 054Gb 3 / F# 386D 6118Bb 8 / A# 8
23Cb 0 / B 055G 387Eb 6 / D# 6119Cb 8 / B 8
24C 1 / B# 156Ab 3 / G# 388Fb 6 / E 6120C 9 / B# 9
25Db 1 / C# 157A 389F 6 / E# 6121Db 9 / C# 9
26D 158Bb 3 / A# 390Gb 6 / F# 6122D 9
27Eb 1 / D# 159Cb 3 / B 391G 6123Eb 9 / D# 9
28Fb 1 / E 160C 4 / B# 492Ab 6 / G# 6124Fb 9 / E 9
29F 1 / E# 161Db 4 / C# 493A 6125F 9 / E# 9
30Gb 1 / F# 162D 494Bb 6 / A# 6126Gb 9 / F# 9
31G 163Eb 4 / D# 495Cb 6 / B 6127G 9

Percussion Map
MIDI KeyDrum SoundMIDI KeyDrum SoundMIDI KeyDrum Sound
35Acoustic Bass Drum51Ride Cymbal 167High Agogo
36Bass Drum 152Chinese Cymbal68Low Agogo
37Side Stick53Ride Bell69Cabasa
38Acoustic Snare54Tambourine70Maracas
39Hand Clap55Splash Cymbal71Short Whistle
40Electric Snare56Cowbell72Long Whistle
41Low Floor Tom57Crash Cymbal 273Short Guiro
42Closed Hi Hat58Vibraslap74Long Guiro
43High Floor Tom59Ride Cymbal 275Claves
44Pedal Hi-Hat60Hi Bongo76Hi Wood Block
45Low Tom61Low Bongo77Low Wood Block
46Open Hi-Hat62Mute Hi Conga78Mute Cuica
47Low-Mid Tom63Open Hi Conga79Open Cuica
48Hi Mid Tom64Low Conga80Mute Triangle
49Crash Cymbal 165High Timbale81Open Triangle
50High Tom66Low Timbale

Control Change Messages
Control #Control FunctionControl #Control Function
0Bank Select56LSB for value 24
1Modulation wheel or lever57LSB for value 25
2Breath Controller58LSB for value 26
4Foot controller59LSB for value 27
5Portamento time60LSB for value 28
6Data entry MSB61LSB for value 29
7Channel Volume62LSB for value 30
8Balance63LSB for value 31
10Pan64Sustain/Damper pedal
11Expression Controller65Portamento On/Off
12Effect Control 166Sostenuto
13Effect Control 267Soft pedal
16General Purpose Controller # 168Legato Footswitch
17General Purpose Controller # 269Hold 2
18General Purpose Controller # 370Sound Controller 1
19General Purpose Controller # 471Sound Controller 2
32LSB for value 072Sound Controller 3
33LSB for value 173Sound Controller 4
34LSB for value 274Sound Controller 5
35LSB for value 375Sound Controller 6
36LSB for value 476Sound Controller 7
37LSB for value 577Sound Controller 8
38LSB for value 678Sound Controller 9
39LSB for value 779Sound Controller 10
40LSB for value 880General Purpose Controller # 5
41LSB for value 981General Purpose Controller # 6
42LSB for value 1082General Purpose Controller # 7
43LSB for value 1183General Purpose Controller # 8
44LSB for value 1284Portamento Control
45LSB for value 1391Effects 1 Depth
46LSB for value 1492Effects 2 Depth
47LSB for value 1593Effects 3 Depth
48LSB for value 1694Effects 4 Depth
49LSB for value 1795Effects 5 Depth
50LSB for value 1896Data increment
51LSB for value 1997Data decrement
52LSB for value 2098Non-Registered Parameter Number LSB
53LSB for value 2199Non-Registered Parameter Number MSB
54LSB for value 22100Registered Parameter Number LSB
55LSB for value 23101Registered Parameter Number MSB

Channel Mode Messages
Control #Control Function
120All Sound Off
121Reset All Controllers
122Local Control
123All Notes Off
124Omni Mode Off
125Omni Mode On
126Mono Mode On
127Poly Mode On

Sound Set (Program Change Messages)
Prog #InstrumentProg #InstrumentProg #InstrumentProg #Instrument
0Acoustic Grand Piano32Acoustic Bass64Soprano Sax96FX 1 (rain)
1Bright Acoustic Piano33Electric Bass (finger)65Alto Sax97FX 2 (soundtrack)
2Electric Grand Piano34Electric Bass (pick)66Tenor Sax98FX 3 (crystal)
3Honky-tonk Piano35Fretless Bass67Baritone Sax99FX 4 (atmosphere)
4Electric Piano 136Slap Bass 168Oboe100FX 5 (brightness)
5Electric Piano 237Slap Bass 269English Horn101FX 6 (goblins)
6Harpsichord38Synth Bass 170Bassoon102FX 7 (echoes)
7Clavi39Synth Bass 271Clarinet103FX 8 (sci-fi)
8Celesta40Violin72Piccolo104Sitar
9Glockenspiel41Viola73Flute105Banjo
10Music Box42Cello74Recorder106Shamisen
11Vibraphone43Contrabass75Pan Flute107Koto
12Marimba44Tremolo Strings76Blown Bottle108Kalimba
13Xylophone45Pizzicato Strings77Shakuhachi109Bag pipe
14Tubular Bells46Orchestral Harp78Whistle110Fiddle
15Dulcimer47Timpani79Ocarina111Shanai
16Drawbar Organ48String Ensemble 180Lead 1 (square)112Tinkle Bell
17Percussive Organ49String Ensemble 281Lead 2 (sawtooth)113Agogo
18Rock Organ50SynthStrings 182Lead 3 (calliope)114Steel Drums
19Church Organ51SynthStrings 283Lead 4 (chiff)115Woodblock
20Reed Organ52Choir Aahs84Lead 5 (charang)116Taiko Drum
21Accordion53Voice Oohs85Lead 6 (voice)117Melodic Tom
22Harmonica54Synth Voice86Lead 7 (fifths)118Synth Drum
23Tango Accordion55Orchestra Hit87Lead 8 (bass + lead)119Reverse Cymbal
24Acoustic Guitar (nylon56Trumpet88Pad 1 (new age)120Guitar Fret Noise
25Acoustic Guitar (steel)57Trombone89Pad 2 (warm)121Breath Noise
26Electric Guitar (jazz)58Tuba90Pad 3 (polysynth)122Seashore
27Electric Guitar (clean)59Muted Trumpet91Pad 4 (choir)123Bird Tweet
28Electric Guitar (muted60French Horn92Pad 5 (bowed)124Telephone Ring
29Overdriven Guitar61Brass Section93Pad 6 (metallic)125Helicopter
30Distortion Guitar62SynthBrass 194Pad 7 (halo)126Applause
31Guitar harmonics63SynthBrass 295Pad 8 (sweep)127Gunshot

Meta-Events
TypeMeta-EventTypeMeta-EventTypeMeta-Event
0Sequence Number5Lyric81Set Tempo
1Text Event6Marker84SMPTE Offset
2Copyright Notice7Cue Point88Time Signature
3Sequence/Track Name32MIDI Channel Prefix89Key Signature
4Instrument Name47End of Track127Sequencer-Specific Meta-Event

Key Signatures
Data (hex)Key SignatureData (hex)Key Signature
F9 00Cb majorF9 01Ab minor
FA 00Gb majorFA 01Eb minor
FB 00Db majorFB 01Bb minor
FC 00Ab majorFC 01F minor
FD 00Eb majorFD 01C minor
FE 00Bb majorFE 01G minor
FF 00F majorFF 01D minor
00 00C major00 01A minor
01 00G major01 01E minor
02 00D major02 01B minor
03 00A major03 01F# minor
04 00E major04 01C# minor
05 00B major05 01G# minor
06 00F# major06 01D# minor
07 00C# major07 01A# minor

For more details on MIDI and MIDI specifications, please visit https://www.midi.org/.

Online Resources

© 2018-20 Jeffrey Paul Bourdier