An interactive timeline of composers and performers across instruments. View it at musiker.page.
Built in collaboration with Rightkey.app, an app for learning to play the piano.
We welcome contributions via issues and pull requests. All data lives in JSON files under public/data/.
- Add the person to
public/data/people.json(if they're not already there):
{
"id": "lastname",
"name": "F. Lastname",
"born": 1800,
"died": 1870,
"role": "composer",
"bio": "Two to three sentences about their contributions.",
"photoUrl": null,
"wikiUrl": "https://en.wikipedia.org/wiki/...",
"websiteUrl": null
}- id: lowercase, hyphenated (e.g.
cpe-bach,de-larrocha) - role:
"composer","player", or"both" - died: use
nullfor living people - photoUrl: set to
nullinitially — portrait images can be added separately - websiteUrl: optional personal or streaming page for modern artists
- Add their
idto thepeopleIdsarray in the instrument file (e.g.public/data/piano.jsonorpublic/data/violin.json).
Append to public/data/connections.json:
{
"from": "teacher-id",
"to": "student-id",
"type": "student-teacher",
"label": "teacher/student"
}- type:
"student-teacher"or"relative" - label: describes the relationship (e.g.
"teacher/student","father/son","influence","classmates") - Both
fromandtomust be valid IDs inpeople.json - Connections only appear on an instrument's timeline when both people are in that instrument's
peopleIds
- Create
public/data/<instrument>.json:
{
"instrument": "Cello",
"eras": [
{ "name": "Baroque", "startYear": 1600, "endYear": 1750, "color": "#E3F2FD" },
{ "name": "Classical", "startYear": 1730, "endYear": 1820, "color": "#FFF3E0" },
{ "name": "Romantic", "startYear": 1800, "endYear": 1910, "color": "#FCE4EC" },
{ "name": "Modern", "startYear": 1890, "endYear": 1975, "color": "#E8F5E9" },
{ "name": "Contemporary", "startYear": 1950, "endYear": 2030, "color": "#F3E5F5" }
],
"peopleIds": ["bach", "rostropovich", "du-pre"]
}- Add any new people to
people.json(people already in the file can be reused by ID). - Add the instrument name to the
INSTRUMENTSarray insrc/App.tsx.
Place the image in public/images/portraits/<id>.jpg and set the person's photoUrl in people.json to /images/portraits/<id>.jpg. Prefer public domain or freely licensed images.
A download helper is available at scripts/download-portraits.mjs — it fetches Wikipedia article thumbnails for people who have a photoUrl path but no file on disk yet.
If you'd rather not edit JSON directly, open an issue describing who to add, which instrument they belong to, and any connections to existing people. We'll take it from there.