Return to MAIN Tonal Vision Page

TONAL VISION MUSIC ANALYSIS ASSISTANCE SOFTWARE INSTRUCTIONS






DOWNLOAD THE TONAL VISION FREE MUSIC COMPREHENSION TOOL HERE.




EXPLANATION/INSTRUCTIONS:

  • Without a basic knowledge of music theory, the user will be able to correlate melodic patterns, and perhaps dissonances, with the written music, and should be able to observe the repetitions and near-repetitions in the musical form. However, for the maximum benefit, the user should have, or be acquiring, at least a basic knowledge of music theory: of key, chords, chord progressions, passing tones, secondary dominants, secondary function, etc, from either an elementary harmony or an elementary music composition book. I believe the software is of great benefit to be used while reading along with a harmony or composition book, especially as many of the example music in the book will be available on the web in MIDI form for free. (Since the program shortcuts fluency in traditional music notation, music students in academic programs should be careful not to shortcut developing that fluency, in accordance with the guidance of their teachers.)


  • The top Piano-Roll view is an ordinary Piano-Roll view.


  • The bottom Piano Roll shows all notes overlaid on one octave. It is designed to make it easy to pick off harmony, chords, non-harmonic tones, etc. (E.g., see the last two chords are a V-I cadence, with no non-harmonic tones, and with the V being a seventh chord and the I being a triad, and both being in root position.

    By default, when one selects a key (as the key or "candidate key" of a whole song or the key or "candidate key" of the portion of a movement of classical music under examination), the grey/white overlay on the piano rolls will indicate non-chromatic note of that key. Further, the tonic will be at the bottom of the bottom Piano-Roll display. (The arrow buttons to the left are really not necessary, but they allow one to change the starting note, just to confirm triads, etc., are identified correctly.)


  • If you have your left mouse button down when below the top piano roll, you play all notes at whatever time you are pointing on. (You can slide through the score at your own pace this way, if you hold thatleft button down.) In this mode, to allow a nice slide through without having to reposition the scroll time position, if you have the mouse pointer down on the second piano roll, it will scroll the score half a screen ahead when you are near the end of the currently visible part of the score. [To make the scroll-half-screen ahead work without overshooting, you have to put the Windows Mouse Property (Under Pointer options) "Enhance Pointer Precision" off, or you get an overshoot.]


  • If you hit your left mouse button when on a note in the top piano roll score, your hear that note in its instrument in the score. In any other place, you hear the piano version of the note.


  • To try and make sounds associated with a key very conveniently available: When you have key context on: a)If you RIGHT click on any of the first few notes above a tonic in the area augmenting the top Piano Roll to the right (e.g.above my measure 382 indicator in screenshot 2) you get tonic, or tonic chord, or ascending or descending scale, or cadence, or random-order scale (depending on how many notes above the tonic you right-clicked).
    b)if you do this anywhere else in the top piano roll, on a non-chromatic note, you get the corresponding triad.
    c)Having done (a) or (b), if you right click while playing the score interactively (i.e. mouse below the top piano roll through bottom of bottom piano roll), you get the last sound you got from (a) or (b). By putting this (c) in, I am trying to make critical reference sounds available as you listen interactively to the score. Also: : 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 notes "Do" to "Do" by half-step on the most recent octave for which you did (a) prior. If you do the same thing with the keys one and two rows below this, you get the same notes an octave higher, and an octave lower, respectively.


  • When you read in a 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 some 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).


  • 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.


  • The markers are used for loop-play, and also in one of the "% non-chromatic calculations". (See next item.)


  • Advanced key-determination help--type I (added 3/08, 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 both the red-shade-zones and black-shade-zones for the key), which means the music is tending relatively towards non-chromatic and rest tones in that key, relative to other keys.

    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 keyhelp 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."

    Detail: for minor potential keys, in the graphics I have taken tones 8, 9, 10, and 11, all of which appear in some, but not all, of the variations on the minor scale as 90% non-chromatic. (This adds at most a very slight greyishness to the minor black-shade area when all notes are in one of the minor scales but some of these are 8, 9, 10, or 11.) 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.


  • Color-Coded Tonal Function = (also) Advanced key-determination help--type II (added 5/22/08)
  • 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 chord notes for the minor keys are based on the harmonic minor scale.]

    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 in the "show 1 key only", "Invsn." can be clicked to show inversion. (See screenshot 8). 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 items about the color-coded key finding/functional analysis: (a)Arpeggios are not handled: you have to do these in your head manually, using the grey/white indications of the non-chromatic notes. (b)Secondary dominants and borrowed chords are not part of the direct color-code for each key, but are easily determinable using lack-of-fit features. (c)Neopolitan 6ths, the various nationalities of augmented 6ths have to be determined manually after seeing lack-of-chord-fit. (d)As with arepggios, the algorithm is very literal and does not blur together notes into chords when there is a little gap in time, so you have to use your visual or sonic perception do this to match a textbook Roman Numeral analysis.

    Also note that in my current release, a V-I cadence is tomato-red followed by tomato-stalk-green, so you can try to pick that out in looking for classical-music key markers.



  • (Older) Basic key determination help: when it is unknown for a song or a section of a piece, the 3 "%NC" buttons determine % of notes that are non-chromatic in every major key. The first button does it for what's on screen, the second for between markers, and the 3rd for the whole file. (If specific tracks only are selected, it does it just for the notes in those tracks.) The output appears below the lower Piano Roll. Note that the labels for those percents are major key. For natural minor, you go down 3 half steps. Note that within minor, you have to bear in mind that my calculations are for natural, and make mental adjustments.


  • More on key determination: Here, I am not, frankly, an expert, and I have written this software to make me more of an expert. Here is what I have gleaned from the literature and using the software. 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 will vary within the time in a key, as an intended feature of the music, and this is apparent in the listening (in-keyness is a comfortable familiarity like one's home) as well as in the visualizing with this software. 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 overlay pretty well (up to incursions into secondary function, secondary dominants, etc, and "pedal" notes). (However, note all but the last of these are really very short transitions into another key). 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 Tonal Vision page. (The lower piano roll is the best place to look for this aspect. Also note with minor you have to bear in mind the difference in the top 4 half-steps in the ascending and descending melodic scales, and the harmonic scales--they are not shown in the grey.) (This typically narrows down to 1 major and 1 minor key.)

    Other clues: in the correct key, the chords will have a commonness and progressions appropriate for the key, including cadences. 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 tomato-red immediately followed by summer-grass-green. (Red then green may have a little interruption due to my method being imperfect in dealing with non-harmonic tones=passing tones, etc.--analyze through this.)

    Further, the melody and motive notes will have higher commonness for less tense scale positions, and will be used in a fashion indicative of tension or rest. 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 key fits the scale positions in the melody, and similarly in the chords.

    In addition, apparent transposition of a bit of melody which appeared earlier when key was clear may be the key to the current key.

    All of the above visual cues 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.




  • 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 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 change (or test change) of candidate-key (grey/white overlay, etc.) is possible as follows:

    (a) in the bottom (pitch-class overlaid) piano roll, point the mouse to a pitch-class while the mouse is not being clicked. 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.



  • The "mask NP" checkbox stands for "mask non-playing". When something is playing automatically, or interactively (i.e. by left-clicking your mouse between the two piano rolls), 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 open two instances of Tonal Vision on the same MIDI file (without even copying the file). This allows you to compare, say, how a theme is handled in one part of the music vs. another, and generally study the musical form.


  • You can select specific tracks. (This affects what is displayed, what is played, and what is analyzed in the % non-chromatic analyses.)


  • Watch out for percussion instruments that play without a specific pitch, like most drums. They appear in the MIDI piano-roll views, and are analyzed with a specific pitch (e.g. % non-chromatic analysis). You will probably want to deselect those tracks in the checkbox.


  • 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 my sliders (such as the one at the top-right in my screenshot), left click on where you want to be.


  • 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).


  • Learn to sing-along/hum-along/play-violin-along using intonation indications (while learning): If you want this feature, you have to also install my (free) Spectratune Software. The Spectratune, also referred to herein as Musical Tookit Item # 1, can do full real-time spectral analyses on musical sounds, and, when there is just one pitch (as with a person singing, one instrument, etc.), it also can directly detect that pitch. Tonal Vision can interface with the Spectratune, and pull the single-pitch only (not the spectrogram) over to the Piano Rolls. Thus, you get very direct tonal guidance for your singing/instrument playing when you want it. (The MIDI sound coming out of tonal vision of course has to be going through headphones, so it doesn't get mixed with the single pitch singing being detected.) Importantly, note that both Piano Rolls--including the bottom harmony-analysis Piano Roll, get the pitch indication. In a midi file with harmonies, you can use the to get a sense of singing in harmony. Also, note that the tonal guidance on the Tonal vision works so that when you are in the middle of the note's vertical area, you are right on the center of the note. If you are at the bottom, you are half a half step (i.e. 50 cents) low = right between 2 notes.

    Now, note that, if you will use your MS software synth as a MIDI device, that probably goes through your computer sound card. If you want to get a pitch check on your voice or instrument while notes from the MIDI file are playing, and if you feed your sound-card into the Spectratune for tonal analysis, the synthesizer sounds will interfere with your singing sounds and you won't detect the correct pitch. A handy solution, if you have a web-cam with a mic, is to use the web-cam as a second sound card, and feed that into the Spectratune. (To avoid interference with the playing MIDI file, you listen to it through headphones, and you hum into your webcam's mic for tonal confirmation.) [I've discovered that many sound-cards, including my own, offer an alternative, that would let you use the sound-card to generate MIDI sounds, and at the same time send separate digitized sound from a good microphone to the Spectratune. My own Realtek sound card allows this when I "enable record multi-streaming". Also note that if you use a separate device to generate the MIDI sounds (such as a MIDI-interfacing electronic keyboard), then you can plug a good microphone into the sound-card, and not worry about whether it can separate MIDI sounds from microphone sounds for analysis. Yet a 3rd possibility, if you use sound-card-based MIDI sound synthesis, is to buy a separate USB mic-inputting sound card, which you can find on the internet (including Amazon) for $10.-$40.]

    To have the Spectratune pitch show up, you must have versions of both programs dated no earlier than 2008.1.6 (via the "about" menu item). Start both the Spectratune and Tonal Vision. Get the single-pitch showing up on the Spectratune (its arrows), doing any adjustments so it works in the whole note-range of interest. In the Spectratune, check the "Single Pitch-->MIDI" box. (This starts the Spectratune broadcasting its single pitches in a continuous "stream".) Then, in the Tonal Vision, check the "Pitches-->", which starts Tonal Vision receiving any already broadcasting stream from the Spectratune which has not already been received by another run of Tonal Vision. In addition, check whichever of "P1" and "P2" you want to display. (These stand for "Pitch on Device 1", and "Pitch on Device 2" -- Spectratune can work with up to 2 devices at once -- e.g., a sound card and a web-cam mic.) The particular items I have put in italics are needed to have the pitch picked up. You may have to turn off Tonal Vision reception, then turn off and on Spectratune transmission, then turn Tonal Vision reception back on.

    (In tests, I have had no trouble or slow performance running both this MIDI software and the Spectratune at the same time, though note I have a dual-core processor on my PC. If you notice undesirable delay using both programs together on your PC, make sure the Spectratune spectrograms are turned off, and try, perhaps, setting an oversample.)

    (Note that, if you have the Tonal Vision configured so that the vertical area for each note is smaller than you need for precise visual pitch feedback, you can glance over at the Spectratune itself. If you use Spiral mode, and adjust the octave range and size of the Spectratune, you should be able to get very precise supplemental feedback.)


  • A limitation of my program: you can not change notes, that is, you can not experiment with the sound (or Spectratune Spectra) of the music if it were written a little differently. Some will undoubtedly want to do this, and perhaps also test out the what and why of what, say, Schoenberg says about why you usually lead voices in a particular way, etc. If you want to do that, my suggestion: have a simultaneous session opened of a standard low-cost MIDI sequencing program.


  • If you want to look at music staff notation, a sequencing program will usually do that, as well.


  • 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 Tonal Vision program now (3/12/08) produces that .notes format. (Note if you use Tonal Vision 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 Tonal Vision timings to theirs.)









  • Return to MAIN Tonal Vision Page







    DOWNLOAD THE TONAL VISION FREE MUSIC COMPREHENSION TOOL HERE.



    TONAL VISION RELEASE NOTES:

    Version 2008.7.2: Added inversion/chord position algorithm. Also, fixed a bug that had started in a recent version, where if key context was off, top piano roll picked up a lot of red.

    Version 2008.6.30: Minor cosmetic details and minor performance tweaks.

    Version 2008.6.26: Improved conveniently available sounds so that keyboard sounds and right mouse click sounds change automatically with key as key selected changes.

    Version 2008.6.22: Rapid toggle of both "NoTopPRoll" and "1:" (simultaneously) added from keyboard. .

    Version 2008.6.17: Chordal lack of fit items, and rapid test-key change via keyboard added.

    Version 2008.6.06: Added ascending melodic and harmonic minor scales.

    Version 2008.5.30: Slight improvement to visual tonal function identification (involving a chord with a skipped third).

    Version 2008.5.29: Notes via keyboard an octave below and an octave above those added on 2008.5.1 also added..

    Version 2008.5.22: Chordal function for key determination and otherwise added.

    Version 2008.5.15: For MIDI format 0 files, suggests conversion to format 1 (using edit software) for individual instrument control.

    Version 2008.5.1: Feature where you can use the keyboard for an octave of notes added.

    Version 2008.4.30: Improved right-click listener-guidance sounds: the tonic and tonic triad durations now correspond to the right-click duration, rather than fixed duration.

    Version 2008.3.26: This version corrects a problem reading MIDI file with more than about 32,000 musical notes, where the program would lock up on reading. {Programmers: I used a short integer where I shouldn't have.)

    Also, the feature that automatically moves ahead by a half-screen in manual-play mode was overshooting the move occasionally. I believe this is now corrected.