Free Music Software written by Norm Spier (

Music Visualizer

MIDI-file Based Musical-Perception Feedback and Music-Analysis-Assistant Software

Incorporating New Non-MIDI-FIle-Based (June 2016) Ear-Training Features that Are More Flexible Than In the Other Ear-Training Software I've Seen

Windows XP / VISTA / Windows 7 / Windows 8 / Windows 10 SOFTWARE (Full Version: Free, No Ads)



(it helps to have open a copy of the Screenshot page for reference to screenshots while reading this):
. Note that, on that page, Screenshots (7) and (1b) showing all the controls I have gradually added in their current places. (All of the screenshots reflect accurately the output of the program, but if you are looking to find a control to adjust something, use (7) and (1b).)

When the program is started, no MIDI file is open. (If you want the midi-free ear training functions, don't open a MIDI file, and do click the "EarTrainingPanel" checkbox. (And note the instructions for using the midi-free ear-training functions are down near the end of this instructions page.) Otherwise, do open a MIDI File, which you do by pushing on the Open MIDI File button.) (By the way, I don't have a file open option under the "File" menu item. You have to use the button.)

You can change the MIDI file to another one by hitting the File button again. You can also close an open MIDI file with the "Close" button, which will take away the display of the notes from the MIDI file. (You would do this if you want to switch to the no-MIDI-file ear training features.)

(The program does not write to MIDI files, it only reads them. Thus, you don't have to worry about changes you make in the instruments, colors, etc. winding up in you original MIDI file.)

  • In the main (piano rolls) panel, the top piano-roll view is an ordinary Piano-Roll view.

  • The bottom Piano Roll shows all notes overlaid by pitch-name (all A's together, etc.). It is designed to make it easy to pick off harmony, chords, non-harmonic tones, etc.

    The top piano roll can be removed from the main panel by checking "NoTop PR". It can also be made to appear in a separate window on the side if you check "ExtraTopProll". (I did this because, if you use 24 key perceptograms, there is just not enough room to make out everything you need to make out with it all on one window.)

    The software displays piano rolls in the context of a user-selected key (or candidate key), which would typically be set by the user as a (possibly only suspected or to-be-tried) key of a song or a portion of a song or portion of a piece of music. The user selects this key is selected via the "Ky+" and "Ky-" pushbuttons, and the "minor" checkbox. Alternatively, one can use the middle mouse wheel. There are also hot-keys to rapidly switch to a non-adjacent key, described further below.

    When one selects a key/candidate key, the grey/white overlay on the piano rolls will indicate which notes belong to the scale for that key. Further, the tonic will normally be at the bottom of the bottom Piano-Roll display. ("Normally" means unless one uses the arrow buttons to the left of the bottom piano roll to change the starting note on that bottom piano roll. I stuck these buttons in to allow one to confirm the various triads very very easily from the bottom piano roll.)

    The user-selected key / candidate key also affects the various perceptograms, in a way described farther below.

  • Swipe-play and play through in short segments: On the main panel, if you have your left mouse button down when anywhere below the top piano roll, you play all notes at whatever instant of time you are pointing on. Alternatively, if you click the right mouse button on a point ahead of where the time cursor is (again anywhere below the top piano roll), the program plays to that point in the music. (If you have an "extra top piano roll" in a separate window, you get the same effects with your mouse in the small area below the piano roll.)

  • If you hit your left mouse button when pointed on a note in the top piano roll score, your hear that note in its instrument in the score. In any other place in the top piano-roll, you hear the piano (or other selected "reference sound instrument") version of the note.

  • To try and make tonic-related, chord-related, and melody-related sounds associated with a key or your candidate conveniently available:
    If you hit the middle mouse button (while the mouse is anywhere) you get a key-identifying sound like a cadence or scale. (Which sound this will be can be selected by hitting the button "Select Key Sound".)(Adjusting octave of the key-identifying sound: The octave that the sound is in is the one containing the last single note that you played by left mouse buttoning over the top piano roll.)

    You can also get these key-identifying sounds using the numeric keypad of your keyboard (make sure "num-lock" is on on your keyboard). (What keypad key produces what sound is shown in the screenshot near the bottom of these instructions on the ear-training parameter-selection panel.)

    If you hit the left-mouse-button while over a non-chromatic note in a non-octave-overlaid piano roll, you get the chord built on that note.

  • Playing notes from PC keyboard: If you hit any of the 13 keys that run across: 1 through 9 0 - = and backspace on the top row of the typewriter-portion of the keyboard, you get the set-key-based notes "Do" to "Do" by half-step (one octave above the most recent octave for which you did (a1) or (a2) or (b) prior). If you do the same thing with the keys one and two rows below this, you get the same notes an octave lower than that, and two octaves lower, respectively.

  • When you open a MIDI file with key information encoded, the key-context display overlays automatically. (However, be careful that in classical music, key changes often within a movement. It may also change in other types of music. Also, I have seen many MIDI files with incorrect key encodings, so you may have to beware.)

  • My minor key show in the display, when neither the "asc." or "hrm." buttons are checked, is the natural minor=descending melodic minor. [NOTE: The "asc." and "hrm." buttons are not shown in the screenshots--it is a newer feature.] These check boxes allow you to get the other minor scales.

  • On the top, and the side of the 1st piano roll, are 3 little white boxes. The small one zooms in (when you click on it), the big one zooms out, and the medium sized one is for grabbing and moving (when you drag it).

  • When there are more than 14 tracks in the MIDI file, you get access the information and control buttons and checkboxes for the remaining tracks by hitting the "v" or "^" buttons that I put right next to the "Ovs." button. I also have a little red box showing right above each button only when hitting the button will get you more tracks. (This feature starts 8/19/09 -- before that date, extra tracks will overwrite stuff at the bottom, making a mess of the controls.)

  • There is a "start marked section" marker and an "end marked section" marker to allow you to tell the program, or your mind, to focus on just a particular limited section (timewise) of the midi score. Those markers are green and black, respectively, and are shown in the screenshot just above the top Piano Roll. You set them by left and right clicking the mouse, respectively, in that same zone there where the markers appear. These mouse clicks are done: when the full (non-overlay) Piano Roll is on the main panel, above that Piano Roll; when the main panel has only a chord-overlay Piano Roll, you click over that. (The full non-overlay piano roll, when on the non-main detached panel, shows the markers, but you can not set them from there.)

  • The markers are used for loop-play.

  • You can set up to 10 positions in the MIDI music for rapid switch to and from these positions. You can set them only when the MIDI file is not playing, by hitting the "Memorize a Play Position" button (then entering memory number 0 to 9). While playing or not playing a midi file, you can move to any set position by hitting Shift+0 for memory 0, etc. Note that you must hit the digits at the top of the keyboard, not on the numeric keypad, for this to work. Also note that the memorized positions will not be retained next time you open the same MIDI file (this software does not write anything to the MIDI file--it is a read-only program).

  • You can change each (non-percussion) instrument that plays from what it is in the midi file, to any of the standard 127 midi non-percussion instruments. This does not write to the midi file -- it just holds for the duration of the session. The feature is new to the 3/30/09 version of the program. The buttons you have to hit to reset it are not shown in most of my screenshots, but are next to the "On" and "Mel"ody checkboxes for each track. (Right next to that, new, is the "midi channel" that the midi file instructs the track to use, from 1 to 16.) You can also change the reference-instrument, that is, the one that is used to play all non-midi-file reference notes and chords. (It starts out as piano).

  • Besides being able to change each midi file instrument and the reference sound instrument as in the last bullet point, you can also define a secondary "quick-switch" instrument for each midi file instrument and the reference instrument. (This choice comes up in the same prompt as the one for changing the instrument.) When you are swiping through the score manually (by moving the pointer below the top piano roll with the left mouse button down), or when you are generating the various reference note sounds, holding the right-arrow on the keyboard starting before or at the same time will sound the sounds in the secondary instrument. [The reason I put in this feature is to allow quick instrument switches in cases when you are trying to improve your sense of pitch detection across the timbres of the different instruments.]
  • When manually playing through a score, you can also hold the keyboard up-arrow or down-arrow to raise or lower the sound of all the notes in the score by an octave. [The reason I did this feature is to help with cross-octave pitch recognition.] Both this and the last feature start in the 2009.04.21 release.

  • The ability to change the reference sound instrument is designed to allow varying instrument for pitch perception exercises in and against music. One such use is to set it at the same instrument as a line of melody in the midi score being listened to, to experiment with melodic alterations and position in melody. Since I want you to be able to get the reference sound's spatial position, reverberation, etc., of the test sounds to match those of the midi file instruments exactly if you want, the reference instrument can also have its MIDI channel used adjusted. Since the midi file usually has resonance, spatial position, etc. coded for each channel, if you adjust the reference instrument Midi channel to the channel of the track whose instrument you are matching (and also possibly adjust the "reference notes volume" slider), you should get a very good match. (That is, I don't reset the reverberation, etc. when I send down the reference sounds, so that information is the same for the channel as what the MIDI file sets it to.)

  • Also not shown in many of the screen shots because it is new, the name of the midi file that is opened is now displayed in the frame of the main window in case you forget what you are playing.

  • To allow you to use your own favorite and instrument-informative standard colors for each instrument, I have buttons that allow you to change the color that each instrument is displayed in in the Piano roll. (The buttons are just to the right of the color displayed in the track key. They are not shown in most or any screenshots, however, since they are a recent addition.)

  • My software has two types of "Tonal center Perceptograms" The first is "distributional" (black and red shades--described below), which is usually the more helpful one in bits of music where there are not a lot of simultaneous notes (i.e. chords). The second is the "chord" version (red, green, yellow, and orange shades--described farther below.) Both can be displayed for all 24 potential keys (where they are used to determine key, key characteristics as the music perceptual features move across keys or sometimes out of all keys to perceptual non-keyness and key-confusion), and in a chosen-key version, where you get a larger, easier-to-see display for the key the bit of music is in. Often, it is helpful to look at both, so you can rapidly switch between "distibutional" and "chordal" using the "b" and "n" keys (pre 9/7/2011 these were "m" and ",") at the bottom of the keyboard. (Further details below--note actually the "distributional" has 2 different variants, described below.) Actually, when concerned with tonality, since it varies so rapidly in much music, with very brief suggestions of excursion into another key, and since the elements of tonality are both chordal and melodic, you usually have your finger on a number of keys on the bottom row of letters of the keyboard. Besides "b" and "n" for switching type of perceptogram: if you don't have a big enough screen to see adequately both piano rolls and the 24-key perceptograms, you use "." and "/", for switching between all-potential-key and chosen-key perceptograms (with the top piano roll knocked off for room when the all-potential-key perceptograms are displayed). You can also use spacebar to switch between 3 useful configurations of top piano roll on-off and # of keys in the perceptogram. You also us "z","x","c", and "v" for rapidly changing the chosen key. (The functioning of these keyboard keys is described in detail elsewhere on this page.)

  • Tonal center Perceptogram--"Distributional" type (shown in red at the bottom of screenshot 1 on the main page). To turn this on, click KyAn at the bottom right (this label used in the current software version). For each of the 24 potential keys, it gives a visual of two things: one is in black shades, the other in red shades. The black shades are a representation of what proportion of time the sounding notes are not in the key (i.e. are chromatic to the key), darker for more chromatic. The red shades represent the proportion of sounding-note time for non-rest = "active" (including chromatic) notes in the key. Darker red represents more active+chromatic tones. (Note: rest notes are tonic, mediant, dominant for the key. The other 9 are non-rest, = active+chromatic.)

    As you might guess, you look for potential keys by looking for whitish areas in the black-shade-zones for the key, which means the music is tending relatively towards non-chromatic tones in that key, relative to other keys. The red zone displays an additional sound characteristic in the key -- whitishness there means a less tense sound. It often can be used as a tiebreaker when you have two or three keys that are all white in the black/white chromaticity.

    This typically will narrow you down to 1 or 2 or 3 potential keys in a segment of tonal music -- beyond that, you look for chord patterns (lots of tonic chord "I" in the true key, V-I and other cadences where the music emotionally pauses), etc. and possibly other patterns (leading tone usage) associated with a key.

    The perceptogram plot shades shown below every tone-combination-grain of music X, is based on the music starting a certain number of tone-combination grains back from X to X. This total number of grains defaults at 6 (i.e. 5 grains back), but you can adjust it from 1 to 40 with my 3rd slider up there. Also, I have stuck in an experimental option to do the plot on just presumably melodic notes -- where I have used at each time the highest tone among the tones of shortest duration. You get that if you check "Mldc."

    [Note that in minor keys, the black (chromatic to key) half of the display treats as non-chromatic whatever is in any of the scales checked in my 3 checkboxes that appear after the "MinorNHM" text, where "NHM" indicates the button-order natural, harmonic, and melodic ascending. This functionality was added starting in the 9/10/09 release.] As you might expect, there will be times when both a minor scale and the major with tonic 3 half-steps up will be almost white at the same time. The way to distinguish the key is chords, and usually the wrong choice of the two will show not enough tonic presence.

    Also note that when the graphic key-help is on, there is a lot of processing going on. I have noted some non-smoothness when the MIDI file plays on my PC with the graphic key-help on, so you may want to keep it switched off if you are not using it.

  • Tonal center Perceptogram--"Chord" Type [This is really the more useful perceptogram, but the "distributional" is useful or better in some cases] You get this when both KyAn and Chrd are checked in the bottom right. If you also check "1:", you get the tonal function version for your chosen key, rather than the 24 potential keys. As shown in screenshots 4 and 5 on the main page, green represents tonic function, red dominant function, yellow sub-dominant. The substitute chords are in the same color, but a little more washed out. Orange is III function. The height represents the number of pitch classes present. There is an adjustment that you will want to make based on chord richness for your piece of music. You can adjust the "top of the scale" for the graph from 1 chord note up to 5. You do this by using the "N-back/MxNts" slider. In this mode ("Chrd" checked for chordal=chord functional analysis), the meaning is MxNts=Max Notes. When set to >5, it processes as 5. In setting this slider, you want to set it so your richest chords (most separate pitch classes) run to near the top of the plot. [Details: my chord-finding algorithm is primitive, but it is very helpful if you understand how it works and practice with it to confirm you see how it works. During the time when each simultaneous set of notes is sounding, it picks the diatonic chord (of the 7 diatonic chords) with the most pitch classes, allowing 1 missed chord note after the chord's starting note. There may be more than 1 chord with the maximum number of its pitch-classes found, but not usually (except 1-class-present chords). In this case, it picks the lowest numbered root. (Also, if the third of a chord is not present, it plots at a height corresponding to one less than the number of pitch-classes present. I did this to help distinguish each major from its parallel minor key). Note that one pitch class of a chord present counts as a chord, but the plot will be very short if MxNts is set to >1. [Note that the chords in the minor keys default at being recognized if based on any of the natural, harmonic, and melodic ascending scales. You can switch off any one or two of these if you want to, using my 3 checkboxes that appear after the "MinorNHM" text (where "NHM" indicates the button-order natural, harmonic, and melodic ascending). The MinorNHM boxes also affect the black (chromatic-to-the-key) half of the distributional perceptograms described above, starting in the 9/10/09 release.]

    Chordal "lack of fit" feature: These items are added to the color-coded tonal function plot(s) by clicking on "Chrd Lof". They are designed to aid in finding key, borrowed and altered chords, secondary dominants, and non-harmonic tones. What is added is that for each key in the color chordal function plot, a diagonal criss-cross goes up any additional distance (up to the set plot maximum value MxNts) to the maximum number of notes in the best fitting chord in any key, and further, a one-direction diagnonal takes you any further additional distance (up to MxNts) to the total number of pitch classes in the bit of music being analyzed. The diagonal criss-cross thus may indicate this is not the key of the chord (either not the key, or a secondary dominant or borrowed chord or Neopolitan/other altered chord). The diagonal criss-cross may also indicate non-harmonic tones, with the better fit of some chord in another key being just a coincidence. The diagonal slash tends to point out non-harmonic tones. See screenshots 6 and 7 on the main-page for an example. ( Also, note that, as stated, the settable parameter "MxNts" truncates the plots, so make sure it is set high enough -- depending on the density of the chords for best readability without loss of information.)

    Chord position feature: When color-coded Chord analysis is engaged "Invsn." can be clicked to show inversion. Inversion for non-root-position chords are shown with a horizontal black mark within the chord. The scale is that on the right (not explicitly numbered, but going from 1 on up by 1).

    Note these limitations on the "chord" perceptograms: (a)They show what is going on chordally very literally during every bit of time when a particular set of notes is sounding simultaneously. This differs from what a music analyst would find, in that the music analyst accounts for various blurring when sounds are non-simultaneous, such as arpeggios, brief non-harmonic tones, and other things. The music analyst is of course being reasonable, in that perceptually the blurring occurs in the listener. Thus, the chord perceptograms are not the last word, and you can investigate further using the pianos rolls. (At any rate, note that there is some subjectivity that is unavoidable. From the 3rd edition of Piston's Harmony, p. 132: "The question ... of whether a vertical combination of tones is an independent chord, or just some melodic tones which happen to harmonize at the moment, depends on various considerations, and is often open to differing interpretations.")
    (b)Secondary dominants and borrowed chords are not part of the direct color-code for each key, but you can catch them when you see lack of fit in the current key, and generally identify them using the all-potential-key chord perceptograms.
    (c)In classical music, Neopolitan 6ths, the various nationalities of augmented 6ths have to be determined manually using the bottom piano roll once you see lack of fit in the chordal perceptogram.

  • More on key determination: Here are the basics of how the software will relate to key: In a piece of pop or folk music, key often does not change, or changes maybe once or twice in a song. In classical music, key typically changes within movements, often frequently. Also, the degree of key-fittingness (also called the "degree of tonality") may vary through the piece in a key, as an intended feature of the music, and this is apparent in the listening (in-keyness conveys a comfortable familiar feeling). Often, clear key-unfittingess will be used to jolt one's sense out of one key and into another. Further, new key may be hinted at or the listener may be teased around with ambiguous key, until a new key is established. Certain forms (e.g. sonata) have traditional patterns for key, which later composers (Beethoven, etc.) take liberties with.

    In a given bit of music, the key will fit the Piano-Roll key overlays pretty well (up to standard exceptions: non-harmonic tones, borrowed chords, and for classical music incursions into secondary function, secondary dominants, etc, and "pedal" notes). That is, mostly the notes will be non-chromatic, that is, not in the gray, e.g. like in the top screenshot on the main NORMS MUSIC VISUALIZER page.

    Other clues: in the correct key, the chords will have a commonness and progressions appropriate for the key, including cadences (seen in the visualizer most directly by my chordal representation colorations). (You can read about common chord progressions in composition or harmony books geared to whatever type of music you like.) The commonness of chords and sequences of chords depends on the style of music. In classical music before the 20th century, the V-I progression is relied on heavily to cue the listener to key-- thus, in type II key determination help, look for deep-tomato-red immediately followed by dark-tomato-leaf green. (Red then green may have a little interruption due to my method being imperfect in dealing with non-harmonic tones=passing tones, etc.--you can analyze through this using the octave-overlaid piano roll immediately above.) Importantly, the green, in particular tomato-leaf green (a "I" tonic chord), occurs where the music sounds "at home"--sort of relaxed (and it is easy to hum the tonic at this point in the music). If you don't recognize "I"s immediately, you should begin to recognize the sound as experience develops your neural pathways.

    Also musical phrases tend to end in full cadences or half-cadences: thus either the tomato red followed by tomato-leaf-green (full cadence), or just tomato red (half cadence).

    Further, the notes that make their way to the melody or otherwise stand out in their lines ("motive notes", etc. ) will have higher commonness for less tense scale positions, and will be used in a fashion characteristic for the scale: e.g. melody will sound at rest in the 1,3rd and 5th scale notes, non-scale notes will usually be approached and left by half-step. Also, the leading tone will tend to lead to the tonic. 3-2-1 scale positions may also be common in leading to the tonic. You can also listen and hear that the melodic notes fit the key, just as the chords fit the key. In addition, apparent transposition of a bit of melody or motive which appeared earlier when key was clear may be the key to the current key. Exactly the way the melodic sounds and harmony fits the key will depend on the type of music, so you pick up recognition of key with experience.

    All of the visual cues from my visualizer will have their aural counterparts. (This software should help you correlate the two.) The particular key, and the fittingness of the key, should vary together aurally and visually.

    Note that, in certain sections of certain basically tonal musical pieces, key is unclear or ambiguous, even to the experts. This makes sense, given that key and key-fittingness and ambiguity is really just something not fully defined, but rather something in the handling of the harmony and melody that is ultimately defined by the perceptual response that is picked up and perceived by more experienced and/or trained and/or gifted listeners.

    Also, note the form of the music: sonata, binary, minuet, etc. often has precise or probable implications about the pattern key will follow, and this is a significant clue.

    My explanation of key, of course, is best understood if you read at least some light music theory, as from selected sections of a basic theory or composition book.

    A nice illustration of how key varies in classical music, often tentatively and with suggestions only, can be gotten by using Kelly Dean Hansen's analysis of opus 98 = Symphony 4 of Brahms from here. (You can find free midi files of that work at Classical Music Archives, where a class of membership that is free will allow you to download up to 5 midi files a day.) For Brahms #4 Symphony, checking the middle box only after my "MinorNHM" seems to work best for me. That is, Brahms seems to be doing minor harmonies with only chords from harmonic minor.

  • To make room for the various 24-potential-key displays on the bottom, you can not display the top piano roll by checking "NoTopProll"

  • Rapid (hot-key) toggling of both simultaneously "NoTopProll" and "1:" (vs 24 key) key help ("KyAn") is done for the duration of the keypress by pressing the period key, and permanently by pressing the "/" key. The main purpose of this is to allow rapid switching between showing all notes (top piano roll) vs color-coded tonal chord function for all keys. If you start with exacly one of "NoTopProll" and "1:", you get this alternation.

  • Rapid (hot-key) switch between 3 modes: top piano roll plus 24-key perceptongram, top piano roll plus just chosen key perceptogram, and no top piano roll plus 24-key perceptogram is done with the spacebar. Note that I have made the program remember the proportion of screen that each item holds that you adjust to in each of these modes. Note this spacebar feature starts in the 10/2/09 release.

  • Rapid (hot-key) toggling between "chordal" and "distributional (non-melodic=all notes) tonal-center perceptograms is done by hitting the "period" key. There is also a rapid 3-position toggle which also adds the "distributional melodic" perceptogram into the mix by hitting the comma key.

  • Rapid (hot-key) change (or test change) of candidate-key (grey/white overlay, etc.) is possible as follows:

    (a) in either the bottom or top piano roll, point the mouse to a pitch-class. Hitting keyboard "z" temporarily changes key to that major, "x" to that pitch-class minor. (When the keyboard key is released, you are back at the original key.) Keyboard "c" and "v" do the same changes, but the change holds after the key is released.

    (b)If you have a 24-key key-help being displayed (not 1-key mode: all 24), you get the same kind of actions when you point over a region clicking the same keys. Since the mouse position takes care of the major/minor distinction, "z" and "c" both get you temporarily to the requested key, and "c" and "v" get you there permanently.

  • You can make a detached-window full-height copy of the top (non-overlayed-notes) Piano Roll (added 9/7/2011). Do this by checking the "detxPR1" (="detached extra Piano Roll 1") checkbox on the main window. (This detached window is "inactive" and does not support the touch-and-play-note features of the top Piano Roll when on the main window. Further, the vertical range of notes it shows is controlled by and is the same as those on Piano Roll 1 when shown on the main window. Thus, if you want to adjust the vertical range of notes shown on the detached Piano Roll 1, you have to get a Piano Roll 1 on the main window (i.e. use spacebar) and adjust from the main window.)

  • The "mask NP" checkbox stands for "mask non-playing". When this is checked, only playing notes are displayed. The purpose is to let you learn to pick out note relation to tonic (i.e. melody track only selected) or chord, non-harmonic tones, etc. That is, you close your eyes or look away, slide to a new little bit of music, listen, guess what you have, and confirm or find your mistake.

  • You can transpose. (Note this is playback only. The program only reads MIDI files. It does not write them like a sequencer would.)

  • You can use the program without a separate MIDI device by using the (default) Microsoft software synthesizer. But if you happen to have a MIDI-compliant keyboard or something that you can connect via USB cable, you should get clearer sound, particularly when multiple notes play. This is so even with modestly priced keyboards of below $200. (You select the MIDI device in a small panel that comes up with my software--not shown in the screenshot.)

  • You can select specific tracks. (This affects what is displayed, what is played, and what is analyzed in the various chordal/key analyses.)

  • If your MIDI file has a melody track or other tracks that you want to focus on, you can instruct the program to highlight those tracks (in bright yellow) and display them over other tracks. To do this, check the tracks in the second column of track checkbuttons. Here is an example where I've done that. It is a bit of popular music, where the user has determined and set the correct key, and also turned off the tonally-misleading percussion track. The user is manually moving around the music, listening. Note the clear display of melody, chords, non-harmonic tones -- all within the key context. (In music where melody shifts instruments/tracks, you of course want to keep changing the highlighted tracks as you work your way through the music. Also note there is an alternative use of the highlighted track: if you highlight the bass, then you get root or inversion from the bottom Piano Roll alone. However, you probably will want to glance at the top Piano Roll, anyway, to see how the voices move into chords.)

    (Detail: You might also note that, generally, when notes from different non-highlighted tracks overlay each other, my program is wishy-washy about which one goes on top, and this varies as you play through the file. This behavior has to do with my algorithm choice, in an attempt to get quick program response without a very complicated algorithm.)

  • To adjust relative size of the two piano-roll areas, drag that little white box between the two piano rolls on the right.

  • To shut off the program, click the x at the upper right of the main window of the program (not the MIDI device window).

  • Sing-along/hum-along/play-instrument-along pitch feedback. indications: (The MIDI sound coming out of the Music Visualizer is best going through headphones, so it doesn't get mixed with the single pitch humming/singing/etc. being detected.)

    To turn the pitch feedback on, on the "MIDI and Audio Devices" panel, check "hum along feedback". You may also need to adjust your microphone volume (in Windows mixer and volume "Recording Devices" area) so that my "MIDI and Audio Devices" shows, in the top rectangle within the white, a signal coming in of substantial volume, but not too high so that the top of the signal clips. (You now will have a pitch feedback arrow overlaying the piano roll views.)

    (You can add a "windshield-wiper-like" fine pitch indicator by checking "Ang." (for angle). When you do this, a vertical needle ("wiper") means pitch is right on the note, and otherwise the "meter" runs from 50 cents (=half a half step) below note center at full left to 50 cents above note center at full right.

    Also note, you can transpose the hummed pitch from the to show from 3 octaves low to 3 octaves high (octave transposes only) on the Music Visualizer. Just hit the "SpPiTrOct" button to raise the transpose amount 1 octave, or hit the little "v" button to the left of it to lower 1 octave ("v" button starting in 8/19/09 version). The purpose of this is to support singing exactly a desired number of octaves above or below the melody or some other line of the music.)

  • Sing-along/hum-along/play-instrument-along pitch PATH feedback.: To get the full path of the pitch to display, as well as the "hum along feedback" on the "MIDI and Audio Devices" panel, you need to check, on the main panel, both "record" and "show prior", and the pitch path will only be generated while the midi file is being playing.

  • Generating Midi Tones of CONTINUOUSLY VARIABLE PITCH:Option 1: When you press the "F1" key with the mouse pointer over the top Piano Roll, a continuous tone sounds at the pitch you are pointed to, varying continuously. A red exact pitch pointer appears, just like the one use for sung pitches are displayed. Option 2: When the mouse pointer is below the top Piano Roll and you press "F1", you get a continuously varying pitch, that varies by the up and down height of the mouse pointer. You can raise and lower the center of the pitch range by hitting "F2" and "F3", and you can enlarge and shrink the range (i.e. # notes covered) by hitting "F4" and "F5". (I put this feature in to allow you to experiment with pitch-match and sound of harmony with slightly varying pitches.)

    Note that the instrument that sounds for the continuous pitch is the 2nd (quick-swith to) instrument for the reference sound. When the program starts up, this instrument is Church Organ, which is a nice sound that doesn't die down over time like Piano. [Also note this feature was added in the 5/4/09 version.]

    If you are manually playing through the score of music, trying to match pitch via the continuous pitch, sometimes even at maximum continuous pitch volume (controlled by the "volume: reference notes" slider), the many-instrument sound of the score drowns out the single-instrument continuous pitch. To address this, I put in the "Vsup" checkbox. This stands for "volume suppression", and it lowers the volume of the manually played score only by a good bit.

  • EAR TRAINING FEATURES THAT DON'T USE A MIDI FILE: The screenshot below shows these features, and, in particular, the "ear training parameter panel" on the right has text describing what the numeric keypad (and page-down) keys do in this mode (which you should consider as part of these instructions).

    You get into the Ear-Training mode by closing any midi file you have opened, and then ticking the "EarTrainingPanel" box.

    The features allow you to listen (and hear key-ID tones such as tonic cadences and also be quizzed to identify tones) or sing/hum (a scale, etc.) in a randomly chosen key (that you have some control over, and can change whenever you want).

    After you adjust parameters for the set of instruments you want to choose randomly from, key ranges, pitch ranges on the "ear-training-parameter panel" (the right panel in the screenshot), you then change keys randomly, change instruments randomly, change quizzed-on pitches, repeat quizzed-on pitches, and get various key-identifying sounds all by using the numeric keypad keys. Each of the aforementioned changes can be done exactly when you desire and need to for best learning, and are not constrained by the fixed structure of an exercise.

    The particular ear-training exercises you do are, in the random key, (a) humming or singing in that key, and (b) trying to identify pitches by their position within that key. (You probably want to have hummed pitch feedback on all of the time, even when your exercise is pitch identification, as that may help your learning. Obviously, you want to look at that feedback only when it will help your learning.)

    Note that in general, my design of the program is so that when you are trying to sing, hum, or identify pitch, you listen, but don't look at the PC monitor. The controls for any sounds you need are on your PC keyboard. You look at the PC monitor when you need some help, or to check if your guessed pitch is correct, or if your sung pitch or sung pitch path is accurate enough in your judgment for your developing level of skill.

    Note that you have to have the "NumLock" on your computer keyboard on for the numeric keypad keys to work. Also, to have the numeric keypad keys to work, you have to have the Piano Roll file "in focus" (in PC terminology), which means you may have to just click anywhere on it (say, after you switched "focus" to the ear-training-parameter panel by adjusting something on it).

    The aural feedback that is available when there is a MIDI file open (describe elsewhere above), such as using your computer keyboard to play notes in the key, and hum-along pitch-feedback, is also available in no-midi-file ear training mode.

    In the screenshot, the random key is D 0 major (in the scaling of my program, A0 is A220hz = the A just below middle C, which is C0; octave numbers go up at A). In the panel on the left, the green line reflects the tonic pitch. There's also the pitch path of someone (O.K., it was me but I was really tired at the time!) attempting a Do Re Mi then Fa So an octave below the tonic, but I was not doing very well, and the Mi is low and the Fa and So are really high. Also there's some undesirable sliding from one pitch to another.

    Separately, the current sung pitch (Fa an octave below tonic) is being shown with that red arrow. The pink block is indicating that the last quizzed on tone was Ti just below the tonic. (The quizzed on tone in that pink block is not shown until you hit the numeric keypad ".")

    You get the hum-along pitch feedback and hum-along pitch paths the same way you do when a MIDI file is open (described above).

    Thus, to see the hum-along pitch with an arrow (but not show a pitch path) check "Hum-along feedback" on the "MIDI and Audio Devices Panel".

    To get a pitch path, besides checking "Hum-along feedback" on the "MIDI and Audio Devices Panel", check "HUM ALONG FREQ: record" and "Show Prior" on the main piano-roll panel, and the pitch path will show when you hit "Play" on the main piano-roll panel (or alternately the "Insert" keyboard key), and will stop when you hit "Stop" (or the "Home" keyboard key) on the main piano-roll panel. You hit "<<" (or the "Page Up" keyboard key) to back up the recorded pitch path so you can start with a new pitch path (by "Play" or the "Insert" key). You will have to hit "<<" or its alternate the "Insert" key eventually, as there is a one minute limit on the length of the pitch path.

    As indicated above, you probably want pitch feedback on all of the time if you want to see hummed pitch feedback all of the time, so "Hum-along feedback" on the "MIDI and Audio Devices Panel" would be checked. Really, you might as well give yourself the option of also seeing your hummed pitch path, so why not have "HUM ALONG FREQ: record" and "Show Prior" on the main piano-roll panel checked all the time. (Then, when you want your exercise to be humming or singing where you will examine your pitch path, the "Insert", "Home", and "Page Up" keyboard commands are all of the controls you need, which will allow you to, if you want, not look at the pitch path until you are done making the particular path with your humming/singing.

    Incidentally, in case it is not clear, you can stay with one MIDI instrument for all of the tones if you wish. For piano, just don't do any random instrument changes. To choose just one other instrument for each or both of the "Key Orientation Sound" and "To Be Quizzed On" instruments, first select so that just one instrument is selected. Then use the "/" and "-" numeric keys to randomly select from the one instrument giving you that instrument. ("Program-Insider Secrets" Alternative: You might have figured out that my program stores the currently selected for each of the two ear-training instruments in the same memory as holds the Reference "main" and "quick switch to" instruments used for other features of the program. Thus, you can reset them by hitting the "Ins" button next to "Ref" on the main piano-roll panel.)

    Also, when you do have multiple instruments, and, in particular, when the "Key Orientation Sound" and "To Be Quizzed On" instruments are different, you may need some help and want to play some various notes using the top 3 rows (of non-F1-F12) keys on the PC keyboard, or an external MIDI keyboard from one instrument or the other. The default for both keyboards comes from the "Key Orientation Sound" instrument, but if you hold down the right pointing arrow (near the numeric keyboard), the sound from those keyboards is from the "to-be-quizzed on" instrument.


  • The program gives reasonably adequate musical sound using Microsoft's built in software synthesizer ("Microsoft GS Wavetable SW Synth") used to generate the MIDI sounds (i.e. as "MIDI Output Device"). However, if you eventually decide you want to use this program a lot (or other software that currently uses the "Microsoft GS Wavetable SW Synth"), you can do much better, for free, if you are willing to do a few downloads, using CoolSoft's Virtual MIDI Synth. (You also need a free soundfont and a free decompressor for the soundfont--see my "related links" page.)

  • For the maximum music comprehension benefit, the user should have, or be acquiring, at least a very basic knowledge of music theory: of key, chords, chord progressions, passing tones, etc.

    When you open a MIDI file, MIDI non-pitched percussion sounds will be turned off automatically, that is, the track unchecked, upon opening a file. (This is to keep them from messing up the pitch representations and chordal analyses that the program produces.) If you want to hear them, you can turn them on, but note that the chordal analyses, etc., will be messed up while the tracks are on.

    When you change MIDI OUTPUT DEVICE while a MIDI file is open, this usually winds up being done after the instrument selection records are hit in the MIDI file you are playing. You might get only piano sounds until you backup my software to the beginning of the MIDI file with the "<<" button.

    Mouse Pointer Setting Using On Older versions of Windows Only: When using early versions of this program some years ago on older versions of Windows (Windows XP?, Vista?) I observed that I had to turn "enhanced mouse pointer precision" off in Windows while running the program, or else the "swipe mode" play of MIDI files in this program would have the mouse pointer land where it should not be. (This does not seem to be an issue in Windows 10, where the problem does not occur with "enhanced mouse pointer precision" on or off on my PCs.) In any case, with earlier versions of windows, if you observe the problem, turn "enhanced mouse pointer precision" off.

  • Since I have learned some things and have had fun with the Temperley/Sleator Linux-based Melisma Music Analyzer, but hit a problem converting some MIDI files I had to their .notes input format using their conversion program, the Music Vizualizer program produces that .notes format. (Note if you use Music Visualizer to generate the .notes file, you have to move the .notes file from Windows to Linux for Melisma: a memory stick is one way. On two different PCs, the linux network transfer utility should do it pretty seamlessly Windows to Linux transferring in Linux for at least Fedora linux.) Anyway, you can generate the .notes file by using a command under the "File" menu item (not shown in my old screenshots). The .notes file will be generated from just the tracks that are on when you run the command--the reason for this is so that you can get rid of percussion tracks, which are MIDI-encoded as false notes, and will mess up Melisma's interpretation. I also added a time, in seconds, below the bar number, for best compatability with the Melisma output (which is in milliseconds). (However, note that I think their program automatically sets first start note to time 0 sec, or something like that, so you may have to bear in mind an offset when comparing the Music Visualizer timings to theirs.)


    Version 2016.07.14: Added optional "all white keys" transposition of midi keyboard playing of scale tones in trial scale; fixed issue in show only played notes mode where some unplayed notes were showing.

    Version 2016.07.10: Fixed midi file name truncation on main window header for very long path names.

    Version 2016.07.01: Fixed error occurring on rare Bach files from KunstDerFuge site that had multiple track name parameters per track.

    Version 2016.06.26: Gave pitch path start, stop, and << alternatives on the keyboard.

    Version 2016.06.23: Tiny little improvement, allowing one-sound key reference sounds to be cut short when the numeric keypad key is released.

    Version 2016.06.22: Ear training features (that do not use a MIDI file) added.

    Version 2016.05.30: Added bar numbers to detached 2nd non-overlaid piano roll.

    Version 2016.05.26: Added short segment auto play through by pointing with right mouse button when in anywhere not in a non-overlaid piano roll. (Also switched some middle and left mouse button functions.)

    Version 2016.05.21: Fixed two bugs affecting occasional midi files, and issue on display of manually played single score notes.

    Version 2016.05.08: Fixed problem on midi files that contain notes of length 0.

    Version 2016.04.27: Major revision, removing flicker issues, adding MIDI controller input, building in pitch-detection (instead of linking to Spectratune software), added hum-along pitch-patch tracking, and a few other general improvements.

    Version 2014.02.04: Occasional lock-up of played notes and cue-sounds fixed.

    Version 2014.01.16: Added arpeggiated tonic chord as one of the key-related sounds. (May help people with sight-singing.)