Blow The Whistle

Too Short

Color ID: #CA5B36

Steady 99 BPM C minor Camelot 5A 2:43

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
463
Snare
135
Hi-hat
249

Kick:Snare ratio: 3.4:1

Drum pattern grid

Kick
Snare
Hat

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 minorG# 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
Loudness range (LRA)

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.

Vocals
39%
Drums
71%
Bass
55%
Harmony
24%
Vocal Range

— – — (0st)

Drums
Programmed
Classification
Algorithm confident (95%)
Bass Root

C ✓ matches key

Sub-Bass

64%

Rhythmic Foundation

100%

Structure

instrumental verse verse verse verse

Emotional Profile

What does this song feel like?

Euphoric Energy
  • Valence

    780

    DevastationEuphoria
  • Arousal

    870

    CatatonicExplosive
  • Nostalgia

    380

    Future-facingAching memory
  • Mystery

    110

    TransparentEnigmatic
  • Triumph

    760

    DefeatedVictorious
  • Melancholy

    80

    JoyfulDevastated
  • Sensuality

    600

    CerebralDeeply sensual
  • Inspiration

    390

    NeutralDeeply inspired

Narrative Arc

How the song moves through time.

Timeline

Build Drop Turn Surprise

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.

Origin

Oakland, CA / Bay Area hip-hop; references Houston, Memphis, and ATL as sonic touchstones

Era

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.

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?

Motif uniqueness 0.74
Structural predictability 0.84
Sonic conformity 0.71
Information density 0.21
Hook density 0.54
Narrative curvature 0.22
Geometric sharpness 0.51
Organic / mechanical feel 0.54
Contrast volatility 0.08

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

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.