Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
CODE PROJECT For Those Who Code
  • Home
  • Articles
  • FAQ
Community
  1. Home
  2. General Programming
  3. C#
  4. song/tune comparison

song/tune comparison

Scheduled Pinned Locked Moved C#
databasequestion
3 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Offline
    V Offline
    Vishnu Prem
    wrote on last edited by
    #1

    how can a tune sung by a user (humming) be compared with the songs in the database & produce similar results?? since the pitch of man & woman varies widely, how can the results can be made accurate?

    M A 2 Replies Last reply
    0
    • V Vishnu Prem

      how can a tune sung by a user (humming) be compared with the songs in the database & produce similar results?? since the pitch of man & woman varies widely, how can the results can be made accurate?

      M Offline
      M Offline
      musefan
      wrote on last edited by
      #2

      sorry but this is NOT an audio analysis forum

      If only MySelf.Visible was more than just a getter... A person can produce over 5 times there own body weight in excrement each year... please re-read your questions before posting

      1 Reply Last reply
      0
      • V Vishnu Prem

        how can a tune sung by a user (humming) be compared with the songs in the database & produce similar results?? since the pitch of man & woman varies widely, how can the results can be made accurate?

        A Offline
        A Offline
        Alan Balkany
        wrote on last edited by
        #3

        Although off-topic, it's a very interesting question. Some high-level ideas: 1. Since the singer's key can vary, you need to transpose all melodies to a common base key. E.g. if you transpose the first note to C for every melody, you can find matches even if the singer is singing in another key. 2. A voice isn't a pure tone. All instruments (except synthesizers using a single oscillator) have harmonics (frequencies higher than the lowest). Fourier analysis will allow you to isolate the different frequency components. Ignore all but the lowest for simplicity. 3. Voices aren't exactly in tune. You will have to round each frequency to the nearest musical tone. The standard is 440 cycles per second for an 'A'. Consecutive chromatic tones have a ratio of 1 : the 12th root of 2. Thus, when you go through the 12 tones of an octave, you get (the 12th root of 2) to the 12th power = 2. So a note an octave higher has twice the frequency of the lower note. 4. The rhythm is also going to be off for a human's performance, so you will need to adjust the lengths of each note with respect to a selected granularity. E.g. round the length of each note to the nearest eighth note. 5. This will "standardize" a melody hummed into an A-to-D converter, allowing you to compare it with the melodies in the database. Of course people will make errors, so if there's no exact match, you need some kind of error metric to find the closest match in your database.

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • World
        • Users
        • Groups