Bangladesh Music Evolution

Data & methods

The dataset

Everything behind this site is open, schema-validated JSON, and every figure and number is generated from it by a re-runnable pipeline. Take the files and check the work.

Generated 2026-08-27 · 63 artists · 23 events · 0 schema errors

Coverage, honestly

The catalogue is a curated sample, not a census, and it was assembled outward from a well-documented metal core. That construction plausibly biases every strand comparison drawn from it, so the numbers below are worth reading before the findings are.

63/300
Artists catalogued
against the project target
23/500
Events catalogued
the binding constraint on the network
35
Acts with no event
a gap in the concert record, not a fact about them
35
Open data warnings
the research backlog, not bugs
Genre strandArtistsWith event dataCoverage
Mainstream Rock13538%
Progressive Rock/Metal22100%
Heavy Metal12433%
Alternative/Indie161169%
Pop7114%
Hip-Hop/Rap8113%
Folk & Folk Fusion5480%

Download the data

The generated outputs are below. The source records — one JSON file per artist and per event — live in the repository.

How the numbers are made

Seven Python scripts, run in order. Every figure reads from the computed outputs rather than recomputing its own statistics, so a chart can never disagree with a number in the paper. Two consecutive runs leave the tree byte-identical.

pip install networkx matplotlib jsonschema scipy

python3 analysis/scripts/validate_data.py        # schema + referential integrity
python3 analysis/scripts/build_bmpn.py           # network layers
python3 analysis/scripts/analyze_bmpn.py         # communities + centrality
python3 analysis/scripts/temporal_analysis.py    # decade curves
python3 analysis/scripts/concert_ecosystem.py    # typology
python3 analysis/scripts/influence_analysis.py   # citations
python3 analysis/scripts/make_visualizations.py  # figures

Two conventions the data follows

Null over invention

Where a value is genuinely undocumented the field is null and the record is tagged needs-verification. The schema permits null on formation years and on discography years and labels for exactly this reason. A plausible guess is worse than an admitted gap.

Record the gap, don’t fill it

The 2016 Joy Bangla Concert is catalogued with an empty lineup and a note explaining why. Inferring its bill from adjacent years would have produced clean-looking data and a false network.

What this project cannot do

  • No audience data of any kind

    No streaming, playlist or engagement signals — blocked pending Spotify Web API and YouTube Data API v3 credentials, which the project owner must register. Every listener claim on this site is inferred from co-billing and from what artists and journalists said.

  • No audio-feature analysis

    Every statement about tempo, production or arrangement rests on documented description and discographic sequence, not on measured signal.

  • Measurable documentation bias

    The hip-hop strand shows one political-content marker against six for alternative rock, which contradicts the academic literature. That is an artefact of how the records were written, and it is reported as one rather than as a finding.

  • Geographic concentration

    19 of 23 events are in Dhaka. The ecosystem outside the capital is nearly invisible in this data.

The network currently carries 179 edges over 63 acts, 153 of them observational. The single change that would unblock the most is streaming API credentials — they gate the preference network, sound-evolution measurement and the whole audience side of the study. See the roadmap.