 |
Conclusions and Future Work
We determined that our algorithm was successful in determining the
tempos of songs as well as tempo-matching two songs together. As seen
in our Results section, the algorithm is quite proficient at finding
the tempo for most songs although it sometimes finds some simple
multiple or fraction of the fundamental tempo instead. There are a few
songs for which the algorithm does not pick out a reasonable tempo and
these are typically songs with a weak tempo that rely more on phrasing
from the music to convey a tempo. From these results, our process
could have benefitted from longer samples. However, this would have
taken much longer to process so we could also streamline our
algorithm to run in real-time in a language faster than Matlab.
Writing our code to run in real time would have also allowed us to
detect variations in the tempo since analyzing an entire piece of
music in chunks would be simple. Our qualitative results for
tempo-matching two songs showed that if the songs varied in tempo
the combination of the two was not very effective. Being able to pick
up on the variations in the song would improve tempo-matching
significantly.
The time-scaling algorithm works fairly well for our purposes. Since
we are combining two songs, deleting snippets of the slower song every
80ms is fairly unnoticeable. However, we are limited in the tempo
change we can apply to a signal. Using some more advanced digital
signal processing, we can time-scale our music without
pitch-shifting. This would give us more flexibility with the
tempos. For robustness, we should also write an algorithm to slow down
music without pitch-shifting it. Finally, it would be quite useful if
we could implement the time-scaling in real time as well so we could
combine two songs while playing them.
The phase-aligning algorithm worked rather well. However,
phase-alignment cannot compensate for variable tempo. Certainly, if we
could compensate for variable tempo, our phase-alignment algorithm
would work for the whole song.
Finally, we could extend our project to include other aspects of music
such as phrasing and harmonics. We could then work on harmonically
matching music and correlating the phrasing of one song to that of
another.
All in all, our algorithm was quite effective in finding the
fundamental tempo of most songs and made good use of this information
to tempo-match and phase-align various pieces of music. However, we
discovered that it was not very good at knowing which songs went
together tastefully (and neither were we).
|