Separating Harmonies

The questions below are due on Thursday October 16, 2025; 02:00:00 PM.
 
You are not logged in.

Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.

The file am_resynth.wav in this week's distribution is a synthesized version of a short tune using 3-part harmony. At each pont in time, there are three voices: bass, melody, and harmony. each playing a single, sinusoidal tone whose frequency changes with time. The frequencies for the three voices fall within the following ranges:

  • Voice 1 (bass): 40-170Hz
  • Voice 2 (melody): 170-370Hz
  • Voice 3 (harmony): 370-750Hz

Our goal is to produce three new signals:

  • bass.wav containing the bass part,
  • melody.wav containing the melody, and
  • harmony.wav containing the harmony.

Design a system to generate these .wav files.

Check In:
Discuss the details of your plan for separating the components from each other, including how your implementation guarantees that the resulting signals will be purely real.

Generate the bass, melody, and harmony signals.

Create three .wav files, one containing the bass part, one containing the melody, and one containing the harmony.

Please upload the resulting bass.wav file:

 No file selected

Please upload the resulting melody.wav file:

 No file selected

Please upload the resulting harmony.wav file:

 No file selected

Listen to the three files carefully. Were you able to perfectly separate the three voices?

Describe your method for separating the three signals, and explain any artifacts that remain. Please upload a single .pdf file with your explanation:

 No file selected

More Realistic Example

The file am.wav contains a version of the same tune, but played on a guitar. In this version of the song, each of the voices has a slightly different range from the synthesized version:

  • Voice 1 (bass): 65-208Hz
  • Voice 2 (melody): 208-350Hz
  • Voice 3 (harmony): 350-960Hz

Try your same method from above on this version of the tune.

Please upload the resulting bass WAV file:

 No file selected

Please upload the resulting melody WAV file:

 No file selected

Please upload the resulting harmony WAV file:

 No file selected

You likely found that your approach does not work as well on am.wav, compared to am_resynth.wav, and that some of the three voices may have been easier or harder to isolate. Explain why this is the case.

Please upload a single .pdf file with your explanation:

 No file selected

Code Upload

Please upload a single .zip file that contains your code and any other files not uploaded above:

 No file selected