Overview:
Overview:

The system is designed to do three things – build a corpus by uploading songs, refine the system generated data by editing the chord labels, and exploring the symbolic data summarization pages. When you upload a song, the system analyzes the video to produce:

  • Three sets of chord labels for the song (simple, medium and advanced)
  • An estimated melody line
  • Estimates of the sections of the song
  • Estimates of the bars and beats for the song
  • A Key estimate for the song

The system has over 2,000 songs pre-loaded, so you can begin by exploring the data that has already been generated, or by uploading your own songs, editing them as necessary and then exploring the data. The paragraphs below explain how to use each page in the system.

 

Register Page:

Most of the system functionality can be used without registering. However, if you want to upload songs or make edits to the harmony of any song, you have to register and/or login. Any songs you upload or edits you make to your songs or existing songs are saved under your username. To register, supply a username, email address, password (and retype the password) and check the “I accept the Terms of Service and Privacy Notice” checkbox and click the register button.

 

Login Page;

The first time you register, the system will automatically log you in and remember you for 30 days. Afterwards, you will have to login to be able to upload songs or make edits to the harmony of any song. To login enter your username and password.

Uploading and Editing

Alternative Measures allows users to add to its collection by analyzing songs from Youtube. When a user chooses a song, Alternative Measures automatically analyzes the song for melody, harmony, rhythm and form. It also allows the user to supply additional information such as the artist, producer and relase year. Once the artist and title are available, Alternative Measures attempts to retrieve the lyrics from LyricFind.

Alternative Measures allows users to edit any of the transcriptions already contained in the database. User edits do not overwrite the edits of other users, but create separate edits that can be recalled by any user. The system also allows users to upload midi files that contain melodies for any of the songs in the collection. The midi files are converted to a common format and stored as user edits. The following pages describe how to add songs to the collection, and how to make edits to existing songs.

Upload you own songs:

In the center of the header bar, there is a search box that allows you to search Youtube for a music video. Use the search box exactly as you would use the search box on the Home page (the box uses the Youtube search >api to find the best match). Usually, the artist name followed by the song’s title gives the best results. The results will be returned on the search results page. Clicking on a video thumbnail starts the upload process. The upload process takes a few minutes, so the system processes the uploads in the background. Once the song choice has been placed in the processing queue, the system will return a page showing the YouTube id for the song with a button which, when clicked will check whether the song has been processed. Once the song has been processed, the system will return a screen that allows you to update system information about the song, such as the correct title, artist name, producer name, isrc and year released. This screen can also be accessed from the menu, so if you want to update the song data at a later time, take note of the YouTube video id and use it to update the song information at a later time.

Batch Upload:

The batch upload page allows you to add multiple songs to the processing queue using a csv file. The csv file should have two columns – the youtube video id and the song title. The processing assumes that the first row in the file will be headers. If you neglect to provide headers in the file, the first song will be skipped. Once the songs have been added to the processing queue, the page will return with a confirmation page. If there are errors, the songs with errors will be highlighted.

 

Harmony Page:

The Harmony Grid page allows you to view the system generated chord labels (for more information about the transcription process see Algorithms) for a song selection. Select a song from the Select Song dropdown. The dropdown has a search filter, so you can enter characters from the song title and the list will be filtered for titles containing the characters you type. The system will load the system generated chord labels. There are three complexity levels (or Harmony Models) for each song. The “Simple” level only estimates major or minor chords. The “Medium” level estimates major, minor, 7th and sus4 chords. The advanced level estimates major, minor, 7th, major 6th, diminished, half diminished, augmented and inversions. The transport controls above the harmony grid control the playing of the audio. When the audio is playing, the currently playing chord will be highlighted in green. While the audio is playing, clicking on any cell in the grid sets the player time to the time associated with that cell and the audio continues from that point.

Harmony Page User Edits

You can also make changes to the system generated labels. The grid works similarly to Excel. You can copy the contents of a cell by hitting Command + c on a Mac or control + c on a PC. As with Excel Command + v on a Mac or control + v on a PC pastes the contents of the clipboard to the current cell. You can also “drag down” (or up, or sideways) as with Excel to copy a label to several neighboring cells. The valid format for the labels is:

  • Major =Capital Letter (e.g. “C”)
  • Minor = Capital Letter + “m” or “:min”
  • Dominant 7th= Capital letter + “7” or “:7”
  • Minor 7th= Capital letter + “min7” or “:min7”
  • Major 7th= Capital letter + “maj7” or “:maj7”
  • Diminished = Capital letter + “dim” or “:dim”
  • Half diminished = Capital letter + “hdim7” or “hdim7”
  • Augmented = Capital letter + “aug” or “:aug”
  • Major 6th= Capital letter + “maj6” or “:maj 6”
  • Inversions = Chord label + “/” + degree of the bass note (e.g. “/5”)
  • Accidentals = “#” or “b” following the Capital Letter for the chord label (e.g. “Ab”)

Once you have made all the changes you want to make, click the “Save your edit” button and the changes will be saved.

When there are edits available for a given song and complexity level, the “User Edits” select box will have entries showing the login names for the users that have made the edits. To view the edits, select the desired username from the select box. Note, if you make changes to another user’s edits and click the “Save your edit” button, the edits will overwrite any edits you have made for this song and complexity level. For example, if you choose the song “Here Comes the Sun” by the Beatles and then make changes to the simple complexity level and save them your edits will be stored. If you then choose to view another user’s edits for the same song and make changes to those edits, clicking “save your edit” will overwrite the changes you made to “Here Comes the Sun” at the simple complexity level. Only one version of changes is allowed for each complexity level for each song.

The transport controls allow you to play, pause and rewind the audio. The currently loaded video is displayed on the right-hand side of the page.

Clicking on the “View Melody” button allows you to view the Piano Roll/Melody page for the currently viewed Harmony Grid.

Piano Roll/Melody Page:

Often when analyzing the harmony for the song, it is helpful to view the melody. The system provides a “piano roll” page that shows the system generated melody transcription (for more information about the transcription process see Algorithms) for the song. Below the piano roll, the chord_labels and the song lyrics (if any) are displayed along with a system generated “section layout”. Additionally, the section layout has a progress bar to show what part of the song is currently playing. When the audio is paused, the progress bar can be dragged to any location in the song. The audio and piano roll will begin playing from the progress bar once the play button is clicked. The transport controls at the bottom of the page allow you to play, pause and rewind the audio. The piano roll page also has the same radio buttons as the Harmony Grid page to allow you to select the Basic, Medium or Advanced harmony models. The piano roll page has radio buttons to allow you to select the colors of the notes as either a 12-color palette representing the 12 tones in the chromatic scale or a 2-color palette represents "chord tones" (i.e. Tones in the triad currently represented in the chord label below the note), or "non-chord tones".

There is also a slider that controls the “resolution” (i.e. how many bars are displayed on the visible portion of the screen). Slide the slider to the left to see fewer bars or to the right to see more bars.

Melody User Edits

Alternative Measures provides three tools to allow you to input melody transcriptions for a song. First, you use transcription software of your choice, such as Musescore or Noteflight to enter the melody and save it as a midi file. There is a button on the melody page that allows you to upload the midi file. Currently, it is your responsibility to match the timing of the midi file to the timing of the YouTube audio. Second, there is a separate menu item that allows you to choose a melody track from an existing multi-track midi file. The page has a piano roll view similar to the piano roll on the melody page that allows you to view the notes in the various tracks and play them either separately or all together. Once you have identified the melody track, you can save it as a user edit for the song. Third, there is a button on the Melody page that allows you to edit the system transcription using a piano roll editor similar to ones found in popular DAW software such as Ableton or Reaper. Once you have completed your edits, you can save them as your user edit.

Exploring song data

Alternative Measures stores and collects "symbolic data" about each of the songs in its database. Symbolic data is the 2020 version of notation. For example, the system keeps track of each chord change in a song - when it begins and the chord label ("Cmaj7")). There is symbolic data for Harmony (Chords), Melody (Notes), Rhythm (Beats), Form (Sections), Timbre(e.g. Loudness) and Lyrics. The basic musical event data (Chords, Notes, Beats and Sections) are aggregated to song-level data (e.g Chord Progression Counts, Melodic Range, Most Common Muciscal Interval). The system provides visualization tools to allow comparisons between songs, artists and other meta characteristics. The following points describe each page.

Harmony Statistics page:

This page shows chord distributions and root motion bar graphs for the selected songs. You can select either a producer, or an artist, or all songs using the radio buttons and dropdowns for producers and artists. Once you make a selection, click the “Go” button to update the graph.

Harmonic progressions Bar Chart:

This page shows a bar chart with chord progressions for the songs selected songs. You can select either a producer, or an artist, or all songs using the radio buttons and dropdowns for producers and artists. You can also choose two, three or 4 chord progressions. Once you make a selection, click the “Go” button to update the graph. Clicking on any bar in the graph will display all the songs that contain that progression. Each song title is a link, that when clicked will take you to the harmony grid for the selected song.

Harmonic progressions by Artist:

This page allows you to select songs by a particular artist and by chord progression roman numerals. To select only songs by a particular artist, select the artist from the artist drop-down. The dropdown has a search filter, so you can enter characters from the artist name and the list will be filtered for artist names containing the characters you type. To select a chord progression, select the progression from the progression drop-down. As with the artist drop-down, the progression drop-down can be filtered by typing the roman numerals of the progression separated by “-“. For example, to find songs with a I-IV-V-I progression, type I-IV-V-I. When an artist has been selected only valid progressions for that artist will be shown. Once you have selected an artist (optional) and a progression (required) the system will return a list of songs containing the progression. Each song title is a link, that when clicked will take you to the harmony grid for the selected song.

 

Harmonic progressions by Name:

This page allows you to search for songs containing chord progressions that are referenced frequently enough to have been named. The drop-down contains a list of the progression names. To see all the names, click the up-arrow. When a selection is made, the system returns all the songs in the system that contain the progression. The list of songs is sorted in descending order by the number of times the progression is used in the song. Each song title is a link, that when clicked will take you to the harmony grid for the selected song. The named progressions currently in the system are:

 

Progression Name Roman Numerals
Cadential

ii-V-I

Axis-C

I-V-vi-IV

Axis-G

V-vi-IV-I

Axis-A

vi-IV-I-V

Axis-F

IV-I-V-vi

Classic Rock

I-IV-V

50s

I-vi-IV-V

Doo-Wop

I-vi-ii-V

Aeolian Progression

i-bVII-bVI

Andalusian Progression

i-bVII-bVI-V

Backdoor Resolution (Rock)

IV-bVII-I

Backdoor Resolution (Jazz)

ii-bVII-I

Cadential with tritone substitution

ii-bII-I

Five One

V-I

Four One

IV-I

Five One

I-V

Deceptive Cadence

i-vi

Circle Progression

vi-ii-V-I

Montgomery-Ward Bridge

I-IV-ii-V

Ragtime Progression

iii-vi-ii-V-I

12 Bar Blues

I-I-I-I-IV-IV-I-I-V-V-IV-I

Pachelbel's Canon

I-V-vi-iii-IV-I-IV-V

No Name

ii-IV-V

Wild Thing

I-IV-V-IV

Where in my mind

I-vi-III-IV

Creep

I-III-IV-iv

Plagal Cascade

i-bIII-bVII-IV

Rhythm Changes

i-vi-ii-V-I-i-IV-iv-I-vi-ii-V-I-vi-ii-V-I-vi-ii-V-I-I-IV-iv-I-V-I-III-III-VI-VI-II-II-V-V-I-vi-ii-V-I-vi-ii-V-I-I-IV-iv-I-V-I

Coltrane Changes

