Specific Tempo

Specific Tempo

Sometimes the tempo of the music is as, or more, important than its specific mood and/or style. Each Descriptor Entity also contains data.attributes.min_tempo and data.attributes.max_tempo which provide information about the intended tempo, in beats per minute, that a Descriptor could be used with.

Note: It is possible to ask for a tempo that is outside the bounds of the tempo range defined by a Descriptor. There is no guarantee that the resulting music will maintain the intended feeling (e.g. “energetic” music at too slow of a tempo will mostly likely not feel very energetic anymore).

In order to find Descriptors which are intended to work with some known tempo:

  1. Start with a list of Descriptors (possibly filtered by tags as described earlier)
  2. For every Descriptor:
    • Check if the desired tempo is greater than or equal to its data.attributes.min_tempo
    • Check if the desired tempo is less than or equal to its data.attributes.max_tempo
    • If the Descriptor matches the requested tempo, keep it; otherwise remove it from the list

At this point you would be left with a (possibly empty depending on your exact request and choice of logic) list of Descriptors that work with the desired tempo.

Here is an example of 30 seconds of rock_indie_energetic at 142 beats per minute:

{
    "spans": [
        {
            "id": 111,
            "type": "metered",
            "time": 0,
            "tempo": 142,
            "regions": [
                {
                    "id": 222,
                    "region": "music",
                    "descriptor": "rock_indie_energetic",
                    "beat": 0
                }
            ]
        },
        {
            "type": "unmetered",
            "time": 30
        }
    ]
}