Skip to content

Instantly share code, notes, and snippets.

@mattbrehmer
Last active August 29, 2015 14:12
Show Gist options
  • Save mattbrehmer/9004f31b95a192af18df to your computer and use it in GitHub Desktop.
Save mattbrehmer/9004f31b95a192af18df to your computer and use it in GitHub Desktop.
SoundConsensus

SoundConsensus is an interactive visualization by @mattbrehmer for comparing multiple ranked lists of record reviews from 19 prominent music publications. The data visualized here represents the 105 most-reviewed records released in 2014, according to the music publication aggregator site albumoftheyear.org.

Experience SoundConsensus, visit the project page, or visit the github repo.

Visual Encoding: Each column is associated with a music publication. Each cell containing a bar corresponds to a review score. The vertical position of a cell encodes its rank among other reviews from that publication. The bars in each cell encode the score itself.

The first column is unique in that it encodes the overall rank and score calculated by albumoftheyear.org.

The columns are of unequal size because: (1) not all of the music publications reviewed all of the records; and (2) some music publications use a 10-point scale when rating a record, resulting in more ties than those using a 100-point or decimal scale.

Interaction: Hover over a record's artist or name to highlight the ranks and scores across all of the music publications who reviewed the record, and to see details about the record (such as genre, record label, and release date) in the panel at the lower left.

You can also hover over any cell. Clicking on a cell makes the highlighting persist, which can facilitate comparisons between records. Clicking again removes the highlight.

Click on an artist name or album name to visit corresponding albumoftheyear.org artist and album profile pages, which contain links to the original reviews.

Hover over a column header to see the corresponding music publication's full name in a tooltip, along with details about the publication in the panel at the lower left.

Genre & Record Label Filtering: Select a musical genre and / or record label from the dropdown boxes in the lower left to filter the list of records (filtering maintains the relative rank positions of review scores).

Consensus Filtering: Select a consensus level from the dropdown box in the lower left to filter based on a record's standard deviation of review scores, where a high standard deviation corresponds to a low consensus, and vice versa (consensus ranges are at 20% quantiles).