I-bIII-bVI-VII-VI-V-I

Harmonic Progressions Pivot Table

The Harmonic Progressions Pivot Table Page displays song-level aggregations for the harmonic progressions in the collection. The song level data consists of the count of each type of progression in the song, along with the song name, artist, producer, and release year. Users can manipulate the pivot table (similar to pivot tables provided for Excel or Google Sheets) by dragging attributes to either the rows, columns or values portion of the table. The pivot table automatically graphs the user selected values using a collection of pre-selected charts (e.g. scatter, bar, line). The pivot table also has a TSV Export Feature that allows users to export data to a files by copying and pasting the data.

Song Statistics Pivot Table

The Song Statistics Pivot Table Page displays song-level aggregations for the melodies, as well as Spotify timbre characteristics for the songs in the collection. There are twenty-five melody aggregations (e.g melodic range, most common musical interval) as well as 11 timbre characteristics from Spotify (e.g. loudness, acousticness, valence). The song-level aggregations can be summarized by artist, producer, release year or title. Users can manipulate the pivot table (similar to pivot tables provided for Excel or Google Sheets) by dragging attributes to either the rows, columns or values portion of the table. The pivot table automatically graphs the user selected values using a collection of pre-selected charts (e.g. scatter, bar, line). The pivot table also has a TSV Export Feature that allows users to export data to a files by copying and pasting the data.

Roman Numerals Pivot Table

The Roman Numerals Pivot Table Page displays song-level aggregations for the system-generated Roman Numeral Analysis for the collection. The Roman Numeral aggregations are modeled after the aggregations presented in "A corpus analysis of rock harmony" by David Temperley and Trevor DeClercq (Popular Music (2011) Volume 30/1. Copyright © Cambridge University Press 2011, pp. 47–70). The song-level aggregations can be summarized by artist, producer, release year or title. Users can manipulate the pivot table (similar to pivot tables provided for Excel or Google Sheets) by dragging attributes to either the rows, columns or values portion of the table. The pivot table automatically graphs the user selected values using a collection of pre-selected charts (e.g. scatter, bar, line). The pivot table also has a TSV Export Feature that allows users to export data to a files by copying and pasting the data.

System transcription algorithms

Alternative Measures uses transcription algorithms developed by members of the MIR community. In particular, the following algorithms are used:

  • Harmony:
    • Simple - Madmom S. Böck, F. Korzeniowski, J. Schlüter, F. Krebs, and G. Widmer, “madmom: a new Python Audio and Music Signal Processing Library,” arXiv:1605.07008 [cs], May 2016, Accessed: Nov. 27, 2019. [Online]. Available: http://arxiv.org/abs/1605.07008.

    • Medium - NNLS Chordino M. Mauch and S. Dixon, “Approximate Note Transcription for the Improved Identification of Difficult Chords,” in Proceedings of the 11th International Society for Music Information Retrieval Conference (ISMIR 2010), 2010.

    • Advanced - NNLS Chordino M. Mauch and S. Dixon, “Approximate Note Transcription for the Improved Identification of Difficult Chords,” in Proceedings of the 11th International Society for Music Information Retrieval Conference (ISMIR 2010), 2010.

  • Melody - Melodia J. Salamon and E. Gomez, “Melody Extraction from Polyphonic Music Signals using Pitch Contour Characteristics,” IEEE TRANSACTIONS ON AUDIO, p. 12.
  • Structure - Segmentino M. Mauch, K. Noland, and S. Dixon, “USING MUSICAL STRUCTURE TO ENHANCE AUTOMATIC CHORD TRANSCRIPTION,” Poster Session, p. 6, 2009.
  • Beat tracking - Madmom Böck, F. Korzeniowski, J. Schlüter, F. Krebs, and G. Widmer, “madmom: a new Python Audio and Music Signal Processing Library,” arXiv:1605.07008 [cs], May 2016, Accessed: Nov. 27, 2019. [Online]. Available: http://arxiv.org/abs/1605.07008