PAD Charts
All charts/Area & stream

Two years of listening

stream: the genres swell and shrink around a wandering middle, in smooth curves.

1 The data area/music.php php
<?php

  // Two years of listening, in hours per month: pop steady with a summer swell, rock
  // fading, hip-hop rising, electronic peaking each summer, jazz and classical in winter.

  $listening = [];
  $months    = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ];

  for ( $m = 0; $m < 24; $m++ ) {

    $summer = cos ( ( $m % 12 - 6.5 ) / 12 * 2 * M_PI );
    $winter = - $summer;

    $listening [] = [
      'month'      => $months [$m % 12] . ' ' . ( 2025 + intdiv ( $m, 12 ) ),
      'pop'        => (int) round ( 42 + 10 * $summer + 4 * sin ( $m / 2 ) ),
      'rock'       => (int) round ( 38 - $m * 1.1 + 5 * sin ( $m / 3 + 1 ) ),
      'hiphop'     => (int) round ( 8 + $m * 1.6 + 3 * sin ( $m / 2.5 ) ),
      'electronic' => (int) round ( 12 + 16 * max ( 0, $summer ) ** 2 ),
      'jazz'       => (int) round ( 9 + 7 * max ( 0, $winter ) ),
      'classical'  => (int) round ( 6 + 9 * max ( 0, $winter ) ** 3 + ( $m % 12 == 11 ? 8 : 0 ) ) ];

  }

?>
2 The chart tag area/music.pad pad
{chart 'stream', data='listening', label='month', value='pop, hiphop, rock, electronic, classical, jazz', title='Hours listened per genre, month by month', width=640, height=340}
3 The result inline SVG · no JavaScript
Hours listened per genre, month by month Jan 2025: Pop 32, Hiphop 8, Rock 42, Electronic 12, Classical 14, Jazz 16; Feb 2025: Pop 34, Hiphop 11, Rock 42, Electronic 12, Classical 14, Jazz 16; Mar 2025: Pop 38, Hiphop 13, Rock 41, Electronic 12, Classical 9, Jazz 14; Apr 2025: Pop 43, Hiphop 16, Rock 39, Electronic 12, Classical 6, Jazz 11; May 2025: Pop 48, Hiphop 17, Rock 37, Electronic 13, Classical 6, Jazz 9; Jun 2025: Pop 51, Hiphop 19, Rock 35, Electronic 20, Classical 6, Jazz 9; Jul 2025: Pop 52, Hiphop 20, Rock 32, Electronic 27, Classical 6, Jazz 9; Aug 2025: Pop 50, Hiphop 20, Rock 29, Electronic 27, Classical 6, Jazz 9; Sep 2025: Pop 46, Hiphop 21, Rock 27, Electronic 20, Classical 6, Jazz 9; Oct 2025: Pop 41, Hiphop 21, Rock 24, Electronic 13, Classical 6, Jazz 9; Nov 2025: Pop 36, Hiphop 22, Rock 22, Electronic 12, Classical 6, Jazz 11; Dec 2025: Pop 32, Hiphop 23, Rock 21, Electronic 12, Classical 17, Jazz 14; Jan 2026: Pop 31, Hiphop 24, Rock 20, Electronic 12, Classical 14, Jazz 16; Feb 2026: Pop 33, Hiphop 26, Rock 20, Electronic 12, Classical 14, Jazz 16; Mar 2026: Pop 38, Hiphop 29, Rock 20, Electronic 12, Classical 9, Jazz 14; Apr 2026: Pop 43, Hiphop 31, Rock 20, Electronic 12, Classical 6, Jazz 11; May 2026: Pop 49, Hiphop 34, Rock 21, Electronic 13, Classical 6, Jazz 9; Jun 2026: Pop 52, Hiphop 37, Rock 21, Electronic 20, Classical 6, Jazz 9; Jul 2026: Pop 53, Hiphop 39, Rock 21, Electronic 27, Classical 6, Jazz 9; Aug 2026: Pop 51, Hiphop 41, Rock 21, Electronic 27, Classical 6, Jazz 9; Sep 2026: Pop 47, Hiphop 43, Rock 21, Electronic 20, Classical 6, Jazz 9; Oct 2026: Pop 41, Hiphop 44, Rock 20, Electronic 13, Classical 6, Jazz 9; Nov 2026: Pop 35, Hiphop 45, Rock 18, Electronic 12, Classical 6, Jazz 11; Dec 2026: Pop 31, Hiphop 45, Rock 16, Electronic 12, Classical 17, Jazz 14 Pop Hiphop Rock Electronic Classical Jazz Jan 2025 Apr 2025 Jul 2025 Oct 2025 Jan 2026 Apr 2026 Jul 2026 Oct 2026 Pop: 1,007 in all Hiphop: 649 in all Rock: 630 in all Electronic: 384 in all Classical: 204 in all Jazz: 272 in all Jan 2025: Pop 32, Hiphop 8, Rock 42, Electronic 12, Classical 14, Jazz 16 Feb 2025: Pop 34, Hiphop 11, Rock 42, Electronic 12, Classical 14, Jazz 16 Mar 2025: Pop 38, Hiphop 13, Rock 41, Electronic 12, Classical 9, Jazz 14 Apr 2025: Pop 43, Hiphop 16, Rock 39, Electronic 12, Classical 6, Jazz 11 May 2025: Pop 48, Hiphop 17, Rock 37, Electronic 13, Classical 6, Jazz 9 Jun 2025: Pop 51, Hiphop 19, Rock 35, Electronic 20, Classical 6, Jazz 9 Jul 2025: Pop 52, Hiphop 20, Rock 32, Electronic 27, Classical 6, Jazz 9 Aug 2025: Pop 50, Hiphop 20, Rock 29, Electronic 27, Classical 6, Jazz 9 Sep 2025: Pop 46, Hiphop 21, Rock 27, Electronic 20, Classical 6, Jazz 9 Oct 2025: Pop 41, Hiphop 21, Rock 24, Electronic 13, Classical 6, Jazz 9 Nov 2025: Pop 36, Hiphop 22, Rock 22, Electronic 12, Classical 6, Jazz 11 Dec 2025: Pop 32, Hiphop 23, Rock 21, Electronic 12, Classical 17, Jazz 14 Jan 2026: Pop 31, Hiphop 24, Rock 20, Electronic 12, Classical 14, Jazz 16 Feb 2026: Pop 33, Hiphop 26, Rock 20, Electronic 12, Classical 14, Jazz 16 Mar 2026: Pop 38, Hiphop 29, Rock 20, Electronic 12, Classical 9, Jazz 14 Apr 2026: Pop 43, Hiphop 31, Rock 20, Electronic 12, Classical 6, Jazz 11 May 2026: Pop 49, Hiphop 34, Rock 21, Electronic 13, Classical 6, Jazz 9 Jun 2026: Pop 52, Hiphop 37, Rock 21, Electronic 20, Classical 6, Jazz 9 Jul 2026: Pop 53, Hiphop 39, Rock 21, Electronic 27, Classical 6, Jazz 9 Aug 2026: Pop 51, Hiphop 41, Rock 21, Electronic 27, Classical 6, Jazz 9 Sep 2026: Pop 47, Hiphop 43, Rock 21, Electronic 20, Classical 6, Jazz 9 Oct 2026: Pop 41, Hiphop 44, Rock 20, Electronic 13, Classical 6, Jazz 9 Nov 2026: Pop 35, Hiphop 45, Rock 18, Electronic 12, Classical 6, Jazz 11 Dec 2026: Pop 31, Hiphop 45, Rock 16, Electronic 12, Classical 17, Jazz 14