Album_url rank A.V. AMG CoS DIY DiS OMH NME NoRip Paste P4K PM PMA RS Spin 405 TLOBF Skinny TMT Radar Artist Profile_url Album ReleaseDate Label Genre Artist_url SD
http://albumoftheyear.org/album/10891-actress-ghettoville.php 62 6 2 3 2 4 23 3 2 2 4 3 3 Actress http://albumoftheyear.org/artist/1299-actress/ Ghettoville 2014-01-28 Werkdiscs/Ninja Tune IDM 38
http://albumoftheyear.org/album/16609-alt-j-this-is-all-yours.php 92 2 5 2 4 4 2 14 38 3 6 2 5 10 3 2 Alt-J http://albumoftheyear.org/artist/2407-alt-j/ This Is All Yours 2014-09-22 Infectious Art Pop http://altjband.com 33
http://albumoftheyear.org/album/11134-angel-olsen-burn-your-fire-for-no-witness.php 14 3 2 2 2 3 4 1 2 8 2 4 4 3 3 4 2 3 3 Angel Olsen http://albumoftheyear.org/artist/2547-angel-olsen/ Burn Your Fire for No Witness 2014-02-18 Jagjaguwar Singer-Songwriter http://angelolsen.com 90
http://albumoftheyear.org/album/19290-aphex-twin-syro.php 3 2 2 3 2 1 3 1 1 1 4 2 2 2 3 3 3 7 Aphex Twin http://albumoftheyear.org/artist/2513-aphex-twin/ Syro 2014-09-23 Warp Electronic 104
http://albumoftheyear.org/album/20178-ariel-pink-pom-pom.php 42 3 3 4 4 3 2 2 22 3 2 4 2 8 2 5 Ariel Pink http://albumoftheyear.org/artist/5565-ariel-pink/ pom pom 2014-11-18 4AD Psychedelic Pop 41
http://albumoftheyear.org/album/13536-avey-tares-slasher-flicks-enter-the-slasher-house.php 87 3 6 2 5 5 3 14 17 4 5 3 3 6 5 4 6 Avey Tare's Slasher Flicks http://albumoftheyear.org/artist/5805-avey-tares-slasher-flicks/ Enter the Slasher House 2014-04-08 Domino Psychedelic Pop 60
http://albumoftheyear.org/album/16138-basement-jaxx-junto.php 99 7 2 5 4 4 4 3 10 24 3 3 9 11 4 Basement Jaxx http://albumoftheyear.org/artist/622-basement-jaxx/ Junto 2014-08-25 Atlantic Jaxx / PIAS Electronic 32
http://albumoftheyear.org/album/12275-beck-morning-phase.php 37 3 3 3 2 3 2 2 2 13 22 4 2 1 2 5 7 8 1 Beck http://albumoftheyear.org/artist/32-beck/ Morning Phase 2014-02-25 Capitol Singer-Songwriter http://www.beck.com 12
http://albumoftheyear.org/album/11896-black-lips-underneath-the-rainbow.php 95 4 5 5 3 6 4 2 21 26 4 3 6 4 Black Lips http://albumoftheyear.org/artist/41-black-lips/ Underneath The Rainbow 2014-03-18 VICE Garage Rock 78
http://albumoftheyear.org/album/11969-bombay-bicycle-club-so-long-see-you-tomorrow.php 51 1 7 2 4 3 3 13 4 6 5 5 4 Bombay Bicycle Club http://albumoftheyear.org/artist/914-bombay-bicycle-club/ So Long See You Tomorrow 2014-02-03 Island / Vagrant Indie Pop http://bombaybicycleclubmusic.com 43
http://albumoftheyear.org/album/11947-broken-bells-after-the-disco.php 96 6 3 9 6 4 2 4 15 34 3 4 3 2 5 7 2 7 Broken Bells http://albumoftheyear.org/artist/807-broken-bells/ After the Disco 2014-02-04 Columbia Indie Pop 23
http://albumoftheyear.org/album/11375-bruce-springsteen-high-hopes.php 106 6 3 10 3 3 2 5 27 38 4 1 5 9 3 5 7 Bruce Springsteen http://albumoftheyear.org/artist/55-bruce-springsteen/ High Hopes 2014-01-14 Columbia Rock http://brucespringsteen.net 2
http://albumoftheyear.org/album/16511-caribou-our-love.php 24 2 3 2 3 2 1 19 5 2 5 3 5 3 3 7 Caribou http://albumoftheyear.org/artist/490-caribou/ Our Love 2014-10-07 Merge Deep House http://www.caribou.fm 86
http://albumoftheyear.org/album/14396-chromeo-white-women.php 82 3 5 2 4 6 9 14 3 4 3 3 6 Chromeo http://albumoftheyear.org/artist/956-chromeo/ White Women 2014-05-12 Last Gang Electropop http://chromeo.net 22
http://albumoftheyear.org/album/13207-cloud-nothings-here-and-nowhere-else.php 19 4 2 1 2 3 3 5 1 5 4 2 4 3 2 3 4 2 5 Cloud Nothings http://albumoftheyear.org/artist/1581-cloud-nothings/ Here and Nowhere Else 2014-04-01 Carpark / Mom + Pop Indie Rock http://cloudnothings.com 57
http://albumoftheyear.org/album/14112-coldplay-ghost-stories.php 105 5 2 6 3 5 5 3 3 17 37 7 7 3 3 6 Coldplay http://albumoftheyear.org/artist/62-coldplay/ Ghost Stories 2014-05-19 Parlophone/Atlantic Pop Rock http://www.coldplay.com 24
http://albumoftheyear.org/album/13567-conor-oberst-upside-down-mountain.php 70 4 2 4 3 3 2 5 24 4 8 2 3 6 4 7 Conor Oberst http://albumoftheyear.org/artist/65-conor-oberst/ Upside Down Mountain 2014-05-20 Nonesuch Singer-Songwriter http://www.conoroberst.com 36
http://albumoftheyear.org/album/12357-damien-jurado-brothers-and-sisters-of-the-eternal-son.php 46 2 5 5 3 3 4 8 14 2 6 5 7 1 5 Damien Jurado http://albumoftheyear.org/artist/1231-damien-jurado/ Brothers and Sisters of the Eternal Son 2014-01-21 Secretly Canadian Folk http://damienjurado.com 44
http://albumoftheyear.org/album/12956-damon-albarn-everyday-robots.php 48 7 2 4 2 4 2 2 2 17 20 2 7 2 2 4 2 3 Damon Albarn http://albumoftheyear.org/artist/2369-damon-albarn/ Everyday Robots 2014-04-28 Warner Downtempo http://damonalbarnmusic.com 52
http://albumoftheyear.org/album/16645-death-from-above-1979-the-physical-world.php 41 4 2 6 2 4 2 1 2 20 2 4 4 4 7 1 5 Death From Above 1979 http://albumoftheyear.org/artist/1545-death-from-above-1979/ The Physical World 2014-09-09 Last Gang / Warner Bros. Dance Punk http://www.deathfromabove1979.com 50
http://albumoftheyear.org/album/19254-deerhoof-la-isla-bonita.php 50 2 2 7 2 5 4 3 18 14 2 4 5 4 2 6 4 Deerhoof http://albumoftheyear.org/artist/521-deerhoof/ La Isla Bonita 2014-11-04 Polyvinyl Indie Rock http://deerhoof.net 30
http://albumoftheyear.org/album/10824-dum-dum-girls-too-true.php 94 3 2 4 3 6 5 3 6 17 16 3 3 3 3 8 10 3 8 5 Dum Dum Girls http://albumoftheyear.org/artist/927-dum-dum-girls/ Too True 2014-01-28 Sub Pop Indie Pop http://www.wearedumdumgirls.com 13
http://albumoftheyear.org/album/14003-eagulls-eagulls.php 53 3 2 6 2 2 4 2 2 16 7 4 3 5 5 6 Eagulls http://albumoftheyear.org/artist/3626-eagulls/ Eagulls 2014-03-03 Partisan Garage Punk http://eagulls.co.uk 11
http://albumoftheyear.org/album/13035-ema-the-futures-void.php 25 4 2 4 2 3 3 2 16 2 6 2 2 3 4 1 3 2 EMA http://albumoftheyear.org/artist/1702-ema/ The Future's Void 2014-04-08 Matador / City Slang Indie Rock 89
http://albumoftheyear.org/album/13946-eno-hyde-someday-world.php 107 6 3 8 4 5 4 18 27 5 6 6 8 6 Eno • Hyde http://albumoftheyear.org/artist/6007-eno-hyde/ Someday World 2014-05-05 Warp Electronic 31
http://albumoftheyear.org/album/14589-first-aid-kit-stay-gold.php 38 2 5 2 4 2 2 13 17 3 6 3 2 9 4 2 First Aid Kit http://albumoftheyear.org/artist/2204-first-aid-kit/ Stay Gold 2014-06-10 Columbia Folk http://www.thisisfirstaidkit.com 80
http://albumoftheyear.org/album/16605-fka-twigs-lp1.php 7 2 2 3 2 2 3 2 2 3 3 2 1 3 1 1 3 2 5 2 FKA Twigs http://albumoftheyear.org/artist/2910-fka-twigs/ LP1 2014-08-12 Young Turks Art Pop http://fkatwi.gs 69
http://albumoftheyear.org/album/17704-flying-lotus-youre-dead.php 10 2 1 4 2 2 2 2 8 1 2 2 2 4 2 4 3 Flying Lotus http://albumoftheyear.org/artist/118-flying-lotus/ You're Dead! 2014-10-07 Warp Jazz Fusion http://flying-lotus.com 101
http://albumoftheyear.org/album/18615-foo-fighters-sonic-highways.php 101 5 3 8 2 6 5 3 5 21 32 3 5 3 10 Foo Fighters http://albumoftheyear.org/artist/889-foo-fighters/ Sonic Highways 2014-11-10 Roswell Alternative Rock 63
http://albumoftheyear.org/album/17865-foxygen-and-star-power.php 100 4 5 5 2 6 5 6 20 5 7 5 5 5 Foxygen http://albumoftheyear.org/artist/2385-foxygen/ ...And Star Power 2014-10-14 Jagjaguwar Psychedelic Pop 9
http://albumoftheyear.org/album/14394-fucked-up-glass-boys.php 35 2 1 3 2 3 3 3 2 18 20 2 6 4 3 5 2 4 5 Fucked Up http://albumoftheyear.org/artist/125-fucked-up/ Glass Boys 2014-06-03 Matador Hardcore Punk http://fuckedup.cc 82
http://albumoftheyear.org/album/12725-future-islands-singles.php 20 1 4 2 3 2 2 14 11 4 3 3 2 3 3 2 4 Future Islands http://albumoftheyear.org/artist/1482-future-islands/ Singles 2014-03-25 4AD Synthpop http://future-islands.com 93
http://albumoftheyear.org/album/13935-hamilton-leithauser-black-hours.php 67 3 7 2 4 3 4 3 21 16 3 5 4 5 2 7 Hamilton Leithauser http://albumoftheyear.org/artist/6003-hamilton-leithauser/ Black Hours 2014-06-03 Ribbon Music Chamber Pop http://hamiltonleithauser.com 76
http://albumoftheyear.org/album/11962-hospitality-trouble.php 84 2 5 3 5 2 4 17 15 3 3 8 4 6 Hospitality http://albumoftheyear.org/artist/2232-hospitality/ Trouble 2014-01-28 Merge Indie Pop 46
http://albumoftheyear.org/album/14685-how-to-dress-well-what-is-this-heart.php 57 6 2 4 2 4 4 5 9 3 6 2 4 3 8 7 6 3 How to Dress Well http://albumoftheyear.org/artist/1344-how-to-dress-well/ What Is This Heart? 2014-06-24 Weird World R&B http://howtodresswell.com 10
http://albumoftheyear.org/album/16543-interpol-el-pintor.php 60 2 3 4 2 2 2 2 4 24 29 2 4 3 4 2 6 7 Interpol http://albumoftheyear.org/artist/545-interpol/ El Pintor 2014-09-09 Matador Indie Rock http://www.interpolnyc.com 37
http://albumoftheyear.org/album/14614-jack-white-lazaretto.php 56 2 2 5 2 3 3 3 3 9 19 3 4 2 4 6 5 9 4 Jack White http://albumoftheyear.org/artist/2228-jack-white/ Lazaretto 2014-06-10 Third Man Singer-Songwriter http://jackwhiteiii.com 4
http://albumoftheyear.org/album/16140-jenny-lewis-the-voyager.php 47 4 1 4 3 5 5 4 16 18 3 1 4 5 4 3 Jenny Lewis http://albumoftheyear.org/artist/171-jenny-lewis/ The Voyager 2014-07-29 Warner Bros. Pop Rock http://jennylewis.com 45
http://albumoftheyear.org/album/18125-jessie-ware-tough-love.php 68 2 4 7 2 3 3 3 4 18 17 2 6 3 5 3 8 Jessie Ware http://albumoftheyear.org/artist/2421-jessie-ware/ Tough Love 2014-10-13 PMR / Island R&B 42
http://albumoftheyear.org/album/16986-karen-o-crush-songs.php 104 6 3 7 2 5 3 3 7 21 30 6 3 5 11 8 Karen O http://albumoftheyear.org/artist/7286-karen-o/ Crush Songs 2014-09-09 Cult Singer-Songwriter 17
http://albumoftheyear.org/album/11903-katy-b-little-red.php 64 4 2 4 3 3 4 12 4 7 2 3 5 4 4 Katy B http://albumoftheyear.org/artist/1590-katy-b/ Little Red 2014-02-10 Sony/Columbia Dance Pop 25
http://albumoftheyear.org/album/12018-kelis-food.php 58 1 4 2 2 2 3 22 26 3 4 2 5 5 8 Kelis http://albumoftheyear.org/artist/1263-kelis/ Food 2014-04-22 Ninja Tune Neo-Soul http://www.iamkelis.com 7
http://albumoftheyear.org/album/16018-la-roux-trouble-in-paradise.php 54 3 5 2 5 3 1 3 24 4 4 3 2 7 5 5 La Roux http://albumoftheyear.org/artist/699-la-roux/ Trouble in Paradise 2014-07-21 Polydor Synthpop 88
http://albumoftheyear.org/album/15950-lana-del-rey-ultraviolence.php 78 8 2 1 2 4 4 4 3 19 2 2 3 2 12 9 Lana Del Rey http://albumoftheyear.org/artist/1969-lana-del-rey/ Ultraviolence 2014-06-17 Polydor / Interscope Dream Pop http://www.lanadelrey.com 3
http://albumoftheyear.org/album/12819-liars-mess.php 44 4 2 7 2 3 1 2 1 26 21 3 3 3 2 6 4 2 6 2 Liars http://albumoftheyear.org/artist/505-liars/ Mess 2014-03-25 Mute Experimental Rock http://www.liarsliarsliars.com 28
http://albumoftheyear.org/album/14008-lykke-li-i-never-learn.php 45 2 2 2 5 2 4 3 15 7 3 8 3 4 3 2 5 Lykke Li http://albumoftheyear.org/artist/209-lykke-li/ I Never Learn 2014-05-05 Atlantic Singer-Songwriter http://lykkeli.com 20
http://albumoftheyear.org/album/13033-mac-demarco-salad-days.php 16 2 1 5 2 2 1 2 21 6 3 3 3 2 5 2 Mac DeMarco http://albumoftheyear.org/artist/2620-mac-demarco/ Salad Days 2014-04-01 Captured Tracks Singer-Songwriter http://macdemarco.bandcamp.com 92
http://albumoftheyear.org/album/11094-marissa-nadler-july.php 31 2 4 3 3 2 2 10 2 3 5 4 6 5 Marissa Nadler http://albumoftheyear.org/artist/216-marissa-nadler/ July 2014-02-04 Sacred Bones / Bella Union Folk 85
http://albumoftheyear.org/album/16361-merchandise-after-the-end.php 65 2 3 2 4 4 1 3 7 20 4 4 8 4 3 Merchandise http://albumoftheyear.org/artist/2688-merchandise/ After the End 2014-08-26 4AD Indie Rock 27
http://albumoftheyear.org/album/11101-metronomy-love-letters.php 85 2 8 2 5 3 2 35 4 4 4 5 5 3 2 Metronomy http://albumoftheyear.org/artist/228-metronomy/ Love Letters 2014-03-10 Because Music Indietronica http://metronomy.co.uk 26
http://albumoftheyear.org/album/10727-mogwai-rave-tapes.php 66 4 3 6 2 4 2 3 2 13 28 3 3 5 6 1 7 10 Mogwai http://albumoftheyear.org/artist/232-mogwai/ Rave Tapes 2014-01-21 Sub Pop Rock Action Post-Rock http://mogwai.co.uk 21
http://albumoftheyear.org/album/16056-morrissey-world-peace-is-none-of-your-business.php 103 8 3 6 3 4 4 1 11 29 5 8 3 3 2 7 5 Morrissey http://albumoftheyear.org/artist/233-morrissey/ World Peace Is None of Your Business 2014-07-15 Harvest Capitol Alternative Rock 6
http://albumoftheyear.org/album/12260-neneh-cherry-blank-project.php 18 2 1 4 2 1 2 4 13 2 3 3 2 5 3 1 4 Neneh Cherry http://albumoftheyear.org/artist/4758-neneh-cherry/ Blank Project 2014-02-25 Smalltown Supersound Art Pop http://nenehcherry.com 58
http://albumoftheyear.org/album/13445-owen-pallett-in-conflict.php 22 3 1 2 3 3 3 2 4 13 11 2 3 3 2 4 4 Owen Pallett http://albumoftheyear.org/artist/792-owen-pallett/ In Conflict 2014-05-27 Domino / Secret City Art Pop http://owenpalletteternal.com 83
http://albumoftheyear.org/album/14613-parquet-courts-sunbathing-animal.php 27 3 2 5 2 4 3 2 2 21 5 2 4 2 2 5 4 2 3 Parquet Courts http://albumoftheyear.org/artist/2771-parquet-courts/ Sunbathing Animal 2014-06-03 What's Your Rupture? / Mom + Pop Indie Rock 105
http://albumoftheyear.org/album/14117-perfect-pussy-say-yes-to-love.php 26 5 2 4 2 2 2 1 9 5 4 1 2 2 6 5 4 7 Perfect Pussy http://albumoftheyear.org/artist/5051-perfect-pussy/ Say Yes to Love 2014-03-18 Captured Tracks Noise Rock 75
http://albumoftheyear.org/album/17453-perfume-genius-too-bright.php 8 2 2 2 2 3 2 2 2 11 6 1 2 3 3 3 2 1 3 Perfume Genius http://albumoftheyear.org/artist/1293-perfume-genius/ Too Bright 2014-09-23 Matador / Turnstile Art Pop 100
http://albumoftheyear.org/album/12020-phantogram-voices.php 75 4 3 5 3 4 5 9 28 2 4 2 5 Phantogram http://albumoftheyear.org/artist/1017-phantogram/ Voices 2014-02-18 Republic Indietronica http://phantogram.com 66
http://albumoftheyear.org/album/13826-pharrell-g-i-r-l.php 102 4 2 5 6 4 2 5 27 5 9 2 2 5 5 9 Pharrell http://albumoftheyear.org/artist/5942-pharrell/ G I R L 2014-03-03 Columbia R&B 1
http://albumoftheyear.org/album/12821-real-estate-atlas.php 49 6 2 3 2 4 3 2 6 3 6 3 3 3 9 5 4 3 Real Estate http://albumoftheyear.org/artist/683-real-estate/ Atlas 2014-03-04 Domino Indie Rock http://realestatetheband.com 8
http://albumoftheyear.org/album/19287-run-the-jewels-rtj2.php 6 2 1 2 2 3 2 1 4 2 1 3 2 3 6 1 Run the Jewels http://albumoftheyear.org/artist/3975-run-the-jewels/ Run the Jewels 2 2014-10-28 Mass Appeal Hip Hop http://runthejewels.net 55
http://albumoftheyear.org/album/16904-rustie-green-language.php 93 2 7 3 6 4 3 7 18 4 3 4 2 9 2 4 4 Rustie http://albumoftheyear.org/artist/2090-rustie/ Green Language 2014-08-26 Warp Electronic 14
http://albumoftheyear.org/album/17094-ryan-adams-ryan-adams.php 61 6 2 3 3 4 3 2 15 28 2 3 4 7 2 4 Ryan Adams http://albumoftheyear.org/artist/293-ryan-adams/ Ryan Adams 2014-09-08 Pax Am / Blue Note Singer-Songwriter http://paxamrecords.com 81
http://albumoftheyear.org/album/17720-sbtrkt-wonder-where-we-land.php 73 3 3 2 4 5 2 3 2 33 4 4 4 7 8 2 SBTRKT http://albumoftheyear.org/artist/1540-sbtrkt/ Wonder Where We Land 2014-09-23 Young Turks Future Garage http://sbtrkt.com 61
http://albumoftheyear.org/album/11871-schoolboy-q-oxymoron.php 39 4 3 2 3 12 2 4 2 3 4 5 5 Schoolboy Q http://albumoftheyear.org/artist/2109-schoolboy-q/ Oxymoron 2014-02-25 Top Dawg / Interscope Hip Hop http://www.schoolboyq.com 95
http://albumoftheyear.org/album/17526-scott-walker-sunn-o-soused.php 12 1 2 6 2 2 3 2 2 16 4 3 2 1 2 2 2 Scott Walker & Sunn O))) http://albumoftheyear.org/artist/7484-scott-walker-sunn-o/ Soused 2014-10-21 4AD Drone Metal 29
http://albumoftheyear.org/album/15766-shabazz-palaces-lese-majesty.php 17 2 1 3 3 3 2 2 9 3 2 3 1 5 3 3 3 Shabazz Palaces http://albumoftheyear.org/artist/997-shabazz-palaces/ Lese Majesty 2014-07-29 Sub Pop Hip Hop http://www.shabazzpalaces.com 62
http://albumoftheyear.org/album/6906-sharon-jones-the-dap-kings-give-the-people-what-they-want.php 32 3 6 3 3 2 5 13 4 2 3 3 4 2 3 3 Sharon Jones & the Dap-Kings http://albumoftheyear.org/artist/815-sharon-jones-the-dap-kings/ Give the People What They Want 2014-01-14 Daptone Funk http://sharonjonesandthedapkings.com 70
http://albumoftheyear.org/album/13948-sharon-van-etten-are-we-there.php 5 2 2 2 2 2 3 2 1 1 9 2 1 2 3 3 4 Sharon Van Etten http://albumoftheyear.org/artist/1060-sharon-van-etten/ Are We There 2014-05-27 Jagjaguwar Singer-Songwriter http://sharonvanetten.com 103
http://albumoftheyear.org/album/15682-sia-1000-forms-of-fear.php 55 7 2 3 5 2 3 23 2 5 2 2 9 5 Sia http://albumoftheyear.org/artist/1157-sia/ 1000 Forms of Fear 2014-07-08 Monkey Puzzle RCA Electropop http://siamusic.net 47
http://albumoftheyear.org/album/13895-sohn-tremors.php 74 2 2 5 3 3 4 36 2 4 3 7 4 2 SOHN http://albumoftheyear.org/artist/3454-sohn/ Tremors 2014-04-07 4AD Downtempo 64
http://albumoftheyear.org/album/16544-spoon-they-want-my-soul.php 30 3 2 3 3 3 3 3 2 13 5 3 2 2 2 4 3 5 Spoon http://albumoftheyear.org/artist/481-spoon/ They Want My Soul 2014-08-05 Loma Vista Indie Rock http://www.spoontheband.com 99
http://albumoftheyear.org/album/11789-st-vincent-st-vincent.php 1 2 2 2 1 3 1 2 1 4 5 1 1 2 2 3 3 2 5 2 St. Vincent http://albumoftheyear.org/artist/314-st-vincent/ St. Vincent 2014-02-25 Loma Vista Indie Rock http://ilovestvincent.com 71
http://albumoftheyear.org/album/11108-stephen-malkmus-and-the-jicks-wig-out-at-jagbags.php 63 4 1 5 2 3 3 3 5 17 20 3 4 2 3 7 5 2 5 5 Stephen Malkmus and the Jicks http://albumoftheyear.org/artist/316-stephen-malkmus-and-the-jicks/ Wig Out at Jagbags 2014-01-07 Matador / Domino Indie Rock http://www.stephenmalkmus.com 84
http://albumoftheyear.org/album/12003-sun-kil-moon-benji.php 11 4 3 2 3 2 1 23 1 2 1 3 2 3 3 2 8 Sun Kil Moon http://albumoftheyear.org/artist/318-sun-kil-moon/ Benji 2014-02-11 Caldo Verde Folk 59
http://albumoftheyear.org/album/13202-swans-to-be-kind.php 2 2 2 2 2 1 1 1 2 2 1 2 2 3 1 5 1 2 2 4 Swans http://albumoftheyear.org/artist/1339-swans/ To Be Kind 2014-05-13 Young God Post-Rock http://swans.pair.com 91
http://albumoftheyear.org/album/11241-temples-sun-structures.php 71 2 2 6 2 2 3 33 4 4 4 5 5 2 3 Temples http://albumoftheyear.org/artist/4913-temples/ Sun Structures 2014-02-11 Fat Possum Psychedelic Rock 35
http://albumoftheyear.org/album/14474-the-afghan-whigs-do-to-the-beast.php 69 7 4 6 3 3 2 11 14 2 6 4 2 7 3 2 7 The Afghan Whigs http://albumoftheyear.org/artist/3970-the-afghan-whigs/ Do to the Beast 2014-04-14 Sub Pop Alternative Rock 39
http://albumoftheyear.org/album/14591-the-antlers-familiars.php 23 2 2 3 2 5 3 2 2 5 12 1 4 3 7 4 7 The Antlers http://albumoftheyear.org/artist/329-the-antlers/ Familiars 2014-06-17 ANTI- / Transgressive Dream Pop http://antlersmusic.com 94
http://albumoftheyear.org/album/14415-the-black-keys-turn-blue.php 90 8 2 3 3 4 2 4 17 30 3 3 1 4 6 The Black Keys http://albumoftheyear.org/artist/331-the-black-keys/ Turn Blue 2014-05-13 Blues Rock http://www.theblackkeys.com 15
http://albumoftheyear.org/album/12724-the-hold-steady-teeth-dreams.php 86 2 2 10 3 3 5 7 25 2 6 3 3 9 7 The Hold Steady http://albumoftheyear.org/artist/348-the-hold-steady/ Teeth Dreams 2014-03-25 Washington Square Indie Rock http://theholdsteady.net 5
http://albumoftheyear.org/album/13896-the-horrors-luminous.php 21 2 4 1 2 1 2 23 3 4 11 3 2 2 The Horrors http://albumoftheyear.org/artist/349-the-horrors/ Luminous 2014-05-05 XL Recordings Post-Punk http://thehorrors.co.uk 16
http://albumoftheyear.org/album/11586-the-men-tomorrows-hits.php 59 4 2 1 3 3 3 3 11 18 3 5 4 2 4 7 8 The Men http://albumoftheyear.org/artist/1872-the-men/ Tomorrow's Hits 2014-03-03 Sacred Bones Garage Rock http://wearethemen.blogspot.com 19
http://albumoftheyear.org/album/16629-the-new-pornographers-brill-bruisers.php 34 4 2 3 4 4 2 1 12 13 4 4 3 2 6 7 2 4 4 The New Pornographers http://albumoftheyear.org/artist/520-the-new-pornographers/ Brill Bruisers 2014-08-26 Matador Indie Rock 102
http://albumoftheyear.org/album/11970-the-notwist-close-to-the-glass.php 72 3 2 6 3 4 2 20 25 4 6 3 5 4 2 5 5 The Notwist http://albumoftheyear.org/artist/649-the-notwist/ Close To The Glass 2014-02-25 Sub Pop / City Slang Indietronica http://notwist.com 53
http://albumoftheyear.org/album/13936-the-pains-of-being-pure-at-heart-days-of-abandon.php 77 7 4 5 2 4 2 24 15 4 4 3 5 5 3 The Pains of Being Pure at Heart http://albumoftheyear.org/artist/361-the-pains-of-being-pure-at-heart/ Days of Abandon 2014-05-13 Yebo Music Indie Pop http://thepainsofbeingpureatheart.com 77
http://albumoftheyear.org/album/14827-the-roots-and-then-you-shoot-your-cousin.php 83 5 3 6 13 18 5 4 3 4 7 5 The Roots http://albumoftheyear.org/artist/365-the-roots/ ...And Then You Shoot Your Cousin 2014-05-19 Def Jam Hip Hop http://theroots.com 87
http://albumoftheyear.org/album/20680-smashing-pumpkins-monuments-to-an-elegy.php 91 5 2 5 2 5 4 3 14 28 3 4 4 6 The Smashing Pumpkins http://albumoftheyear.org/artist/891-smashing-pumpkins/ Monuments to an Elegy 2014-12-09 BMG / Martha's Music Alternative Rock http://www.smashingpumpkins.com 97
http://albumoftheyear.org/album/11625-the-war-on-drugs-lost-in-the-dream.php 4 2 1 1 2 3 1 1 2 13 3 1 3 4 1 6 1 2 2 The War on Drugs http://albumoftheyear.org/artist/1632-the-war-on-drugs/ Lost in the Dream 2014-03-18 Secretly Canadian Indie Rock http://thewarondrugs.net 65
http://albumoftheyear.org/album/12278-thee-silver-mt-zion-memorial-orchestra-fuck-off-get-free-we-pour-light-on-everything.php 28 1 3 2 2 2 3 5 2 11 3 4 5 4 2 3 6 Thee Silver Mt. Zion Memorial Orchestra http://albumoftheyear.org/artist/5348-thee-silver-mt-zion-memorial-orchestra/ Fuck Off Get Free We Pour Light on Everything 2014-01-21 Constellation Post-Rock http://www.tra-la-la-band.com 56
http://albumoftheyear.org/album/20921-thom-yorke-tomorrows-modern-boxes.php 80 5 6 2 3 3 3 12 26 3 5 2 6 4 9 Thom Yorke http://albumoftheyear.org/artist/511-thom-yorke/ Tomorrow's Modern Boxes 2014-09-26 Self-Released Electronic 98
http://albumoftheyear.org/album/19343-thurston-moore-the-best-day.php 81 4 3 5 4 4 3 2 17 19 3 3 9 8 3 7 Thurston Moore http://albumoftheyear.org/artist/870-thurston-moore/ The Best Day 2014-10-21 Matador Alternative Rock 68
http://albumoftheyear.org/album/14459-todd-terje-its-album-time.php 13 4 3 2 2 2 13 4 5 3 2 3 3 3 Todd Terje http://albumoftheyear.org/artist/2220-todd-terje/ It's Album Time 2014-04-08 Olsen Nu-Disco 34
http://albumoftheyear.org/album/12814-tokyo-police-club-forcefield.php 97 4 3 8 3 4 4 4 4 25 5 6 7 5 Tokyo Police Club http://albumoftheyear.org/artist/1059-tokyo-police-club/ Forcefield 2014-03-25 Mom + Pop Indie Rock 79
http://albumoftheyear.org/album/14113-tune-yards-nikki-nack.php 15 2 1 7 2 3 2 2 2 19 10 2 2 2 1 9 4 3 3 tUnE-yArDs http://albumoftheyear.org/artist/390-tune-yards/ Nikki Nack 2014-05-06 4AD Art Pop 54
http://albumoftheyear.org/album/19930-tv-on-the-radio-seeds.php 36 7 2 5 2 3 2 2 1 14 18 2 3 3 3 3 5 4 TV on the Radio http://albumoftheyear.org/artist/391-tv-on-the-radio/ Seeds 2014-11-18 Harvest Indie Rock http://tvontheradioband.com 67
http://albumoftheyear.org/album/16607-ty-segall-manipulator.php 29 3 2 2 2 3 2 1 11 12 3 4 4 6 6 3 Ty Segall http://albumoftheyear.org/artist/1453-ty-segall/ Manipulator 2014-08-26 Drag City Psychedelic Rock http://ty-segall.com 96
http://albumoftheyear.org/album/12089-tycho-awake.php 98 3 5 3 4 4 4 5 19 20 6 10 5 4 Tycho http://albumoftheyear.org/artist/1989-tycho/ Awake 2014-03-18 Ghostly International Downtempo 51
http://albumoftheyear.org/album/10726-warpaint-warpaint.php 52 4 2 2 2 5 3 1 5 13 31 3 5 3 3 4 4 2 4 5 Warpaint http://albumoftheyear.org/artist/966-warpaint/ Warpaint 2014-01-21 Rough Trade Indie Rock http://warpaintwarpaint.com 49
http://albumoftheyear.org/album/17276-weezer-everything-will-be-alright-in-the-end.php 88 4 2 2 2 5 5 3 19 24 3 6 2 10 11 3 5 5 Weezer http://albumoftheyear.org/artist/583-weezer/ Everything Will Be Alright in the End 2014-10-07 Republic Power Pop http://weezer.com 48
http://albumoftheyear.org/album/15435-white-fence-for-the-recently-found-innocent.php 79 5 2 5 3 3 17 20 3 2 2 11 6 7 4 White Fence http://albumoftheyear.org/artist/2127-white-fence/ For The Recently Found Innocent 2014-07-22 Drag City Garage Rock 40
http://albumoftheyear.org/album/14538-white-lung-deep-fantasy.php 33 3 4 2 3 3 5 5 3 2 3 2 5 5 3 5 White Lung http://albumoftheyear.org/artist/2488-white-lung/ Deep Fantasy 2014-06-17 Domino Punk Rock 72
http://albumoftheyear.org/album/12723-wild-beasts-present-tense.php 9 2 5 1 3 2 1 17 9 1 3 2 1 2 6 Wild Beasts http://albumoftheyear.org/artist/406-wild-beasts/ Present Tense 2014-02-25 Domino Art Pop http://www.wild-beasts.co.uk 73
http://albumoftheyear.org/album/13270-wye-oak-shriek.php 43 2 2 6 4 2 2 25 18 3 4 3 3 8 4 2 3 Wye Oak http://albumoftheyear.org/artist/557-wye-oak/ Shriek 2014-04-29 Merge / City Slang Indie Pop http://wyeoakmusic.com 74
http://albumoftheyear.org/album/16903-zola-jesus-taiga.php 89 3 6 2 6 3 3 2 26 29 4 4 6 4 4 3 Zola Jesus http://albumoftheyear.org/artist/1379-zola-jesus/ Taiga 2014-10-07 Mute Art Pop 18
Album_url AoTY A.V. AMG CoS DIY DiS OMH NME NoRip Paste P4K PM PMA RS Spin 405 TLOBF Skinny TMT Radar Artist Profile_url Album ReleaseDate Label Genre Artist_url SD
http://albumoftheyear.org/album/10891-actress-ghettoville.php 73 58 90 80 80 60 67 70 91 80 85 60 80 Actress http://albumoftheyear.org/artist/1299-actress/ Ghettoville 2014-01-28 Werkdiscs/Ninja Tune IDM 11.6189500386223
http://albumoftheyear.org/album/16609-alt-j-this-is-all-yours.php 68 80 67 80 70 70 80 79 40 70 58 80 80 55 60 85 Alt-J http://albumoftheyear.org/artist/2407-alt-j/ This Is All Yours 2014-09-22 Infectious Art Pop http://altjband.com 11.8071810272191
http://albumoftheyear.org/album/11134-angel-olsen-burn-your-fire-for-no-witness.php 82 83 80 91 80 80 70 90 93 83 80 75 60 70 90 85 80 80 80 Angel Olsen http://albumoftheyear.org/artist/2547-angel-olsen/ Burn Your Fire for No Witness 2014-02-18 Jagjaguwar Singer-Songwriter http://angelolsen.com 8.23907476244611
http://albumoftheyear.org/album/19290-aphex-twin-syro.php 87 91 80 83 80 100 80 90 90 95 87 80 91 80 90 90 80 60 Aphex Twin http://albumoftheyear.org/artist/2513-aphex-twin/ Syro 2014-09-23 Warp Electronic 6.17216236300489
http://albumoftheyear.org/album/20178-ariel-pink-pom-pom.php 76 83 70 75 40 80 80 80 69 88 80 75 80 65 80 60 Ariel Pink http://albumoftheyear.org/artist/5565-ariel-pink/ pom pom 2014-11-18 4AD Psychedelic Pop 11.4671632644405
http://albumoftheyear.org/album/13536-avey-tares-slasher-flicks-enter-the-slasher-house.php 69 70 58 80 60 60 70 79 73 60 67 70 70 75 80 40 65 Avey Tare's Slasher Flicks http://albumoftheyear.org/artist/5805-avey-tares-slasher-flicks/ Enter the Slasher House 2014-04-08 Domino Psychedelic Pop 10.2434938700946
http://albumoftheyear.org/album/16138-basement-jaxx-junto.php 65 50 80 67 40 70 70 70 84 65 70 70 60 50 75 Basement Jaxx http://albumoftheyear.org/artist/622-basement-jaxx/ Junto 2014-08-25 Atlantic Jaxx / PIAS Electronic 11.8156629145338
http://albumoftheyear.org/album/12275-beck-morning-phase.php 77 83 70 83 80 80 90 80 80 80 68 60 91 90 80 80 70 30 90 Beck http://albumoftheyear.org/artist/32-beck/ Morning Phase 2014-02-25 Capitol Singer-Songwriter http://www.beck.com 14.0065344227595
http://albumoftheyear.org/album/11896-black-lips-underneath-the-rainbow.php 67 75 50 67 60 50 70 80 70 63 60 70 75 75 Black Lips http://albumoftheyear.org/artist/41-black-lips/ Underneath The Rainbow 2014-03-18 VICE Garage Rock 9.13292157035504
http://albumoftheyear.org/album/11969-bombay-bicycle-club-so-long-see-you-tomorrow.php 75 90 50 80 70 80 70 77 60 58 80 80 75 Bombay Bicycle Club http://albumoftheyear.org/artist/914-bombay-bicycle-club/ So Long See You Tomorrow 2014-02-03 Island / Vagrant Indie Pop http://bombaybicycleclubmusic.com 11.4534631523316
http://albumoftheyear.org/album/11947-broken-bells-after-the-disco.php 67 58 70 33 50 70 80 60 78 54 70 75 70 80 80 70 80 60 Broken Bells http://albumoftheyear.org/artist/807-broken-bells/ After the Disco 2014-02-04 Columbia Indie Pop 12.8643945469199
http://albumoftheyear.org/album/11375-bruce-springsteen-high-hopes.php 59 58 70 25 80 80 80 50 39 40 60 90 50 60 60 60 60 Bruce Springsteen http://albumoftheyear.org/artist/55-bruce-springsteen/ High Hopes 2014-01-14 Columbia Rock http://brucespringsteen.net 17.2644866706195
http://albumoftheyear.org/album/16511-caribou-our-love.php 80 80 83 80 80 90 90 73 86 80 67 70 80 90 60 60 Caribou http://albumoftheyear.org/artist/490-caribou/ Our Love 2014-10-07 Merge Deep House http://www.caribou.fm 8.68057492061332
http://albumoftheyear.org/album/14396-chromeo-white-women.php 70 70 67 80 70 30 85 76 70 75 70 70 75 Chromeo http://albumoftheyear.org/artist/956-chromeo/ White Women 2014-05-12 Last Gang Electropop http://chromeo.net 12.9733454554981
http://albumoftheyear.org/album/13207-cloud-nothings-here-and-nowhere-else.php 81 75 80 100 80 80 80 50 90 89 87 80 75 70 80 90 85 80 70 Cloud Nothings http://albumoftheyear.org/artist/1581-cloud-nothings/ Here and Nowhere Else 2014-04-01 Carpark / Mom + Pop Indie Rock http://cloudnothings.com 10.2841969002131
http://albumoftheyear.org/album/14112-coldplay-ghost-stories.php 60 67 80 58 60 60 60 70 70 75 44 30 50 70 70 75 Coldplay http://albumoftheyear.org/artist/62-coldplay/ Ghost Stories 2014-05-19 Parlophone/Atlantic Pop Rock http://www.coldplay.com 12.8164932801449
http://albumoftheyear.org/album/13567-conor-oberst-upside-down-mountain.php 72 75 80 75 60 80 80 89 65 60 43 80 70 75 85 60 Conor Oberst http://albumoftheyear.org/artist/65-conor-oberst/ Upside Down Mountain 2014-05-20 Nonesuch Singer-Songwriter http://www.conoroberst.com 11.7034793361388
http://albumoftheyear.org/album/12357-damien-jurado-brothers-and-sisters-of-the-eternal-son.php 75 80 67 60 80 70 60 86 76 80 58 80 70 100 70 Damien Jurado http://albumoftheyear.org/artist/1231-damien-jurado/ Brothers and Sisters of the Eternal Son 2014-01-21 Secretly Canadian Folk http://damienjurado.com 11.4200517694791
http://albumoftheyear.org/album/12956-damon-albarn-everyday-robots.php 75 50 80 75 80 70 90 80 80 75 70 80 50 80 80 85 80 80 Damon Albarn http://albumoftheyear.org/artist/2369-damon-albarn/ Everyday Robots 2014-04-28 Warner Downtempo http://damonalbarnmusic.com 10.6757008311068
http://albumoftheyear.org/album/16645-death-from-above-1979-the-physical-world.php 77 75 80 58 80 70 90 90 80 70 80 75 60 85 70 100 70 Death From Above 1979 http://albumoftheyear.org/artist/1545-death-from-above-1979/ The Physical World 2014-09-09 Last Gang / Warner Bros. Dance Punk http://www.deathfromabove1979.com 10.8566415924385
http://albumoftheyear.org/album/19254-deerhoof-la-isla-bonita.php 75 91 80 50 80 60 70 70 74 76 80 60 80 85 80 50 75 Deerhoof http://albumoftheyear.org/artist/521-deerhoof/ La Isla Bonita 2014-11-04 Polyvinyl Indie Rock http://deerhoof.net 11.9385579810405
http://albumoftheyear.org/album/10824-dum-dum-girls-too-true.php 67 83 80 75 60 50 60 70 40 75 74 70 83 70 70 65 55 60 30 70 Dum Dum Girls http://albumoftheyear.org/artist/927-dum-dum-girls/ Too True 2014-01-28 Sub Pop Indie Pop http://www.wearedumdumgirls.com 13.9598421546397
http://albumoftheyear.org/album/14003-eagulls-eagulls.php 74 83 80 58 80 90 70 80 80 74 30 75 70 80 80 65 Eagulls http://albumoftheyear.org/artist/3626-eagulls/ Eagulls 2014-03-03 Partisan Garage Punk http://eagulls.co.uk 14.0803814883384
http://albumoftheyear.org/album/13035-ema-the-futures-void.php 80 75 80 75 80 80 80 80 74 80 58 80 80 90 85 100 80 85 EMA http://albumoftheyear.org/artist/1702-ema/ The Future's Void 2014-04-08 Matador / City Slang Indie Rock 8.27069596616306
http://albumoftheyear.org/album/13946-eno-hyde-someday-world.php 58 58 70 43 40 60 60 74 62 50 40 75 65 65 Eno • Hyde http://albumoftheyear.org/artist/6007-eno-hyde/ Someday World 2014-05-05 Warp Electronic 11.8986101321509
http://albumoftheyear.org/album/14589-first-aid-kit-stay-gold.php 77 80 67 80 70 90 80 80 73 70 58 70 80 60 85 85 First Aid Kit http://albumoftheyear.org/artist/2204-first-aid-kit/ Stay Gold 2014-06-10 Columbia Folk http://www.thisisfirstaidkit.com 8.90157824422699
http://albumoftheyear.org/album/16605-fka-twigs-lp1.php 86 91 80 83 80 90 80 80 80 92 88 80 100 70 90 100 90 80 60 85 FKA Twigs http://albumoftheyear.org/artist/2910-fka-twigs/ LP1 2014-08-12 Young Turks Art Pop http://fkatwi.gs 9.53693957065206
http://albumoftheyear.org/album/17704-flying-lotus-youre-dead.php 84 91 90 75 80 90 90 80 83 90 91 80 95 85 80 70 80 Flying Lotus http://albumoftheyear.org/artist/118-flying-lotus/ You're Dead! 2014-10-07 Warp Jazz Fusion http://flying-lotus.com 6.83008052661167
http://albumoftheyear.org/album/18615-foo-fighters-sonic-highways.php 65 67 70 43 80 50 60 70 50 70 56 70 67 70 55 Foo Fighters http://albumoftheyear.org/artist/889-foo-fighters/ Sonic Highways 2014-11-10 Roswell Alternative Rock 10.1056325642589
http://albumoftheyear.org/album/17865-foxygen-and-star-power.php 65 75 50 67 80 50 50 88 70 50 50 50 80 70 Foxygen http://albumoftheyear.org/artist/2385-foxygen/ ...And Star Power 2014-10-14 Jagjaguwar Psychedelic Pop 14.222138755097
http://albumoftheyear.org/album/14394-fucked-up-glass-boys.php 77 91 90 83 80 80 80 70 80 74 70 80 58 60 70 80 80 70 70 Fucked Up http://albumoftheyear.org/artist/125-fucked-up/ Glass Boys 2014-06-03 Matador Hardcore Punk http://fuckedup.cc 8.77701245939746
http://albumoftheyear.org/album/12725-future-islands-singles.php 81 90 75 80 80 90 80 79 80 60 83 70 80 90 90 80 70 Future Islands http://albumoftheyear.org/artist/1482-future-islands/ Singles 2014-03-25 4AD Synthpop http://future-islands.com 8.04582463875811
http://albumoftheyear.org/album/13935-hamilton-leithauser-black-hours.php 73 83 50 80 70 80 60 70 70 74 70 67 60 80 80 60 Hamilton Leithauser http://albumoftheyear.org/artist/6003-hamilton-leithauser/ Black Hours 2014-06-03 Ribbon Music Chamber Pop http://hamiltonleithauser.com 9.1952368622228
http://albumoftheyear.org/album/11962-hospitality-trouble.php 70 80 67 80 60 80 60 75 75 70 70 65 40 65 Hospitality http://albumoftheyear.org/artist/2232-hospitality/ Trouble 2014-01-28 Merge Indie Pop 11.0267739429873
http://albumoftheyear.org/album/14685-how-to-dress-well-what-is-this-heart.php 74 58 80 75 80 70 70 50 85 88 40 91 60 70 65 70 50 80 How to Dress Well http://albumoftheyear.org/artist/1344-how-to-dress-well/ What Is This Heart? 2014-06-24 Weird World R&B http://howtodresswell.com 14.1166359932069
http://albumoftheyear.org/album/16543-interpol-el-pintor.php 74 91 70 75 80 90 90 80 60 65 59 80 75 70 85 80 50 60 Interpol http://albumoftheyear.org/artist/545-interpol/ El Pintor 2014-09-09 Matador Indie Rock http://www.interpolnyc.com 11.6268578528084
http://albumoftheyear.org/album/14614-jack-white-lazaretto.php 74 91 80 67 80 80 80 70 70 85 71 70 75 80 60 75 80 10 75 Jack White http://albumoftheyear.org/artist/2228-jack-white/ Lazaretto 2014-06-10 Third Man Singer-Songwriter http://jackwhiteiii.com 17.0841821883797
http://albumoftheyear.org/album/16140-jenny-lewis-the-voyager.php 75 75 90 75 80 60 50 60 76 72 70 90 85 80 70 80 Jenny Lewis http://albumoftheyear.org/artist/171-jenny-lewis/ The Voyager 2014-07-29 Warner Bros. Pop Rock http://jennylewis.com 11.0703378879048
http://albumoftheyear.org/album/18125-jessie-ware-tough-love.php 72 91 60 50 80 80 80 70 60 74 73 80 58 70 80 90 55 Jessie Ware http://albumoftheyear.org/artist/2421-jessie-ware/ Tough Love 2014-10-13 PMR / Island R&B 11.4600756251141
http://albumoftheyear.org/album/16986-karen-o-crush-songs.php 62 58 70 50 80 60 80 70 30 70 58 58 70 80 50 55 Karen O http://albumoftheyear.org/artist/7286-karen-o/ Crush Songs 2014-09-09 Cult Singer-Songwriter 13.5618512572513
http://albumoftheyear.org/album/11903-katy-b-little-red.php 73 75 80 70 80 70 60 78 60 50 80 70 80 85 40 Katy B http://albumoftheyear.org/artist/1590-katy-b/ Little Red 2014-02-10 Sony/Columbia Dance Pop 12.6008314162579
http://albumoftheyear.org/album/12018-kelis-food.php 74 90 75 80 90 90 70 69 63 83 60 80 80 80 30 Kelis http://albumoftheyear.org/artist/1263-kelis/ Food 2014-04-22 Ninja Tune Neo-Soul http://www.iamkelis.com 15.3225635055285
http://albumoftheyear.org/album/16018-la-roux-trouble-in-paradise.php 74 70 67 80 60 80 90 70 65 60 75 70 80 70 80 70 La Roux http://albumoftheyear.org/artist/699-la-roux/ Trouble in Paradise 2014-07-21 Polydor Synthpop 8.29342826465343
http://albumoftheyear.org/album/15950-lana-del-rey-ultraviolence.php 71 43 80 100 80 70 70 60 70 71 80 91 70 80 30 50 Lana Del Rey http://albumoftheyear.org/artist/1969-lana-del-rey/ Ultraviolence 2014-06-17 Polydor / Interscope Dream Pop http://www.lanadelrey.com 17.2273315513736
http://albumoftheyear.org/album/12819-liars-mess.php 76 75 80 50 80 80 100 80 90 60 69 70 83 70 80 75 85 80 50 85 Liars http://albumoftheyear.org/artist/505-liars/ Mess 2014-03-25 Mute Experimental Rock http://www.liarsliarsliars.com 12.2986710640427
http://albumoftheyear.org/album/14008-lykke-li-i-never-learn.php 76 80 91 80 60 90 60 70 78 84 70 43 70 60 90 80 70 Lykke Li http://albumoftheyear.org/artist/209-lykke-li/ I Never Learn 2014-05-05 Atlantic Singer-Songwriter http://lykkeli.com 13.23064624272
http://albumoftheyear.org/album/13033-mac-demarco-salad-days.php 82 91 90 67 80 90 90 80 70 85 70 83 70 80 80 85 Mac DeMarco http://albumoftheyear.org/artist/2620-mac-demarco/ Salad Days 2014-04-01 Captured Tracks Singer-Songwriter http://macdemarco.bandcamp.com 8.12286602012814
http://albumoftheyear.org/album/11094-marissa-nadler-july.php 79 80 75 80 80 80 80 81 80 83 80 85 50 70 Marissa Nadler http://albumoftheyear.org/artist/216-marissa-nadler/ July 2014-02-04 Sacred Bones / Bella Union Folk 8.68390789968758
http://albumoftheyear.org/album/16361-merchandise-after-the-end.php 73 80 83 80 70 70 90 70 87 70 75 60 65 40 80 Merchandise http://albumoftheyear.org/artist/2688-merchandise/ After the End 2014-08-26 4AD Indie Rock 12.5244815207112
http://albumoftheyear.org/album/11101-metronomy-love-letters.php 70 80 43 80 60 80 80 52 60 75 60 80 80 60 85 Metronomy http://albumoftheyear.org/artist/228-metronomy/ Love Letters 2014-03-10 Because Music Indietronica http://metronomy.co.uk 12.5558094780206
http://albumoftheyear.org/album/10727-mogwai-rave-tapes.php 73 75 70 58 80 70 90 70 80 80 60 70 70 80 75 100 40 40 Mogwai http://albumoftheyear.org/artist/232-mogwai/ Rave Tapes 2014-01-21 Sub Pop Rock Action Post-Rock http://mogwai.co.uk 13.1101106021269
http://albumoftheyear.org/album/16056-morrissey-world-peace-is-none-of-your-business.php 63 43 70 58 60 70 70 90 83 59 50 43 70 70 95 40 70 Morrissey http://albumoftheyear.org/artist/233-morrissey/ World Peace Is None of Your Business 2014-07-15 Harvest Capitol Alternative Rock 16.1322658049017
http://albumoftheyear.org/album/12260-neneh-cherry-blank-project.php 82 91 90 75 80 100 80 60 77 80 83 70 80 80 90 100 75 Neneh Cherry http://albumoftheyear.org/artist/4758-neneh-cherry/ Blank Project 2014-02-25 Smalltown Supersound Art Pop http://nenehcherry.com 10.2558926151424
http://albumoftheyear.org/album/13445-owen-pallett-in-conflict.php 80 83 90 91 60 80 80 80 60 80 80 80 83 70 80 85 75 Owen Pallett http://albumoftheyear.org/artist/792-owen-pallett/ In Conflict 2014-05-27 Domino / Secret City Art Pop http://owenpalletteternal.com 8.73212459828649
http://albumoftheyear.org/album/14613-parquet-courts-sunbathing-animal.php 80 83 80 67 80 70 80 80 80 70 86 80 75 80 80 80 85 80 80 Parquet Courts http://albumoftheyear.org/artist/2771-parquet-courts/ Sunbathing Animal 2014-06-03 What's Your Rupture? / Mom + Pop Indie Rock 5.04100830250083
http://albumoftheyear.org/album/14117-perfect-pussy-say-yes-to-love.php 80 67 80 75 80 90 80 90 85 86 60 100 80 80 75 80 70 60 Perfect Pussy http://albumoftheyear.org/artist/5051-perfect-pussy/ Say Yes to Love 2014-03-18 Captured Tracks Noise Rock 9.28629603866079
http://albumoftheyear.org/album/17453-perfume-genius-too-bright.php 86 91 80 91 80 80 90 80 80 83 85 90 91 70 90 90 80 100 80 Perfume Genius http://albumoftheyear.org/artist/1293-perfume-genius/ Too Bright 2014-09-23 Matador / Turnstile Art Pop 6.90386838611589
http://albumoftheyear.org/album/12020-phantogram-voices.php 71 75 70 67 60 70 50 85 60 80 75 80 80 Phantogram http://albumoftheyear.org/artist/1017-phantogram/ Voices 2014-02-18 Republic Indietronica http://phantogram.com 9.88264472024906
http://albumoftheyear.org/album/13826-pharrell-g-i-r-l.php 65 75 80 67 50 70 80 50 62 50 18 80 80 80 80 10 Pharrell http://albumoftheyear.org/artist/5942-pharrell/ G I R L 2014-03-03 Columbia R&B 22.0324571182305
http://albumoftheyear.org/album/12821-real-estate-atlas.php 75 58 80 83 80 70 80 80 88 88 40 83 70 70 60 80 40 80 Real Estate http://albumoftheyear.org/artist/683-real-estate/ Atlas 2014-03-04 Domino Indie Rock http://realestatetheband.com 14.7541120888182
http://albumoftheyear.org/album/19287-run-the-jewels-rtj2.php 86 91 90 91 80 80 90 90 90 90 90 83 80 90 50 90 Run the Jewels http://albumoftheyear.org/artist/3975-run-the-jewels/ Run the Jewels 2 2014-10-28 Mass Appeal Hip Hop http://runthejewels.net 10.5252530791878
http://albumoftheyear.org/album/16904-rustie-green-language.php 67 80 50 60 50 70 70 30 72 60 83 60 80 60 80 70 75 Rustie http://albumoftheyear.org/artist/2090-rustie/ Green Language 2014-08-26 Warp Electronic 13.9086304142428
http://albumoftheyear.org/album/17094-ryan-adams-ryan-adams.php 74 58 80 83 60 70 80 80 78 60 80 70 85 70 80 75 Ryan Adams http://albumoftheyear.org/artist/293-ryan-adams/ Ryan Adams 2014-09-08 Pax Am / Blue Note Singer-Songwriter http://paxamrecords.com 8.83876742107233
http://albumoftheyear.org/album/17720-sbtrkt-wonder-where-we-land.php 71 70 83 80 70 60 80 70 93 55 60 75 60 70 65 85 SBTRKT http://albumoftheyear.org/artist/1540-sbtrkt/ Wonder Where We Land 2014-09-23 Young Turks Future Garage http://sbtrkt.com 10.2274141404365
http://albumoftheyear.org/album/11871-schoolboy-q-oxymoron.php 77 75 70 91 70 78 80 75 80 70 85 80 60 Schoolboy Q http://albumoftheyear.org/artist/2109-schoolboy-q/ Oxymoron 2014-02-25 Top Dawg / Interscope Hip Hop http://www.schoolboyq.com 7.7691038324233
http://albumoftheyear.org/album/17526-scott-walker-sunn-o-soused.php 82 100 80 58 80 90 80 80 80 74 60 70 95 100 80 90 85 Scott Walker & Sunn O))) http://albumoftheyear.org/artist/7484-scott-walker-sunn-o/ Soused 2014-10-21 4AD Drone Metal 12.1831509334271
http://albumoftheyear.org/album/15766-shabazz-palaces-lese-majesty.php 82 91 90 83 60 80 90 80 82 70 91 70 90 80 90 60 80 Shabazz Palaces http://albumoftheyear.org/artist/997-shabazz-palaces/ Lese Majesty 2014-07-29 Sub Pop Hip Hop http://www.shabazzpalaces.com 10.1680728696422
http://albumoftheyear.org/album/6906-sharon-jones-the-dap-kings-give-the-people-what-they-want.php 78 83 58 80 70 80 89 77 60 91 70 70 85 80 80 80 Sharon Jones & the Dap-Kings http://albumoftheyear.org/artist/815-sharon-jones-the-dap-kings/ Give the People What They Want 2014-01-14 Daptone Funk http://sharonjonesandthedapkings.com 9.53539771188436
http://albumoftheyear.org/album/13948-sharon-van-etten-are-we-there.php 86 91 80 91 80 90 80 80 90 95 82 80 100 80 90 90 75 Sharon Van Etten http://albumoftheyear.org/artist/1060-sharon-van-etten/ Are We There 2014-05-27 Jagjaguwar Singer-Songwriter http://sharonvanetten.com 6.41839803481627
http://albumoftheyear.org/album/15682-sia-1000-forms-of-fear.php 74 50 80 83 60 90 70 68 80 67 80 80 60 80 Sia http://albumoftheyear.org/artist/1157-sia/ 1000 Forms of Fear 2014-07-08 Monkey Puzzle RCA Electropop http://siamusic.net 10.9965029406206
http://albumoftheyear.org/album/13895-sohn-tremors.php 71 80 80 60 80 70 60 50 80 75 70 70 85 80 SOHN http://albumoftheyear.org/artist/3454-sohn/ Tremors 2014-04-07 4AD Downtempo 9.93191105190019
http://albumoftheyear.org/album/16544-spoon-they-want-my-soul.php 79 83 80 83 60 80 80 70 80 80 86 70 91 80 80 85 80 70 Spoon http://albumoftheyear.org/artist/481-spoon/ They Want My Soul 2014-08-05 Loma Vista Indie Rock http://www.spoontheband.com 7.03144199084286
http://albumoftheyear.org/album/11789-st-vincent-st-vincent.php 88 91 80 91 100 80 100 80 90 90 86 90 100 80 80 90 90 80 60 85 St. Vincent http://albumoftheyear.org/artist/314-st-vincent/ St. Vincent 2014-02-25 Loma Vista Indie Rock http://ilovestvincent.com 9.44698968111471
http://albumoftheyear.org/album/11108-stephen-malkmus-and-the-jicks-wig-out-at-jagbags.php 73 75 90 67 80 80 80 70 50 75 70 70 75 80 70 70 80 80 60 70 Stephen Malkmus and the Jicks http://albumoftheyear.org/artist/316-stephen-malkmus-and-the-jicks/ Wig Out at Jagbags 2014-01-07 Matador / Domino Indie Rock http://www.stephenmalkmus.com 8.72617893641939
http://albumoftheyear.org/album/12003-sun-kil-moon-benji.php 84 60 83 90 80 80 90 68 92 80 100 70 80 90 90 90 55 Sun Kil Moon http://albumoftheyear.org/artist/318-sun-kil-moon/ Benji 2014-02-11 Caldo Verde Folk 10.2467474514274
http://albumoftheyear.org/album/13202-swans-to-be-kind.php 88 91 80 91 80 100 100 90 80 93 92 80 91 70 90 80 100 80 90 75 Swans http://albumoftheyear.org/artist/1339-swans/ To Be Kind 2014-05-13 Young God Post-Rock http://swans.pair.com 8.22633056835689
http://albumoftheyear.org/album/11241-temples-sun-structures.php 72 80 80 50 90 80 70 55 60 75 60 80 80 80 80 Temples http://albumoftheyear.org/artist/4913-temples/ Sun Structures 2014-02-11 Fat Possum Psychedelic Rock 11.7042304740214
http://albumoftheyear.org/album/14474-the-afghan-whigs-do-to-the-beast.php 72 50 60 58 80 80 80 83 76 80 58 60 80 70 90 80 60 The Afghan Whigs http://albumoftheyear.org/artist/3970-the-afghan-whigs/ Do to the Beast 2014-04-14 Sub Pop Alternative Rock 11.5799755325015
http://albumoftheyear.org/album/14591-the-antlers-familiars.php 80 91 80 83 80 60 80 80 80 89 78 90 75 70 70 85 60 The Antlers http://albumoftheyear.org/artist/329-the-antlers/ Familiars 2014-06-17 ANTI- / Transgressive Dream Pop http://antlersmusic.com 7.99973957909464
http://albumoftheyear.org/album/14415-the-black-keys-turn-blue.php 68 43 80 83 60 70 90 60 75 58 70 83 90 60 65 The Black Keys http://albumoftheyear.org/artist/331-the-black-keys/ Turn Blue 2014-05-13 Blues Rock http://www.theblackkeys.com 13.6800167084276
http://albumoftheyear.org/album/12724-the-hold-steady-teeth-dreams.php 69 91 80 25 60 70 50 87 64 80 58 70 70 60 60 The Hold Steady http://albumoftheyear.org/artist/348-the-hold-steady/ Teeth Dreams 2014-03-25 Washington Square Indie Rock http://theholdsteady.net 16.6059700637524
http://albumoftheyear.org/album/13896-the-horrors-luminous.php 81 80 75 100 90 100 80 67 70 75 50 90 80 85 The Horrors http://albumoftheyear.org/artist/349-the-horrors/ Luminous 2014-05-05 XL Recordings Post-Punk http://thehorrors.co.uk 13.6005278932238
http://albumoftheyear.org/album/11586-the-men-tomorrows-hits.php 74 75 80 100 60 80 80 70 83 72 70 67 60 80 85 40 55 The Men http://albumoftheyear.org/artist/1872-the-men/ Tomorrow's Hits 2014-03-03 Sacred Bones Garage Rock http://wearethemen.blogspot.com 13.2966161108757
http://albumoftheyear.org/album/16629-the-new-pornographers-brill-bruisers.php 77 75 80 83 70 70 80 90 82 77 60 75 70 80 75 70 80 70 75 The New Pornographers http://albumoftheyear.org/artist/520-the-new-pornographers/ Brill Bruisers 2014-08-26 Matador Indie Rock 6.79580801199885
http://albumoftheyear.org/album/11970-the-notwist-close-to-the-glass.php 72 83 80 58 60 70 90 72 64 60 58 70 80 85 80 60 70 The Notwist http://albumoftheyear.org/artist/649-the-notwist/ Close To The Glass 2014-02-25 Sub Pop / City Slang Indietronica http://notwist.com 10.632497354808
http://albumoftheyear.org/album/13936-the-pains-of-being-pure-at-heart-days-of-abandon.php 71 50 60 67 80 70 80 65 75 60 75 70 80 80 80 The Pains of Being Pure at Heart http://albumoftheyear.org/artist/361-the-pains-of-being-pure-at-heart/ Days of Abandon 2014-05-13 Yebo Music Indie Pop http://thepainsofbeingpureatheart.com 9.13302183902392
http://albumoftheyear.org/album/14827-the-roots-and-then-you-shoot-your-cousin.php 70 67 70 58 80 72 50 75 70 60 70 60 The Roots http://albumoftheyear.org/artist/365-the-roots/ ...And Then You Shoot Your Cousin 2014-05-19 Def Jam Hip Hop http://theroots.com 8.32120329293932
http://albumoftheyear.org/album/20680-smashing-pumpkins-monuments-to-an-elegy.php 68 67 80 67 80 60 70 70 79 60 70 60 60 65 The Smashing Pumpkins http://albumoftheyear.org/artist/891-smashing-pumpkins/ Monuments to an Elegy 2014-12-09 BMG / Martha's Music Alternative Rock http://www.smashingpumpkins.com 7.50128194172375
http://albumoftheyear.org/album/11625-the-war-on-drugs-lost-in-the-dream.php 87 91 90 100 80 80 100 90 80 80 88 90 83 60 90 75 100 80 85 The War on Drugs http://albumoftheyear.org/artist/1632-the-war-on-drugs/ Lost in the Dream 2014-03-18 Secretly Canadian Indie Rock http://thewarondrugs.net 9.90279553848933
http://albumoftheyear.org/album/12278-thee-silver-mt-zion-memorial-orchestra-fuck-off-get-free-we-pour-light-on-everything.php 80 90 83 80 90 90 70 50 93 80 70 75 80 85 80 80 65 Thee Silver Mt. Zion Memorial Orchestra http://albumoftheyear.org/artist/5348-thee-silver-mt-zion-memorial-orchestra/ Fuck Off Get Free We Pour Light on Everything 2014-01-21 Constellation Post-Rock http://www.tra-la-la-band.com 10.4147331538867
http://albumoftheyear.org/album/20921-thom-yorke-tomorrows-modern-boxes.php 71 67 58 80 80 80 70 82 63 70 67 80 75 70 50 Thom Yorke http://albumoftheyear.org/artist/511-thom-yorke/ Tomorrow's Modern Boxes 2014-09-26 Self-Released Electronic 7.35482199603815
http://albumoftheyear.org/album/19343-thurston-moore-the-best-day.php 70 75 70 67 40 70 80 80 75 71 70 70 60 65 60 60 Thurston Moore http://albumoftheyear.org/artist/870-thurston-moore/ The Best Day 2014-10-21 Matador Alternative Rock 9.77021713459547
http://albumoftheyear.org/album/14459-todd-terje-its-album-time.php 82 60 83 80 90 80 80 87 50 83 80 90 90 80 Todd Terje http://albumoftheyear.org/artist/2220-todd-terje/ It's Album Time 2014-04-08 Olsen Nu-Disco 11.7936314843963
http://albumoftheyear.org/album/12814-tokyo-police-club-forcefield.php 66 75 70 43 60 70 70 60 60 64 50 58 70 70 Tokyo Police Club http://albumoftheyear.org/artist/1059-tokyo-police-club/ Forcefield 2014-03-25 Mom + Pop Indie Rock 8.99216182900277
http://albumoftheyear.org/album/14113-tune-yards-nikki-nack.php 82 91 90 50 80 80 90 80 80 73 81 80 91 80 90 60 85 80 80 tUnE-yArDs http://albumoftheyear.org/artist/390-tune-yards/ Nikki Nack 2014-05-06 4AD Art Pop 10.6287623096621
http://albumoftheyear.org/album/19930-tv-on-the-radio-seeds.php 77 50 80 67 80 80 90 80 90 79 72 80 83 70 70 90 80 75 TV on the Radio http://albumoftheyear.org/artist/391-tv-on-the-radio/ Seeds 2014-11-18 Harvest Indie Rock http://tvontheradioband.com 9.83690530006023
http://albumoftheyear.org/album/16607-ty-segall-manipulator.php 79 83 80 91 80 80 80 90 83 78 70 75 60 75 75 80 Ty Segall http://albumoftheyear.org/artist/1453-ty-segall/ Manipulator 2014-08-26 Drag City Psychedelic Rock http://ty-segall.com 7.50999334220743
http://albumoftheyear.org/album/12089-tycho-awake.php 65 70 67 60 70 70 60 50 73 70 40 55 80 75 Tycho http://albumoftheyear.org/artist/1989-tycho/ Awake 2014-03-18 Ghostly International Downtempo 10.7070549471377
http://albumoftheyear.org/album/10726-warpaint-warpaint.php 74 75 80 91 80 60 80 90 50 80 57 70 67 70 70 85 85 80 70 70 Warpaint http://albumoftheyear.org/artist/966-warpaint/ Warpaint 2014-01-21 Rough Trade Indie Rock http://warpaintwarpaint.com 10.9001314440275
http://albumoftheyear.org/album/17276-weezer-everything-will-be-alright-in-the-end.php 69 75 80 91 80 60 60 70 73 65 70 58 80 55 50 60 60 70 Weezer http://albumoftheyear.org/artist/583-weezer/ Everything Will Be Alright in the End 2014-10-07 Republic Power Pop http://weezer.com 10.9029812436783
http://albumoftheyear.org/album/15435-white-fence-for-the-recently-found-innocent.php 71 67 80 67 60 70 75 70 70 80 80 50 75 40 75 White Fence http://albumoftheyear.org/artist/2127-white-fence/ For The Recently Found Innocent 2014-07-22 Drag City Garage Rock 11.5170680792838
http://albumoftheyear.org/album/14538-white-lung-deep-fantasy.php 78 70 75 80 80 70 50 86 70 91 70 80 80 80 80 70 White Lung http://albumoftheyear.org/artist/2488-white-lung/ Deep Fantasy 2014-06-17 Domino Punk Rock 9.4339811320566
http://albumoftheyear.org/album/12723-wild-beasts-present-tense.php 85 80 67 100 80 90 90 75 82 90 83 95 100 80 65 Wild Beasts http://albumoftheyear.org/artist/406-wild-beasts/ Present Tense 2014-02-25 Domino Art Pop http://www.wild-beasts.co.uk 9.33768213703528
http://albumoftheyear.org/album/13270-wye-oak-shriek.php 76 91 80 58 70 90 80 63 72 70 75 70 70 65 85 80 80 Wye Oak http://albumoftheyear.org/artist/557-wye-oak/ Shriek 2014-04-29 Merge / City Slang Indie Pop http://wyeoakmusic.com 9.30031361478382
http://albumoftheyear.org/album/16903-zola-jesus-taiga.php 69 70 58 80 50 80 70 80 60 59 60 75 40 85 85 80 Zola Jesus http://albumoftheyear.org/artist/1379-zola-jesus/ Taiga 2014-10-07 Mute Art Pop 13.3227338821744
require(data.table)
albumscores.dt = scores.dt[albums.dt,allow.cartesian=T] #combine the data tables
albumscores.dt = unique(albumscores.dt) #remove duplicate rows
#remove duplicate columns
albumscores.dt[,Artist.1:=NULL]
albumscores.dt[,Album.1:=NULL]
#coerce classes on columns, remove commas from character columns
albumscores.dt$ReleaseDate = as.Date(albumscores.dt$ReleaseDate,format = "%B %d, %Y")
albumscores.dt$url = as.factor(albumscores.dt$url)
setnames(albumscores.dt,"url","Artist_url")
albumscores.dt$Label = gsub(",","",albumscores.dt$Label)
albumscores.dt$Label = as.factor(albumscores.dt$Label)
albumscores.dt$Genre = gsub(",","",albumscores.dt$Genre)
albumscores.dt$Genre = as.factor(albumscores.dt$Genre)
albumscores.dt$Artist = gsub(",","",albumscores.dt$Artist)
albumscores.dt$Artist = as.factor(albumscores.dt$Artist)
albumscores.dt$Album = gsub(",","",albumscores.dt$Album)
albumscores.dt$Album = as.factor(albumscores.dt$Album)
#sort by artist, album
setkey(albumscores.dt,Artist,Album)
# albumscores.dt = albumscores.dt[order(-rank(AoTY))]
#
# albumscores.dt = albumscores.dt[1:100]
albumscores.dt = transform(albumscores.dt, SD=apply(albumscores.dt[,3:21, with = F],1, sd, na.rm = TRUE))
#duplicate table for storing ranks
albumranks.dt = albumscores.dt
#ranking function applied to a numeric column
convertToRank = function(col) {
if(is.numeric(col)){
col = rank(-col,na.last = "keep",ties.method = "min")
col = findInterval(col, sort(unique(col)))
}
return(col)
}
#rank within numeric columns and replace with ranks
albumranks.dt = albumranks.dt[, lapply(.SD, convertToRank)]
#sort ranked table by artist, album
setkey(albumranks.dt,Artist,Album)
#copy rank column from score table to rank table
albumranks.dt$rank = albumscores.dt$rank
#remove rank column from score table
albumscores.dt[,rank:=NULL]
#remove AoTY rank from rank table (rank = AoTY rank)
albumranks.dt[,AoTY:=NULL]
#write to csv
write.csv(albumranks.dt,file="albumranks.csv",quote=F,row.names=F,na="")
write.csv(albumscores.dt,file="albumscores.csv",quote=F,row.names=F,na="")
# write.csv(list_urls.dt,file="list_urls.csv",quote=F,row.names=F,na="")
#main pre-processing script
#change year as necessary
yr = 2014
source("aoty-table-parse.R")
source("aoty-scrape.R")
source("aoty-combine.R")
# require(data.table)
#preprocess from previously cleaned csv files
# list_urls.dt = as.data.table(read.csv(file="aoty-list-urls.csv",header = T))
# setkey(list_urls.dt,name)
#
# ranks.dt = as.data.table(read.csv(file="aoty-w-links.csv",header = T))
# setkey(ranks.dt,Album_url)
require(data.table)
albums.dt = data.table()
scrapeAlbum = function(url) {
print(c("scraping: ",url))
raw.data = readLines(as.character(url),warn=F)
#locate relevant metadata on page
artistLoc = sapply('.*span class="item', function(y) grep(y,raw.data)[1])
albumLoc = sapply('.*span class="fn', function(y) grep(y,raw.data)[1])
releasedLoc = sapply('RELEASED:', function(y) grep(y,raw.data)[1])
labelLoc = sapply('LABEL:', function(y) grep(y,raw.data)[1])
genreLoc = sapply('GENRE:', function(y) grep(y,raw.data)[1])
websiteLoc = sapply('WEBSITE:', function(y) grep(y,raw.data)[1])
#clean the html off of the metadata
artist = gsub(".*>(.*)</a> - <span class=\"fn\">.*","\\1",raw.data[artistLoc])
artist = gsub(" *$","",artist) #remove trailing white space
album = gsub(".*<span class=\"fn\">(.*)</span></span>.*","\\1",raw.data[albumLoc])
album = gsub(" *$","",album) #remove trailing white space
releaseDate = gsub(".*RELEASED: *</span> *(.*)</div>","\\1",raw.data[releasedLoc])
releaseDate = gsub(" *$","",releaseDate) #remove trailing white space
label = gsub(".*LABEL: *</span>(.*)</div>","\\1",raw.data[labelLoc])
label = gsub(" *$","",label) #remove trailing white space
website = gsub(".*WEBSITE:.*>(.*) *<img.*</a></div><div style.*","\\1",raw.data[websiteLoc])
website = gsub(" *$","",website) #remove trailing white space
#genre scraping depends on presence / absence of website
if (is.na(website)) {
genre = gsub(".*GENRE.*>(.*)</a>.*TAGS*","\\1",raw.data[genreLoc])
genre = gsub("([A-Z]*,* *[A-Z]*)<.*","\\1",genre)
}
if (!is.na(website)) {
genre = gsub(".*GENRE.*>(.*)</a>.*WEBSITE.*","\\1",raw.data[genreLoc])
website = gsub("^","http://",website)
}
genre = gsub(" *$","",genre) #remove trailing white space
remove(artistLoc,albumLoc,releasedLoc,labelLoc,genreLoc,websiteLoc,raw.data)
return (data.table(artist,album,releaseDate,label,genre,website,url))
}
#scrape album metadata from scores table
albums.dt = do.call("rbind", lapply(X=scores.dt$Album_url,FUN = scrapeAlbum))
setnames(albums.dt, c("Artist","Album","ReleaseDate","Label","Genre","url","Album_url"))
setkey(albums.dt,Album_url)
require(data.table)
#scrape the aggregate score table for the specified year
scrapeTable = function(year){
url = paste("http://www.albumoftheyear.org/ratings/overall/",year,"/15",sep = "")
raw.data = readLines(url,warn=F)
#trim everything but the table
tableBegin = sapply('<TABLE', function(y) grep(y,raw.data)[1])
tableEnd = sapply('</TABLE>', function(y) grep(y,raw.data)[1])
table = raw.data[tableBegin:tableEnd]
return(table)
}
#change X in scrapeTable(X) to specify the year e.g. 2014
table = scrapeTable(2014)
table = unique(table) #remove duplicate header rows
table = table[-26] #remove first duplicate header row
#remove first list item from header
header = gsub(".*(<tr class=\"white-font\".*)</a></td></tr><tr.*","\\1",table[1])
#trim html from header
header = gsub("</td>",",",header)
header = gsub("<td>","",header)
header = gsub("<tr class=\"white-font\" align=\"center\" bgcolor=\"#58808b\">","",header)
header = gsub("<a class=\"white\" href=\"","",header,)
header = gsub("</a>","",header,)
header = gsub("\">",",",header,)
header = strsplit(header,",") #split string into list
colNames = c("rank","AoTY")
reviewNames = header[[1]][((1:length(header[[1]]))%%2==0)]
reviewNames = reviewNames[3:length(reviewNames)]
aotyUrls = header[[1]][((1:length(header[[1]]))%%2==1)]
aotyUrls = aotyUrls[3:length(aotyUrls)]
colNames = c(colNames,reviewNames,"Artist","Profile_url","Album","Album_url")
#remove header from row 1
table[1] = gsub(".*(<tr bgcolor=\"#......\">.*)","\\1",table[1])
#coerce chacacters to numeric
numericFromChar = function(chr) {
return (as.numeric(as.character(chr)))
}
#parse a single row of the table
parseRow = function(str) {
cols = t(as.data.table(strsplit(str,"<td")))
cols = gsub(".*n/a.*",NA,cols)
cols = gsub(".*>([0-9]+\\.*[0-9]*)<.*","\\1",cols)
cols = cols[2:length(cols)]
meta = t(as.data.table(strsplit(cols[3],"<div")))
cols = as.data.table(t(as.data.table(cols[-3])))
cols = cols[, lapply(.SD, numericFromChar)]
artist = gsub(".*>(.*)</a.*","\\1",meta[2],)
artist_url = gsub(".*a href=\"(.*/)\">.*","http://albumoftheyear.org\\1",meta[2],)
album = gsub(".*>(.*)</a.*","\\1",meta[3],)
album_url = gsub(".*a href=\"(.*php)\">.*","http://albumoftheyear.org\\1",meta[3],)
meta = t(as.data.table(c(artist,artist_url,album,album_url)))
row = as.data.table(cbind(cols,meta))
setnames(row,colNames)
return(row)
}
#parse the table
scores.dt = do.call("rbind", lapply(table[1:length(table)-1], FUN = parseRow))
setkey(scores.dt,Album_url)
#remove rows with missing data
scores.dt = unique(scores.dt[!"NA"])
#clean review urls
list_urls.dt = as.data.table(cbind(reviewNames,aotyUrls))
list_urls.dt$aotyUrls = gsub("/ratings/","http://albumoftheyear.org/ratings/",list_urls.dt$aotyUrls)
setkey(list_urls.dt,reviewNames)
remove(colNames,reviewNames,table,header,aotyUrls)
<link rel = "stylesheet" type="text/css" href="style.css" />
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script type="text/javascript" src="soundConsensus.js"></script>
</body>
reviewNames aotyUrls url fullName yearFounded location
405 http://albumoftheyear.org/ratings/18-the-four-oh-five-highest-rated/2014/1 http://www.thefourohfive.com/ The 405 2008 United Kingdom
A.V. http://albumoftheyear.org/ratings/12-av-club-highest-rated/2014/1 http://www.avclub.com/music/ The A.V. Club 1993 Chicago
AMG http://albumoftheyear.org/ratings/8-all-music-highest-rated/2014/1 http://www.allmusic.com/ All Music 1991 San Fransisco/Ann Arbor
CoS http://albumoftheyear.org/ratings/14-consequence-of-sound-highest-rated/2014/1 http://consequenceofsound.net/ Consequence of Sound 2007 Chicago
DiS http://albumoftheyear.org/ratings/3-drowned-in-sound-highest-rated/2014/1 http://drownedinsound.com/ Drowned in Sound 2000 United Kingdom
DIY http://albumoftheyear.org/ratings/25-diy-highest-rated/2014/1 http://diymag.com/ DIY Magazine 2011 London
NME http://albumoftheyear.org/ratings/9-nme-highest-rated/2014/1 http://www.nme.com/ New Musical Express 1952 London
NoRip http://albumoftheyear.org/ratings/13-no-ripcord-highest-rated/2014/1 http://www.noripcord.com/ No Ripcord 1999 United Kingdom
OMH http://albumoftheyear.org/ratings/5-musicomh-highest-rated/2014/1 http://www.musicomh.com/ Music OMH 1999 United Kingdom
P4K http://albumoftheyear.org/ratings/1-pitchfork-highest-rated/2014/1 http://pitchfork.com/ Pitchfork Media 1995 Chicago
Paste http://albumoftheyear.org/ratings/11-paste-highest-rated/2014/1 http://www.pastemagazine.com/ Paste 2002 United States
PM http://albumoftheyear.org/ratings/7-popmatters-highest-rated/2014/1 http://www.popmatters.com/ PopMatters 1999 International
PMA http://albumoftheyear.org/ratings/23-pretty-much-amazing-highest-rated/2014/1 http://prettymuchamazing.com/ Pretty Much Amazing
Radar http://albumoftheyear.org/ratings/17-under-the-radar-highest-rated/2014/1 http://www.undertheradarmag.com/ Under The Radar 2001 Los Angeles
RS http://albumoftheyear.org/ratings/35-rolling-stone-highest-rated/2014/1 http://www.rollingstone.com/ Rolling Stone 1967 New York City
Skinny http://albumoftheyear.org/ratings/31-the-skinny-highest-rated/2014/1 http://www.theskinny.co.uk/ The Skinny 2005 Scotland
Spin http://albumoftheyear.org/ratings/10-spin-highest-rated/2014/1 http://www.spin.com/ Spin Magazine 1985 New York City
TLOBF http://albumoftheyear.org/ratings/28-the-line-of-best-fit-highest-rated/2014/1 http://www.thelineofbestfit.com/ The Line of Best Fit London
TMT http://albumoftheyear.org/ratings/4-tiny-mix-tapes-highest-rated/2014/1 http://www.tinymixtapes.com/ Tiny Mix Tapes 2001 Minneapolis
/**
SoundConsensus
A visual summary of album review scores
Data scraped from albumoftheyear.org
by Matt Brehmer / @mattbrehmer
December 2014
**/
//track horizontal and vertical scrolling
window.pos = function() {
if (window.scrollX != null && window.scrollY != null)
return { x: window.scrollX, y : window.scrollY };
else
return { x: document.body.parentNode.scrollLeft,
y: document.body.parentNode.scrollTop };
};
//keep header panel fixed to top but not left
window.onscroll = function(e){
document.getElementById('header_panel')
.style.top = window.pos().y + 'px';
};
//initialize dimensions
var margin = {top: 20, right: 20, bottom: 20, left: 20},
width = window.innerWidth - 35,
height = 2440;
//initialize scales
var x = d3.scale.ordinal(),
y = d3.scale.linear(), //scales for each dimension
z = d3.scale.linear(), //scale for bar charts
genre_scale = d3.scale.ordinal(), //ordinal scale for genres
label_scale = d3.scale.ordinal(); //ordinal scale for labels
//initialize dispatch for highlighting selections from dropdowns
var dispatch = d3.dispatch("highlight");
//initialize main svg area
var main_svg = d3.select("body")
.append("svg")
.attr("id", "main_panel")
.attr("width", width)
.attr("height", height);
//initialize header svg
var header_svg = d3.select("body")
.append("svg")
.attr("id", "header_panel")
.attr("width", width)
.attr("height", 25);
//initialize filter div
var filter_div = d3.select("body")
.append("div")
.attr("id", "filter_div");
//initialize footer svg
var footer_svg = d3.select("body")
.append("svg")
.attr("id", "footer_panel")
.attr("width", width)
.attr("height", 25) ;
//initialize tooltip svg
var tooltip_svg = d3.select("body")
.append("svg")
.attr("id", "tooltip_panel")
.attr("class", "tooltip")
.attr("width", 160)
.attr("height", 120);
//tooltip text and link fields
tooltip_svg.append("a")
.attr("id","tooltip_artist_link")
.append("text")
.attr("dy", "0.9em")
.attr("dx", "0.3em")
.attr("class","artist")
.attr("id","tooltip_artist");
tooltip_svg.append("a")
.attr("id","tooltip_album_link")
.append("text")
.attr("dy", "1.9em")
.attr("dx", "0.3em")
.attr("class","album")
.attr("id","tooltip_album");
tooltip_svg.append("text")
.attr("dy", "3.9em")
.attr("dx", "0.3em")
.attr("id","tooltip_genre");
tooltip_svg.append("text")
.attr("dy", "4.9em")
.attr("dx", "0.3em")
.attr("id","tooltip_release");
tooltip_svg.append("text")
.attr("dy", "6.9em")
.attr("dx", "0.3em")
.attr("id","tooltip_score");
tooltip_svg.append("a")
.attr("id","tooltip_website_link")
.append("text")
.attr("dy", "8.9em")
.attr("dx", "0.3em")
.attr("class","album")
.attr("id","tooltip_website");
var about_visible = false;
var about_panel = d3.select("body")
.append("div")
.attr("id", "about_panel")
.style("display",'none')
.on("click", function() {
about_visible = false;
d3.select(this).style("display","none");
})
.html('<strong>SoundConsensus</strong> is an interactive visualization by @<a href="https://twitter.com/mattbrehmer">mattbrehmer</a> for comparing multiple ranked lists of record reviews from 19 prominent music publications. ' +
'The data visualized here represents the 105 most-reviewed records released in 2014, according to the music publication aggregator site <a href="http://www.albumoftheyear.org/ratings/overall/2014/15">albumoftheyear.org</a>. ' +
'<br/><br/><strong>Visual Encoding</strong>: Each column is associated with a music publication. Each cell containing a bar corresponds to a review score. The vertical position of a cell encodes its rank among other reviews from that publication. ' +
'The bars in each cell encode the score itself.<br/><br/>The first column is unique in that it encodes the overall rank and score calculated by <a href="http://www.albumoftheyear.org/ratings/overall/2014/15">albumoftheyear.org</a>. ' +
'<br/><br/>The columns are of unequal size because: (1) not all of the music publications reviewed all of the records; and (2) some music publications use a 10-point scale when rating a record, resulting in more ties than those using a 100-point or decimal scale. ' +
'<br/><br/><strong>Interaction</strong>: Hover over a record\'s artist or name to highlight the ranks and scores across all of the music publications who reviewed the record, and to see details about the record (such as genre, record label, and release date) in the panel at the lower left. ' +
'<br/><br/>You can also hover over any cell. ' +
'Clicking on a cell makes the highlighting persist, which can facilitate comparisons between records. Clicking again removes the highlight. ' +
'<br/><br/>Click on an artist name or album name to visit corresponding <a href="http://www.albumoftheyear.org">albumoftheyear.org</a> artist and album profile pages, which contain links to the original reviews. ' +
'<br/><br/>Hover over a column header to see the corresponding music publication\'s full name in a tooltip, along with details about the publication in the panel at the lower left. ' +
'<br/><br/><strong>Genre / Record Label Filtering</strong>: Select a musical genre and / or record label from the dropdown boxes in the lower left to filter the list of records (filtering maintains the relative rank positions of review scores). ' +
'<br/><br/><strong>Consensus Filtering</strong>: Select a consensus level from the dropdown box in the lower left to filter based on a record\'s standard deviation of review scores, where a high standard deviation corresponds to a low consensus, and vice versa (consensus ranges are at 20% quantiles). ' +
'<br/><br/>(Click anywhere in this panel to close it.)');
//create an array of known metadata dimensions
var metadata = ["Album_url",
"Artist",
"Profile_url",
"Album",
"ReleaseDate",
"Label",
"Genre",
"Artist_url",
"AoTY",
"SD"]
//load the data from csv
d3.csv("data-aoty/albumscores.csv", function(error, data) {
d3.csv("data-aoty/albumranks.csv", function(error, rank_data) {
d3.csv("data-aoty/list_urls.csv", function(error, reviewer_data) {
//sort SD array for consensus filtering
var sd_arr = data.map(function(e) { return +e.SD; }).sort(d3.ascending);
//get list of dimensions from rank data
rank_dimensions = d3.keys(rank_data[0]);
//sort the data based on albumoftheyear (AoTY) aggregate score
data.sort(function(a,b) {
return b.AoTY-a.AoTY;
});
// Extract the list of dimensions and create a scale for each.
// dimensions are scores from review publications
x.domain(dimensions = d3.keys(data[0]).filter(function(d) {
return metadata.indexOf(d) == -1;
}));
//determine cell size based on the number of dimensions
var cell_width = width / (dimensions.length + 4.5 );
var cell_height = 16;
x.rangePoints([cell_width * 4,
cell_width * 4 + dimensions.length * cell_width], 1);
//specify range and domain of bar charts based on cell width
y.range([0,height - 100])
.domain([0,data.length - 1]);
//specify range and domain of bar charts based on cell width
z.range([0,cell_width / 1.5])
.domain([0,100]);
//specify genre scale domain
genre_scale.domain(data.map( function (d) {
return d.Genre;
}));
//specify label scale domain
label_scale.domain(data.map( function (d) {
return d.Label;
}));
/**
HEADER
**/
//append container containing column heads to header panel
var header = header_svg.append("g")
.attr("class","header");
//append title to header
header.append("text")
.attr("class","title")
.attr("dy", "0.7em")
.text(function() {
if (width >= 1400)
return "SoundConsensus";
else
return "SC"; //short version for small windows
});
//append year to header
header.append("text")
.attr("class","year")
.attr("dy", "0.7em")
.attr("dx", "8em")
.attr("dx", function() {
if (width >= 1400)
return "8em";
else
return "1.4em"; //condensed version for small windows
})
.text("14");
//append subtitle to header
header.append("text")
.attr("class","subtitle")
.attr("dy", "2.1em")
.text(function() {
if (width >= 1400)
return "a visual summary of music review scores";
else
return "music review scores"; //short version for small windows
});
//append artist column head to header
header.append("text")
.attr("text-anchor", "end")
.attr("class","artist")
.attr("dy", "0.9em")
.text("Artist")
.style("pointer-events", "none")
.attr("transform", function() {
return "translate(" + (3.25 * cell_width) + ",0)";
});
//append album column head to header
header.append("text")
.attr("class","album")
.attr("text-anchor", "end")
.attr("dy", "2em")
.text("Album")
.style("pointer-events", "none")
.attr("transform", function() {
return "translate(" + (3.25 * cell_width) + ",0)";
});
//append aoty column head to header
header.append("a")
.attr("xlink:href",
"http://www.albumoftheyear.org/ratings/overall/2014/15")
.append("text")
.attr("dy", "0.9em")
.text("AoTY")
.attr("class","column")
.style("fill", "#de2d26")
.attr("transform", function() {
return "translate(" + (3.5 * cell_width) + ",0)";
})
.append("title")
.text("albumoftheyear.org");
//append AoTY subtitle to header
header.append("a")
.attr("xlink:href",
"http://www.albumoftheyear.org/ratings/overall/2014/15")
.append("text")
.attr("class","album")
.attr("dy", "2em")
.text("(overall)")
.attr("transform", function() {
return "translate(" + (3.5 * cell_width) + ",0)";
})
.append("title")
.text("albumoftheyear.org");
//append column heads to header, one for each dimension
header.selectAll("column")
.data(dimensions)
.enter()
.append("g")
.append("a")
.attr("xlink:href", function(d) {
return getReviewerData(d,2);
})
.append("text")
.attr("class","column")
.attr("dy", "1.2em")
.attr("transform", function(d,i) {
return "translate(" + (4.5 * cell_width + i * cell_width) + ",0)";
})
.text(function(d) {
return d;
})
.on("mouseover", function(d,i) { //specify tooltip behaviour, repurpose tooltip
d3.select("#tooltip_artist") //reviewer name
.transition()
.text(getReviewerData(d,3));
d3.select("#tooltip_artist_link") //reviewer aoty url
.transition()
.attr("xlink:href", getReviewerData(d,1));
d3.select("#tooltip_album") //reviewer abbreviation
.transition()
.text(d);
d3.select("#tooltip_album_link")
.transition()
.attr("xlink:href", getReviewerData(d,1));
d3.select("#tooltip_genre")
.transition()
.text("");
d3.select("#tooltip_release")
.transition()
.text("Founded: " + getReviewerData(d,4));
d3.select("#tooltip_score")
.transition()
.text("Location: " + getReviewerData(d,5));
d3.select("#tooltip_website_link")
.transition()
.attr("xlink:href", getReviewerData(d,2));
d3.select("#tooltip_website")
.transition()
.text(getReviewerData(d,2));
})
.append("title")
.text(function(d) {
return getReviewerData(d,3);
});
/**
MAIN BODY
**/
//append "table" of rows containing data to main panel
var table = main_svg.append("g")
.attr("class","table")
.attr("transform", function(d, i) {
return "translate(0," + 35 + ")";
});
var selected_row = null;
//append rows to the table, one for each datum
var row = table.selectAll("row")
.data(data)
.enter()
.append("g")
.attr("class", "row")
.on("mouseover", function(d,i) { //specify tooltip behaviour
d3.select("#tooltip_artist")
.transition()
.text(d.Artist);
d3.select("#tooltip_artist_link")
.transition()
.attr("xlink:href", d.Profile_url);
d3.select("#tooltip_album")
.transition()
.text(d.Album);
d3.select("#tooltip_album_link")
.transition()
.attr("xlink:href", d.Album_url);
d3.select("#tooltip_genre")
.transition()
.text("Genre: " + d.Genre);
d3.select("#tooltip_release")
.transition()
.text("Released: " + d.ReleaseDate + " (" + d.Label + ")");
d3.select("#tooltip_score")
.transition()
.text("AoTY rank (score): " + (i + 1) + " (" + d.AoTY + ")");
d3.select("#tooltip_website_link")
.transition()
.attr("xlink:href", d.Artist_url);
d3.select("#tooltip_website")
.transition()
.text(d.Artist_url);
})
.on("mouseenter", function(d,i) {
if (selected_row != d.Album_url) {
d3.select('.table').selectAll(".row").sort(function (a, b) { // select the parent and sort the path's
if (a.Album_url != d.Album_url && a.Album_url != selected_row) return -1; // a is not the hovered element, send "a" to the back
else return 1; // a is the hovered element, bring "a" to the front
});
d3.select(this) //highlight corresponding row of cells
.selectAll("rect")
.transition()
.duration(200)
.style("stroke", "#de2d26");
d3.select(this)
.selectAll("rect.value")
.transition()
.duration(200)
.style("fill", "#fcbba1")
.style("stroke", "#de2d26");
d3.select(this)
.selectAll("text.album")
.style("fill", "#de2d26");
d3.select(this)
.selectAll("text.artist")
.style("fill", "#de2d26");
d3.select(this)
.selectAll("line.link_line")
.style("opacity", "1")
.style("stroke", "#de2d26");
}
})
.on("click", function(d,i) { //specify tooltip behaviour
if (selected_row == null) {
selected_row = d.Album_url;
d3.select('.table').selectAll(".row").sort(function (a, b) { // select the parent and sort the path's
if (a.Album_url != d.Album_url && a.Album_url != selected_row) return -1; // a is not the hovered element, send "a" to the back
else return 1; // a is the hovered element, bring "a" to the front
});
d3.select(this) //highlight corresponding row of cells
.selectAll("rect")
.transition()
.duration(200)
.style("stroke", "#54278f");
d3.select(this)
.selectAll("rect.value")
.transition()
.duration(200)
.style("fill", "#bcbddc")
.style("stroke", "#54278f");
d3.select(this)
.selectAll("text.album")
.style("fill", "#54278f");
d3.select(this)
.selectAll("text.artist")
.style("fill", "#54278f");
d3.select(this)
.selectAll("line.link_line")
.style("opacity", "1")
.style("stroke", "#54278f");
}
else if (selected_row == d.Album_url){
selected_row = null;
d3.select(this) //highlight corresponding row of cells
.selectAll("rect")
.transition()
.duration(200)
.style("stroke", "#bbb");
d3.select(this)
.selectAll("rect.value")
.transition()
.duration(200)
.style("fill", "#ccc")
.style("stroke", "#bbb");
d3.select(this)
.selectAll("text.album")
.style("fill", "#666");
d3.select(this)
.selectAll("text.artist")
.style("fill", "#000");
d3.select(this)
.selectAll("line.link_line")
.style("opacity", "1")
.style("stroke", "#bbb");
}
})
.on("mouseleave", function(d,i) { //undo mouseenter events
if (selected_row != d.Album_url) {
d3.select(this)
.selectAll("rect")
.transition()
.delay(100)
.duration(200)
.style("z-index", "0")
.style("stroke", "#bbb");
d3.select(this)
.selectAll("rect.value")
.transition()
.delay(100)
.duration(200)
.style("fill", "#ccc")
.style("stroke", "#bbb");
d3.select(this).selectAll("text.album")
.style("fill", "#666");
d3.select(this).selectAll("text.artist")
.style("fill", "#000");
d3.select(this)
.selectAll("line.link_line")
.style("opacity", "0.25")
.style("stroke", "#bbb");
}
});
//append row header to each row to contain artist and album
var row_header = row.append("g")
.attr("class","row_header");
//append artist link and name to row header
row_header.append("a")
.attr("xlink:href", function(d){
return d.Profile_url ;
})
.append("text")
.attr("text-anchor", "end")
.attr("class","artist")
.attr("dy", "0.9em")
.text(function(d) {
return d.Artist;
})
.attr("y", function(d,i) {
return y(i);
})
.attr("transform", function(d, i) {
return "translate(" + (3.25 * cell_width) + ",0)";
});
//append album link and name to row header
row_header.append("a")
.attr("class", "link")
.attr("xlink:href", function(d) {
return d.Album_url;
})
.append("text")
.attr("class","album")
.attr("text-anchor", "end")
.attr("dy", "2em")
.text(function(d) {
return d.Album ;
})
.attr("y", function(d,i) {
return y(i);
})
.attr("transform", function(d, i) {
return "translate(" + (3.25 * cell_width) + ",0)";
});
//append index to row header
row_header.append("text")
.attr("class","index")
.attr("text-anchor", "end")
.attr("dy", "1.5em")
.text(function(d, i) {
if (width >= 1400)
return i + 1;
else
return ""; //don't show in small windows
})
.attr("y", function(d,i) {
return y(i);
})
.attr("transform", function(d, i) {
return "translate(" + (3.47 * cell_width) + ",0)";
});
//append aoty cell to each row
var aotycell = row.append("g")
.attr("class","cell")
.attr("y", function(d,i) {
return y(i);
})
.attr("transform", function(d) {
return "translate(" +
(3.5 * cell_width) +
",0)";
})
.attr("width", cell_width / 1.5)
.attr("height", cell_height);
//append rectangular bounds to each cell
aotycell.append("rect")
.attr("class", "bounds")
.attr("height", cell_height)
.attr("width", cell_width / 1.5)
.attr("y", function(d,i) {
return y(i);
});
//append link to album page and bar scaled to score to cell
aotycell.append("rect")
.attr("class","value")
.attr("height", cell_height)
.attr("width", function(d) {
return z(d.AoTY);
})
.attr("y", function(d,i) {
return y(i);
});
//append album score in the cell
aotycell.append("text")
.attr("class","score")
.attr("height", cell_height)
.attr("dy", "1.5em")
.attr("dx", "0.3em")
.text(function(d) {
return d.AoTY;
})
.attr("y", function(d,i) {
return y(i);
});
//append line to cell, link to next cell
aotycell.append("line")
.attr("class","link_line")
.attr("x1", function() {
return x(dimensions[0]) - 3.825 * cell_width;
})
.attr("x2", function() {
return x(dimensions[0]) - 3.5 * cell_width;
})
.attr("y1", function(d,i) {
return y(i) + cell_height / 2;
})
.attr("y2", function(d,i) {
return y(getRank(d.Album_url,dimensions[0])) + cell_height / 2;
})
.style("display", function(d,i){
if (getRank(d.Album_url,dimensions[0]) == -1)
return "none";
else
return "inline";
});
//append cells to each row, map each cell to a dimension
var cell = row.selectAll("cell")
.data(function(d) {
return dimensions.map(function(k) {
return d[k];
});
})
.enter()
.append("g")
.attr("class","cell")
.attr("width", cell_width / 1.5)
.attr("height", cell_height);
//append rectangular bounds to each cell
cell.append("rect")
.attr("class", "bounds")
.attr("height", cell_height)
.attr("width", cell_width / 1.5)
.attr("x", function(d,i) {
return x(dimensions[i]);
})
.attr("y", function(d,i) {
if (d == '')
return y(data.length - 1);
else
return y(getRank(d3.select(this.parentNode.parentNode).datum().Album_url,dimensions[i]));
})
.style("stroke-width", function(d) {
if (d == '')
return 0 + "px";
});
//append bar scaled to score to cell
cell.append("rect")
.attr("class","value")
.attr("height", cell_height)
.attr("width", function(d) {
return z(d);
})
.attr("x", function(d,i) {
return x(dimensions[i]);
})
.attr("y", function(d,i) {
if (d == '')
return y(data.length - 1);
else
return y(getRank(d3.select(this.parentNode.parentNode).datum().Album_url,dimensions[i]));
});
//append album score in the cell
cell.append("text")
.attr("class","score")
.attr("height", cell_height)
.attr("dy", "1.5em")
.attr("dx", "0.3em")
.text(function(d) {
return d;
})
.style("fill", function(d) {
if (d == 100)
return "#de2d26";
})
.style("font-weight", function(d) {
if (d == 100)
return "bold";
})
.attr("x", function(d,i) {
return x(dimensions[i]);
})
.attr("y", function(d,i) {
if (d == '')
return y(data.length - 1);
else
return y(getRank(d3.select(this.parentNode.parentNode).datum().Album_url,dimensions[i]));
});
//append line to cell, link to next cell
cell.append("line")
.attr("class","link_line")
.attr("x1", function(d,i) {
return x(dimensions[i]) + cell_width / 1.5;
})
.attr("x2", function(d,i) {
if (i + 1 != dimensions.length)
return x(dimensions[i+1]);
else
return x(dimensions[i]) + cell_width / 1.5;
})
.attr("y1", function(d,i) {
return y(getRank(d3.select(this.parentNode.parentNode).datum().Album_url,dimensions[i])) + cell_height / 2;
})
.attr("y2", function(d,i) {
return y(getRank(d3.select(this.parentNode.parentNode).datum().Album_url,dimensions[i+1])) + cell_height / 2;
})
.style("display", function(d,i){
if (i + 1 == dimensions.length ||
getRank(d3.select(this.parentNode.parentNode).datum().Album_url,dimensions[i]) == -1 ||
getRank(d3.select(this.parentNode.parentNode).datum().Album_url,dimensions[i+1]) == -1)
return "none";
else
return "inline";
});
//listen for dispatch events from genre selector
dispatch.on("highlight.row", function(genre,label,consensus_lb,consensus_ub) {
row.selectAll('.album').style("opacity", function(d){
if ((d.Genre == genre || genre == "( All Genres )") &&
(d.Label == label || label == "( All Record Labels )") &&
(d.SD >= consensus_lb) && (d.SD <= consensus_ub))
return 1;
else
return 0.25;
});
row.selectAll('.artist').style("opacity", function(d){
if ((d.Genre == genre || genre == "( All Genres )") &&
(d.Label == label || label == "( All Record Labels )") &&
(d.SD >= consensus_lb) && (d.SD <= consensus_ub))
return 1;
else
return 0.25;
});
row.style("pointer-events", function(d){
if ((d.Genre == genre || genre == "( All Genres )") &&
(d.Label == label || label == "( All Record Labels )") &&
(d.SD >= consensus_lb) && (d.SD <= consensus_ub))
return 'inherit';
else
return 'none';
});
row.sort(function (d, a) { // select the parent and sort the path's
if ((d.Genre == genre || genre == "( All Genres )") &&
(d.Label == label || label == "( All Record Labels )") &&
(d.SD >= consensus_lb) && (d.SD <= consensus_ub))
return 1; // a is not the hovered element, send "a" to the back
else
return -1; // a is the hovered element, bring "a" to the front
});
row.selectAll('.cell').style("display", function(d){
if ((d3.select(this.parentNode).datum().Genre == genre || genre == "( All Genres )") &&
(d3.select(this.parentNode).datum().Label == label || label == "( All Record Labels )") &&
(d3.select(this.parentNode).datum().SD >= consensus_lb) && (d3.select(this.parentNode).datum().SD <= consensus_ub))
return 'inline';
else
return 'none';
});
});
//function for getting reviewer metdata, given an abbreviation and a metadata dimension index
function getReviewerData (reviewer,metadata) {
var index = reviewer_data.map(function(e) {
return e.reviewNames;
}).indexOf(reviewer);
switch(metadata) {
case 0:
return reviewer_data[index].reviewNames;
break;
case 1:
return reviewer_data[index].aotyUrls;
break;
case 2:
return reviewer_data[index].url;
break;
case 3:
return reviewer_data[index].fullName;
break;
case 4:
return reviewer_data[index].yearFounded;
break;
case 5:
return reviewer_data[index].location;
break;
}
}
//function for determining rank according to current dimension
function getRank (url,dimension) {
var index = rank_data.map(function(e) {
return e.Album_url;
}).indexOf(url);
var dim_index = rank_dimensions.indexOf(dimension);
var rank = rank_data[index][rank_dimensions[dim_index]];
if (rank - 1 == -1)
console
return rank - 1;
}
/**
FOOTER
**/
//append container credits to footer panel
var footer = footer_svg.append("g")
.attr("class","footer");
//append artist column head to header
footer.append("text")
.attr("class","artist")
.attr("id","more_info")
.attr("dy", "1.3em")
.attr("dx", "2.2em")
.text("More Info")
.on("mouseover", function() {
d3.select(this).style("fill","#de2d26");
d3.select('#info_button').attr("xlink:href","info-hover.png");
})
.on("mouseout", function() {
d3.select(this).style("fill","#000");
d3.select('#info_button').attr("xlink:href","info.png");
})
.on("click", function() {
if (!about_visible) {
about_visible = true;
d3.select('#about_panel').style("display","inline");
}
else {
about_visible = false;
d3.select('#about_panel').style("display","none");
}
});
//append title to footer
footer.append("a")
.attr("xlink:href",
"https://twitter.com/mattbrehmer")
.append("text")
.attr("class","attribution")
.attr("dy", "0.6em")
.attr("dx", "7.5em")
.text("by @mattbrehmer");
//append subtitle to footer
footer.append("a")
.attr("xlink:href",
"http://www.albumoftheyear.org/ratings/overall/2014/15")
.append("text")
.attr("class","attribution")
.attr("dy", "2.0em")
.attr("dx", "7.5em")
.text("data from AoTY / albumoftheryear.org");
//append subtitle to footer
footer.append("image")
.attr("id","info_button")
.attr("xlink:href","info.png")
.style("cursor","pointer")
.attr("width", 16)
.attr("height", 16)
.on("mouseover", function() {
d3.select('#more_info').style("fill","#de2d26");
d3.select(this).attr("xlink:href","info-hover.png");
})
.on("mouseout", function() {
d3.select('#more_info').style("fill","#000");
d3.select(this).attr("xlink:href","info.png");
})
.on("click", function() {
if (!about_visible) {
about_visible = true;
d3.select('#about_panel').style("display","inline");
}
else {
about_visible = false;
d3.select('#about_panel').style("display","none");
}
})
.append("title")
.text("More info");
d3.select("#filter_div")
.html("Filter by genre, record label, or level of consensus: ")
var all_genres = ["( All Genres )"];
//append genre dropdown to footer,
var select_genre = d3.select("#filter_div")
.append("select")
.on("change", dropdownChange),
genre_options = select_genre.selectAll("option")
.data(all_genres.concat(genre_scale.domain().sort()));
//populate genre dropdown with genres
genre_options.enter()
.append("option")
.text(function (d) {
return d;
});
var all_labels = ["( All Record Labels )"];
//append label dropdown to footer,
var select_label = d3.select("#filter_div")
.append("select")
.on("change", dropdownChange),
label_options = select_label.selectAll("option")
.data(all_labels.concat(label_scale.domain().sort()));
//populate label dropdown with labels
label_options.enter()
.append("option")
.text(function (d) {
return d;
});
//consensus level options
var consensus_levels = ["( All Consensus Levels )",
"Low Consensus",
"Low-Medium Consensus",
"Medium Consensus",
"Medium-High Consensus",
"High Consensus"];
//append consensus dropdown to footer,
var select_consensus = d3.select("#filter_div")
.append("select")
.on("change", dropdownChange),
consensus_options = select_consensus.selectAll("option")
.data(consensus_levels);
//populate consensus dropdown with consensus levels
consensus_options.enter()
.append("option")
.text(function (d) {
return d;
});
//whenever an option is selected from the dropdowns, issue a dispatch event
function dropdownChange() {
var selected_genre_index = select_genre.property("selectedIndex"),
selected_genre = genre_options[0][selected_genre_index].__data__,
selected_label_index = select_label.property("selectedIndex"),
selected_label = label_options[0][selected_label_index].__data__,
selected_consensus_index = select_consensus.property("selectedIndex"),
consensus_lb,consensus_ub; //consensus upper and lower bounds
switch(selected_consensus_index) {
case 0: //all consensus levels
consensus_lb = d3.min(sd_arr);
consensus_ub = d3.max(sd_arr);
break;
case 1: //low consensus
consensus_lb = d3.quantile(sd_arr,0.8);
consensus_ub = d3.max(sd_arr);
break;
case 2: //low-medium consensus
consensus_lb = d3.quantile(sd_arr,0.6);
consensus_ub = d3.quantile(sd_arr,0.8);
break;
case 3: //middle consensus
consensus_lb = d3.quantile(sd_arr,0.4);
consensus_ub = d3.quantile(sd_arr,0.6);
break;
case 4: //middle-high consensus
consensus_lb = d3.quantile(sd_arr,0.2);
consensus_ub = d3.quantile(sd_arr,0.4);
break;
case 5: //high consensus
consensus_lb = d3.min(sd_arr);
consensus_ub = d3.quantile(sd_arr,0.2);
break;
}
dispatch.highlight(selected_genre,selected_label,consensus_lb,consensus_ub);
}
}); //end d3.csv load
}); //end d3.csv load
}); //end d3.csv load
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
#header_panel {
position: absolute;
top: 0px;
left: 0px;
margin: 0px;
padding: 10px 10px 0px 10px;
background: #eee;
border-bottom: 1px solid #999;
}
#footer_panel {
position: fixed;
bottom: 0px;
left: 0px;
margin: 0px;
padding: 10px 10px 0px 10px;
background: #eee;
opacity: 1;
border-top: 1px solid #999;
}
#tooltip_panel {
position: fixed;
margin: 0px;
bottom: 45px;
right: 10px;
padding: 10px 10px 0px 10px;
border: 1px solid #de2d26;
}
#about_panel {
position: fixed;
margin: 0px;
bottom: 45px;
left: 10px;
padding: 10px 10px 0px 10px;
text-align: left;
width: 420px;
height: 420px;
font: 9px sans-serif;
background: #fee0d2;
border: 1px solid #de2d26;
border-radius: 4px;
z-index: 10;
}
#filter_div {
position: fixed;
bottom: 7px;
right: 10px;
margin: 0px;
padding: 0px;
z-index: 10;
fill: #666;
font: 8px sans-serif;
}
.background path {
fill: none;
stroke: #ddd;
shape-rendering: crispEdges;
}
.bounds {
fill: #fff;
stroke: #bbb;
stroke-width: 1px;
cursor: pointer;
}
.value {
fill: #ccc;
stroke: #bbb;
stroke-width: 1px;
cursor: pointer;
}
.row {
pointer-events: all;
}
.cell text {
font: 8px sans-serif;
fill: #666;
-webkit-user-select: none; /* Chrome/Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+ */
cursor: pointer;
}
.link_line {
stroke: #bbb;
opacity: 0.25;
stroke-width: 1px;
}
.column {
fill: black;
font: 8px sans-serif;
font-weight: bold;
cursor: pointer;
}
.column:hover {
fill: #de2d26;
text-decoration: underline;
}
.year {
fill: #de2d26;
font-weight: bold;
font-family: Palatino, Times, serif;
}
.title {
font-family: Palatino, Times, serif;
font-weight: bold;
fill: #666;
cursor: default;
}
.subtitle {
font: 8px sans-serif;
cursor: default;
fill: #666;
}
.attribution {
font: 8px sans-serif;
fill: #666;
cursor: pointer;
}
.attribution:hover {
fill: #de2d26;
text-decoration: underline;
}
.artist {
font: 8px sans-serif;
font-weight: bold;
cursor: pointer;
}
.artist:hover {
fill: #de2d26;
text-decoration: underline;
}
.album {
font: 8px sans-serif;
fill: #666;
cursor: pointer;
}
.index {
font: 7px sans-serif;
fill: #999;
cursor: default;
}
.album:hover {
fill: #de2d26;
text-decoration: underline;
}
.tooltip {
position: absolute;
text-align: left;
width: 190px;
height: 100px;
padding: 5px 5px 5px 5px;
font: 8px sans-serif;
background: #fee0d2;
border: 0px #de2d26;
border-radius: 4px;
z-index: 10;
}
.vline {
stroke: #999;
stroke-width: 1px;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment