-
-
Notifications
You must be signed in to change notification settings - Fork 10
For Developers
You can use WhatBPM data for your own purposes. These are ordinary JSON files available for processing in any tech stack. For example, you can apply alternative analytics methods, make your own interpretation or visualization. The latest up-to-date data is always available here:
https://sergree.github.io/whatbpm/latest.json
We also provide historical data so that you can track the change in EDM trends over time:
https://sergree.github.io/whatbpm/history/2022-11-16.json
Follow here to view a list of all available files.
The current data schema is described here, please note that it may change over time.
The schema is automatically generated roger13/SwagDefGen.
definitions:
updated_at:
type: number
example: 1668732178
stats:
type: array
items:
type: object
properties:
meta:
type: object
properties:
common_genre:
type: string
format: nullable
updated_at:
type: number
example: 1668732172
based_on:
type: string
example: https://www.beatport.com/top-100
standard:
type: object
properties:
bpm:
type: array
items:
type: object
properties:
value:
type: number
example: 126
weighted_count:
type: object
properties:
score:
type: number
example: 19.00294
count:
type: number
example: 19
root_note:
type: array
items:
type: object
properties:
value:
type: string
example: G
weighted_count:
type: object
properties:
score:
type: number
example: 20.001009
count:
type: number
example: 20
key:
type: array
items:
type: object
properties:
value:
type: string
example: G min
weighted_count:
type: object
properties:
score:
type: number
example: 10.002768
count:
type: number
example: 10
label:
type: array
items:
type: object
properties:
value:
type: string
example: EMI
weighted_count:
type: object
properties:
score:
type: number
example: 3.9997578
count:
type: number
example: 4
genre:
type: array
items:
type: object
properties:
value:
type: string
example: Tech House
weighted_count:
type: object
properties:
score:
type: number
example: 24.003696
count:
type: number
example: 24
average_duration:
type: number
example: 332
average_bar_count:
type: object
properties:
count:
type: number
example: 174
bpm:
type: number
example: 126
folded:
type: object
properties:
bpm:
type: array
items:
type: object
properties:
count:
type: number
example: 19
values:
type: array
items:
type: number
example: 126
root_note:
type: array
items:
type: object
properties:
count:
type: number
example: 20
values:
type: array
items:
type: string
example: G
key:
type: array
items:
type: object
properties:
count:
type: number
example: 10
values:
type: array
items:
type: string
example: G min
label:
type: array
items:
type: object
properties:
count:
type: number
example: 4
values:
type: array
items:
type: string
example: EMI
genre:
type: array
items:
type: object
properties:
count:
type: number
example: 24
values:
type: array
items:
type: string
example: Tech House
average_duration:
type: number
example: 332
average_bar_count:
type: object
properties:
count:
type: number
example: 174
bpm:
type: number
example: 126
In a nutshell, two types of reports are generated for each genre: standard and folded. WhatBPM website displays 3 top values for each type from the standard report ordered by score. For example:
1. 128 BPM - count 12 - score 12.003
2. 126 BPM - count 12 - score 11.998
3. 125 BPM - count 10 - score 10.001
--- Below is not displayed ---
4. 130 BPM - count 10 - score 9.999
...
The score for each track is calculated as follows:
1 +- S
Where S is some small value depending on the position of the track in the chart. Please study score.rs if you need more details.
A folded report interprets this data differently, ignoring the score:
1. 12 items per value - [128 BPM, 126 BPM]
2. 10 items per value - [125 BPM, 130 BPM]
...
This view has its advantages in some cases.
Please email me or create a PR if you have any questions.
Looking for the automated reference mastering for your production?
A completely free open-source on-premise web application from the author of WhatBPM.