Color
This song is #E111E1
L 0.640 · C 0.289 · H 328.3
Every song is a universe of data. We measure 190+ dimensions of it — from the exact timestamps of every kick drum hit to the emotional arc across three minutes of sound. All of it free to explore.
14 songs analyzed · 190+ fields each · Growing weekly
This is a fraction of the 190+ fields available for every song. Each song profile shows everything — and the complete dataset is downloadable as JSON.
See the full profile →Real use cases, not hypotheticals.
A VJ feeds kick drum timestamps into TouchDesigner. Every kick triggers a floor shake. Every snare fires a strobe. The hi-hat drives particle shimmer. The energy curve controls the overall brightness.
kick_timestamps, snare_timestamps, hihat_timestamps, energy_curve, beat_timestamps
TouchDesigner · Notch · Resolume · Unreal Niagara
A developer builds a mixing tool. It suggests tracks in compatible keys using Camelot positions, matches BPMs within ±3, and shows which songs are spectrally similar so transitions sound seamless.
bpm, camelot_position, key, mode, similarity scores
Ableton · Serato · Traktor · Custom apps
A startup builds a recommendation engine. Instead of “users who liked X also liked Y,” it matches songs by measured emotional profile — high nostalgia + moderate melancholy for a rainy day playlist, high triumph + high energy for workouts.
valence, arousal, nostalgia_index, melancholy_index, triumph_index, aggressiveness_index, energy_mean
TensorFlow · PyTorch · LangChain · Any ML pipeline
A music supervisor needs something that feels like “Teardrop” by Massive Attack for a thriller scene but isn't that track. They search by emotional profile + spectral similarity + energy arc and get ranked alternatives with explanation.
similarity network, emotional dimensions, energy_curve, chord_progression_complexity
Film · TV · Advertising · Games · Sync licensing
In November 2024, Spotify restricted access to their Audio Features and Audio Analysis API endpoints. Developers who built tools around BPM, key, and energy data lost access. Here's where the landscape stands now.
Competitor rows reflect public documentation as of March 2026 — verify before publishing.
| Feature | Spotify | Soundcharts | Cyanite | MusicArk |
|---|---|---|---|---|
| Status | Restricted (Nov 2024) | Active | Active | Active |
| Data depth | ~13 audio features | Audio features (BPM, key, energy, etc.) | AI-generated categorical tags | 190+ measured numerical fields |
| Data type | Opaque 0–1 scores | Numerical scores | Categorical (mood, genre, instruments) | Numerical measurements from audio signal |
| BPM / Tempo | ✓ | ✓ | ✓ | ✓ + tempo map, beat timestamps, downbeat timestamps |
| Key / Mode | ✓ | ✓ | ✓ | ✓ + key changes with timestamps, chord progression with timing |
| Energy | Single score | Single score | Tag-based | Per-segment energy curve (375+ points), LRA, LUFS, true peak |
| Stem separation | ✗ | ✗ | ✗ | ✓ Demucs 4-stem (vocals, drums, bass, other) |
| Beat timestamps | Previously via Audio Analysis | ✗ | ✗ | ✓ Every beat, downbeat, and onset |
| Chord progression | ✗ | ✗ | ✗ | ✓ Labels + timestamps per 0.5s segment |
| Drum classification | ✗ | ✗ | ✗ | ✓ Kick, snare, hi-hat separated with timestamps |
| FFT spectrum | ✗ | ✗ | ✗ | ✓ 256 bands × 300 frames |
| Emotional profile | Valence (one score) | Valence | Mood tags | 8 dimensions on a 1–1000 scale |
| Similarity | ✗ | ✗ | Similarity search | Multi-dimensional: spectral, emotional, color, temporal |
| Vocal analysis | ✗ | ✗ | ✗ | Activity map, energy curve, pitch, vibrato |
| Color identity | ✗ | ✗ | ✗ | OKLCH color from 10 audio dimensions |
| Data philosophy | Restricted | Gated | Gated (custom pricing) | All data free on song pages. API for batch access. |
Every field listed above is available for free on each song's profile page. The API adds batch access, filtering, and programmatic endpoints.
Real values from the database when the catalog is connected — same field names as /songs/{slug}/data.json.
Long arrays are truncated for display.
{
"song": {
"title": "HUMBLE",
"artist": "Kendrick Lamar",
"duration_seconds": 177
},
"temporal": {
"bpm": 152,
"beat_timestamps": [
0.0928798185941043,
0.464399092970522,
0.812698412698413,
1.23065759637188,
1.67183673469388,
2.11301587301587,
2.53097505668934,
2.90249433106576,
3.27401360544218,
3.69197278911565,
4.10993197278912,
4.48145124716553
],
"groove_stability": 0.593229733760239,
"rhythmic_density": 0.85055737704918
},
"harmonic": {
"key": "Db",
"mode": "major",
"chord_labels": [
"A#",
"C#",
"D#",
"D#",
"D#",
"D#m",
"D#",
"D#",
"D#m",
"D#",
"D#",
"Cm",
"D#m",
"D#",
"A#m",
"Cm"
],
"chord_progression_complexity": 0.00577276305431645,
"key_change_timestamps": [
3.994,
35.944,
51.92,
63.901,
71.889,
83.87,
87.864,
95.852
]
},
"energy": {
"loudness_range_lra": 3.26,
"true_peak_dbtp": -1,
"aggressiveness_index": 0.341608736573608,
"energy_mean": 0.964203012359474,
"energy_curve": [
0.371345407822553,
0.800939055050121,
0.288967356962316,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0.862059284658993,
1,
1,
1,
1,
1,
1,
1,
1,
1
]
},
"stems": {
"kick_timestamps": [
7.63733333333333,
9.03466666666667,
9.42933333333333,
9.83466666666667,
10.432,
10.8373333333333,
11.0293333333333,
12.2346666666667,
12.6293333333333,
13.0346666666667,
13.2266666666667,
13.632
],
"snare_timestamps": [
1.6,
3.2,
4.81066666666667,
35.6266666666667,
75.0293333333333
],
"hihat_timestamps": [
8.032,
8.42666666666667,
8.832,
9.33333333333333,
9.632,
10.0266666666667,
10.24,
10.6346666666667,
11.2213333333333,
11.6266666666667,
12.032,
12.4373333333333
]
},
"color": {
"hex": "#3A8CDD",
"oklch_lightness": 0.6279,
"oklch_chroma": 0.1467,
"oklch_hue": 251.36
},
"metadata": {
"field_count": 390,
"analysis_version": "2.0"
}
} This is a subset. The full response includes time-series arrays with thousands of data points. See the complete data inventory or full profile →
Organized into 12 categories. Scalars, time-series, embeddings, and more.
Live from this song
A Change Is Gonna Come — Sam Cooke
First 30s — kick, snare, hi-hat
137 kicks · 43 snares · 44 hi-hats
18 fields in Stems
kick_timestampsEvery kick drum hit (seconds).
snare_timestampsSnare / backbeat hits.
hihat_timestampsHi-hat / cymbal hits.
drums_energy_curveDrum stem loudness trace.
vocals_energy_curveVocal stem energy trace.
bass_energy_curveBass stem energy trace.
Visit any song profile. Every field is visible on the page. No sign-up, no API key.
All songs →Every song has a complete JSON file with all 190+ fields. Direct download, no authentication.
/songs/humble-kendrick-lamar/data.jsonProgrammatic access. Filter, search, batch retrieve. Built for applications that need more than one song at a time.
Join the waitlist →curl -s "https://www.musicark.dev/songs/humble-kendrick-lamar/data.json" | head -c 400 import json, urllib.request
url = f"https://www.musicark.dev/songs/humble-kendrick-lamar/data.json"
with urllib.request.urlopen(url) as r:
song = json.load(r)
print(song["temporal"]["bpm"], len(song["stems"]["kick_timestamps"])) const res = await fetch(
`https://www.musicark.dev/songs/humble-kendrick-lamar/data.json`
);
const song = await res.json();
console.log(song.temporal.bpm, song.stems.kick_timestamps.length); Available now (no API key)
GET /songs/{slug}/data.json — complete song JSON
Launching with the API
All song data is free to browse on the site. The API adds programmatic access, filtering, and batch endpoints.
Free forever
TBD / month
Custom
MusicArk believes music intelligence should be open. Every data point is free on profiles and as downloadable JSON. The API adds batch access, search, and automation.
JSON file — every field, every array. Free.
For programmatic access across the catalog.
Questions? api@musicark.dev