0

I have no knowledge on sound or music or the technology behind it. I just have a problem, I don't know how to solve...so thinking of solutions. My issue is the amount of time it takes to find a 'similar' song. Most streaming service recommendations are still not that great...wondering if I could build something that's better.

Because of copyright stuff, I understand it would be very difficult to build something if you don't have access to high quality versions of the tracks.

But I figured I could build something based on public APIs or components of a song, just not the full song. So I was wondering what exactly are the components of a sound track? If I have access to the waveform of a song, does that give me the complete song itself or is waveform itself not music, i.e. it won't give you type of instrument and keys and stuff. And what other dimensions/components of songs could I look into and try to match?

Are there any tools out there currently that can deconstruct a sound track, i.e. separate vocals, from beats, from melodies, etc... So I can use those attributes as dimensions to match things on.

1
  • 2
    I believe what you are looking for is an active research subject, so diving into it while you have no knowledge on sound or music or the technology behind it might be difficult.
    – audionuma
    Dec 18, 2022 at 17:27

1 Answer 1

2

A bit of a confusing question, but I'll try to answer it...

Are there any tools out there currently that can deconstruct a sound track, i.e. separate vocals, from beats, from melodies, etc... So I can use those attributes as dimensions to match things on.

-No, there aren't really. But in my opinion, it's most likely the wrong approach anyway.

If I have access to the waveform of a song, does that give me the complete song itself or is waveform itself not music, i.e. it won't give you type of instrument and keys and stuff.

The waveform is the song, in totality. But to find the instruments involved programmatically, you could analyse the harmonic and inharmonic signature to try to match against known instrument signatures, but it would be quite slow and would need a machine learning system with human feedback and an ever-growing database to get anywhere close to good results. But I suppose given a large enough pool, it would be pretty accurate in the end.

However, even if you know the instruments involved with a good level of certainty, that doesn't necessarily mean you can match similar songs. The same instruments can be used in very different ways in very different styles of music.

As for the key signature, it's relatively easy to interpret with the right analysis.

Some food for thought for you…

  1. You can think of the waveform as like the "fingerprint" - or the hash code - of the song. If you recreate an identical waveform, in time and relative amplitude, you have an identical song. This is basically how CD copiers check if a known CD was ripped flawlessly.
  2. The frequency spectrum or "spectral identity" could be stored and matched to songs with similar spectral content, e.g. similar frequency and relative amplitude bass content (given the right analysis of said spectral content).
  3. The chord pattern and key signature could be estimated by measuring the frequency of the lowest prominent harmonic/frequency throughout the song.
  4. The average BPM (Beats Per Minute) is one parameter that can be analysed and stored as a feature of the song relatively easily. Furthermore, a changing BPM can help match other songs with similarly changing BPMs. There would be a margin of error for unusually fast or slow tempos - you would get half or double-time BPMs, respectively.
  5. Likewise, the time signature could be interpreted from analysis quite easily. However, this would have a margin of error involved too, especially with complex or uncommon time signatures.
  6. The overall loudness or power of the song is another parameter one could match against.
  7. The change in power levels throughout the song, maybe stored as a ratio.
  8. The dynamic range; the difference between the highest and the lowest amplitude parts of the song. E.g. Classical music tends to have a relatively large dynamic range.

A lot of these would take quite a chunk of processing time and have margins of error, though - My personal opinion on the fastest and most reliable approach to match similar songs would simply be tags. You get users to tag songs with subjective as well as objective tags, and you use a complicated dynamic tag scoring system for matching.

FYI, my movie streaming services always recommend the wrong movies to me, because it doesn't know the difference between Alien and Alien Vs Predator or Arrival and Moonfall.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.