is there a finite number of unique songs able to be created in each genre?

160 views

And if so, how close are we to reaching the limit?

In: 8

8 Answers

Anonymous 0 Comments

There is a theoretical upper limit of songs of a given length. Here are details from another Reddit post by ericGraves:

Composed? No. The space of time limited [continuous signals](https://en.wikipedia.org/wiki/Continuous_signal) is of course uncountably infinite.

Differentiated? Yes. To explain this, we have to make two assumptions,

* each song can be reproduced with some maximum amount of power,
* there will be noise added to the signal (which we will assume is [Gaussian](https://en.wikipedia.org/wiki/Gaussian_noise))
* that all sounds outside our hearing range are immaterial to use and can not be used to differentiate songs.

We will say this maximum amount of signal power to noise power is S, while the range of human hearing (about 20 to 20 KHz) is W. With these definitions, there are at most

2^(TW log[1 + S])

T-second songs that can be reliably differentiated between.

This observation is in essence, the [Shannon-Hartley theorem](https://en.wikipedia.org/wiki/Shannon%E2%80%93Hartley_theorem). In more detail, any bandlimited^([1]) (occupying finite frequency range) signal can be reproduced using a version of the signal sampled in time at frequency of 2W. [See here for a graphical representation of this, the middle on the right being the time sampled version of the top left.](https://www.tutorialspoint.com/signals_and_systems/images/signal_sampling.png). This is, in essence, the [Nyquist Shannon Sampling theorem](https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem). Hence allowing us to replace this continuous signal, with a vector of length

samples = seconds (samples/second) = T (2W)

At this point we have a vector of length 2TW. For every possible song that could be differentiated, we can associate a binary sequence of length *c*. If this sequence was length 3, then 2^3 = 8 songs could be reliably distinguished. Now note that

log(number of songs)/vector length = bits/symbol.

The maximum number of bits/symbol is a well studied metric, called [the channels capacity](https://en.wikipedia.org/wiki/Channel_capacity). For the case of Gaussian noise, *c* = 2^(-1) log(1 + S), where S at the outset.

Thus the capacity defines the maximum number of differentiable signals subject to the noise, and the sampling theorem the maximum number of discrete points needed to represent the continuous bandlimited function. Multiplying the two quantities gives a maximum number of

2^(TW log[1+S] )

T-second songs. You can also approach this problem from a [rate distortion](https://en.wikipedia.org/wiki/Rate%E2%80%93distortion_theory) perspective (ie every song within a certain distortion is equally likely, so I just need to pick the minimum number of songs to represent them all), and end up with the same result.

[1]- All bandlimited signals are infinite in time. To account for this nuance you should technically use [prolate spheroidal functions](https://en.wikipedia.org/wiki/Prolate_spheroidal_wave_function). The result is unchanged, you need a vector of 2TW for representation.

edit- As /u/DevestatingAttack pointed out, screwed up my units originally. Had bits of song instead of songs. Changed from TW log[1+S] -> 2^(TW log[1+S]).

You are viewing 1 out of 8 answers, click here to view all answers.