Blow The Whistle by Too Short is a 2:43 song at 99 BPM in the key of C minor (Camelot 5A). It has a loudness range of 5.03 dB (LRA), a true peak of -0.79 dBTP, and an integrated loudness of -14.729 LUFS. The percussive structure features 463 kick hits, 135 snare hits, and 249 hi-hat hits (kick:snare ratio 3.4:1). The chord progression uses 17 unique chords with a harmonic complexity of 0.00. 1 key change were detected. The dominant emotional quality is Euphoric Energy. Vocals are present in 4% of the song. This profile contains over 190 data points generated by MusicArk's audio intelligence pipeline.
Among the 14 songs in the MusicArk, Blow The Whistle ranks 2nd for harmonic complexity. Its closest match is Chunky by Bruno Mars at 85% overall similarity.
Song shape
Energy, brightness, harmonic tension, and melody contour — with chord progression aligned to the same timeline.
Audio DNA
Key metrics extracted from the audio signal.
Temporal
- BPM
- 99
- Tempo variability
- 0.03
- Groove stability
- 0.38
- Swing feel
- 0.56
- Rhythmic density
- 0.56
- Syncopation score
- 0.91
- Beat clarity
- 0.26
Rhythm
Detected hits from stem analysis
Kick:Snare ratio: 3.4:1
Drum pattern grid
Harmonic
- Key
- C
- Mode
- minor
- Camelot
- 5A
- Chord progression complexity
- 0.00
- Modulation events
- 1
- Resolution frequency
- 0.29
- Tonal brightness
- 0.95
Chord progression
17 unique chords
Chord progression complexity: 0.00
- C minor → G# major at 179.7s
Harmonic tension arc
Pitch
- Average pitch height
- 0.09
- Pitch range
- 1.00
- Melody contour
- jagged
- Interval sharpness
- 0.66
- Repetition score
- 0.64
Timbre
- Spectral centroid
- 0.13
- Spectral brightness
- 0.10
- Spectral flux
- 0.36
- Harmonic richness
- 0.63
- Noise content
- 0.37
- Distortion level
- 0.36
- Transient sharpness
- 0.82
- Warmth / metallic
- 0.79
- Analog / digital feel
- 0.60
Energy
- Loudness (LUFS)
- -14.73
- Peak loudness
- 0.97
- Dynamic range
- 0.47
- Energy mean
- 0.97
- Energy std
- 0.18
- Energy peak position
- 0.00
- RMS level
- 0.97
- Aggressiveness
- 0.35
- Smoothness
- 0.59
- Urgency
- 0.34
5.03 dB
Higher values indicate more dynamic variation
Energy over time
LUFS per section
Spatial
- Stereo width
- 0.19
- Depth distribution
- 0.54
- Reverb size
- 0.32
- Dry / wet balance
- 0.46
- Stereo image motion
- 0.20
- Height perception
- 0.01
Stereo correlation
Stereo width over time
Arrangement
- Layer count mean
- 0.39
- Layer count peak
- 1.00
- Minimalism / maximalism
- 0.52
- Drums presence
- 0.37
- Bass presence
- 1.00
- Harmonic presence
- 0.63
- Melodic presence
- 0.30
- FX presence
- 0.03
Vocal presence: 4%
Average vocal pitch confidence: 0.12
Layer count over time
Production DNA
Stem balance and song structure from separated tracks.
— – — (0st)
- Drums
- Programmed
- Classification
- Algorithm confident (95%)
C ✓ matches key
64%
100%
Structure
Emotional Profile
What does this song feel like?
Valence
780
DevastationEuphoriaArousal
870
CatatonicExplosiveNostalgia
380
Future-facingAching memoryMystery
110
TransparentEnigmaticTriumph
760
DefeatedVictoriousMelancholy
80
JoyfulDevastatedSensuality
600
CerebralDeeply sensualInspiration
390
NeutralDeeply inspired
Narrative Arc
How the song moves through time.
Timeline
Archetype:
- Intro
- Immediately recognizable and high-energy from the first second. The bounce begins at the very top and the crowd is already singing before the verse starts.
- Resolution
- The final chorus returns approximately 20 seconds before the song ends, delivering a strong closing statement. The analyst notes it is particularly impactful as a conclusive moment rather than a fade.
Build phases
- 13% — Song hits its stride — starts to ride and flow, the bounce fully locks in around 30 seconds.
- 17% — The 'what's my favorite word' call-and-response begins, triggering crowd participation and vocal engagement.
- 22% — The 'blow the whistle' moment lands — full crowd engagement achieved, people are standing and moving.
Drop / climax points
- 22% — The 'blow the whistle' hook lands for the first time — maximum crowd activation moment, whistles appear in the background, full-body engagement. (intensity: 0.93)
Emotional turns
- 17% — Call-and-response 'what's my favorite word' shifts the song from a solo performance into a communal, participatory experience.
- 75% — Towards the end of the song Too $hort becomes notably more lyrical, shifting the texture from hook-driven bounce to verse-driven substance.
Listening Context
Our recommendation on when and how to experience this record.
- Best Listening Context:
- ClubHypeSocial
- Time of day
- Late night
- Season
- All season
- Best Setting:
- Group
- Best Listened With:
- Speakers
- Lyrical Content:
- Explicit
- Repeatability
- 890 / 1000
Cultural Context
The cultural significance and background of this record.
Oakland, CA / Bay Area hip-hop; references Houston, Memphis, and ATL as sonic touchstones
2000s
Released during the peak of the Bay Area Hyphy movement, 'Blow the Whistle' became one of the defining anthems of Oakland hip-hop culture. The whistle concept draws from sports referee symbolism — a foul has been called. The song name-drops Dave Chappelle, referencing his 'I'm rich, bitch!' catchphrase which Too $hort claims he influenced. In 2022, the City of Oakland named a section of Foothill Boulevard 'Too Short Way' and declared December 10th 'Too Short Day.' The song has become a cross-genre, cross-demographic staple in clubs, sports arenas, and public events. Too $hort performed the song with The Roots on Late Night with Jimmy Fallon.
Similar songs
Closest matches by overall similarity (spectral, emotional, color, temporal).
Chunky
Bruno Mars
85% match
spectral: 96% · emotional: 80% · color: 57% · temporal: 100%
Killing in the Name
Rage Against the Machine
73% match
spectral: 92% · emotional: 87% · color: 0% · temporal: 93%
Paper Planes
M.I.A.
72% match
spectral: 97% · emotional: 77% · color: 0% · temporal: 93%
Lady Lady
Olivia Dean
72% match
spectral: 97% · emotional: 73% · color: 0% · temporal: 98%
AI-Derived Intelligence
Patterns identified by AI analysis.
Hook strength
0.76
Memorability of the main hook.
Innovation score
0.36
How original is this song?
Emotional balance
0.62
How emotionally complex?
Color identity
Ten dimensions derived from the song's audio.
- Hue
- 15.0
- Saturation
- 0.59
- Luminance
- 0.50
- Edge sharpness
- 0.82
- Texture granularity
- 0.56
- Gradient motion
- 0.44
- Color depth
- 0.32
- Color layering
- 0.40
- Palette harmony
- 1.00
- Contrast composition
- 0.47
Lyrics
View on Genius ↗This song contains explicit content.
Complete Data Inventory
Every data point available for this song. All data is free and open.
Song
album : "Blow The Whistle"
analysis_version : "2.0"
analyst_name : "Andrew Brownlee"
artist : "Too Short"
audio_quality_estimate : "very_low"
bpm_feel : null
bpm_feel_note : null
canonical_bpm : 99
canonical_bpm_source : "analyst"
color_generated : true
created_at : "2026-03-16T19:00:40.976132+00:00"
duration_seconds : 163.13
effective_bandwidth_hz : 552
full_song_confirmed : true
id : "22888246-f63a-49cb-a4fc-75fae6f4eee0"
isrc : "USJI10600031"
published_at : "2026-03-17T17:38:11.053+00:00"
release_year : 2006
search_vector : "'blow':1A,6B 'short':5A 'whistl':3A,8B"
similarity_vector : [0.49692, 0.034815, 0.3758, 0.55862, 0.56041, 0.91129, 0.25796, 0.003943, 0.95002, 0.753, 0.1, 0.13316, 0.10184, 0.35809, 0.62579, 0.37421, 0.36057, 0.79205, 0.60163, 0.96641, 0.18018, 0.47009, 0.34562, 0.58962, 0.194, 0.53984, 0.31516, 0.46016, 0.039496, 0.51844, 0.37421, 1]
slug : "blow-the-whistle-too-short"
source_sample_rate : 48000
status : "published"
tier1_complete : true
tier2_complete : true
tier3_complete : true
tier4_complete : true
title : "Blow The Whistle"
updated_at : "2026-03-23T19:16:20.532075+00:00"
validation_complete : true
youtube_url : "https://www.youtube.com/watch?v=CBJtzEKetBM"
Temporal
analyzed_at : "2026-03-22T16:34:04.253427+00:00"
beat_clarity : 0.25796
beat_strengths : 288 values [0.30345, 0.0020496, 0.00090088, 0.10144, 0.071427, 0.0012846, 0.0012441, 0.065056, 0.034944, 0.001034, ...]
beat_timestamps : 288 values [10.147, 10.751, 11.355, 11.958, 12.562, 13.166, 13.769, 14.373, 14.977, 15.581, ...]
beats_per_bar : null
bpm : 99
bpm_octave_corrected : false
bpm_raw : null
downbeat_timestamps : [10.147, 12.562, 14.977, 17.369, 19.691, 22.082, 24.474, 26.889, 29.28, 31.695, 34.087, 36.479, 38.893, 41.308, 43.7, 46.092, 48.506, 50.898, 53.29, 55.705, 58.096, 60.488, 62.903, 65.295, 67.709, 70.101, 72.516, 74.908, 77.299, 79.714, 82.106, 84.497, 86.889, 89.304, 91.719, 94.11, 96.502, 98.894, 101.31, 103.7, 106.12, 108.51, 110.9, 113.31, 115.71, 118.12, 120.51, 122.93, 125.32, 127.71, 130.12, 132.52, 134.91, 137.32, 139.71, 142.11, 144.52, 146.91, 149.33, 151.72, 154.11, 156.53, 158.92, 161.31, 163.72, 166.14, 168.53, 170.92, 173.34, 175.73, 178.12, 180.54]
energy_shape : "steady"
groove_stability : 0.3758
library_primary : "librosa"
library_secondary : "essentia"
onset_density_curve : 378 values [0, 0.1, 0.05, 0, 0.1, 0.05, 0.05, 0.05, 0.1, 0.05, ...]
onset_strength_curve : 387 values [0, 0.5307, 0.73048, 0.23965, 0.92782, 0.086381, 0.70585, 0.62785, 0.30456, 1.0063, ...]
onset_timestamps : 700 values [0.55728, 0.99846, 1.4396, 2.0434, 2.3452, 2.9489, 3.3901, 3.8313, 4.2957, 4.435, ...]
per_beat_centroid : 288 values [0.0107, 0.0084, 0.0079, 0.0094, 0.01, 0.008, 0.008, 0.0117, 0.0136, 0.0085, ...]
per_beat_dominant_band : 288 values ["low_mid", "sub_bass", "sub_bass", "low_mid", "low_mid", "low_mid", "sub_bass", "low_mid", "low_mid", "sub_bass", ...]
per_beat_energy : 288 values [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...]
raw_librosa_bpm : 99.384
rhythmic_density : 0.56041
swing_feel : 0.55862
syncopation_score : 0.91129
tempo_curve : 287 values [99.384, 99.384, 99.384, 99.384, 99.384, 99.384, 99.384, 99.384, 99.384, 99.384, ...]
tempo_map : [{"bpm":136,"start_seconds":0}, {"bpm":99.4,"start_seconds":15}]
tempo_marking : "allegretto"
tempo_variability : 0.034815
tempogram : 40,000 values (time–frequency matrix) [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...]
time_signature : null
Harmonic
analyzed_at : "2026-03-22T16:34:04.681405+00:00"
camelot_position : "5A"
chord_labels : 386 values ["Cm", "C", "C", "C", "Cm", "D#m", "C", "C", "Cm", "F#", ...]
chord_progression_complexity : 0.0039428
chord_timestamps : 386 values [0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, ...]
chromagram : 4644 values [0.99637, 0.99719, 1, 1, 0.56303, 0.2956, 1, 1, 0.99914, 0.57706, ...]
essentia_harmonic_tension_curve : 377 values [0.4352, 0.49972, 0.49941, 0.49984, 0.49983, 0.49969, 0.49929, 0.49938, 0.49993, 0.49988, ...]
harmonic_tension_curve : 377 values [0.4352, 0.49972, 0.49941, 0.49984, 0.49983, 0.49969, 0.49929, 0.49938, 0.49993, 0.49988, ...]
hpcp_over_time : 4644 values [0.99637, 0.99719, 1, 1, 0.56303, 0.2956, 1, 1, 0.99914, 0.57706, ...]
hpcp_vector : [0.33722, 0.56212, 0.41934, 1, 0.44669, 0.46968, 0.64005, 0.62868, 0.40006, 0.56626, 0.48146, 0.35686]
key : "C"
key_change_from : ["C minor"]
key_change_timestamps : [179.72]
key_change_to : ["G# major"]
key_confidence : 0.753
key_map : [{"key":"C","mode":"minor","start_seconds":0}, {"key":"C","mode":"major","start_seconds":180}]
mode : "minor"
mode_detail : null
mode_family : "minor"
modulation_events : 1
non_western_scale : false
resolution_frequency : 0.28807
tonal_brightness : 0.95002
tonnetz_curves : 2322 values [-0.038579, 0.027089, 0.049238, 0.054786, -0.060907, -0.26709, 0.022996, 0.022264, 0.011158, -0.067555, ...]
Pitch
analyzed_at : "2026-03-22T16:34:04.822582+00:00"
average_pitch_height : 0.085719
interval_sharpness : 0.65748
melody_contour : 377 values [0, 0, 0, 48, 0, 0, 0, 0, 0, 0, ...]
melody_contour_type : "jagged"
pitch_confidence_curve : 387 values [0.00047619, 0.035266, 0.029739, 0.060049, 0.030845, 0.078934, 0.031114, 0.034126, 0.067601, 0.035799, ...]
pitch_contour_hz : 387 values [0, 55.84, 61.959, 65.251, 69.659, 75.367, 58.827, 59.026, 65.162, 79.203, ...]
pitch_contour_midi : 387 values [0, 30.798, 34.197, 35.959, 36.092, 38.421, 32.479, 32.531, 35.935, 38.097, ...]
pitch_range : 1
repetition_score : 0.64461
Timbre
analog_digital_feel : 0.60163
analyzed_at : "2026-03-22T16:34:05.277516+00:00"
brightness_curve : 377 values [0.75165, 0.028859, 0.063079, 0.046856, 0.022159, 0.043299, 0.053289, 0.035661, 0.037855, 0.049968, ...]
distortion_level : 0.36057
fft_spectrum_256 : 76,800 values (256 bands × 300 frames) [0, 0.7157, 0.679, 0.6903, 0.6668, 0.6993, 0.8001, 0.7881, 0.5487, 0.8052, ...]
harmonic_energy_curve : 387 values [0.000040062, 0.10949, 0.11033, 0.13725, 0.10938, 0.13035, 0.11001, 0.11514, 0.13708, 0.11044, ...]
harmonic_percussive_ratio_curve : 387 values [0.91725, 0.68914, 0.77242, 0.85263, 0.61571, 0.87557, 0.70995, 0.75305, 0.8095, 0.60814, ...]
harmonic_richness : 0.62579
mel_spectrogram_compressed : 64,000 values [0, 0, 0.71674, 0.72356, 0.73737, 0.71032, 0.73294, 0.6954, 0.73988, 0.75826, ...]
mfcc_curves : 5,031 values [-1007.7, -956.25, -956.23, -960.55, -944.21, -958.92, -955.34, -957.24, -953.57, -932.88, ...]
mfcc_delta_curves : 5,031 values [1.3798, 1.7545, 0.12942, -1.303, 1.1833, 0.018575, 0.10204, 0.068243, 0.65412, -0.96617, ...]
mfcc_delta2_curves : 5,031 values [0.75554, -0.35112, -0.33267, 0.083053, -0.36956, 0.60001, -0.37405, -0.3397, 0.74856, -0.56601, ...]
mfcc_mean : [0, 1, 0.83689, 1, 0.46564, 1, 0.4477, 1, 0.60815, 0.93908, 0.40308, 0.93806, 0.53267]
mfcc_std : [1, 1, 1, 0.96787, 0.87209, 0.61008, 0.7967, 0.705, 0.77587, 0.51634, 0.71349, 0.46952, 0.5638]
noise_content : 0.37421
percussive_energy_curve : 387 values [0.000031172, 0.045981, 0.033017, 0.024652, 0.068891, 0.019184, 0.045748, 0.03788, 0.035442, 0.074652, ...]
spectral_bandwidth_curve : 387 values [0.001514, 0.0050622, 0.0048263, 0.0039284, 0.006796, 0.004342, 0.0049451, 0.0044832, 0.004567, 0.0082793, ...]
spectral_brightness : 0.10184
spectral_centroid : 0.13316
spectral_centroid_curve : 387 values [0.00028262, 0.009403, 0.0080717, 0.0091394, 0.011387, 0.0101, 0.0084643, 0.0079927, 0.0097342, 0.01441, ...]
spectral_contrast_curves : 2709 values [23.393, 43.883, 48.233, 54.131, 42.514, 50.285, 45.535, 48.964, 51.551, 44.281, ...]
spectral_entropy_curve : 387 values [0.079411, 0.31456, 0.29816, 0.29144, 0.30656, 0.27687, 0.29944, 0.28444, 0.30121, 0.32635, ...]
spectral_flatness : 0.019175
spectral_flatness_curve : 387 values [0.88284, 2.3965e-7, 1.1633e-12, 7.279e-15, 1.6156e-14, 8.1365e-15, 3.3739e-14, 3.2858e-14, 6.9712e-15, 4.494e-14, ...]
spectral_flux : 0.35809
spectral_kurtosis_curve : 387 values [0.30357, 0.70416, 0.70022, 0.84013, 0.43928, 0.67136, 0.69275, 0.71161, 0.74901, 0.36844, ...]
spectral_rolloff_curve : 387 values [0.0010231, 0.01516, 0.014323, 0.013393, 0.018973, 0.014276, 0.014927, 0.013393, 0.014509, 0.023158, ...]
spectral_skewness_curve : 387 values [0.78571, 0.67021, 0.72498, 0.57073, 0.67303, 0.59589, 0.70277, 0.72966, 0.5987, 0.6464, ...]
transient_sharpness : 0.81655
warmth_metallic_index : 0.79205
zero_crossing_rate_curve : 387 values [0.00023251, 0.012114, 0.008231, 0.010114, 0.012695, 0.010719, 0.0091378, 0.0090448, 0.012835, 0.015927, ...]
Energy
aggressiveness_index : 0.34562
analyzed_at : "2026-03-22T16:34:05.842118+00:00"
average_loudness_lufs : -14.729
bass_treble_ratio_curve : 387 values [0.99977, 0.99984, 0.9999, 0.99999, 0.99955, 0.99996, 0.99985, 0.99994, 0.99999, 0.99458, ...]
crest_factor_curve : 387 values [1, 0.010611, 0.0078522, 0.006051, 0.0063259, 0.0060729, 0.0073115, 0.0069906, 0.0059796, 0.0069107, ...]
danceability : 1
dynamic_range_db : 34.99
dynamic_range_score : 0.47009
energy_curve : 387 values [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...]
energy_curve_bass : 387 values [5.5181e-13, 0.050989, 0.047331, 0.084589, 0.057137, 0.07332, 0.052151, 0.05264, 0.088272, 0.062508, ...]
energy_curve_brilliance : 387 values [9.911e-14, 7.8929e-9, 7.5628e-9, 7.6093e-9, 7.4174e-9, 7.4134e-9, 9.4346e-9, 9.7058e-9, 9.7244e-9, 6.8479e-9, ...]
energy_curve_high : 387 values [6.8855e-14, 6.6545e-9, 5.4213e-9, 5.238e-9, 5.53e-9, 5.0293e-9, 7.0706e-9, 7.1883e-9, 9.3292e-9, 4.2728e-9, ...]
energy_curve_low_mid : 387 values [8.9519e-13, 0.060311, 0.05467, 0.10766, 0.098648, 0.099317, 0.066896, 0.064055, 0.11791, 0.15927, ...]
energy_curve_low_mid_6 : 387 values [4.4068e-13, 0.010152, 0.011229, 0.002509, 0.050275, 0.0013267, 0.017943, 0.013204, 0.011427, 0.12151, ...]
energy_curve_mid : 387 values [2.0462e-13, 0.0000078594, 0.000014405, 0.0000032948, 0.000098526, 0.0000064672, 0.000029924, 0.00001231, 0.0000042307, 0.0012538, ...]
energy_curve_mid_6 : 387 values [1.5773e-13, 1.8219e-8, 2.2872e-8, 8.6182e-9, 6.4823e-8, 6.6839e-9, 1.948e-8, 1.8077e-8, 2.1376e-8, 4.7442e-7, ...]
energy_curve_sub : 387 values [2.6701e-9, 0.11382, 0.094717, 0.048523, 0.099593, 0.039489, 0.09318, 0.093651, 0.04359, 0.080834, ...]
energy_curve_sub_bass : 387 values [9.9659e-10, 0.07317, 0.065313, 0.059094, 0.066115, 0.046195, 0.065625, 0.0665, 0.058737, 0.053158, ...]
energy_curve_upper_mid : 387 values [6.0057e-14, 6.231e-9, 4.7896e-9, 4.5511e-9, 4.9607e-9, 4.3426e-9, 6.3553e-9, 6.4321e-9, 9.0751e-9, 3.5502e-9, ...]
energy_mean : 0.96641
energy_peak_position : 0.0025907
energy_rate_of_change : 387 values [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ...]
energy_std : 0.18018
essentia_energy_curve : 377 values [1.2931e-11, 0.51458, 0.47356, 0.54287, 0.5287, 0.50035, 0.48994, 0.49675, 0.5987, 0.51692, ...]
integrated_loudness_lufs : -14.73
loudness_curve_perceptual : 387 values [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...]
loudness_range_lra : 5.03
lufs_per_section : [-20.25, -18.95, -19.1, -18.83, -19.14, -18.7, -20.43, -16.66, -19.29, -18.46, -14.51, -16.71, -14.1, -15.23, -13.93, -14.69, -14.24, -61.78, -60]
peak_loudness : 0.97182
rms_level : 0.96641
smoothness_index : 0.58962
true_peak_dbtp : -0.79
urgency_index : 0.33574
waveform_peaks_max : 1000 values [0.000010746, 0.000010746, 0.24633, 0.26845, 0.38008, 0.28179, 0.33006, 0.24407, 0.21288, 0.28377, ...]
waveform_peaks_min : 1000 values [0.000010746, 0.000010746, -0.39403, -0.35145, -0.37147, -0.34424, -0.30377, -0.333, -0.3351, -0.36613, ...]
waveform_rms_envelope : 3773 values [0.0000075985, 0.000010746, 0.000010746, 0.000010746, 0.000010746, 0.000010746, 0.000010746, 0.000010746, 0.000010746, 0.000010746, ...]
Spatial
analyzed_at : "2026-03-22T16:34:05.976469+00:00"
depth_distribution : 0.53984
dry_wet_balance : 0.46016
height_perception : 0.011
mid_energy_curve : 377 values [5.8793e-9, 0.51602, 0.47488, 0.54441, 0.53019, 0.50175, 0.49132, 0.49815, 0.60036, 0.51839, ...]
phase_coherence_curve : 377 values [0.99844, 0.93132, 0.95709, 0.98804, 0.49994, 0.97572, 0.97922, 0.99445, 0.95347, 0.97663, ...]
reverb_size : 0.31516
side_energy_curve : 377 values [1.4984e-8, 0.66627, 0.6734, 0.81008, 0.63241, 0.64228, 0.55097, 0.1833, 0.47563, 0.53757, ...]
stereo_correlation_curve : 377 values [0.97135, 0.72972, 0.67856, 0.67683, 0.75509, 0.74361, 0.78641, 0.97738, 0.88713, 0.80735, ...]
stereo_image_motion : 0.2041
stereo_width : 0.194
stereo_width_curve : 377 values [0.43258, 0.28906, 0.3087, 0.31907, 0.27305, 0.28729, 0.26098, 0.10384, 0.19966, 0.24616, ...]
Arrangement
analyzed_at : "2026-03-22T16:34:06.097736+00:00"
bass_presence : 1
drums_presence : 0.37421
fade_out : true
fx_presence : 0.026993
harmonic_presence : 0.62579
intro_end_seconds : 0.51
is_instrumental_estimate : true
layer_count_mean : 0.39496
layer_count_over_time : 387 values [1, 0.13143, 0.12762, 0.11238, 0.15238, 0.11238, 0.12762, 0.12381, 0.12762, 0.18476, ...]
layer_count_peak : 1
melodic_presence : 0.30097
minimalism_maximalism_score : 0.51844
novelty_curve : 387 values [0.13112, 0.18441, 0.07612, 0.14491, 0.15488, 0.20597, 0.15225, 0.10525, 0.23044, 0.09794, ...]
outro_start_seconds : 182.88
repetition_pairs : [{"segment_a":20,"segment_b":80,"similarity":0.7988656577788488}, {"segment_a":34,"segment_b":85,"similarity":0.7226392782792834}]
self_similarity_matrix : 10,000 values [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]
silence_count : 2
silence_map : [{"end":0.49,"start":0,"duration":0.49}, {"end":188.5,"start":182.95,"duration":5.55}]
total_silence_seconds : 6.04
vocal_activity_map : 385 values [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]
vocal_energy_ratio : 0.1899
Stems
analysis_bass_centroid_curve : 385 values [0.23698, 0.029337, 0.031143, 0.010153, 0.025165, 0.01497, 0.042819, 0.04181, 0.0094135, 0.025509, ...]
analysis_bass_energy_curve : 385 values [0.0011647, 0.46195, 0.488, 0.60199, 0.52713, 0.54539, 0.47194, 0.45542, 0.67604, 0.56451, ...]
analysis_bass_pitch_contour_hz : 385 values [398.99, 40.751, 42.301, 61.14, 46.322, 61.653, 42.353, 42.568, 58.795, 69.481, ...]
analysis_bass_pitch_contour_midi : 385 values [67.306, 16.914, 23.382, 33.652, 23.508, 31.144, 23.395, 23.454, 32.612, 32.29, ...]
analysis_created_at : "2026-03-22T16:34:06.844114+00:00"
analysis_drum_onset_strengths : 847 values [0.12212, 0.18639, 0.21007, 0.12306, 0.20383, 0.11233, 0.095769, 0.13654, 0.08904, 0.13462, ...]
analysis_drum_onset_timestamps : 847 values [0.85333, 1.92, 2.88, 3.232, 3.68, 5.664, 6.0907, 6.72, 7.0613, 8.0107, ...]
analysis_drum_pattern_confidence : 0.40624
analysis_drum_pattern_type : "irregular"
analysis_drums_centroid_curve : 385 values [0.62451, 0.2484, 0.24938, 0.29867, 0.19402, 0.24027, 0.17314, 0.19096, 0.30612, 0.21867, ...]
analysis_drums_energy_curve : 385 values [0.00026861, 0.038797, 0.0054591, 0.044964, 0.048756, 0.017703, 0.069666, 0.046426, 0.0016191, 0.018274, ...]
analysis_hihat_timestamps : 249 values [19.968, 20.267, 20.715, 21.461, 21.92, 22.667, 23.115, 23.861, 24.171, 24.32, ...]
analysis_kick_timestamps : 463 values [0.85333, 1.92, 2.88, 3.232, 3.68, 5.664, 6.0907, 6.72, 7.0613, 8.0107, ...]
analysis_other_centroid_curve : 385 values [0.42059, 0.28328, 0.26067, 0.28947, 0.25475, 0.31683, 0.26891, 0.30673, 0.2919, 0.19639, ...]
analysis_other_energy_curve : 385 values [0.00099509, 0.0087122, 0.013549, 0.0037746, 0.012637, 0.0033995, 0.015587, 0.0089998, 0.010915, 0.025577, ...]
analysis_snare_timestamps : 135 values [10.123, 19.659, 20.107, 20.565, 21.013, 21.163, 21.76, 22.059, 22.507, 22.965, ...]
analysis_updated_at : "2026-03-22T16:34:07.465041+00:00"
analysis_vocal_centroid_curve : 385 values [0.50308, 0.50909, 0.51586, 0.46015, 0.49188, 0.47611, 0.52421, 0.53812, 0.48424, 0.5546, ...]
analysis_vocal_energy_curve : 385 values [0.00035694, 0.00042593, 0.00045768, 0.00030692, 0.00040925, 0.000406, 0.0004881, 0.00052751, 0.00037449, 0.00055588, ...]
analysis_vocal_pitch_confidence : 385 values [0.12979, 0.13212, 0.12506, 0.13389, 0.11535, 0.11962, 0.12637, 0.12289, 0.12803, 0.12428, ...]
analysis_vocal_pitch_contour_hz : 385 values [1997.6, 1997.6, 1997.6, 1997.6, 1997.6, 1823.9, 1997.6, 1997.6, 1997.6, 1997.6, ...]
analysis_vocal_pitch_contour_midi : 385 values [95.192, 95.192, 95.192, 95.192, 95.192, 86.915, 95.192, 95.192, 95.192, 95.192, ...]
analysis_vocal_vibrato_extent : 16.093
analysis_vocal_vibrato_presence : 0.97122
analysis_vocal_vibrato_rate : 8.5227
bass_energy_curve : 377 values [0.0018, 0.7405, 0.7534, 0.8433, 0.8602, 0.8144, 0.7553, 0.7584, 0.9703, 0.8227, ...]
bass_line_complexity : 1
bass_pitch_mean : 62.03
bass_prominence : 0.552
bass_rms : 0.11989
bass_root_note : "C"
bass_sub_ratio : 0.6438
created_at : "2026-03-19T06:07:52.911248+00:00"
drums_classification_confidence : 0.95
drums_classification_source : "algorithm_confident"
drums_energy_curve : 377 values [0.0006, 0.1662, 0.0159, 0.3618, 0.1084, 0.1049, 0.295, 0.1971, 0.0339, 0.0716, ...]
drums_is_programmed : true
drums_onset_density : 4.4928
drums_pattern_complexity : 0.0225
drums_prominence : 0.7103
drums_rms : 0.15427
drums_timing_variance : 0.018968
harmonic_vocal_balance : 0.6213
key_bass_agreement : true
key_validated : true
other_energy_curve : 377 values [0.0016, 0.0194, 0.0295, 0.0051, 0.0263, 0.0205, 0.0323, 0.0144, 0.0674, 0.0263, ...]
other_harmonic_density : 0.9768
other_prominence : 0.2361
other_rms : 0.051288
other_spectral_centroid : 0.152
rhythmic_foundation : 1
section_map : [{"type":"intro","end_seconds":5.5,"start_seconds":0}, {"type":"instrumental","end_seconds":29,"start_seconds":5.5}, {"type":"verse","end_seconds":58.5,"start_seconds":29}, {"type":"chorus","end_seconds":64,"start_seconds":58.5}, {"type":"verse","end_seconds":87.5,"start_seconds":64}, {"type":"chorus","end_seconds":100,"start_seconds":87.5}, {"type":"verse","end_seconds":145.5,"start_seconds":100}, {"type":"chorus","end_seconds":154,"start_seconds":145.5}, {"type":"verse","end_seconds":188.5,"start_seconds":154}]
separation_model : "htdemucs_ft"
separation_time_seconds : 6.42
stem_separation_quality : 0.9925
stems_available : true
updated_at : "2026-03-22T16:34:07.376195+00:00"
vocal_breathiness : 0.45
vocal_effort_curve : 377 values [0.0006, 0.0008, 0.0008, 0.0006, 0.0008, 0.0008, 0.0009, 0.001, 0.0008, 0.001, ...]
vocal_pitch_curve : []
vocal_pitch_mean : 0
vocal_pitch_std : 0
vocal_prominence : 0.3873
vocal_range_high_hz : 0
vocal_range_high_midi : 0
vocal_range_low_hz : 0
vocal_range_low_midi : 0
vocal_range_semitones : 0
vocal_rms : 0.084127
vocal_vibrato_depth : 0
vocal_vibrato_rate : 0
vocal_voiced_ratio : 0
Color
algorithm_version : "1.0"
color_depth : 0.3152
color_layering : 0.395
contrast_composition : 0.4701
edge_sharpness : 0.8166
generated_at : "2026-03-22T16:34:08.440685+00:00"
gradient_motion : 0.4383
hex : "#CA5B36"
hue : 15
luminance : 0.503
oklch_chroma : 0.15194
oklch_hue : 41.08
oklch_lightness : 0.60359
palette_harmony : 0.9961
saturation : 0.5851
texture_granularity : 0.5604
AI-Derived (Tier 2)
analog_digital_feel : null
claude_model : "claude-sonnet-4-6"
color_temperature_curve : 387 values [0.44, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, 0.59, ...]
contrast_volatility : 0.084698
danceability_curve : 387 values [0.07516, 0.45632, 0.5139, 0.36478, 0.57334, 0.31493, 0.5066, 0.48346, 0.38415, 0.593, ...]
derivation_prompt_version : "tier2_v2.0"
derived_at : "2026-03-16T19:17:34.615676+00:00"
emotional_balance : 0.62
emotional_intensity_curve : 387 values [0.2224, 0.47033, 0.47837, 0.48665, 0.46331, 0.48906, 0.47215, 0.47642, 0.48246, 0.46305, ...]
genre_conformity_score : 0.71
geometric_sharpness : 0.51
hook_density : 0.54
hook_strength : 0.76
innovation_score : 0.36
motif_uniqueness : 0.74
motion_velocity_mapping : 387 values [0, 0.67555, 0.67555, 0.67555, 0.67555, 0.67555, 0.67555, 0.67555, 0.67555, 0.67555, ...]
narrative_curvature : 0.22
organic_mechanical_feel : 0.54
particle_density_mapping : 387 values [0.51844, 0.068137, 0.066162, 0.058262, 0.079, 0.058262, 0.066162, 0.064187, 0.066162, 0.095787, ...]
signal_entropy : 0.21
structural_predictability : 0.84
tempo_feel : null
tempo_feel_confidence : null
tempo_feel_note : null
tension_curve_composite : 387 values [0.13063, 0.42227, 0.41184, 0.40224, 0.4228, 0.41243, 0.4119, 0.41181, 0.42241, 0.41357, ...]
textural_complexity_curve : 387 values [0.52382, 0.3538, 0.33773, 0.32115, 0.35768, 0.32677, 0.33812, 0.33247, 0.34865, 0.36333, ...]
visual_brightness_curve : 387 values [0, 0.86944, 0.85008, 0.85018, 0.85005, 0.85005, 0.85009, 0.85021, 0.85019, 0.85002, ...]
warmth_metallic_index : null
Emotional (Tier 3)
analyst_confirmed : true
analyst_id : "daef3c29-b712-473c-b01e-346323d60aea"
arousal : 870
arousal_confidence : 0.91
confirmed_at : "2026-03-17T17:38:11.053+00:00"
created_at : "2026-03-17T17:35:01.113205+00:00"
dominant_emotion : "euphoric energy"
inspirational_confidence : 0.45
inspirational_quality : 390
melancholy_confidence : 0.82
melancholy_index : 80
mystery_confidence : 0.78
mystery_index : 110
nostalgia_confidence : 0.62
nostalgia_index : 380
sensuality_confidence : 0.83
sensuality_index : 600
triumph_confidence : 0.8
triumph_index : 760
updated_at : "2026-03-17T17:35:01.113205+00:00"
valence : 780
valence_confidence : 0.88
Context (Tier 3)
analyst_confirmed : false
analyst_id : "daef3c29-b712-473c-b01e-346323d60aea"
confirmed_at : null
created_at : "2026-03-17T17:35:01.299615+00:00"
explicit_lyrics : true
family_friendly : false
headphones_speakers : "speakers"
listening_context : ["club", "hype", "social"]
listening_context_confidence : 0.93
repeatability_confidence : 0.91
repeatability_score : 890
seasonal_feel : ["all_season"]
seasonal_feel_confidence : 0.6
solo_group : "group"
time_of_day : ["late_night"]
time_of_day_confidence : 0.78
updated_at : "2026-03-17T17:35:01.299615+00:00"
Narrative (Tier 3)
analyst_confirmed : true
analyst_id : "daef3c29-b712-473c-b01e-346323d60aea"
arc_confidence : 0.88
arc_notes : null
build_phases : [{"description":"Song hits its stride — starts to ride and flow, the bounce fully locks in around 30 seconds.","timestamp_normalized":0.13}, {"description":"The 'what's my favorite word' call-and-response begins, triggering crowd participation and vocal engagement.","timestamp_normalized":0.17}, {"description":"The 'blow the whistle' moment lands — full crowd engagement achieved, people are standing and moving.","timestamp_normalized":0.22}]
confirmed_at : "2026-03-17T17:38:11.053+00:00"
created_at : "2026-03-17T17:35:01.407005+00:00"
drop_climax_points : [{"intensity":0.93,"description":"The 'blow the whistle' hook lands for the first time — maximum crowd activation moment, whistles appear in the background, full-body engagement.","timestamp_normalized":0.22}]
emotional_turning_points : [{"shift_type":"positive","description":"Call-and-response 'what's my favorite word' shifts the song from a solo performance into a communal, participatory experience.","timestamp_normalized":0.17}, {"shift_type":"complex","description":"Towards the end of the song Too $hort becomes notably more lyrical, shifting the texture from hook-driven bounce to verse-driven substance.","timestamp_normalized":0.75}]
intro_energy : "Immediately recognizable and high-energy from the first second. The bounce begins at the very top and the crowd is already singing before the verse starts."
overall_arc_type : "sustained"
resolution_phase : "The final chorus returns approximately 20 seconds before the song ends, delivering a strong closing statement. The analyst notes it is particularly impactful as a conclusive moment rather than a fade."
surprise_moments : null
updated_at : "2026-03-17T17:35:01.407005+00:00"
Cultural (Tier 3)
analyst_confirmed : true
analyst_credit : "Andrew Brownlee"
analyst_id : "daef3c29-b712-473c-b01e-346323d60aea"
confirmed_at : "2026-03-17T17:38:11.053+00:00"
created_at : "2026-03-17T17:35:01.501226+00:00"
cultural_context_notes : "Released during the peak of the Bay Area Hyphy movement, 'Blow the Whistle' became one of the defining anthems of Oakland hip-hop culture. The whistle concept draws from sports referee symbolism — a foul has been called. The song name-drops Dave Chappelle, referencing his 'I'm rich, bitch!' catchphrase which Too $hort claims he influenced. In 2022, the City of Oakland named a section of Foothill Boulevard 'Too Short Way' and declared December 10th 'Too Short Day.' The song has become a cross-genre, cross-demographic staple in clubs, sports arenas, and public events. Too $hort performed the song with The Roots on Late Night with Jimmy Fallon."
cultural_origin : "Oakland, CA / Bay Area hip-hop; references Houston, Memphis, and ATL as sonic touchstones"
listening_notes : null
production_era : "2000s"
updated_at : "2026-03-17T17:35:01.501226+00:00"
External (Tier 4)
acrcloud_id : null
apple_music_id : "187333053"
apple_music_url : "https://music.apple.com/us/album/blow-the-whistle/187332799?i=187333053"
external_bpm_reference : null
external_key_reference : null
external_source : null
fetched_at : "2026-03-16T19:00:44.331642+00:00"
genius_id : 45978
genius_url : "https://genius.com/Too-short-blow-the-whistle-lyrics"
lyrics : 2065 characters "[Verse 1]\nI go on and on\nCan't understand how I last so long\nI must have super powers\nRap 225 thousand hours\nGet it calculated, do the math\nI made 1,000 songs that made you move your ass\nAnd for the last 300 months\nI made 16 albums with me on the front and they bump\nWhere you get your beats?\nI heard"…
lyrics_annotations : [{"id":36575592,"fragment":"I made 1,000 songs that made you move your ass","annotations":[{"body":{"plain":"DID THE MATH (like he said). At the time this was released Too $hort did not have 1,000 songs, he had 232 songs.\n\nWhich means he had less than 232 songs that made us dance because there’s no way..\n\nSo he didn’t make “A thousand songs-”"}}]}, {"id":29333049,"fragment":"Ball and G, that’s Memphis, baby","annotations":[{"body":{"plain":"8Ball and MJG are a rap duo from Memphis, Tennessee.\n\n\n\nIn 2005 (the year before this song came out) they were featured on the big hit “Stay Fly” by fellow Tennesseans Three 6 Mafia. Too $hort worked with 8Ball & MJG on his 1999 track “Don’t Stop Rappin'.”"}}]}, {"id":14865711,"fragment":"They came with Dre... they don’t need ID","annotations":[{"body":{"plain":"It’s the line from Mac Dre. Everybody that knows Mac Dre knows what it meant. But if you don’t know the Mac Dre bible, and the lyrics and his hit records, that’s a big record that he had, the “Go Stupid” record.\n\nWhen we go to the club, we don’t need ID. Everywhere we go it’s a party, y'all. We’re gonna get it cracking like the Mardi Gras. “Go Stupid,” that’s a classic Bay song. It never, ever gets old. Ever. You play it on the radio, you play it in the club, you play it for kids who were born after he passed away, and they know it. “Go Stupid,” that’s probably more classic in the Bay than “Blow the Whistle.”"}}]}, {"id":14865698,"fragment":"I come from East Oakland where the youngstas get hyphy","annotations":[{"body":{"plain":"It never went away. Punk was so big, and these other things were so big, that I think the Bay wanted hyphy to be the West coast version, the Bay’s version of crunk. They wanted to be that big worldwide, nationwide—they wanted to be big. When it stayed sort of regional, everybody’s like, “Ah, the hyphy died, hyphy died, the hyphy movement is dead.” I’m sitting there, I tell people in the band about this all the time. They said the hyphy movement is dead, but they still dance like they’re doing the hyphy movement; they still make records that sound like the hyphy movement. It’s the same energy, the same subject. I’m like, bro, it didn’t die. To me, it was a certain swag and a certain tempo of the be at that 100 beats per minute. It could have been slower or faster, but it was roughly like that a 100, it does something to you in a west coast beat, to be at a 100 beats per minute, give or take. I kept telling dudes the whole time—2012, ‘13, '14—don’t lose that fucking tempo. If you lose that tempo, somebody’s going to take it. We all know that I say thank you to 'em, but we all know DJ Mustard took the Bay sound and elevated it to another level, and I think that it was a compliment. Certain people were offended, but I thought it was flattering. You know the best compliment, all this shit. You love it when you hear that, “Mustard on the beat.” You love that shit."}}]}, {"id":14865681,"fragment":"And made 50 million dollars\n I’m proud of you D","annotations":[{"body":{"plain":"It’s all a play on words, man. In the song, there’s some shit in the rap, you just kind of fucking exaggerate it or you have to say 93 rappers, it just sounds good. It could have been 94 rappers. I probably toyed around with 92, 91, 103, and I was like 93 sounds good."}}]}, {"id":14865680,"fragment":"Houston and LA, ask Dave Chappelle about my rich bitch","annotations":[{"body":{"plain":"Dave Chappelle, in the show, he goes, “I’m rich, bitch!” We hang out pretty often, like if I see him at a show or something we always hang backstage, chop it up, kick it for awhile. He might have mentioned it once or twice. I think he said like a thank you for the namedrop in the song, you know. Because anybody whose name is in that song, you’ve got a lot of love from somewhere just to being in that song."}}]}, {"id":14865672,"fragment":"Leave the country, come back, and hit The Town","annotations":[{"body":{"plain":"Let’s start with like MC Hammer. Y'all know that guy. That’s my little homey. He had a group called Oaktown 357, back in the day. I even had songs called “Oaktown, Oak-Oak-Oaktown.” A lot of t-shirts have “Uptown from the Oak,” all that shit. Somewhere, we had this debate, last year when the Warriors broke out with the Town jerseys, we were having a debate: When did they start calling Oakland “The Town”? Everybody had these different opinions. I don’t know what year it was, but somebody got tired of that Oak Town. We just from The Town. Another reason is that in the Bay, we called San Francisco “The City,” the same way they do in New York if you in Jersey. Lke, “I’m going to the City.” When we in Oakland, we like, “I’m going to the City.” So, it really got comfortable when you go, “Hey, what’s up, man? I’m over here in the City.” “Oh, yeah. I’m over in the town, man. Meet up later.” It was like, “That’s the city; that’s the town. And it’s just been that way for fucking 15-20 years. I can’t tell you how long."}}]}, {"id":14865647,"fragment":"Time to let the whole world play your songs","annotations":[{"body":{"plain":"It’s motivation, to the little guy. I’m like, “Get your shit out there, bro. I’m worldwide.” You know. Let somebody hear your shit. It’s motivating. It’s not shitting on anybody. It’s the song that say, “You fucking up!” Like, stop, fuck. If you fucking up, go sit back on the bench, sidelines, tap yourself out the game."}}]}, {"id":14865637,"fragment":"Your brain is blazed\n You’ve been wide awake for the last 3 days","annotations":[{"body":{"plain":"It’s the hyphy movement. The height of it is 2005-2006, and the hyphy movement was literally about being high and having fun. You know, the car shit and the dances and shit and the E pills that they call fizz pills and fucking label called Fizz Records. Might as well call it motherfucker Ecstasy Records or some shit. It was the culture, man, so I just felt like the song is literally about fucking up. If you start it and you really wanna analyze the song, it’s just about fucking up. It’s like, you can’t do what we do. You can’t hang with the big dogs. “Blow the Whistle” is the symbolism of what you do in sports, basketball, football, when you fuck up. They blow the fucking whistle. It’s a foul or a fucking penalty or some shit. That’s all I’m saying: You’re fucking up in life if you can’t stand up, you know what I’m saying?"}}]}, {"id":14865620,"fragment":"Spit game like Snoop and T.I.P.","annotations":[{"body":{"plain":"These guys, Outkast, UGK, Pimp C, these guys were little dudes. Snoop Dogg—they was little dudes listening to Too $hort. I was sitting on my Cadillac with my chains and talking about “pimp this.” Pimp C told me, “I saw you sitting on that Cadillac with them rope chains on. That’s what I want to do.”\n\nThe beautiful thing is, the influence that I had on them later was the reason why we all made so many songs together and became friends. Because they was like, “You know, you like a big bro.” You know, UGK signed to Jive Records because Too $hort signed to Jive Records, as did E40 and Spice 1. I always knew I was the big homey. I did a lot as the big homey coming up. I learned how to record, mix and master, manufacture and distribute music. I taught that to a lot of people."}}]}]
musicbrainz_id : null
spotify_id : null
spotify_uri : null
updated_at : "2026-03-23T19:16:20.532075+00:00"
Full array data available: Download complete JSON →
For programmatic access across multiple songs: MusicArk API (coming soon)
Use this data
Audio-reactive visuals (TouchDesigner, Notch, Unreal Niagara, Resolume) · DJ mixing & Camelot compatibility · Music production analysis · Emotional scoring for sync licensing · AI and ML training · Data journalism and music research
Browse any song profile for the full analysis. Download the complete dataset for any song as JSON. For batch access across the full catalog, the MusicArk API is coming soon.