From e96a94a26091c494f905b4018b038c6b045ca144 Mon Sep 17 00:00:00 2001 From: grin3s Date: Sat, 6 Aug 2016 12:55:30 +0300 Subject: [PATCH 1/9] dummy recycler --- .../java/ru/yandex/yamblz/data/Genre.java | 8 ++++ .../yamblz/ui/adapters/GenresAdapter.java | 45 +++++++++++++++++++ .../yamblz/ui/fragments/ContentFragment.java | 14 ++++++ app/src/main/res/layout/fragment_content.xml | 18 +++----- app/src/main/res/layout/rv_element.xml | 44 ++++++++++++++++++ dependencies.gradle | 2 +- 6 files changed, 118 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/ru/yandex/yamblz/data/Genre.java create mode 100644 app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java create mode 100644 app/src/main/res/layout/rv_element.xml diff --git a/app/src/main/java/ru/yandex/yamblz/data/Genre.java b/app/src/main/java/ru/yandex/yamblz/data/Genre.java new file mode 100644 index 0000000..49b443d --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/data/Genre.java @@ -0,0 +1,8 @@ +package ru.yandex.yamblz.data; + +/** + * Created by grin3s on 06.08.16. + */ + +public class Genre { +} diff --git a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java new file mode 100644 index 0000000..9d2db97 --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java @@ -0,0 +1,45 @@ +package ru.yandex.yamblz.ui.adapters; + +import android.media.tv.TvContract; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import java.util.ArrayList; +import java.util.List; + +import ru.yandex.yamblz.R; +import ru.yandex.yamblz.data.Genre; + +/** + * Created by grin3s on 06.08.16. + */ + +public class GenresAdapter extends RecyclerView.Adapter { + + List genreList = new ArrayList(); + + @Override + public GenresHolder onCreateViewHolder(ViewGroup parent, int viewType) { + final View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.rv_element, parent, false); + final GenresHolder holder = new GenresHolder(view); + return holder; + } + + @Override + public void onBindViewHolder(GenresHolder holder, int position) { + + } + + @Override + public int getItemCount() { + return 5; + } + + static class GenresHolder extends RecyclerView.ViewHolder { + public GenresHolder(View itemView) { + super(itemView); + } + } +} diff --git a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java index d46490f..b03e620 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java @@ -3,16 +3,30 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import butterknife.BindView; import ru.yandex.yamblz.R; +import ru.yandex.yamblz.ui.adapters.GenresAdapter; public class ContentFragment extends BaseFragment { + @BindView(R.id.rv) + RecyclerView rv; + @NonNull @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_content, container, false); } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + rv.setLayoutManager(new LinearLayoutManager(getContext())); + rv.setAdapter(new GenresAdapter()); + } } diff --git a/app/src/main/res/layout/fragment_content.xml b/app/src/main/res/layout/fragment_content.xml index 81016ea..ced3c5e 100644 --- a/app/src/main/res/layout/fragment_content.xml +++ b/app/src/main/res/layout/fragment_content.xml @@ -1,14 +1,8 @@ - + - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/rv_element.xml b/app/src/main/res/layout/rv_element.xml new file mode 100644 index 0000000..960d904 --- /dev/null +++ b/app/src/main/res/layout/rv_element.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dependencies.gradle b/dependencies.gradle index d9cb375..d340e7b 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,7 +7,7 @@ ext.versions = [ compileSdk : 23, buildTools : '23.0.3', - androidGradlePlugin : '2.2.0-alpha4', + androidGradlePlugin : '2.2.0-alpha6', aptGradlePlugin : '1.8', retrolambdaGradlePlugin : '3.2.5', lombokGradlePlugin : '0.2.3.a2', From 6d0255aa2108bb1d82eddd0070b316fe8b2e9d3c Mon Sep 17 00:00:00 2001 From: grin3s Date: Sat, 6 Aug 2016 15:46:09 +0300 Subject: [PATCH 2/9] genre list formed shown --- app/build.gradle | 2 + app/src/main/assets/artists.json | 1 + .../java/ru/yandex/yamblz/data/Artist.java | 97 ++++++++++++++ .../java/ru/yandex/yamblz/data/Genre.java | 41 ++++++ .../ru/yandex/yamblz/loader/GenresLoader.java | 126 ++++++++++++++++++ .../yamblz/ui/adapters/GenresAdapter.java | 38 +++++- .../yamblz/ui/fragments/ContentFragment.java | 27 +++- app/src/main/res/layout/rv_element.xml | 19 ++- dependencies.gradle | 4 + 9 files changed, 343 insertions(+), 12 deletions(-) create mode 100644 app/src/main/assets/artists.json create mode 100644 app/src/main/java/ru/yandex/yamblz/data/Artist.java create mode 100644 app/src/main/java/ru/yandex/yamblz/loader/GenresLoader.java diff --git a/app/build.gradle b/app/build.gradle index 445372a..05fde42 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -121,6 +121,8 @@ dependencies { exclude module: 'recyclerview-v7' exclude module: 'support-v4' } + + compile libraries.gson } configurations.all { diff --git a/app/src/main/assets/artists.json b/app/src/main/assets/artists.json new file mode 100644 index 0000000..d943806 --- /dev/null +++ b/app/src/main/assets/artists.json @@ -0,0 +1 @@ +[{"id":1080505,"name":"Tove Lo","genres":["pop","dance","electronics"],"tracks":81,"albums":22,"link":"http://www.tove-lo.com/","description":"шведская певица и автор песен. Она привлекла к себе внимание в 2013 году с выпуском сингла «Habits», но настоящего успеха добилась с ремиксом хип-хоп продюсера Hippie Sabotage на эту песню, который получил название «Stay High». 4 марта 2014 года вышел её дебютный мини-альбом Truth Serum, а 24 сентября этого же года дебютный студийный альбом Queen of the Clouds. Туве Лу является автором песен таких артистов, как Icona Pop, Girls Aloud и Шер Ллойд.","cover":{"small":"http://avatars.yandex.net/get-music-content/dfc531f5.p.1080505/300x300","big":"http://avatars.yandex.net/get-music-content/dfc531f5.p.1080505/1000x1000"}},{"id":2915,"name":"Ne-Yo","genres":["rnb","pop","rap"],"tracks":256,"albums":152,"link":"http://www.neyothegentleman.com/","description":"обладатель трёх премии Грэмми, американский певец, автор песен, продюсер, актёр, филантроп. В 2009 году журнал Billboard поставил Ни-Йо на 57 место в рейтинге «Артисты десятилетия».","cover":{"small":"http://avatars.yandex.net/get-music-content/15ae00fc.p.2915/300x300","big":"http://avatars.yandex.net/get-music-content/15ae00fc.p.2915/1000x1000"}},{"id":91546,"name":"Usher","genres":["rnb","pop","rap"],"tracks":450,"albums":183,"link":"http://usherworld.com/","description":"американский певец и актёр. Один из самых коммерчески успешных R&B-музыкантов афроамериканского происхождения. В настоящее время продано более 65 миллионов копий его альбомов по всему миру. Выиграл семь премий «Грэмми», четыре премии World Music Awards, четыре премии American Music Award и девятнадцать премий Billboard Music Awards. Владелец собственной звукозаписывающей компании US Records. Он занимает 21 место в списке самых успешных музыкантов по версии Billboard, а также второе место, уступив Эминему в списке самых успешных музыкантов 2000-х годов. В 2010 году журнал Glamour включил его в список 50 самых сексуальных мужчин.","cover":{"small":"http://avatars.yandex.net/get-music-content/b0e14f75.p.91546/300x300","big":"http://avatars.yandex.net/get-music-content/b0e14f75.p.91546/1000x1000"}},{"id":100500,"name":"Jay Sean","genres":["pop","rap","rnb"],"tracks":106,"albums":38,"description":"британский рэпер, являющийся выходцем из Индии. Родился в западном Лондоне, Англия. Выпустил три альбома Me Against Myself, My Own Way и All or Nothing.","cover":{"small":"http://avatars.yandex.net/get-music-content/db35e57a.p.100500/300x300","big":"http://avatars.yandex.net/get-music-content/db35e57a.p.100500/1000x1000"}},{"id":74614,"name":"Kelly Rowland","genres":["rnb","pop","rap"],"tracks":174,"albums":106,"link":"http://www.kellyrowland.com/","description":"американская певица и актриса. Выступает в стиле современный ритм-энд-блюз, является автором текстов песен.","cover":{"small":"http://avatars.yandex.net/get-music-content/be7f0f49.p.74614/300x300","big":"http://avatars.yandex.net/get-music-content/be7f0f49.p.74614/1000x1000"}},{"id":1156,"name":"Timbaland","genres":["rap","pop","dance"],"tracks":227,"albums":141,"link":"http://www.timbalandmusic.com/","description":"американский рэпер, музыкальный продюсер, аранжировщик и автор песен. Основатель лейбла Mosley Music Group, двукратный обладатель премий «Грэмми».","cover":{"small":"http://avatars.yandex.net/get-music-content/e33024d5.p.1156/300x300","big":"http://avatars.yandex.net/get-music-content/e33024d5.p.1156/1000x1000"}},{"id":1150,"name":"Keri Hilson","genres":["pop","rnb","rap"],"tracks":99,"albums":64,"description":"американская певица и автор песен в стиле современного R&B, работает на лейблы Zone 4/Mosley Music Group/Interscope Records. Является членом объединения авторов и продюсеров, известного как The Clutch.","cover":{"small":"http://avatars.yandex.net/get-music-content/40598113.p.1150/300x300","big":"http://avatars.yandex.net/get-music-content/40598113.p.1150/1000x1000"}},{"id":451523,"name":"Пицца","genres":["rusrap"],"tracks":33,"albums":11,"link":"http://pizzamusic.ru/","description":"музыкальная группа, основанная в 2009 году Сергеем Приказчиковым и исполняющая песни на стыке таких жанров, как поп-соул, регги, фанк и даже рэп.","cover":{"small":"http://avatars.yandex.net/get-music-content/120513b9.p.451523/300x300","big":"http://avatars.yandex.net/get-music-content/120513b9.p.451523/1000x1000"}},{"id":41110,"name":"Дима Билан","genres":["pop"],"tracks":119,"albums":29,"link":"http://bilandima.ru/","description":"Дима Николаевич Билан - российский певец, более известный как Дима Билан. В июне 2008 года принял данный псевдоним в качестве настоящего имени и фамилии. Дима Билан представлял Россию на конкурсе песни «Евровидение» два раза: в 2006 году с песней «Never Let You Go», заняв второе место, и в 2008 году с песней «Believe», заняв первое место и став первым российским артистом, победившим на конкурсе песни «Евровидение».","cover":{"small":"http://avatars.yandex.net/get-music-content/20c848e3.p.41110/300x300","big":"http://avatars.yandex.net/get-music-content/20c848e3.p.41110/1000x1000"}},{"id":166300,"name":"Бьянка","genres":["pop","rnb"],"tracks":45,"albums":13,"link":"http://www.biankanumber1.ru/","description":"белорусская и российская R&B-исполнительница.","cover":{"small":"http://avatars.yandex.net/get-music-content/f960f99a.p.166300/300x300","big":"http://avatars.yandex.net/get-music-content/f960f99a.p.166300/1000x1000"}},{"id":161010,"name":"Нюша","genres":["pop"],"tracks":99,"albums":34,"link":"http://www.nyusha.ru/","description":"российская певица, автор песен, композитор, актриса.","cover":{"small":"http://avatars.yandex.net/get-music-content/7806607c.p.161010/300x300","big":"http://avatars.yandex.net/get-music-content/7806607c.p.161010/1000x1000"}},{"id":155914,"name":"Винтаж","genres":["pop"],"tracks":91,"albums":17,"link":"http://www.vintagemusic.ru/","description":"российская поп-группа, в состав которой входят певица Анна Плетнёва и певец, композитор и саунд-продюсер Алексей Романов. Ранее в состав группы входили танцовщицы Мия и Светлана Иванова.","cover":{"small":"http://avatars.yandex.net/get-music-content/42479f15.p.155914/300x300","big":"http://avatars.yandex.net/get-music-content/42479f15.p.155914/1000x1000"}},{"id":159009,"name":"Градусы","genres":["pop"],"tracks":30,"albums":5,"link":"http://www.gradusy.com/","description":"российская поп-группа из Ставрополя, основанная в 2008 году. Первый концерт группа отыграла под названием «Градус 100» 29 мая 2008 года","cover":{"small":"http://avatars.yandex.net/get-music-content/46f09c63.p.159009/300x300","big":"http://avatars.yandex.net/get-music-content/46f09c63.p.159009/1000x1000"}},{"id":755171,"name":"Иван Дорн","genres":["pop","rap","electronics"],"tracks":117,"albums":43,"link":"http://www.ivandorn.com","description":"украинский певец, диджей и телеведущий, бывший участник группы «Пара Нормальных».","cover":{"small":"http://avatars.yandex.net/get-music-content/f8bb3e2e.p.755171/300x300","big":"http://avatars.yandex.net/get-music-content/f8bb3e2e.p.755171/1000x1000"}},{"id":2392189,"name":"Андрей Леницкий","genres":["pop"],"tracks":29,"albums":4,"link":"http://lenitsky.com/","description":"Украинский музыкант, солист, автор песен и композитор.","cover":{"small":"http://avatars.yandex.net/get-music-content/db0fe697.p.2392189/300x300","big":"http://avatars.yandex.net/get-music-content/db0fe697.p.2392189/1000x1000"}},{"id":796797,"name":"Егор Крид","genres":["pop","rnb","rap"],"tracks":57,"albums":22,"link":"https://twitter.com/egorkreed","description":"российский певец.","cover":{"small":"http://avatars.yandex.net/get-music-content/eed9efaa.p.796797/300x300","big":"http://avatars.yandex.net/get-music-content/eed9efaa.p.796797/1000x1000"}},{"id":190602,"name":"5sta family","genres":["pop","rap","soul"],"tracks":34,"albums":13,"link":"http://5sta.ru","description":"российская R&B-группа.","cover":{"small":"http://avatars.yandex.net/get-music-content/c3713853.p.190602/300x300","big":"http://avatars.yandex.net/get-music-content/c3713853.p.190602/1000x1000"}},{"id":6173,"name":"Sugababes","genres":["pop"],"tracks":143,"albums":55,"link":"https://twitter.com/SugababesHQ","description":"женское поп-трио из Лондона, которое было сформировано в 1998-м году. Эта группа выпустила 27 синглов, шесть из которых стали № 1 в Великобритании, и семь альбомов, два из которых также забрались на вершину Британского альбомного чарта. Три альбома девушек стали трижды платиновыми. В 2003-м году они победили в номинации «Лучший танцевальный исполнитель», а в 2006-м году были названы в Великобритании исполнительницами двадцать первого века, опережая таких артистов, как Бритни Спирс и Мадонна. По всему миру было куплено более четырнадцати миллионов копий альбомов Sugababes.","cover":{"small":"http://avatars.yandex.net/get-music-content/3a78c5ba.a.2987-1/300x300","big":"http://avatars.yandex.net/get-music-content/3a78c5ba.a.2987-1/1000x1000"}},{"id":29506,"name":"Shaznay Lewis","genres":["pop"],"tracks":17,"albums":3,"description":"британская певица, автор песен и актриса.","cover":{"small":"http://avatars.yandex.net/get-music-content/fb79d2d3.a.15587-2/300x300","big":"http://avatars.yandex.net/get-music-content/fb79d2d3.a.15587-2/1000x1000"}},{"id":11580,"name":"Emma Bunton","genres":["pop"],"tracks":20,"albums":11,"description":"британская певица, автор песен и телеведущая.","cover":{"small":"http://avatars.yandex.net/get-music-content/dfddb106.a.32140-1/300x300","big":"http://avatars.yandex.net/get-music-content/dfddb106.a.32140-1/1000x1000"}},{"id":36748,"name":"Geri Halliwell","genres":["pop"],"tracks":56,"albums":20,"description":"британская певица, автор песен и детская писательница. Добилась известности в середине 1990-х годов как участница женской поп-группы Spice Girls. Холлиуэлл сделала самую успешную сольную карьеру из всех участниц группы, была четырежды номинирована на Brit Awards, выпустила четыре сингла, достигших первого места в британских хит-парадах, а суммарные продажи её альбомов превышают четыре миллиона копий.","cover":{"small":"http://avatars.yandex.net/get-music-content/56e6e674.a.31311-1/300x300","big":"http://avatars.yandex.net/get-music-content/56e6e674.a.31311-1/1000x1000"}},{"id":6190,"name":"Mutya Buena","genres":["pop"],"tracks":5,"albums":4,"description":"британская певица, бывшая участница группы «Sugababes».","cover":{"small":"http://avatars.yandex.net/get-music-content/c721d84d.a.88046-1/300x300","big":"http://avatars.yandex.net/get-music-content/c721d84d.a.88046-1/1000x1000"}},{"id":36976,"name":"Spice Girls","genres":["pop"],"tracks":93,"albums":28,"link":"http://thespicegirls.com/","description":"британская женская поп-группа, образованная в Лондоне в 1994 году.","cover":{"small":"http://avatars.yandex.net/get-music-content/e3bdb6ba.a.35579-1/300x300","big":"http://avatars.yandex.net/get-music-content/e3bdb6ba.a.35579-1/1000x1000"}},{"id":6875,"name":"Girls Aloud","genres":["pop"],"tracks":71,"albums":31,"description":"британская поп-группа, сформировавшаяся в 2002 году в ходе реалити-шоу канала ITV Popstars: The Rivals. В состав входят Шерил Коул, Сара Хардинг, Никола Робертс, Кимберли Уолш и Надин Койл. Группа выпустила двадцать два сингла, пять студийных альбомов, два сборника лучших хитов и два альбома ремиксов. Все альбомы Girls Aloud также были сертифицированы как платиновые в Великобритании. Группа была пятикратно номинирована на BRIT Awards и в 2009 году одержала победу в номинации «Лучший сингл» за песню «The Promise».","cover":{"small":"http://avatars.yandex.net/get-music-content/b41fab5f.p.6875/300x300","big":"http://avatars.yandex.net/get-music-content/b41fab5f.p.6875/1000x1000"}},{"id":107361,"name":"Melanie C","genres":["pop"],"tracks":60,"albums":24,"link":"http://www.melaniec.net/","description":"британская певица, автор песен. Наиболее известна как участница самой популярной в истории развития музыкального бизнеса девичьей группы «Spice Girls», где выступала под псевдонимом «Sporty Spice». Она также известна под псевдонимами «Mel C» или «Melanie C».","cover":{"small":"http://avatars.yandex.net/get-music-content/cacf3e7c.a.35684-1/300x300","big":"http://avatars.yandex.net/get-music-content/cacf3e7c.a.35684-1/1000x1000"}},{"id":10205,"name":"Tokio Hotel","genres":["alternative"],"tracks":150,"albums":23,"link":"http://www.tokiohotel.com/","description":"немецкая синтипоп группа, образованная в 2001 году в Магдебурге. В составе: Билл Каулитц, Том Каулитц, Густав Шефер, Георг Листинг.","cover":{"small":"http://avatars.yandex.net/get-music-content/0684769b.p.10205/300x300","big":"http://avatars.yandex.net/get-music-content/0684769b.p.10205/1000x1000"}},{"id":89913,"name":"Hilary Duff","genres":["pop"],"tracks":22,"albums":10,"link":"http://hilaryduff.com/","description":"американская актриса, певица, предприниматель, модель и продюсер. Родилась и выросла в Хьюстоне, Техас. Появилась в нескольких местных театральных постановках и ТВ-рекламах в раннем детстве. Дафф стала кумиром подростков после того, как снялась в сериале канала Disney Channel «Лиззи Магуайер» в начале 2000-х и фильме «Лиззи Магуайер», в котором она появилась в одноимённой роли. Позже она снялась ещё в нескольких фильмах «Агент Коди Бэнкс», «Оптом дешевле», «История Золушки» и «Оптом дешевле 2», которые были самыми успешными в её карьере...","cover":{"small":"http://avatars.yandex.net/get-music-content/024331a0.p.89913/300x300","big":"http://avatars.yandex.net/get-music-content/024331a0.p.89913/1000x1000"}},{"id":677449,"name":"Carly Rae Jepsen","genres":["pop"],"tracks":68,"albums":19,"link":"http://www.carlyraemusic.com/","description":"канадская певица из Британской Колумбии. В 2007 году она участвовала в пятом сезоне Canadian Idol. Вскоре после участия на Canadian Idol она подписала контракт с рекорд-лейблами Fontana и MapleMusic и 30 сентября 2008 года выпустила свой дебютный альбом Tug of War. Три года спустя она выпустила новый сингл под названием «Call Me Maybe», за ним последовал новый альбом Curiosity, вышедший 14 февраля 2012 года. «Call Me Maybe» на сегодняшний день самый успешный сингл певицы, он достиг 1-го места в Billboard Hot 100 и вершины Canadian Hot 100. Джепсен подписала контракт с Interscope. 14 апреля 2012 песня «Call Me Maybe» возглавила UK Singles Chart.","cover":{"small":"http://avatars.yandex.net/get-music-content/7d17d6fd.p.677449/300x300","big":"http://avatars.yandex.net/get-music-content/7d17d6fd.p.677449/1000x1000"}},{"id":57574,"name":"Bonnie McKee","genres":["pop"],"tracks":27,"albums":14,"description":"американская певица, автор песен, актриса. В 2011 году названа журналом Rolling Stone «Лучшим Секретным Оружием». МакКи является соавтором восьми синглов номер один, которые были проданы в размере 25 млн копий по всему миру. Она работает с поп-звездой Кэти Перри и в соавторстве написала такие хиты как «California Gurls», «Teenage Dream», «Last Friday Night », «Part of Me», «Wide Awake», «Roar». Также Бонни является соавтором песни Тайо Круза «Dynamite», которая стала второй самой продаваемой песней британского артиста в цифровую эпоху...","cover":{"small":"http://avatars.yandex.net/get-music-content/48d84037.a.14352-1/300x300","big":"http://avatars.yandex.net/get-music-content/48d84037.a.14352-1/1000x1000"}},{"id":204423,"name":"Allison Iraheta","genres":["pop"],"tracks":21,"albums":4,"description":"американская певица, победительница музыкального конкурса «Quinceañera: Mama Quiero Ser Artista», финалистка American Idol сезона 2009 года. Выпустила в 2009 году свой первый альбом Just Like You. Живёт в Лос-Анджелесе.","cover":{"small":"http://avatars.yandex.net/get-music-content/47c3970c.a.74886-1/300x300","big":"http://avatars.yandex.net/get-music-content/47c3970c.a.74886-1/1000x1000"}},{"id":98403,"name":"Kelly Clarkson","genres":["pop","dance","country"],"tracks":242,"albums":92,"link":"http://www.kellyclarkson.com/","description":"американская певица и актриса. Кларксон обрела известность после участия в телешоу American Idol в 2002 году и представляла США в конкурсе «World Idol» в 2003-м. В США было продано более 10,5 миллионов копий её альбомов.","cover":{"small":"http://avatars.yandex.net/get-music-content/f47d4860.p.98403/300x300","big":"http://avatars.yandex.net/get-music-content/f47d4860.p.98403/1000x1000"}},{"id":4632,"name":"Ciara","genres":["pop","rnb","rap"],"tracks":156,"albums":84,"link":"http://onlyciara.com/","description":"американская певица, автор песен, продюсер, танцовщица, актриса, модель, режиссёр клипов. Сиара дебютировала летом 2004 с синглом «Goodies», попавшим наверх чарта Billboard Hot 100. Одноимённый альбом был выпущен в США 28 сентября 2004, его продажи составили более пяти млн в мире и получил множество наград и номинаций.","cover":{"small":"http://avatars.yandex.net/get-music-content/fc971dc6.p.4632/300x300","big":"http://avatars.yandex.net/get-music-content/fc971dc6.p.4632/1000x1000"}},{"id":1636897,"name":"Мот","genres":["rusrap"],"tracks":60,"albums":27,"link":"http://www.black-star.ru/","description":"рэп-исполнитель, бывший участник музыкального проекта «Soul Kitchen», с 1 марта 2013 года артист лейбла «Black Star Inc.»","cover":{"small":"http://avatars.yandex.net/get-music-content/fab7f4cb.p.1636897/300x300","big":"http://avatars.yandex.net/get-music-content/fab7f4cb.p.1636897/1000x1000"}},{"id":426302,"name":"ST","genres":["rusrap"],"tracks":137,"albums":24,"link":"https://twitter.com/st_stoizsta","description":"российский рэп-исполнитель, бывший участник объединения Phlatline, финалист первого сезона шоу «Битва за респект». С 2011 года по декабрь 2013 года вместе с Dino MC 47 вёл программу RapInfo.","cover":{"small":"http://avatars.yandex.net/get-music-content/dac99df7.p.426302/300x300","big":"http://avatars.yandex.net/get-music-content/dac99df7.p.426302/1000x1000"}},{"id":168857,"name":"Тимати","genres":["rusrap"],"tracks":137,"albums":53,"link":"http://timatimusic.com/","description":"российский исполнитель, музыкальный продюсер, актёр и предприниматель, выпускник «Фабрики звёзд 4». Заслуженный артист Чеченской Республики. Сотрудничал с такими американскими исполнителями, как Snoop Dogg, Баста Раймс, Дидди и его группой Diddy - Dirty Money, Xzibit, Марио Уайнэнс, Fat Joe, Ив, Крейг Дэвид, Тимбалэнд и Flo Rida.","cover":{"small":"http://avatars.yandex.net/get-music-content/2351cc4a.p.168857/300x300","big":"http://avatars.yandex.net/get-music-content/2351cc4a.p.168857/1000x1000"}},{"id":762888,"name":"Kristina Si","genres":["urban"],"tracks":16,"albums":13,"link":"https://www.facebook.com/KristinaSiofficial","description":"российская исполнительница в стиле R’n’B, Soul. C 2013 года - артист лейбла Black Star.","cover":{"small":"http://avatars.yandex.net/get-music-content/8fcb51d8.p.762888/300x300","big":"http://avatars.yandex.net/get-music-content/8fcb51d8.p.762888/1000x1000"}},{"id":975699,"name":"Макс Корж","genres":["rusrap"],"tracks":56,"albums":11,"link":"http://resprod.ru/artists/maks-korzh","description":"белорусский певец и автор песен.","cover":{"small":"http://avatars.yandex.net/get-music-content/34c6be29.p.975699/300x300","big":"http://avatars.yandex.net/get-music-content/34c6be29.p.975699/1000x1000"}},{"id":41191,"name":"БАСТА","genres":["rusrap"],"tracks":199,"albums":37,"link":"http://gazgolder.com/basta/","description":"российский рэп-исполнитель, композитор, телерадиоведущий, актёр, сценарист, режиссёр и продюсер. Также известен под псевдонимами Ноггано и N1NT3ND0. Был ведущим на радио Next FM, также режиссёр нескольких фильмов.","cover":{"small":"http://avatars.yandex.net/get-music-content/9dd237d5.p.41191/300x300","big":"http://avatars.yandex.net/get-music-content/9dd237d5.p.41191/1000x1000"}},{"id":646127,"name":"Кравц","genres":["rusrap"],"tracks":89,"albums":10,"link":"http://kravz.ru/","description":"рэпер из Москвы.","cover":{"small":"http://avatars.yandex.net/get-music-content/ff5ace45.p.646127/300x300","big":"http://avatars.yandex.net/get-music-content/ff5ace45.p.646127/1000x1000"}},{"id":168070,"name":"Карандаш","genres":["rusrap"],"tracks":102,"albums":14,"link":"http://karandash-production.ru/","description":"российский рэп-исполнитель, музыкальный продюсер, аранжировщик, участник рэп-группы «Район моей мечты». Помимо семи сольных альбомов на счету Дениса также серия авторских подкастов, а также работа над музыкальным оформлением фильма «Пыль». Художник по образованию. Работал руководителем отдела компьютерной графики на телеканале РТР.","cover":{"small":"http://avatars.yandex.net/get-music-content/ff6e1ffe.a.3116503-1/300x300","big":"http://avatars.yandex.net/get-music-content/ff6e1ffe.a.3116503-1/1000x1000"}},{"id":41187,"name":"Смоки Мо","genres":["rusrap"],"tracks":141,"albums":22,"link":"http://smokymo.ru/","description":"российский рэпер, битмейкер и саунд-продюсер родом из Санкт-Петербурга. На данный момент имеет на счету 5 номерных студийных альбомов, совместный альбом с Бастой.","cover":{"small":"http://avatars.yandex.net/get-music-content/445de077.p.41187/300x300","big":"http://avatars.yandex.net/get-music-content/445de077.p.41187/1000x1000"}},{"id":188963,"name":"Аквариум","genres":["rusrock"],"tracks":553,"albums":43,"link":"http://www.aquarium.ru/","description":"одна из старейших российских рок-групп. Состав участников за 40 лет существования группы неоднократно менялся, и только певец и идейный вдохновитель группы Борис Гребенщиков является участником коллектива с самого момента его основания в 1972 году. Участниками группы в разное время были: Анатолий Гуницкий, Михайл Файнштейн, Дюша Романов, Всеволод Гаккель, Майк Науменко, Сергей Курёхин, Олег Сакмаров, Борис Рубекин, Эдмунд Шклярский и многие другие.","cover":{"small":"http://avatars.yandex.net/get-music-content/bbb2f47e.p.188963/300x300","big":"http://avatars.yandex.net/get-music-content/bbb2f47e.p.188963/1000x1000"}},{"id":41098,"name":"Мумий Тролль","genres":["rusrock"],"tracks":295,"albums":28,"link":"http://www.mumiytroll.com/","description":"советская и российская рок-группа из Владивостока. Основана в 1983 году во Владивостоке её бессменным лидером и идеологом Ильёй Лагутенко. Группа представляла Россию на конкурсе песни Евровидение 2001, где заняла 12-е место.","cover":{"small":"http://avatars.yandex.net/get-music-content/27913ecc.p.41098/300x300","big":"http://avatars.yandex.net/get-music-content/27913ecc.p.41098/1000x1000"}},{"id":218099,"name":"Земфира","genres":["rusrock"],"tracks":100,"albums":11,"link":"http://zemfira.ru/","description":"российская рок-певица, музыкант, композитор, продюсер и автор песен. Земфира стала олицетворением нового движения в русском роке, которое журналисты окрестили «женский рок». В начале 1998 года Земфира переезжает из родной Уфы в Москву, где начинает работу со своей группой «Zемфира» над первым студийным альбомом, выпущенным спустя год.","cover":{"small":"http://avatars.yandex.net/get-music-content/b0703d5c.p.218099/300x300","big":"http://avatars.yandex.net/get-music-content/b0703d5c.p.218099/1000x1000"}},{"id":748965,"name":"Grisha Urgant","genres":["pop"],"tracks":13,"albums":4,"link":"http://grishaurgant.ru/","description":"Российский актёр, телеведущий, музыкант, шоумен, продюсер.","cover":{"small":"http://avatars.yandex.net/get-music-content/24021b8c.p.748965/300x300","big":"http://avatars.yandex.net/get-music-content/24021b8c.p.748965/1000x1000"}},{"id":161243,"name":"Сплин","genres":["rusrock"],"tracks":178,"albums":17,"link":"http://splean.ru/","description":"российская рок-группа из Санкт-Петербурга. Бессменный лидер - Александр Васильев. Датой рождения группы считается 27 мая 1994 года. Название группы возникло под влиянием строк стихотворения российского поэта Серебряного века Саши Чёрного, на основе которого была создана песня «Под сурдинку» из первого альбома группы : : Как молью изъеден я сплином… : Посыпьте меня нафталином, : Сложите в сундук и поставьте меня на чердак, : Пока не наступит весна. : Наиболее известные песни: \"Орбит без сахара\", \"Выхода нет\", \"Линия жизни\", \"Моё сердце\", \"Романс\", \"Мы сидели и курили\", \"Скажи\".","cover":{"small":"http://avatars.yandex.net/get-music-content/4b3e1806.p.161243/300x300","big":"http://avatars.yandex.net/get-music-content/4b3e1806.p.161243/1000x1000"}},{"id":591525,"name":"Zorge","genres":["local-indie"],"tracks":25,"albums":2,"link":"http://zorgemusic.com","description":"российская рок-группа, созданная в сентябре 2010 года бывшим участником группы «Tequilajazzz» Евгением Фёдоровым.","cover":{"small":"http://avatars.yandex.net/get-music-content/e4f22e9a.p.591525/300x300","big":"http://avatars.yandex.net/get-music-content/e4f22e9a.p.591525/1000x1000"}},{"id":41114,"name":"Би-2","genres":["rusrock"],"tracks":326,"albums":27,"link":"http://bdva.ru/","description":"российская рок-группа. Основателями группы являются Шура Би-2 и Лёва Би-2. Группа была основана в городе Бобруйске, Белоруссия, в 1988 году, но активную деятельность возобновила только после переезда в 1999 году в Россию.","cover":{"small":"http://avatars.yandex.net/get-music-content/030c169a.p.41114/300x300","big":"http://avatars.yandex.net/get-music-content/030c169a.p.41114/1000x1000"}},{"id":680,"name":"Sting","genres":["pop","classical","folk"],"tracks":434,"albums":142,"link":"http://sting.com/","description":"британский музыкант, певец и автор песен, мульти-инструменталист, активист, актёр и филантроп. Лидер группы The Police в 1976-1984 годах. С 1984 года выступает сольно.","cover":{"small":"http://avatars.yandex.net/get-music-content/ed6301c1.p.680/300x300","big":"http://avatars.yandex.net/get-music-content/ed6301c1.p.680/1000x1000"}},{"id":41166,"name":"Ляпис Трубецкой","genres":["rock"],"tracks":343,"albums":36,"link":"http://lyapis.com/","description":"белорусская панк-рок-группа, названная в честь комического героя романа Ильи Ильфа и Евгения Петрова «Двенадцать стульев», поэта-халтурщика Никифора Ляписа, который печатался под псевдонимом Трубецкой.","cover":{"small":"http://avatars.yandex.net/get-music-content/599ae314.p.41166/300x300","big":"http://avatars.yandex.net/get-music-content/599ae314.p.41166/1000x1000"}},{"id":165162,"name":"Ноггано","genres":["rusrap"],"tracks":40,"albums":8,"link":"http://gazgolder.com/noggano/","description":"российский рэп-исполнитель, композитор, телерадиоведущий, актёр, сценарист, режиссёр и продюсер. Также известен под псевдонимами Ноггано и N1NT3ND0. Был ведущим на радио Next FM, также режиссёр нескольких фильмов.","cover":{"small":"http://avatars.yandex.net/get-music-content/bf1392ee.p.165162/300x300","big":"http://avatars.yandex.net/get-music-content/bf1392ee.p.165162/1000x1000"}},{"id":158454,"name":"ГУФ","genres":["rusrap"],"tracks":116,"albums":18,"link":"http://gufzm.ru/","description":"российский рэп-исполнитель, сооснователь и участник группы Centr. Основатель лейбла ZM Nation, а также является одним из основателей «ЦАО Records». Обладатель премий RMA, Rock Alternative Music Prize и других.","cover":{"small":"http://avatars.yandex.net/get-music-content/9d38c790.p.158454/300x300","big":"http://avatars.yandex.net/get-music-content/9d38c790.p.158454/1000x1000"}},{"id":41126,"name":"Каста","genres":["rusrap"],"tracks":329,"albums":22,"link":"http://kasta.ru/","description":"российская рэп-группа из Ростова-на-Дону, лауреаты премии Rap Music’99. Владельцы лейбла Respect Production. В состав группы входят Влади, Шым, Хамиль, Змей.","cover":{"small":"http://avatars.yandex.net/get-music-content/96c06a61.p.41126/300x300","big":"http://avatars.yandex.net/get-music-content/96c06a61.p.41126/1000x1000"}},{"id":247326,"name":"Slim","genres":["rusrap"],"tracks":111,"albums":17,"link":"http://centrgroup.ru/","description":"российский рэп-исполнитель, битмейкер и саунд-продюсер, участник группы Centr и бывший участник группы «Дымовая завеса».","cover":{"small":"http://avatars.yandex.net/get-music-content/59f4f649.p.247326/300x300","big":"http://avatars.yandex.net/get-music-content/59f4f649.p.247326/1000x1000"}},{"id":233940,"name":"Птаха","genres":["rusrap"],"tracks":49,"albums":9,"link":"http://centrgroup.ru","description":"российский рэп-исполнитель армяно-азербайджанского происхождения, киноактёр, участник групп: «Три Кита», Centr, бывший участник группы «Отверженные». Владелец и один из основателей звукозаписывающего музыкального лейбла и букинг-агентства «ЦАО Records».","cover":{"small":"http://avatars.yandex.net/get-music-content/5c8fd7de.p.233940/300x300","big":"http://avatars.yandex.net/get-music-content/5c8fd7de.p.233940/1000x1000"}},{"id":591498,"name":"N1NT3ND0","genres":["rusrap"],"tracks":17,"albums":2,"link":"http://gazgolder.com/nintendo/","description":"российский рэп-исполнитель, композитор, телерадиоведущий, актёр, сценарист, режиссёр и продюсер. Также известен под псевдонимами Ноггано и N1NT3ND0. Был ведущим на радио Next FM, также режиссёр нескольких фильмов.","cover":{"small":"http://avatars.yandex.net/get-music-content/a92a0d43.p.591498/300x300","big":"http://avatars.yandex.net/get-music-content/a92a0d43.p.591498/1000x1000"}},{"id":12357,"name":"Keane","genres":["rock","alternative","pop"],"tracks":140,"albums":34,"link":"http://www.keanemusic.com/","description":"британская рок-группа. Была основана в 1995 году под названием «Lotus Eaters» в Баттле. В 1997 обрела нынешнее название. Широкую известность группа приобрела только в 2003 году, а первый альбом вышел в 2004 году. Отличительной особенностью звучания является нетипичная для рок-музыки ситуация, когда главным инструментом выступает не гитара, а клавишные.","cover":{"small":"http://avatars.yandex.net/get-music-content/383e8ba8.p.12357/300x300","big":"http://avatars.yandex.net/get-music-content/383e8ba8.p.12357/1000x1000"}},{"id":5529,"name":"The Killers","genres":["rock","alternative"],"tracks":99,"albums":30,"link":"http://www.thekillersmusic.com/","description":"американская инди-рок-группа, образованная в 2002 году Брэндоном Флауэрсом и Дэйвом Кенингом. Название было взято из видеоклипа New Order «Crystal», где под таким именем выступает фиктивная группа. В музыке The Killers наиболее четко прослеживается влияние групп New Order, Duran Duran, U2 и Oasis.","cover":{"small":"http://avatars.yandex.net/get-music-content/92f1da97.p.5529/300x300","big":"http://avatars.yandex.net/get-music-content/92f1da97.p.5529/1000x1000"}},{"id":5952,"name":"OneRepublic","genres":["rock","pop"],"tracks":86,"albums":34,"link":"http://onerepublic.com/","description":"американская поп-рок группа из Колорадо-Спрингс, известность которой принес сингл «Apologize», ставший в США трижды платиновым и достигший третьего места в хит-параде Великобритании 11 ноября 2007 года. Ремикс на песню был включен в альбом Timbaland «Shock Value» и в дебютный альбом OneRepublic «Dreaming Out Loud».","cover":{"small":"http://avatars.yandex.net/get-music-content/5a53c016.p.5952/300x300","big":"http://avatars.yandex.net/get-music-content/5a53c016.p.5952/1000x1000"}},{"id":675068,"name":"Imagine Dragons","genres":["alternative","rock","indie"],"tracks":62,"albums":20,"link":"http://www.imaginedragonsmusic.com/","description":"американская инди-рок-группа, образованная в Лас-Вегасе, штат Невада в 2008 году. Стали известны после выпуска их дебютного студийного альбома Night Visions в сентябре 2012 года. Американский журнал Billboard назвал их самыми яркими новыми звёздами 2013 года, а журнал Rolling Stone назвал их сингл «Radioactive» самым большим рок-хитом года.","cover":{"small":"http://avatars.yandex.net/get-music-content/e63c2109.p.675068/300x300","big":"http://avatars.yandex.net/get-music-content/e63c2109.p.675068/1000x1000"}},{"id":1109,"name":"Brian Eno","genres":["relax","pop","classical"],"tracks":222,"albums":37,"link":"https://www.facebook.com/brianenomusic","description":"британский музыкант-электронщик, музыкальный теоретик и продюсер звукозаписи. Возможно, наиболее известен как отец эмбиентной музыки. Свою карьеру Брайан Ино начал в качестве клавишника и специалиста по звуковым эффектам в группе Roxy Music в начале 1970-х.","cover":{"small":"http://avatars.yandex.net/get-music-content/3e3c6c18.a.43675-1/300x300","big":"http://avatars.yandex.net/get-music-content/3e3c6c18.a.43675-1/1000x1000"}},{"id":36825,"name":"Radiohead","genres":["alternative"],"tracks":201,"albums":36,"link":"http://radiohead.com/","description":"британская рок-группа из Оксфордшира. Группа была основана в 1985 году, и её состав с того времени не менялся. Стиль Radiohead традиционно определяют как альтернативный рок, хотя на разных этапах звучание варьировалось от брит-попа до арт-рока и электронной музыки.","cover":{"small":"http://avatars.yandex.net/get-music-content/b5b59131.a.586558-1/300x300","big":"http://avatars.yandex.net/get-music-content/b5b59131.a.586558-1/1000x1000"}},{"id":5525,"name":"Brandon Flowers","genres":["dance","rock"],"tracks":40,"albums":19,"link":"http://www.brandonflowersmusic.com/","description":"вокалист, клавишник и автор большинства текстов группы The Killers. Брэндон Флауэрс родился в городке Хендерсон, штат Невада. Он вырос в многодетной семье со средним достатком. Из 6 детей Брэндон был самым младшим.","cover":{"small":"http://avatars.yandex.net/get-music-content/d08df8d3.p.5525/300x300","big":"http://avatars.yandex.net/get-music-content/d08df8d3.p.5525/1000x1000"}},{"id":8403,"name":"Snow Patrol","genres":["rock","alternative","pop"],"tracks":152,"albums":33,"link":"http://snowpatrol.com/","description":"альтернативная рок-группа с участниками из Северной Ирландии и Шотландии. Сформирована в Данди, в настоящее время участники группы живут в Глазго, Белфасте и Лондоне, лауреаты музыкальной премии Ivor Novello Awards.","cover":{"small":"http://avatars.yandex.net/get-music-content/13cc09c2.p.8403/300x300","big":"http://avatars.yandex.net/get-music-content/13cc09c2.p.8403/1000x1000"}},{"id":12048,"name":"Muse","genres":["alternative","rock","folk"],"tracks":223,"albums":45,"link":"http://muse.mu/","description":"британская рок-группа, образованная в 1994 году в городе Тинмут. Группа состоит из трёх участников: Мэттью Беллами, Криса Уолстенхолма и Доминика Ховарда.","cover":{"small":"http://avatars.yandex.net/get-music-content/792f9d95.p.12048/300x300","big":"http://avatars.yandex.net/get-music-content/792f9d95.p.12048/1000x1000"}},{"id":593,"name":"Norah Jones","genres":["jazz","pop","alternative"],"tracks":219,"albums":90,"link":"http://www2.norahjones.com/","description":"американская джазовая певица и пианистка, автор и исполнитель собственных песен, актриса. Дочь Рави Шанкара. Её единокровная сестра - Анушка Шанкар.","cover":{"small":"http://avatars.yandex.net/get-music-content/0c57cbbe.a.41961-1/300x300","big":"http://avatars.yandex.net/get-music-content/0c57cbbe.a.41961-1/1000x1000"}},{"id":145795,"name":"Koop","genres":["jazz"],"tracks":48,"albums":17,"description":"шведский электро-джазовый дуэт Оскара Симонссона и Магнуса Зингмарка. Несмотря на «оркестровое» звучание, музыка Koop полностью электронная и составлена из тысяч коротких семплов.","cover":{"small":"http://avatars.yandex.net/get-music-content/5b218c00.a.245427-1/300x300","big":"http://avatars.yandex.net/get-music-content/5b218c00.a.245427-1/1000x1000"}},{"id":8616,"name":"Nina Simone","genres":["jazz","blues","pop"],"tracks":9679,"albums":1199,"link":"http://www.ninasimone.com/","description":"американская певица, пианистка, композитор, аранжировщица. Придерживалась джазовой традиции, однако использовала самый разный исполняемый материал, сочетала джаз, соул, поп-музыку, госпел и блюз, записывала песни с большим оркестром.","cover":{"small":"http://avatars.yandex.net/get-music-content/bb5ae2ee.p.8616/300x300","big":"http://avatars.yandex.net/get-music-content/bb5ae2ee.p.8616/1000x1000"}},{"id":5584,"name":"Anna Ternheim","genres":["pop","jazz","soundtrack"],"tracks":105,"albums":22,"description":"шведская певица, композитор и автор песен, исполняет свои песни на английском языке.","cover":{"small":"http://avatars.yandex.net/get-music-content/a980e5ca.a.2503005-1/300x300","big":"http://avatars.yandex.net/get-music-content/a980e5ca.a.2503005-1/1000x1000"}},{"id":1130,"name":"Richard Rodgers","genres":["classical","soundtrack","pop"],"tracks":785,"albums":217,"description":"американский композитор, написавший музыку более чем к 900 песням и 40 бродвейским мюзиклам. Он также сочинял музыку для фильмов и телевидения. Наиболее известен в соавторстве с поэтами-песенниками Лоренцем Хартом и Оскаром Хаммерстайном II. Его музыка оказала серьёзное влияние на музыкальную культуру США.","cover":{"small":"http://avatars.yandex.net/get-music-content/32daf508.a.2949393-1/300x300","big":"http://avatars.yandex.net/get-music-content/32daf508.a.2949393-1/1000x1000"}},{"id":1417,"name":"Antonio Carlos Jobim","genres":["jazz","latinfolk","folk"],"tracks":2629,"albums":696,"description":"бразильский композитор, певец, пианист и гитарист, сочетавший в своём творчестве элементы джаза и традиционной бразильской музыки; в США известен как Том Жобим. Один из основоположников музыкального стиля босса-нова.","cover":{"small":"http://avatars.yandex.net/get-music-content/a0af9fae.a.2492832-1/300x300","big":"http://avatars.yandex.net/get-music-content/a0af9fae.a.2492832-1/1000x1000"}},{"id":471,"name":"Ira Gershwin","genres":["soundtrack"],"tracks":251,"albums":89,"description":"американский поэт-песенник, брат известного композитора Джорджа Гершвина. В сотрудничестве с братом создал множество популярных бродвейских постановок, наиболее знаменитой из которых является опера «Порги и Бесс». После смерти Джорджа Гершвина сотрудничал с композиторами Гарольдом Арленом, Куртом Вайлем, Джеромом Керном и др.","cover":{"small":"http://avatars.yandex.net/get-music-content/26a86f2c.a.21056-1/300x300","big":"http://avatars.yandex.net/get-music-content/26a86f2c.a.21056-1/1000x1000"}},{"id":234192,"name":"Полина Гагарина","genres":["pop"],"tracks":46,"albums":26,"link":"http://gagarina.com/","description":"российская эстрадная певица, композитор, актриса, модель, участница музыкального конкурса «Евровидение-2015», занявшая 2-е место.","cover":{"small":"http://avatars.yandex.net/get-music-content/8931175b.p.234192/300x300","big":"http://avatars.yandex.net/get-music-content/8931175b.p.234192/1000x1000"}},{"id":155917,"name":"МакSим","genres":["pop","dance"],"tracks":87,"albums":19,"link":"http://www.music-maksim.ru","description":"российская певица, автор, исполнитель и музыкальный продюсер, Заслуженная артистка Карачаево-Черкесской Республики. Успех пришёл к певице с выпуском 28 марта 2006 года альбома «Трудный возраст», который разошёлся тиражом более 1,5 миллиона копий, и в 2007 году МакSим стала самой коммерчески успешной певицей в России.","cover":{"small":"http://avatars.yandex.net/get-music-content/1b09fbb0.p.155917/300x300","big":"http://avatars.yandex.net/get-music-content/1b09fbb0.p.155917/1000x1000"}},{"id":41222,"name":"ВИА Гра","genres":["pop"],"tracks":69,"albums":19,"link":"http://www.viagraofficial.ru/","description":"украинская женская поп-группа, образованная в 2000 году в Киеве. Коллектив считается одним из самых успешных русскоязычных музыкальных проектов 2000-х годов. Группой было записано 5 студийных альбомов: 3 из них получили золотой статус в России, 1 англоязычный альбом получил платиновый статус в Таиланде и золотой в некоторых других Азиатских странах; выпущено более 30 радиосинглов и видеоклипов. «ВИА Гра» - лауреат множества музыкальных премий, таких как «Золотой диск», «Золотой граммофон», «Премия Муз-ТВ» и других. Характерной особенностью коллектива является частая смена участниц.","cover":{"small":"http://avatars.yandex.net/get-music-content/8c745839.p.41222/300x300","big":"http://avatars.yandex.net/get-music-content/8c745839.p.41222/1000x1000"}},{"id":167085,"name":"Вера Брежнева","genres":["pop"],"tracks":39,"albums":16,"link":"http://brezhneva.com/","description":"украинская певица, актриса, телеведущая, бывшая участница поп-группы «ВИА Гра». Посол доброй воли ООН по вопросам ВИЧ/СПИДа.","cover":{"small":"http://avatars.yandex.net/get-music-content/943a4d48.p.167085/300x300","big":"http://avatars.yandex.net/get-music-content/943a4d48.p.167085/1000x1000"}},{"id":41079,"name":"Юлия Савичева","genres":["pop","dance"],"tracks":80,"albums":21,"link":"http://savicheva.ru/","description":"российская эстрадная певица, выпускница телепроекта «Фабрика Звёзд 2», участница конкурса «Евровидение 2004», актриса.","cover":{"small":"http://avatars.yandex.net/get-music-content/c24ed36e.p.41079/300x300","big":"http://avatars.yandex.net/get-music-content/c24ed36e.p.41079/1000x1000"}},{"id":360934,"name":"Thor","genres":["metal","pop","electronics"],"tracks":222,"albums":48,"description":"канадская хэви-метал группа, основана в 1977 году Джоном Миклом Тором, в разные года существовала под разными названиями.","cover":{"small":"http://avatars.yandex.net/get-music-content/0037ec95.a.1921797-1/300x300","big":"http://avatars.yandex.net/get-music-content/0037ec95.a.1921797-1/1000x1000"}},{"id":6043,"name":"Sia","genres":["pop"],"tracks":168,"albums":68,"link":"http://siamusic.net/","description":"австралийская певица и автор песен в стиле эмоциональный джаз и поп, а также актриса. Первый её альбом вышел ещё в 1997 году, но только Some People Have Real Problems 2008 года получил успех. В 2010 году Сия получила шесть номинаций на ARIA Music Awards и победила в номинациях «лучший независимый альбом», «лучший поп-альбом» и «лучшее видео». В 2014 году песня «Chandelier» получила четыре номинации на «Грэмми» в категориях «Запись года», «Песня года», «Лучшее сольное поп-исполнение», «Лучшее музыкальное видео».","cover":{"small":"http://avatars.yandex.net/get-music-content/4969d676.p.6043/300x300","big":"http://avatars.yandex.net/get-music-content/4969d676.p.6043/1000x1000"}},{"id":452,"name":"David Guetta","genres":["dance","pop","rnb"],"tracks":412,"albums":114,"link":"http://www.davidguetta.com/","description":"французский диджей и продюсер. Гетта является одним из самых популярных музыкальных продюсеров, сотрудничает с такими исполнителями и группами как Jessie J, The Black Eyed Peas, Рианна, Эйкон, Крис Уиллис, Келли Роуленд, Лил Уэйн, Келис, Мадонна, Кид Кади, Эстель, Pitbull, Ферги, K’naan, will.i.am, LMFAO, Тайо Круз, Flo Rida, apl.de.ap, Snoop Dogg, Sia, Martin Garrix, Lady Gaga и Ники Минаж.","cover":{"small":"http://avatars.yandex.net/get-music-content/3da7dc79.p.452/300x300","big":"http://avatars.yandex.net/get-music-content/3da7dc79.p.452/1000x1000"}},{"id":1053,"name":"Eminem","genres":["rap","electronics"],"tracks":461,"albums":146,"link":"http://www.eminem.com/","description":"американский рэпер, музыкальный продюсер, композитор и актёр. Помимо сольной карьеры, Маршалл также состоит в группе D12 и хип-хоп-дуэте Bad Meets Evil. Эминем является одним из самых продаваемых музыкальных артистов в мире, а также самым продаваемым артистом 2000-х. Он назван одним из самых великих музыкантов всех времён многими журналами, включая Rolling Stone, который разместил Эминема под 83-м номером в списке 100 самых великих артистов. Этот же журнал провозгласил его Королём хип-хопа. Если считать и студийные работы его групп, то у Эминема имеется 10 альбомов, которые достигали первой строчки в Billboard 200. Как сольный артист, Эминем продал более 100 миллионов альбомов по всему миру.","cover":{"small":"http://avatars.yandex.net/get-music-content/0ce84788.p.1053/300x300","big":"http://avatars.yandex.net/get-music-content/0ce84788.p.1053/1000x1000"}},{"id":523722,"name":"Sam Smith","genres":["pop","electronics","soundtrack"],"tracks":80,"albums":34,"link":"http://samsmithworld.com/","description":"британский автор-исполнитель. В декабре 2013 года Смит был номинирован на премии 2014 BRIT Critics' Choice Award и на BBC's Sound of 2014, обе из которых он выиграл.","cover":{"small":"http://avatars.yandex.net/get-music-content/18e34e43.p.523722/300x300","big":"http://avatars.yandex.net/get-music-content/18e34e43.p.523722/1000x1000"}},{"id":4847,"name":"Ryan Tedder","genres":["pop","dance"],"tracks":26,"albums":22,"description":"американский певец, автор песен и композитор, вокалист поп-рок группы OneRepublic. Также известен как автор песен и продюсер различных исполнителей, таких как Адель, Бейонсе, Гевин ДеГро, Джеймс Блант, Дженнифер Лопес, Джордин Спаркс, Деми Ловато, Келли Кларксон, Кэрри Андервуд, Леона Льюис, Пол Окенфолд, Себастьян Ингроссо, Элли Голдинг, Birdy, B.o.B, Far East Movement, Gym Class Heroes, K'naan, Maroon 5, One Direction, группы Тату и многих других. В 2008 две песни его авторства оказались самыми часто играемыми в радиоэфире за всю предшествовавшую историю . Райан был номинирован на 8 Грэмми.","cover":{"small":"http://avatars.yandex.net/get-music-content/676d6f63.a.417091-1/300x300","big":"http://avatars.yandex.net/get-music-content/676d6f63.a.417091-1/1000x1000"}},{"id":643850,"name":"Lana Del Rey","genres":["pop"],"tracks":90,"albums":23,"link":"http://www.lanadelrey.com/","description":"американская певица, автор-исполнитель, композитор и модель. Начала свою карьеру в Нью-Йорке в 2005 году, но известность пришла к ней только в 2011 году, когда был выпущен видеоклип на сингл «Video Games», который уже через месяц стал интернет-сенсацией.","cover":{"small":"http://avatars.yandex.net/get-music-content/b42f04a7.p.643850/300x300","big":"http://avatars.yandex.net/get-music-content/b42f04a7.p.643850/1000x1000"}},{"id":3477,"name":"Rihanna","genres":["pop","rnb","dance"],"tracks":413,"albums":127,"link":"http://www.rihannanow.com","description":"американская R&B и поп-певица и актриса барбадоского происхождения. В 16 лет переехала в США, чтобы начать карьеру певицы. Позже она подписала контракт с Def Jam Recordings. В 2005 году Рианна выпустила свою дебютную работу Music of the Sun, которая вошла в десятку лучших альбомов Billboard 200, а сингл «Pon de Replay» стал успешным в чарте Billboard Hot 100.","cover":{"small":"http://avatars.yandex.net/get-music-content/cea050c4.p.3477/300x300","big":"http://avatars.yandex.net/get-music-content/cea050c4.p.3477/1000x1000"}},{"id":2765181,"name":"5 Seconds Of Summer","genres":["pop","rock"],"tracks":69,"albums":10,"link":"http://www.5sos.com/","description":"австралийская музыкальная группа, играющая в жанрах поп-рок, поп-панк. Коллектив был основан в 2011 году в Сиднее, музыкантами: Люком Хеммингсом, Майклом Клиффордом, Калумом Худом и Эштоном Ирвином.","cover":{"small":"http://avatars.yandex.net/get-music-content/f485e423.p.2765181/300x300","big":"http://avatars.yandex.net/get-music-content/f485e423.p.2765181/1000x1000"}},{"id":2663702,"name":"The Vamps","genres":["pop"],"tracks":71,"albums":10,"description":"британская инди-поп группа, в состав которой входят Брэд Симпсон, Джеймс МакВей, Коннор Болл и Тристан Эванс. Известность к ним пришла в конце 2012 года, когда они стали выкладывать свои каверы на YouTube, что привело к сравнению с One Direction и получению клеймо бой-бэнда. В ноябре 2012 подписали контракт с Mercury Records. В начале 2013 года выступали на разогреве у McFly в их туре «Memory Lane Tour», а также выступали на различных британских фестивалях на разогреве у The Wanted, JLS, Little Mix и Lawson.","cover":{"small":"http://avatars.yandex.net/get-music-content/c5d34f07.p.2663702/300x300","big":"http://avatars.yandex.net/get-music-content/c5d34f07.p.2663702/1000x1000"}},{"id":36229,"name":"Florence + The Machine","genres":["alternative"],"tracks":95,"albums":20,"link":"http://florenceandthemachine.net/","description":"британская группа, образованная в Лондоне, Англия, в 2007 году и исполняющая инди-поп с элементами блюза, музыки соул и готического рока. Возглавляющая коллектив певица Флоренс Уэлч фактически является единственной постоянной его участницей; нередко само название группы рассматривается как её сценический псевдоним.","cover":{"small":"http://avatars.yandex.net/get-music-content/c8355f39.p.36229/300x300","big":"http://avatars.yandex.net/get-music-content/c8355f39.p.36229/1000x1000"}},{"id":6181,"name":"Robyn","genres":["pop","electronics","rap"],"tracks":137,"albums":45,"link":"http://robyn.com/","description":"шведская артистка, певица и автор песен. Робин стала популярна в конце девяностых благодаря своим танцевальным хитам «Show Me Love» и «Do You Know » с её дебютного альбома Robyn Is Here. Она - соавтор «Du gör mig hel igen», песни для Melodifestivalen 1997 года - отборочного конкурса в Швеции для представления страны на международном конкурсе «Евровидение». Популярность её сингла «With Every Heartbeat», занявшего первое место в чартах, и последующий выпуск альбома Robyn, принесли ей массовый успех во всём мире. В январе 2009 года Робин получила шведскую награду Grammis за лучшее живое выступление в 2008 году.","cover":{"small":"http://avatars.yandex.net/get-music-content/876aee62.p.6181/300x300","big":"http://avatars.yandex.net/get-music-content/876aee62.p.6181/1000x1000"}},{"id":140285,"name":"Marina And The Diamonds","genres":["pop","rock","alternative"],"tracks":79,"albums":18,"link":"http://www.marinaandthediamonds.com/","description":"валлийская певица и композитор греческого происхождения.","cover":{"small":"http://avatars.yandex.net/get-music-content/7dc31d28.p.140285/300x300","big":"http://avatars.yandex.net/get-music-content/7dc31d28.p.140285/1000x1000"}},{"id":63101,"name":"Lykke Li","genres":["pop"],"tracks":77,"albums":32,"link":"http://www.lykkeli.com/","description":"шведская певица. Она выпустила три студийных альбома: Youth Novels, Wounded Rhymes и I Never Learn.","cover":{"small":"http://avatars.yandex.net/get-music-content/c8c90c0e.p.63101/300x300","big":"http://avatars.yandex.net/get-music-content/c8c90c0e.p.63101/1000x1000"}},{"id":795374,"name":"Seinabo Sey","genres":["pop"],"tracks":47,"albums":15,"description":"шведская певица и автор песен.","cover":{"small":"http://avatars.yandex.net/get-music-content/a4fde099.a.3029941-1/300x300","big":"http://avatars.yandex.net/get-music-content/a4fde099.a.3029941-1/1000x1000"}},{"id":128594,"name":"Benny Blanco","genres":["rap"],"tracks":22,"albums":25,"description":"американский рэпер, музыкант, автор песен и музыкальный продюсер. Он написал и спродюсировал песни для таких артистов, как Кэти Перри, Maroon 5, Бритни Спирс, Тайо Круз, Кеша, Gym Class Heroes, Wiz Khalifa, Trey Songz.","cover":{"small":"http://avatars.yandex.net/get-music-content/776e8b74.a.2836040-2/300x300","big":"http://avatars.yandex.net/get-music-content/776e8b74.a.2836040-2/1000x1000"}},{"id":638312,"name":"Ariana Grande","genres":["pop","electronics"],"tracks":67,"albums":36,"link":"http://www.arianagrande.com/","description":"американская актриса и певица. Она начала карьеру с бродвейского мюзикла «13», ещё до того, как получила одну из ролей в телесериале «Виктория-победительница» в 2009 году.","cover":{"small":"http://avatars.yandex.net/get-music-content/b1e6b0a4.p.638312/300x300","big":"http://avatars.yandex.net/get-music-content/b1e6b0a4.p.638312/1000x1000"}},{"id":167214,"name":"Слава","genres":["pop"],"tracks":80,"albums":27,"link":"http://www.slavamusic.ru/","description":"российская актриса и певица.","cover":{"small":"http://avatars.yandex.net/get-music-content/67f2b2ee.p.167214/300x300","big":"http://avatars.yandex.net/get-music-content/67f2b2ee.p.167214/1000x1000"}},{"id":218334,"name":"Фристайл","genres":["pop"],"tracks":349,"albums":27,"link":"http://www.freestylemusic.ru/","description":"советская и украинская музыкальная группа из Полтавы, образованная в ноябре 1988 года. Руководитель, композитор и продюсер группы - Анатолий Розанов. В первые годы фронтменом группы был Вадим Казаченко, но в 1991 году он покинул коллектив, начав сольную музыкальную деятельность.","cover":{"small":"http://avatars.yandex.net/get-music-content/ad22fdc6.p.218334/300x300","big":"http://avatars.yandex.net/get-music-content/ad22fdc6.p.218334/1000x1000"}},{"id":155916,"name":"Инфинити","genres":["pop","dance"],"tracks":73,"albums":22,"link":"http://www.infiniti-music.ru/","description":"российская музыкальная группа, работающая в жанре электронной танцевальной музыки. Обладатель премии «Золотой граммофон» 2008, 2010. Лауреат фестиваля «Песня года» 2010.","cover":{"small":"http://avatars.yandex.net/get-music-content/c2c0b63d.p.155916/300x300","big":"http://avatars.yandex.net/get-music-content/c2c0b63d.p.155916/1000x1000"}},{"id":233945,"name":"Ласковый май","genres":["pop"],"tracks":27,"albums":1,"link":"http://laskovyi-mai.com/","description":"популярная музыкальная группа конца 1980-х и начала 1990-х годов в СССР, играющая в стиле евродиско. Первая в СССР группа, ориентированная на подростков. Группа приобрела большую популярность в СССР в конце 1980-х годов не только среди подростков, но и среди людей всех возрастов, во многом благодаря тому что её участники были сами подростки из детских домов;Тема сиротства в песнях группы не эксплуатировалась. сыграла свою роль и реклама в прессе. Основатель группы Сергей Кузнецов покинул её в 1989 году. В настоящее время группа успешно гастролирует благодаря ностальгии по прошлому, но не в полном составе, а лишь её лицо, основной солист - Юрий Шатунов. Визитной карточкой группы была песня «Белые розы».","cover":{"small":"http://avatars.yandex.net/get-music-content/e5182286.p.233945/300x300","big":"http://avatars.yandex.net/get-music-content/e5182286.p.233945/1000x1000"}},{"id":431059,"name":"Фабрика","genres":["pop"],"tracks":27,"albums":8,"link":"http://www.mfabrika.ru/","description":"российская женская поп-группа, появившаяся в ходе проекта «Фабрика звёзд-1» и занявшая на нём второе место. Продюсер группы - Игорь Матвиенко.","cover":{"small":"http://avatars.yandex.net/get-music-content/0376cd4c.p.431059/300x300","big":"http://avatars.yandex.net/get-music-content/0376cd4c.p.431059/1000x1000"}},{"id":158058,"name":"Валерия","genres":["pop","estrada"],"tracks":324,"albums":48,"link":"http://www.valeriya.net/","description":"российская эстрадная певица, известная мононимно как Валерия. Народная артистка России. Член Совета при Президенте Российской Федерации по культуре и искусству с 2012 года.","cover":{"small":"http://avatars.yandex.net/get-music-content/6750ed2e.p.158058/300x300","big":"http://avatars.yandex.net/get-music-content/6750ed2e.p.158058/1000x1000"}},{"id":161247,"name":"Руки Вверх!","genres":["pop","estrada"],"tracks":150,"albums":27,"link":"http://rukivverh.ru/","description":"российская музыкальная поп-группа. До августа 2006 года состояла из Сергея Жукова и Алексея Потехина. После Сергей Жуков решил остаться один, вместе с официальным названием группы.","cover":{"small":"http://avatars.yandex.net/get-music-content/02589e08.p.161247/300x300","big":"http://avatars.yandex.net/get-music-content/02589e08.p.161247/1000x1000"}},{"id":312616,"name":"Avicii","genres":["dance","pop","electronics"],"tracks":223,"albums":155,"link":"http://avicii.com/","description":"шведский диджей и музыкальный продюсер, наиболее известный под сценическим именем Авичи. Он также использовал псевдонимы Тим Берг и Том Хангс. Авичи прославился в 2010 году благодаря синглам «My Feelings for You», «Seek Bromance», «Blessed» и «Levels». По данным журнала Forbes, в 2013 году он входил в десятку самых высокооплачиваемых диджеев мира с годовым доходом в 20 млн долларов.","cover":{"small":"http://avatars.yandex.net/get-music-content/3f9509ff.p.312616/300x300","big":"http://avatars.yandex.net/get-music-content/3f9509ff.p.312616/1000x1000"}},{"id":109366,"name":"Calvin Harris","genres":["dance","pop"],"tracks":195,"albums":92,"link":"http://www.calvinharris.co.uk/","description":"шотландский автор-исполнитель, продюсер, DJ. Его дебютный I Created Disco, стал золотым и содержал попавшие в тop-10 синглы «Acceptable in the 80s» и «The Girls». Также Келвин был автором и продюсером записей других артистов, включая Кайли Миноуг и её пластинку X, британского рэпера Dizzee Rascal - «Dance Wiv Me», а также записал сингл с американской певицей Rihanna - «We Found Love» в 2011 году.","cover":{"small":"http://avatars.yandex.net/get-music-content/a9b894ec.p.109366/300x300","big":"http://avatars.yandex.net/get-music-content/a9b894ec.p.109366/1000x1000"}},{"id":380641,"name":"Tim Berg","genres":["electronics","dance"],"tracks":40,"albums":128,"description":"шведский диджей и музыкальный продюсер, наиболее известный под сценическим именем Авичи. Он также использовал псевдонимы Тим Берг и Том Хангс. Авичи прославился в 2010 году благодаря синглам «My Feelings for You», «Seek Bromance», «Blessed» и «Levels». По данным журнала Forbes, в 2013 году он входил в десятку самых высокооплачиваемых диджеев мира с годовым доходом в 20 млн долларов.","cover":{"small":"http://avatars.yandex.net/get-music-content/2693e50a.a.287552-1/300x300","big":"http://avatars.yandex.net/get-music-content/2693e50a.a.287552-1/1000x1000"}},{"id":100426,"name":"Sebastian Ingrosso","genres":["dance","electronics"],"tracks":64,"albums":57,"link":"http://sebastianingrosso.com/","description":"Диджей, продюсер, музыкант, владелец собственного лейбла Refune. Входил в состав коллектива Swedish House Mafia. В 2010 году, журнал DJ Magazine объявил итоги Top 100 DJ Poll, Sebastian Ingrosso занял 16 место.","cover":{"small":"http://avatars.yandex.net/get-music-content/83980da6.a.2379203-1/300x300","big":"http://avatars.yandex.net/get-music-content/83980da6.a.2379203-1/1000x1000"}},{"id":2934,"name":"Pitbull","genres":["pop","rap","dance"],"tracks":639,"albums":307,"link":"http://www.pitbullmusic.com","description":"Армандо Кристиан Перес более известный под сценическим псевдонимом Pitbull, американо-кубинский рэпер, певец и музыкальный продюсер из Майами, Флорида. Впервые его можно было услышать на сольном треке Лила Джона в альбоме 2002 года Kings of Crunk. В 2004 году выпустил дебютный альбом M.I.A.M.I., под руководством звукозаписывающей компанией TVT Records; над альбомом работали такие асы, как продюсеры Лил Джон и Джим Джонсин. Позже Питбуль выпустил второй альбом El Mariel, в 2006 г. и третий The Boatlift в 2007 г. В 2009 г. с его четвёртого альбома Rebelution вышел хит «I Know You Want Me »...","cover":{"small":"http://avatars.yandex.net/get-music-content/dd10a7a8.p.2934/300x300","big":"http://avatars.yandex.net/get-music-content/dd10a7a8.p.2934/1000x1000"}},{"id":37910,"name":"Afrojack","genres":["dance","pop","electronics"],"tracks":114,"albums":125,"link":"http://www.afrojack.com/","description":"нидерландский музыкальный продюсер и диджей. Один из известных синглов, «Take Over Control», записанный совместно с Евой Симонс, попал в чарты многих стран. Он занимал 19-е место на DJ MAG’s TOP 100 DJs 2010. Это был почти один из самых высоких подъёмов в 2010 году, уступив лишь Dash Berlin. В декабре 2010 года Афроджек объявил на своём официальном сайте о выпуске альбома Lost & Found. Альбом был выпущен 22 декабря 2010 года.","cover":{"small":"http://avatars.yandex.net/get-music-content/54693f48.p.37910/300x300","big":"http://avatars.yandex.net/get-music-content/54693f48.p.37910/1000x1000"}},{"id":168434,"name":"Swedish House Mafia","genres":["dance","electronics"],"tracks":45,"albums":21,"link":"http://www.swedishhousemafia.com","description":"музыкальное трио из Швеции, состоявшее из трех хаус DJ-ев и продюсеров: Axwell, Steve Angello и Sebastian Ingrosso. Официально группа была образована в конце 2008 года. Группа завоевала 10 место в Top 100 DJ 2011 по версии DJ Magazine и были названы \"главными лицами прогрессив-хаус музыки\". 24 июня 2012 года группа объявила через свой сайт, что нынешний тур станет заключительным в карьере группы. После распада диджеи Axwell и Sebastian Ingrosso продолжили деятельность в качестве дуэта Axwell Λ Ingrosso.","cover":{"small":"http://avatars.yandex.net/get-music-content/00fa004a.p.168434/300x300","big":"http://avatars.yandex.net/get-music-content/00fa004a.p.168434/1000x1000"}},{"id":2625,"name":"Pharrell Williams","genres":["pop","rap","rnb"],"tracks":241,"albums":171,"link":"http://pharrellwilliams.com/","description":"американский певец, рэпер, продюсер, музыкант и дизайнер одежды. Вместе с Чадом Хьюго продюсирует по большей части хип-хоп музыку. Лидер, вокалист и барабанщик в фанк-рок группе N*E*R*D вместе с Хьюго и Шей Хэйли. Выпускал сольные работы: дебютный сингл Frontin в 2003 году и альбом In My Mind в 2006, Seeing Sounds в 2008 году, а также G I R L в марте 2014.","cover":{"small":"http://avatars.yandex.net/get-music-content/8e07d179.p.2625/300x300","big":"http://avatars.yandex.net/get-music-content/8e07d179.p.2625/1000x1000"}},{"id":381067,"name":"Ed Sheeran","genres":["pop","bard","rap"],"tracks":126,"albums":38,"link":"http://www.edsheeran.com","description":"британский автор-исполнитель. Первый коммерческий успех пришёл к нему в июне 2011 года благодаря синглу «The A Team», занявшему третье место в британском чарте. 7 октября 2014 года был выпущен клип на песню «Thinking Out Loud». В 2015 году певец заявил о своем намерении сделать перерыв в музыкальной карьере и посвятить себя благотворительности.","cover":{"small":"http://avatars.yandex.net/get-music-content/188c69b0.p.381067/300x300","big":"http://avatars.yandex.net/get-music-content/188c69b0.p.381067/1000x1000"}},{"id":873537,"name":"Naughty Boy","genres":["pop","rnb"],"tracks":46,"albums":20,"link":"http://www.hotel-cabana.com/","description":"британский музыкант и продюсер. В 2012 году Хан подписал трёхлетний издательский договор с Sony ATV, а также контракт на выпуск одного альбома под лейблом Virgin EMI Records. Руководит производственной компанией Naughty Boy Recordings.","cover":{"small":"http://avatars.yandex.net/get-music-content/edb2fa5d.p.873537/300x300","big":"http://avatars.yandex.net/get-music-content/edb2fa5d.p.873537/1000x1000"}},{"id":10920,"name":"Adam Levine","genres":["rap","pop","blues"],"tracks":66,"albums":33,"description":"американский певец, актёр, вокалист и гитарист поп-рок-группы Maroon 5.","cover":{"small":"http://avatars.yandex.net/get-music-content/ff2d3e65.a.645456-1/300x300","big":"http://avatars.yandex.net/get-music-content/ff2d3e65.a.645456-1/1000x1000"}},{"id":2622328,"name":"Ella Henderson","genres":["pop","dance"],"tracks":41,"albums":14,"description":"британская певица и автор песен. В 2012 году вышла в финал девятого сезона шоу «The X Factor», но заняла лишь шестое место, несмотря на то, что имела большие шансы на выигрыш. После этого, она подписала контракт с лейблом Syco Music.","cover":{"small":"http://avatars.yandex.net/get-music-content/73e561d9.a.2870302-1/300x300","big":"http://avatars.yandex.net/get-music-content/73e561d9.a.2870302-1/1000x1000"}},{"id":1626151,"name":"Meghan Trainor","genres":["pop"],"tracks":26,"albums":19,"link":"http://www.meghan-trainor.com/","description":"американская певица, автор-исполнитель и продюсер. Родилась на острове Нантакет, штат Массачусетс, в семье Гарри и Келли Трейнор. В 11-летнем возрасте начала писать свои первые песни.","cover":{"small":"http://avatars.yandex.net/get-music-content/ee33a2d1.p.1626151/300x300","big":"http://avatars.yandex.net/get-music-content/ee33a2d1.p.1626151/1000x1000"}},{"id":1756,"name":"Nick Jonas","genres":["dance","pop"],"tracks":45,"albums":10,"description":"американский певец, актёр и композитор. Более известен как один из участников популярного поп-рок бойзбенда Jonas Brothers, образованного с его старшими братьями - Джо и Кевином. Сначала группа была образована лишь с сольной карьерой Ника, но затем продюсеры решили, что он должен петь с братьями. Актёрскую карьеру Ник начал с телесериала JONAS на Disney Channel в 2008 году. Также Джонас снимался в фильмах Camp Rock: Музыкальные каникулы и Camp Rock 2: Отчётный концерт. В 2010 году сформировалась группа Nick Jonas & The Administration, и в том же году был выпущен единственный альбом данного коллектива. В 2011 году группа прекратила своё существование...","cover":{"small":"http://avatars.yandex.net/get-music-content/1f4d235e.a.3090569-1/300x300","big":"http://avatars.yandex.net/get-music-content/1f4d235e.a.3090569-1/1000x1000"}},{"id":173165,"name":"Emeli Sande","genres":["pop","rap"],"tracks":77,"albums":34,"link":"http://www.emelisande.com/","description":"шотландская певица и автор песен. Санде впервые стала известна в глазах общественности после того, как записала трек «Diamond Rings» с рэпером Chipmunk. Она писала песни для многих артистов, в том числе Шер Ллойд, Parade, Сьюзан Бойл, Габриэль, Preeya Kalidas, Леона Льюис, Алиша Диксон, Шерил Коул,Тайни Темпа и Mutya Keisha Siobhan.","cover":{"small":"http://avatars.yandex.net/get-music-content/c3ace115.p.173165/300x300","big":"http://avatars.yandex.net/get-music-content/c3ace115.p.173165/1000x1000"}},{"id":589640,"name":"John Newman","genres":["pop","jazz"],"tracks":91,"albums":30,"link":"http://www.johnnewman.co.uk/","description":"британский певец, автор-исполнитель, чей дебютный сингл «Love Me Again» возглавил хит-парад Великобритании UK Singles Chart в июле 2013 года. Ранее в качестве приглашенного вокалиста участвовал в записях таких хитов английской электронной группы Rudimental, как «Feel the Love» и «Not Giving In».","cover":{"small":"http://avatars.yandex.net/get-music-content/a7e9f2df.p.589640/300x300","big":"http://avatars.yandex.net/get-music-content/a7e9f2df.p.589640/1000x1000"}},{"id":755371,"name":"Rudimental","genres":["dance","dnb"],"tracks":90,"albums":34,"link":"http://www.rudimental.co.uk/","description":"британская электронная группа, образованная в 2010 году в пригороде Лондона - Хакни. У группы заключен контракт с лейблом Asylum Records.","cover":{"small":"http://avatars.yandex.net/get-music-content/106dac29.p.755371/300x300","big":"http://avatars.yandex.net/get-music-content/106dac29.p.755371/1000x1000"}},{"id":157799,"name":"Tinie Tempah","genres":["rap","pop","electronics"],"tracks":108,"albums":65,"description":"британский хип-хоп исполнитель. Его первый микстейп, Chapter 1 Verse 1-22, вышел в 2005 году; его первый альбом, Disc-Overy, дебютировал на 1 месте чарта 2010 года в Великобритании. После него последовали ещё 2 хитовых сингла, которые так же заняли первую позицию. В феврале 2011 он выиграл 2 награды Brit Awards в категориях «Лучший британский новый исполнитель» и «Лучший британский сингл».","cover":{"small":"http://avatars.yandex.net/get-music-content/735e4412.p.157799/300x300","big":"http://avatars.yandex.net/get-music-content/735e4412.p.157799/1000x1000"}},{"id":744492,"name":"AlunaGeorge","genres":["electronics","pop"],"tracks":60,"albums":17,"link":"http://alunageorge.com/","description":"английский электронно-музыкальный дуэт из Лондона, состоящий из продюсера Джорджа Рида и вокалистки Алуны Фрэнсис, занимающейся также написание текстов песен. Коллектив был номинирован на премию «BRIT Awards 2013» и занял второе место в опросе «Sound of 2013».","cover":{"small":"http://avatars.yandex.net/get-music-content/c2ff680f.p.744492/300x300","big":"http://avatars.yandex.net/get-music-content/c2ff680f.p.744492/1000x1000"}},{"id":424179,"name":"Sky Ferreira","genres":["pop"],"tracks":21,"albums":5,"description":"американская певица, автор песен, модель и актриса. Первый демо-альбом Скай, As If!, был выпущен 22 марта 2011 года. Затем, 16 октября 2012 года, появился следующий демо-альбом под названием Ghost, получивший положительные отзывы. Песня Феррейры «Everything Is Embarrassing» была признана одной из лучших песен 2012 года такими изданиями, как Pitchfork Media, The Guardian, Los Angeles Times, Spin, Fact и журналом New York. В июле 2009 года Феррейра подписала контракт с лейблом Parlophone. В 2013 году Скай выпустила первую полноформатную платину Night Time, My Time, а также дебютировала в кино в качестве героя второго плана в фильме Элая Рота «Зелёный ад».","cover":{"small":"http://avatars.yandex.net/get-music-content/c57176a2.a.1833647-1/300x300","big":"http://avatars.yandex.net/get-music-content/c57176a2.a.1833647-1/1000x1000"}},{"id":1654436,"name":"Lorde","genres":["soundtrack","pop","electronics"],"tracks":27,"albums":10,"link":"http://lorde.co.nz/","description":"новозеландская певица и автор песен. Её дебютный сингл «Royals», вышедший в марте 2013 года и ставший лауреатом премии «Грэмми» за лучшую песню года, стал хитом по всему миру, возглавив национальные чарты Новой Зеландии, Италии, Великобритании, а также чарт Billboard Hot 100, что сделало Лорд единственным новозеландским исполнителем с подобным достижением.","cover":{"small":"http://avatars.yandex.net/get-music-content/f78cd90e.p.1654436/300x300","big":"http://avatars.yandex.net/get-music-content/f78cd90e.p.1654436/1000x1000"}},{"id":662347,"name":"Charli XCX","genres":["pop","alternative","rap"],"tracks":92,"albums":39,"link":"http://www.charlixcxmusic.com/","description":"Шарлотта Эмма Эйтчисон - британская певица и автор песен, выступающая под сценическим именем Charli XCX. Её дебют в музыкальном мире состоялся в 2008 году с выходом диска «14», однако первый коммерческий релиз - альбом True Romance, занявший 85-е место в хит-параде Великобритании и отмеченный критиками, - был выпущен в 2013 году. Эйтчисон также известна как соавтор хита «I Love It» в исполнении шведского дуэта Icona Pop.","cover":{"small":"http://avatars.yandex.net/get-music-content/62d2f9b0.p.662347/300x300","big":"http://avatars.yandex.net/get-music-content/62d2f9b0.p.662347/1000x1000"}},{"id":1438,"name":"Lady Gaga","genres":["pop","jazz"],"tracks":281,"albums":68,"link":"http://www.ladygaga.com","description":"американская певица, автор песен, продюсер, филантроп, дизайнер и актриса. Начинала свою карьеру с выступлений в клубах, а к концу 2007 года продюсер Винсент Херберт подписал певицу на лейбл Streamline Records, который является ответвлением Interscope Records. Изначально Гага работала в качестве штатного автора Interscope, но после того, как вокальные данные Гаги привлекли рэпера Эйкона, с ней был подписан контракт на запись альбома.","cover":{"small":"http://avatars.yandex.net/get-music-content/03022371.p.1438/300x300","big":"http://avatars.yandex.net/get-music-content/03022371.p.1438/1000x1000"}},{"id":6856,"name":"Katy Perry","genres":["pop","dance"],"tracks":107,"albums":43,"link":"http://www.katyperry.com/","description":"американская певица, композитор, автор песен, актриса, посол доброй воли ООН.","cover":{"small":"http://avatars.yandex.net/get-music-content/af2a3211.p.6856/300x300","big":"http://avatars.yandex.net/get-music-content/af2a3211.p.6856/1000x1000"}},{"id":1151,"name":"Justin Timberlake","genres":["pop","rap","dance"],"tracks":190,"albums":127,"link":"http://justintimberlake.com/","description":"американский поп- и R&B-певец, композитор, продюсер, танцор и актёр. Обладатель четырёх премий «Эмми» и девяти премий «Грэмми». Джастин Тимберлейк пришел к славе в качестве одного из солистов бой-бэнда ’N Sync. В 2002 году он выпустил свой первый сольный альбом Justified, проданный более 8 миллионов копий по всему миру. Вторым соло-релизом Джастина стал альбом FutureSex/LoveSounds, который был выпущен в 2006 году и включил в себя такие успешные синглы как «SexyBack», «My Love» и «What Goes Around... Comes Around», ставшие хитами № 1 в США. К январю 2008 года FutureSex/LoveSounds разошелся более чем 8 миллионами копий...","cover":{"small":"http://avatars.yandex.net/get-music-content/3f054217.p.1151/300x300","big":"http://avatars.yandex.net/get-music-content/3f054217.p.1151/1000x1000"}},{"id":3518,"name":"N.E.R.D.","genres":["rock","soundtrack"],"tracks":107,"albums":31,"link":"http://n-e-r-d.com/","description":"R&B и фанк-рок-группа, созданная вокалистом и барабанщиком Фарреллом Уильямсом и Чадом Хьюго в 2002 году. Если дебютный альбом дуэта In Search of… имел умеренный коммерческий успех, то два следующих - Fly Or Die, Seeing Sounds - стали хитами. Международный успех имел также сингл «She Wants to Move».","cover":{"small":"http://avatars.yandex.net/get-music-content/2496df2e.p.3518/300x300","big":"http://avatars.yandex.net/get-music-content/2496df2e.p.3518/1000x1000"}},{"id":3440,"name":"JAY-Z","genres":["rap"],"tracks":536,"albums":258,"link":"http://lifeandtimes.com/","description":"американский рэпер, имел собственный капитал более 500 млн $ по состоянию на 2012 год. 13 его альбомов отметились на вершине Billboard 200. Это рекорд среди всех сольных исполнителей и второе место в истории после The Beatles, у которых 19 альбомов поднимались на первое место в США. Многократный обладатель премии \"Грэмми\".","cover":{"small":"http://avatars.yandex.net/get-music-content/707155f7.p.3440/300x300","big":"http://avatars.yandex.net/get-music-content/707155f7.p.3440/1000x1000"}},{"id":644,"name":"Kanye West","genres":["rap","pop","rnb"],"tracks":366,"albums":195,"link":"http://www.kanyewest.com/","description":"американский рэпер, продюсер и дизайнер. Он выпустил дебютный альбом The College Dropout в 2004 году, второй альбом Late Registration - в 2005-м, третий - Graduation - в 2007-м, четвёртый - 808s & Heartbreak - в 2008-м, пятый - My Beautiful Dark Twisted Fantasy - в 2010-м, шестой - Yeezus - в 2013-м, седьмой - The Life of Pablo - в 2016-м. Помимо сольных работ, записал в 2011 году с рэпером Jay-Z совместный альбом Watch the Throne, а также был одним из исполнителей на сборнике Cruel Summer. Уэст получил множество наград, положительные отзывы критиков и коммерческий успех. Уэст также запустил собственный лейбл GOOD Music. Не раз признавался самым стильным мужчиной планеты по версии читателей журнала GQ...","cover":{"small":"http://avatars.yandex.net/get-music-content/bc006ec3.p.644/300x300","big":"http://avatars.yandex.net/get-music-content/bc006ec3.p.644/1000x1000"}},{"id":453480,"name":"Борис Гребенщиков","genres":["rock","jazz","rusrock"],"tracks":34,"albums":6,"description":"российский поэт и музыкант, композитор, певец и гитарист рок-группы «Аквариум», один из «отцов-основателей» русской рок-музыки.","cover":{"small":"http://avatars.yandex.net/get-music-content/89ac1655.p.453480/300x300","big":"http://avatars.yandex.net/get-music-content/89ac1655.p.453480/1000x1000"}},{"id":170650,"name":"Крематорий","genres":["rusrock"],"tracks":421,"albums":26,"link":"http://www.crematorium.ru/","description":"известная советская и российская рок-группа. Лидер и вокалист, а также автор почти всех песен - Армен Григорян.","cover":{"small":"http://avatars.yandex.net/get-music-content/216139c2.p.170650/300x300","big":"http://avatars.yandex.net/get-music-content/216139c2.p.170650/1000x1000"}},{"id":358612,"name":"ДДТ","genres":["rusrock"],"tracks":284,"albums":24,"link":"http://www.ddt.ru/","description":"советская и российская рок-группа, основанная в 1980 году в Уфе. Лидер группы, автор большинства песен и единственный бессменный участник - Юрий Шевчук.","cover":{"small":"http://avatars.yandex.net/get-music-content/1e0223df.p.358612/300x300","big":"http://avatars.yandex.net/get-music-content/1e0223df.p.358612/1000x1000"}},{"id":41055,"name":"ЧайФ","genres":["rusrock"],"tracks":491,"albums":36,"link":"http://www.chaif.ru/","description":"советская и российская рок-группа, образованная Владимиром Шахриным, Владимиром Бегуновым и Олегом Решетниковым в 1985 году. История группы начинается ещё с 1983 года, когда Владимир Шахрин, Олег Решетников и Вадим Кукушкин начали репетиции в Свердловске.","cover":{"small":"http://avatars.yandex.net/get-music-content/090e1def.p.41055/300x300","big":"http://avatars.yandex.net/get-music-content/090e1def.p.41055/1000x1000"}},{"id":41138,"name":"Nautilus Pompilius","genres":["rusrock"],"tracks":228,"albums":22,"link":"http://www.nautilus.ru/","description":"советская и российская рок-группа. Основана в Свердловске, официально в 1982-1983 годах, когда началась совместная работа Вячеслава Бутусова и Дмитрия Умецкого над первым альбомом «Переезд». С 1982 года состав группы неоднократно менялся. Изменениям подвергался также и музыкальный стиль группы.","cover":{"small":"http://avatars.yandex.net/get-music-content/b2bf15f6.p.41138/300x300","big":"http://avatars.yandex.net/get-music-content/b2bf15f6.p.41138/1000x1000"}},{"id":218073,"name":"Пикник","genres":["rusrock"],"tracks":229,"albums":24,"link":"http://piknik.info/","description":"советская и российская рок-группа, основанная в 1978 году, хотя участники группы считают, что профессиональная и полносоставная группа образовалась в 1981 году, когда Эдмунд Шклярский стал лидером группы.","cover":{"small":"http://avatars.yandex.net/get-music-content/c825061a.p.218073/300x300","big":"http://avatars.yandex.net/get-music-content/c825061a.p.218073/1000x1000"}},{"id":218079,"name":"Несчастный Случай","genres":["rusrock"],"tracks":467,"albums":20,"link":"http://ns.ru/","description":"советская и российская рок-группа, образованная в 1983 году Алексеем Кортневым и Валдисом Пельшем.","cover":{"small":"http://avatars.yandex.net/get-music-content/f8a9c00b.p.218079/300x300","big":"http://avatars.yandex.net/get-music-content/f8a9c00b.p.218079/1000x1000"}},{"id":168851,"name":"Ленинград","genres":["rusrock"],"tracks":272,"albums":20,"link":"http://www.sosimc.ru/","description":"российская музыкальная группа из Санкт-Петербурга, созданная Сергеем Шнуровым. Известна, в частности, эксцентричными песнями с большим количеством мата и алкогольно-бытовой тематикой. Группа использует в своём творчестве обширный состав духовых инструментов: труба, саксофон, тромбон, туба. Также группа иногда расширяется за счёт саксгорнов.","cover":{"small":"http://avatars.yandex.net/get-music-content/68afa558.p.168851/300x300","big":"http://avatars.yandex.net/get-music-content/68afa558.p.168851/1000x1000"}},{"id":3102809,"name":"BRUTTO","genres":["alternative"],"tracks":37,"albums":12,"link":"http://brut.to/","description":"панк-рок-группа бывшего солиста музыкальной группы «Ляпис Трубецкой» Сергея Михалка, основанная им после прекращения существования коллектива «Ляпис Трубецкой». Об основании проекта объявлено 1 сентября 2014 года.","cover":{"small":"http://avatars.yandex.net/get-music-content/751e9514.p.3102809/300x300","big":"http://avatars.yandex.net/get-music-content/751e9514.p.3102809/1000x1000"}},{"id":41134,"name":"Агата Кристи","genres":["rusrock"],"tracks":313,"albums":26,"link":"http://vk.com/club7471981","description":"советская и российская рок-группа, одна из наиболее популярных в стране в середине и во второй половине 1990-х годов. Основана в 1985 году в Свердловске Вадимом Самойловым, Александром Козловым и Петром Маем под названием ВИА «РТФ УПИ», официально же история группы отсчитывается с концерта 20 февраля 1988 года. Во время записи альбома «Второй фронт» в начале того же года к группе примкнул младший брат Вадима Глеб. Впоследствии состав группы неоднократно менялся, но её лидерами и вокалистами неизменно оставались братья Самойловы. Они же, вместе с Александром Козловым, являются авторами всех песен «Агаты Кристи».","cover":{"small":"http://avatars.yandex.net/get-music-content/47aced88.p.41134/300x300","big":"http://avatars.yandex.net/get-music-content/47aced88.p.41134/1000x1000"}},{"id":218068,"name":"Океан Ельзи","genres":["ukrrock"],"tracks":105,"albums":12,"link":"http://www.okeanelzy.com/","description":"украинская рок-группа. Создана 12 октября 1994 во Львове. Лидером и вокалистом группы является Святослав Вакарчук.","cover":{"small":"http://avatars.yandex.net/get-music-content/ff1d89a8.p.218068/300x300","big":"http://avatars.yandex.net/get-music-content/ff1d89a8.p.218068/1000x1000"}},{"id":27461,"name":"The Stooges","genres":["rock","punk","newwave"],"tracks":470,"albums":102,"description":"The Stooges - американская рок-группа, фронтменом которой является Игги Поп. Стиль The Stooges определяют как гаражный рок, прото-панк, глэм-рок; на их официальном MySpace стиль группы обозначен как психоделический рок / панк / метал. Ранние альбомы группы оказали большое влияние на развитие панк-рока и альтернативной музыки, значительно опередив своё время.","cover":{"small":"http://avatars.yandex.net/get-music-content/0a015125.a.174179-1/300x300","big":"http://avatars.yandex.net/get-music-content/0a015125.a.174179-1/1000x1000"}},{"id":4650,"name":"David Bowie","genres":["rock"],"tracks":965,"albums":163,"link":"http://www.davidbowie.com/","description":"британский рок-певец и автор песен, а также продюсер, звукорежиссёр, художник и актёр. На протяжении пятидесяти лет занимался музыкальным творчеством и часто менял имидж, поэтому его называют «хамелеоном рок-музыки». При этом Боуи удавалось сохранять собственный узнаваемый стиль, успешно совмещая его с актуальными музыкальными направлениями. Боуи считается новатором, в частности, благодаря своим работам 1970-х. Он оказал влияние на многих музыкантов, был известен своим характерным голосом и интеллектуальной глубиной созданных им работ.","cover":{"small":"http://avatars.yandex.net/get-music-content/f7f0f23e.p.4650/300x300","big":"http://avatars.yandex.net/get-music-content/f7f0f23e.p.4650/1000x1000"}},{"id":26201,"name":"Scott Asheton","genres":["punk"],"tracks":23,"albums":3,"description":"американский барабанщик. Наиболее известен как ударник рок-группы «The Stooges». В 1967 году Скотт совместно со своим братом Роном, Джеймсом Остербергом и Дэйвом Александром сформировали «Stooges».","cover":{"small":"http://avatars.yandex.net/get-music-content/344b6d5f.a.786332-1/300x300","big":"http://avatars.yandex.net/get-music-content/344b6d5f.a.786332-1/1000x1000"}},{"id":26203,"name":"Ron Asheton","genres":["punk"],"tracks":23,"albums":3,"description":"американский музыкант, участник группы The Stooges. Он никак не связан с производителем музыкальных инструментов «Ashtone Music».","cover":{"small":"http://avatars.yandex.net/get-music-content/344b6d5f.a.786332-1/300x300","big":"http://avatars.yandex.net/get-music-content/344b6d5f.a.786332-1/1000x1000"}},{"id":84826,"name":"James Williamson","genres":["rock"],"tracks":24,"albums":7,"description":"американский гитарист, автор текстов, музыкальный продюсер. Наиболее известен сотрудничеством с Игги Попом и группой The Stooges.","cover":{"small":"http://avatars.yandex.net/get-music-content/f5d5d1f5.a.2310373-1/300x300","big":"http://avatars.yandex.net/get-music-content/f5d5d1f5.a.2310373-1/1000x1000"}},{"id":6394,"name":"Lou Reed","genres":["rock","pop","alternative"],"tracks":655,"albums":136,"description":"американский рок-музыкант, поэт, вокалист и гитарист, автор песен, один из основателей и лидер рок-группы The Velvet Underground.","cover":{"small":"http://avatars.yandex.net/get-music-content/5fbf0168.a.72947-1/300x300","big":"http://avatars.yandex.net/get-music-content/5fbf0168.a.72947-1/1000x1000"}},{"id":6386,"name":"The Velvet Underground","genres":["rock"],"tracks":323,"albums":44,"link":"http://www.velvetundergroundmusic.com/","description":"американская рок-группа 1960-х и 1970-х годов, стоявшая у истоков альтернативной и экспериментальной рок-музыки. Название часто сокращают до V.U. или The Velvets. Ключевые участники Velvet Underground - Лу Рид и Джон Кейл, относительно успешно продолжающие сольную карьеру после ухода из группы.","cover":{"small":"http://avatars.yandex.net/get-music-content/50e664c0.a.2828536-1/300x300","big":"http://avatars.yandex.net/get-music-content/50e664c0.a.2828536-1/1000x1000"}},{"id":1047292,"name":"Iggy","genres":["rock","african"],"tracks":24,"albums":5,"description":"американский рок-вокалист, один из зачинателей и гуру альтернативного рока. За вклад в развитие рок-альтернативы его величают «крёстным отцом» панк-рока и гранжа. В 2009 году авторитетный британский журнал Classic Rock удостоил его званием «Живая легенда».","cover":{"small":"http://avatars.yandex.net/get-music-content/29953500.a.67636-1/300x300","big":"http://avatars.yandex.net/get-music-content/29953500.a.67636-1/1000x1000"}},{"id":9524,"name":"No Doubt","genres":["rock","pop"],"tracks":116,"albums":14,"link":"http://www.nodoubt.com/","description":"американская ска-панк-группа, образованная в 1986 году в Анахайме, Калифорния, США. Наибольшую известность приобрела после выхода альбома Tragic Kingdom.","cover":{"small":"http://avatars.yandex.net/get-music-content/65b2d11c.p.9524/300x300","big":"http://avatars.yandex.net/get-music-content/65b2d11c.p.9524/1000x1000"}},{"id":7090,"name":"Nelly Furtado","genres":["pop","rock","rap"],"tracks":181,"albums":77,"link":"http://www.nellyfurtado.com/","description":"канадская певица, автор песен, музыкальный продюсер и актриса. Её пластинки и синглы разошлись по миру общим тиражом свыше 40.000.000 экземпляров.","cover":{"small":"http://avatars.yandex.net/get-music-content/e83ee6f8.p.7090/300x300","big":"http://avatars.yandex.net/get-music-content/e83ee6f8.p.7090/1000x1000"}},{"id":3465,"name":"Fergie","genres":["rnb"],"tracks":74,"albums":49,"link":"http://www.fergie.com/","description":"американская певица, дизайнер и актриса.","cover":{"small":"http://avatars.yandex.net/get-music-content/5390c3ec.p.3465/300x300","big":"http://avatars.yandex.net/get-music-content/5390c3ec.p.3465/1000x1000"}},{"id":2135,"name":"The Pussycat Dolls","genres":["pop"],"tracks":69,"albums":42,"description":"американская поп/R&B группа-танцевальный ансамбль с женским вокалом, основанный хореографом Робин Антин в 1995 как танцующая труппа в стиле бурлеска, созданная в Лос-Анджелесе. После привлечения национального внимания, Антин в итоге договорилась с записывающим лейблом Interscope Records в 2003, сделав из группы музыкальную франшизу. С тех пор группа получила глобальный имидж и коммерческий бренд под руководством Антин, Interscope и различных партнеров. Они появлялись в ТВ реалити-шоу, в представлениях Лас-Вегаса и снялись в рекламе кроме прочего.","cover":{"small":"http://avatars.yandex.net/get-music-content/ad375098.p.2135/300x300","big":"http://avatars.yandex.net/get-music-content/ad375098.p.2135/1000x1000"}},{"id":7099,"name":"Kylie Minogue","genres":["pop"],"tracks":512,"albums":105,"link":"http://www.kylie.com/","description":"австралийская певица, автор песен и актриса. Стала популярной уже в юности в середине 1980-х годов благодаря роли в австралийской телевизионной мыльной опере «Соседи» - ещё до того, как начала карьеру поп-певицы.","cover":{"small":"http://avatars.yandex.net/get-music-content/0b601047.p.7099/300x300","big":"http://avatars.yandex.net/get-music-content/0b601047.p.7099/1000x1000"}},{"id":1813,"name":"Madonna","genres":["pop","dance"],"tracks":639,"albums":87,"link":"http://www.madonna.com/","description":"американская певица, автор песен, продюсер, танцовщица, писательница, актриса, кинорежиссёр, сценарист, предприниматель и филантроп. Переехав в Нью-Йорк в 1978 году ради карьеры в танцевальной труппе, Мадонна сначала стала участницей рок-групп, а потом успешной сольной исполнительницей и автором песен.","cover":{"small":"http://avatars.yandex.net/get-music-content/1d62a749.p.1813/300x300","big":"http://avatars.yandex.net/get-music-content/1d62a749.p.1813/1000x1000"}},{"id":21175,"name":"Christina Aguilera","genres":["pop","dance","soundtrack"],"tracks":271,"albums":149,"link":"http://christinaaguilera.com/","description":"американская певица, автор песен, танцовщица, актриса, продюсер, телезвезда, филантроп, а также посол доброй воли ООН.","cover":{"small":"http://avatars.yandex.net/get-music-content/ca9781b9.p.21175/300x300","big":"http://avatars.yandex.net/get-music-content/ca9781b9.p.21175/1000x1000"}},{"id":15481,"name":"Morten Harket","genres":["pop","rock"],"tracks":39,"albums":6,"link":"http://mortenharket.com/","description":"вокалист норвежской группы a-ha. Обладатель уникального голоса диапазоном в пять октав и мирового рекорда по продолжительности одной ноты среди вокалистов-мужчин в поп-музыке.","cover":{"small":"http://avatars.yandex.net/get-music-content/08856554.p.15481/300x300","big":"http://avatars.yandex.net/get-music-content/08856554.p.15481/1000x1000"}},{"id":40619,"name":"Duran Duran","genres":["pop","rock"],"tracks":434,"albums":111,"link":"http://www.duranduran.com/","description":"британская рок-группа, образованная в Бирмингеме в 1978 году. Название коллектив получил по имени главного отрицательного персонажа фильма Барбарелла. Наряду с аналогичной по стилю группой Spandau Ballet была одной из самых популярных поп-групп в мире в первой половине 1980-х годов. Также группу называют «бирмингемской пятёркой». За время существования группа продала около 120 миллионов копий альбомов.","cover":{"small":"http://avatars.yandex.net/get-music-content/581004c2.p.40619/300x300","big":"http://avatars.yandex.net/get-music-content/581004c2.p.40619/1000x1000"}},{"id":74952,"name":"Mags","genres":["jazz"],"tracks":14,"albums":1,"description":"гитарист и клавишник норвежской группы a-ha.","cover":{"small":"http://avatars.yandex.net/get-music-content/8d33eeb5.a.2518330-1/300x300","big":"http://avatars.yandex.net/get-music-content/8d33eeb5.a.2518330-1/1000x1000"}},{"id":36951,"name":"Pet Shop Boys","genres":["pop","house","electronics"],"tracks":545,"albums":68,"link":"http://petshopboys.co.uk/","description":"британский синтипоп-дуэт, образованный в 1981 году в Лондоне. Pet Shop Boys является одним из самых коммерчески успешных и плодотворных коллективов Великобритании, записывающих танцевальную музыку: за последние тридцать лет ими выпущено более сорока синглов, 12 студийных альбомов, а также множество совместных записей с другими исполнителями.","cover":{"small":"http://avatars.yandex.net/get-music-content/8f1bb75a.p.36951/300x300","big":"http://avatars.yandex.net/get-music-content/8f1bb75a.p.36951/1000x1000"}},{"id":47272,"name":"Alphaville","genres":["pop","latinfolk"],"tracks":124,"albums":18,"link":"http://www.alphaville.info/","description":"немецкая синтипоп-группа, имевшая большую популярность в середине 1980-х годов. Образовалась в 1982 году, её основателями являются Мариан Голд, Бернхард Ллойд и Франк Мертенс. Коллектив первоначально назывался Forever Young, но позднее сменил название на Alphaville. Группа получила мировую известность благодаря двум хитам - «Big In Japan» и «Forever Young», вышедшим в 1984 году.","cover":{"small":"http://avatars.yandex.net/get-music-content/4be2e283.p.47272/300x300","big":"http://avatars.yandex.net/get-music-content/4be2e283.p.47272/1000x1000"}},{"id":82943,"name":"Simon Le Bon","genres":["pop"],"tracks":5,"albums":4,"description":"британский певец и музыкант, вокалист New Wave-группы Duran Duran.","cover":{"small":"http://avatars.yandex.net/get-music-content/b246082c.a.907652-1/300x300","big":"http://avatars.yandex.net/get-music-content/b246082c.a.907652-1/1000x1000"}},{"id":89578,"name":"Roxette","genres":["pop","rock","electronics"],"tracks":249,"albums":39,"link":"http://www.roxette.se/","description":"шведская поп-рок-группа, лидерами которой являются Пер Гессле и Мари Фредрикссон. Как и многие другие шведские музыканты, они исполняют свои песни на английском языке. Само название «Roxette» происходит от названия песни группы Dr. Feelgood.","cover":{"small":"http://avatars.yandex.net/get-music-content/9a6de18d.p.89578/300x300","big":"http://avatars.yandex.net/get-music-content/9a6de18d.p.89578/1000x1000"}},{"id":30210,"name":"Chris Lowe","genres":["lounge","relax","bard"],"tracks":40,"albums":7,"description":"британский музыкант, участник дуэта Pet Shop Boys. Родился в небогатой семье, однако учиться пошёл в дорогую частную гимназию. Играл на тромбоне в джаз-банде на свадьбах и уличных праздниках.","cover":{"small":"http://avatars.yandex.net/get-music-content/1afb2834.a.779173-1/300x300","big":"http://avatars.yandex.net/get-music-content/1afb2834.a.779173-1/1000x1000"}},{"id":41051,"name":"Смысловые Галлюцинации","genres":["rusrock"],"tracks":226,"albums":24,"link":"http://gluki.ru/","description":"советская и российская рок-группа из Екатеринбурга.","cover":{"small":"http://avatars.yandex.net/get-music-content/e7436836.p.41051/300x300","big":"http://avatars.yandex.net/get-music-content/e7436836.p.41051/1000x1000"}},{"id":218071,"name":"Ночные Снайперы","genres":["rusrock"],"tracks":143,"albums":11,"link":"http://snipers.net/","description":"российская рок-группа, основанная в 1993 году Дианой Арбениной и Светланой Сургановой. Участвовала в ряде музыкальных акций - от андеграундных до крупнейших российских рок-фестивалей. Наибольшую известность получили такие песни группы, как «31 весна», «Ты дарила мне розы», «Рубеж», «Столица», «Асфальт», «Актриса».","cover":{"small":"http://avatars.yandex.net/get-music-content/5fe5401b.p.218071/300x300","big":"http://avatars.yandex.net/get-music-content/5fe5401b.p.218071/1000x1000"}},{"id":452202,"name":"Макс Барских","genres":["pop","electronics","dance"],"tracks":63,"albums":24,"link":"http://maxbarskih.com/","description":"украинский певец, автор песен. В Херсоне окончил ХТЛИ по специальности художник.","cover":{"small":"http://avatars.yandex.net/get-music-content/36e4550c.p.452202/300x300","big":"http://avatars.yandex.net/get-music-content/36e4550c.p.452202/1000x1000"}},{"id":41209,"name":"SEREBRO","genres":["pop"],"tracks":57,"albums":21,"link":"http://serebro.su/","description":"российская женская поп-группа, образованная в 2006 году российским музыкальным продюсером Максимом Фадеевым. В состав группы входят Ольга Серябкина, Дарья Шашина и Полина Фаворская. Ольга Серябкина также является автором текстов песен группы. Первое публичное выступление состоялось в финале конкурса песни «Евровидение 2007», где Serebro заняло 3-е место с песней «Song #1».","cover":{"small":"http://avatars.yandex.net/get-music-content/60f03018.p.41209/300x300","big":"http://avatars.yandex.net/get-music-content/60f03018.p.41209/1000x1000"}},{"id":167353,"name":"Влад Соколовский","genres":["pop"],"tracks":39,"albums":20,"link":"http://vladsokolovsky.com/","description":"певец, автор-исполнитель, продюсер, танцор, телеведущий, участник балета Аллы Духовой «Тодес», бывший солист группы «БиС». В настоящее время сольный исполнитель, работающий на стыке R&B и euro-pop.","cover":{"small":"http://avatars.yandex.net/get-music-content/06937828.p.167353/300x300","big":"http://avatars.yandex.net/get-music-content/06937828.p.167353/1000x1000"}},{"id":41119,"name":"Dino MC 47","genres":["rusrap"],"tracks":53,"albums":11,"link":"http://www.dino-mc47.ru/","description":"российский рэп-исполнитель. Бывший участник российского хип-хоп альянса «DРЕМУЧИЕ», групп «Big Black Boots» и «VIP77», выпустивший дебютный сольный альбом в 2008 году. Основные темы творчества - социум, общество и политика, лиричные треки о любви и жизни.","cover":{"small":"http://avatars.yandex.net/get-music-content/7449c2c4.p.41119/300x300","big":"http://avatars.yandex.net/get-music-content/7449c2c4.p.41119/1000x1000"}},{"id":588511,"name":"Рем Дигга","genres":["rusrap"],"tracks":198,"albums":20,"link":"http://www.youtube.com/channel/UCk9sNlbrFVebiImno7NilLw/videos","description":"российский рэп-исполнитель и битмейкер, бывший участник группы «Суисайд».","cover":{"small":"http://avatars.yandex.net/get-music-content/f186fdea.a.3280080-1/300x300","big":"http://avatars.yandex.net/get-music-content/f186fdea.a.3280080-1/1000x1000"}},{"id":160970,"name":"Noize MC","genres":["rusrap"],"tracks":251,"albums":22,"link":"http://noizemc.com/","description":"российский хип-хоп исполнитель, рок-музыкант, композитор и актёр. Музыка Noize MC совмещает в себе черты нескольких жанров и стилей.","cover":{"small":"http://avatars.yandex.net/get-music-content/a313bdb7.p.160970/300x300","big":"http://avatars.yandex.net/get-music-content/a313bdb7.p.160970/1000x1000"}},{"id":762002,"name":"Anacondaz","genres":["rusrap"],"tracks":63,"albums":9,"link":"http://anacondaz.ru/","description":"российская альтернативная хип-хоп группа, образованная в Астрахани в 2009 году. Представляет собой секстет и имеет на своём счету 4 студийных альбома и 1 мини-альбом.","cover":{"small":"http://avatars.yandex.net/get-music-content/2b2ab94d.p.762002/300x300","big":"http://avatars.yandex.net/get-music-content/2b2ab94d.p.762002/1000x1000"}},{"id":165154,"name":"Натали","genres":["pop"],"tracks":67,"albums":17,"link":"http://www.nataliru.ru/","description":"российская эстрадная певица, автор песен.","cover":{"small":"http://avatars.yandex.net/get-music-content/9ad264f2.p.165154/300x300","big":"http://avatars.yandex.net/get-music-content/9ad264f2.p.165154/1000x1000"}},{"id":64248,"name":"Ані Лорак","genres":["pop"],"tracks":151,"albums":38,"link":"http://www.anilorak.ua/","description":"украинская певица, народная артистка Украины, занявшая второе место на конкурсе песни Евровидение 2008, представляя Украину песней «Shady Lady». Обладательница премий «Золотой граммофон», «Певица года», «Золотая шарманка», «Человек года», «Песня года» и др., а также пяти «золотых» дисков и двух «платиновых».","cover":{"small":"http://avatars.yandex.net/get-music-content/b4509449.p.64248/300x300","big":"http://avatars.yandex.net/get-music-content/b4509449.p.64248/1000x1000"}},{"id":219036,"name":"Ёлка","genres":["pop","rap"],"tracks":177,"albums":43,"link":"http://elkasinger.ru/","description":"украинская и российская поп-певица. Начала музыкальную карьеру в составе ужгородской группы B&B. В 2004 году подписала контракт с Владом Валовым и выпустила успешный дебютный альбом «Город обмана», с хитами «Девочка в Пежо» и «Хорошее настроение».","cover":{"small":"http://avatars.yandex.net/get-music-content/107c94be.p.219036/300x300","big":"http://avatars.yandex.net/get-music-content/107c94be.p.219036/1000x1000"}},{"id":165110,"name":"Дискотека Авария","genres":["pop","dance"],"tracks":107,"albums":21,"link":"http://www.avariya.ru/","description":"российская музыкальная группа, основанная 5 июня 1990 года. Изначально коллектив специализировался на танцевальной музыке с юмористическими текстами, а с середины 2000-х годов в репертуаре группы преобладает жанр поп-музыки.","cover":{"small":"http://avatars.yandex.net/get-music-content/9400b2fd.p.165110/300x300","big":"http://avatars.yandex.net/get-music-content/9400b2fd.p.165110/1000x1000"}},{"id":189711,"name":"Benassi Bros.","genres":["house","electronics","dance"],"tracks":53,"albums":9,"description":"итальянская группа, состоящая из двоюродных братьев Бенни и Алле Бенасси. С 1980-х годов братья работали диджеями в своём родном городе - Милане, с середины 1990-х сотрудничали с продюсерским центром Ларри Пиньяньоли. Группа специализируется на танцевальной музыке и ремиксах. Сотрудничают с известными итальянскими исполнителями Sandy, Dhany.","cover":{"small":"http://avatars.yandex.net/get-music-content/d0b471cf.p.189711/300x300","big":"http://avatars.yandex.net/get-music-content/d0b471cf.p.189711/1000x1000"}},{"id":90342,"name":"Steve Angello","genres":["electronics","dance"],"tracks":63,"albums":63,"description":"шведский диджей, продюсер, музыкант, ремиксер, владелец собственного лейбла Size Records и X. Входил в состав коллектива Swedish House Mafia. В 2010 году, журнал DJ Magazine объявил итоги Top 100 DJ Poll, Steve Angello занял 14 место, в 2013 - 38 место, в 2015 году - 31.","cover":{"small":"http://avatars.yandex.net/get-music-content/e365f061.a.56862-1/300x300","big":"http://avatars.yandex.net/get-music-content/e365f061.a.56862-1/1000x1000"}},{"id":136600,"name":"Benny Benassi presents The Biz","genres":["dance"],"tracks":14,"albums":6,"description":"итальянский диджей, композитор, продюсер, записавший в 2002 году вместе с братом Алле популярнейший сингл «Satisfaction».","cover":{"small":"http://avatars.yandex.net/get-music-content/154b3139.a.1144348-1/300x300","big":"http://avatars.yandex.net/get-music-content/154b3139.a.1144348-1/1000x1000"}},{"id":140504,"name":"Tiësto","genres":["trance","electronics","dance"],"tracks":605,"albums":127,"link":"http://www.tiesto.com","description":"нидерландский диджей, музыкальный продюсер, композитор, а также дизайнер одежды и филантроп. Является одним из наиболее титулованных диджеев в истории электронной танцевальной музыки. На протяжении трёх лет подряд, в 2002, 2003 и 2004-м, был диджеем #1 в мировом рейтинге DJ Mag Top 100. Он единственный, кто на протяжении 11 лет подряд не покидал тройку этого авторитетного рейтинга, что делает его рекордсменом в этом компоненте среди всех диск-жокеев. Он также три раза получал звание лучшего диджея мира по версии International Dance Music Awards - в 2007, 2008 и 2009-м.","cover":{"small":"http://avatars.yandex.net/get-music-content/01d824b3.p.140504/300x300","big":"http://avatars.yandex.net/get-music-content/01d824b3.p.140504/1000x1000"}},{"id":18628,"name":"Far East Movement","genres":["rap","dance","pop"],"tracks":79,"albums":33,"link":"http://www.fareastmovement.com/","description":"американский электро-хоп квартет, базирующийся в городе Лос-Анджелес, Калифорния. Группа сформировалась в 2003 году. Первое их выступление состоялось в корейском районе Лос-Анджелеса, весь доход был направлен на нужды реабилитационного центра по лечению наркозависимости, названного «Movementality». Первым хитом FM стала песня «Round Round», попавшая в саундтрек фильма Тройной форсаж: Токийский дрифт. Также группа писала саундтрек к аниме-сериалу Монсуно.","cover":{"small":"http://avatars.yandex.net/get-music-content/d222c4aa.a.977835-1/300x300","big":"http://avatars.yandex.net/get-music-content/d222c4aa.a.977835-1/1000x1000"}},{"id":360102,"name":"Jessie J","genres":["pop","soundtrack","dance"],"tracks":114,"albums":39,"link":"http://jessiejofficial.com/","description":"британская певица и автор песен. Начала профессиональную карьеру подписав контракт с лейблом Gut Records, который вскоре обанкротился.","cover":{"small":"http://avatars.yandex.net/get-music-content/b9576724.p.360102/300x300","big":"http://avatars.yandex.net/get-music-content/b9576724.p.360102/1000x1000"}},{"id":1315849,"name":"Kiesza","genres":["electronics","dance","pop"],"tracks":46,"albums":16,"link":"http://kiesza.com/","description":"канадская певица норвежского происхождения, автор песен, мультиинструменталист и танцовщица из Калгари, которая с недавнего времени работает в Нью-Йорке и Лондоне. Наиболее известна своим синглом «Hideaway».","cover":{"small":"http://avatars.yandex.net/get-music-content/55e25cbd.p.1315849/300x300","big":"http://avatars.yandex.net/get-music-content/55e25cbd.p.1315849/1000x1000"}},{"id":45303,"name":"Panic! At The Disco","genres":["rock"],"tracks":100,"albums":24,"link":"http://www.panicatthedisco.com/","description":"рок-группа из Лас-Вегаса, штат Невада. В оригинальном составе участвовали : Брендон Бойд Ури, Спенсер Джеймс Смит Пятый, Джордж Райан Росс Третий, Джонатан Джейкоб Уолкер. В 2009 году Райан Росс и Джон Уолкер заявили о своем уходе.","cover":{"small":"http://avatars.yandex.net/get-music-content/ad16e9ad.p.45303/300x300","big":"http://avatars.yandex.net/get-music-content/ad16e9ad.p.45303/1000x1000"}},{"id":5976,"name":"Fall Out Boy","genres":["alternative"],"tracks":158,"albums":43,"link":"http://falloutboy.com/","description":"американская поп-рок группа, основанная в 2001 году в городе Уилметт, Иллинойс. Группа состоит из Патрика Стампа, Питера Вентца, Джозефа Тромана, Эндрю Хёрли. Основателями коллектива считаются Джозеф Троман и Питер Вентц.","cover":{"small":"http://avatars.yandex.net/get-music-content/e6398e9a.p.5976/300x300","big":"http://avatars.yandex.net/get-music-content/e6398e9a.p.5976/1000x1000"}},{"id":5973,"name":"Patrick Stump","genres":["alternative","pop"],"tracks":29,"albums":9,"description":"американский вокалист, композитор, гитарист, продюсер, участник и один из основателей рок-группы Fall Out Boy.","cover":{"small":"http://avatars.yandex.net/get-music-content/4d8ec222.a.2486743-1/300x300","big":"http://avatars.yandex.net/get-music-content/4d8ec222.a.2486743-1/1000x1000"}},{"id":208167,"name":"Arctic Monkeys","genres":["alternative","indie"],"tracks":34,"albums":4,"link":"http://arcticmonkeys.com/","description":"британская инди-рок-группа, сформированная в 2002 году в Хай Грин, пригороде Шеффилда. В настоящий момент состоит из вокалиста и гитариста Алекса Тёрнера, гитариста Джейми Кука, барабанщика Мэтта Хелдерса и бас-гитариста Ника О’Мэлли, сменившего ранее игравшего в группе Энди Николсона, который покинул группу в 2006 году, вскоре после выхода дебютного альбома.","cover":{"small":"http://avatars.yandex.net/get-music-content/ec5763a3.p.208167/300x300","big":"http://avatars.yandex.net/get-music-content/ec5763a3.p.208167/1000x1000"}},{"id":172693,"name":"New Politics","genres":["alternative"],"tracks":31,"albums":5,"description":"датская рок-группа, созданная в Копенгагене Дэвидом Бойдом и Сореном Хансеном. Она стала известна благодаря своему дебютному синглу «Yeah Yeah Yeah». Её звучание описано как «смесь панка, поп-музыки и электронной музыки».","cover":{"small":"http://avatars.yandex.net/get-music-content/fc25b074.a.77987-1/300x300","big":"http://avatars.yandex.net/get-music-content/fc25b074.a.77987-1/1000x1000"}},{"id":682469,"name":"Bastille","genres":["indie"],"tracks":78,"albums":22,"link":"http://www.bastillebastille.com","description":"английская инди-поп группа, основанная в Лондоне в 2010 году. Изначально Bastille создавалась в качестве сольного проекта певца, продюсера и автора песен Дэна Смита, который позже решил создать группу.","cover":{"small":"http://avatars.yandex.net/get-music-content/97c766da.p.682469/300x300","big":"http://avatars.yandex.net/get-music-content/97c766da.p.682469/1000x1000"}},{"id":48814,"name":"My Chemical Romance","genres":["rock"],"tracks":128,"albums":29,"link":"http://www.mychemicalromance.com/","description":"американская рок-группа, основанная в конце 2001 года в Нью-Джерси. В её состав входят: Джерард Уэй, Майки Уэй, Фрэнк Айеро и Рэй Торо. Предыдущий барабанщик Боб Брайар ушел из группы. После ухода Брайара на его место пришёл сессионный барабанщик Майкл Педикон. 3 сентября 2011 года стало известно, что Педикон больше не является временным участником и покидает группу. 22 марта 2013 года группа объявила на своём официальном сайте о распаде группы.","cover":{"small":"http://avatars.yandex.net/get-music-content/6dcec641.p.48814/300x300","big":"http://avatars.yandex.net/get-music-content/6dcec641.p.48814/1000x1000"}},{"id":1608172,"name":"The Hardkiss","genres":["local-indie"],"tracks":38,"albums":6,"link":"http://www.thehardkiss.com/","description":"украинская англоязычная музыкальная группа, появившаяся в 2011 году. Авторство всех песен группы принадлежит её участникам - Юлии Саниной и Валерию Бебко, который также выступает креативным продюсером The HARDKISS. Каждый концерт The HARDKISS - это новый сценический образ. Над образами участников группы работают стилисты Слава Чайка и Виталик Дацюк.","cover":{"small":"http://avatars.yandex.net/get-music-content/0473b3e8.p.1608172/300x300","big":"http://avatars.yandex.net/get-music-content/0473b3e8.p.1608172/1000x1000"}},{"id":6177,"name":"Amy Winehouse","genres":["rnb","soul"],"tracks":132,"albums":48,"link":"http://www.amywinehouse.com/","description":"британская певица и автор песен, известная своим контральто-вокалом и эксцентричным исполнением смеси музыкальных жанров, включая R&B, соул и джаз, признанная критиками одной из ведущих британских исполнительниц 2000-х годов.","cover":{"small":"http://avatars.yandex.net/get-music-content/340f2e49.p.6177/300x300","big":"http://avatars.yandex.net/get-music-content/340f2e49.p.6177/1000x1000"}},{"id":2913007,"name":"ONUKA","genres":["local-indie"],"tracks":24,"albums":8,"description":"украинская электро-фолк группа, созданная в 2013 году. Вокалистка - Наталия Жижченко.","cover":{"small":"http://avatars.yandex.net/get-music-content/4354cdf0.p.2913007/300x300","big":"http://avatars.yandex.net/get-music-content/4354cdf0.p.2913007/1000x1000"}},{"id":755316,"name":"Sophie Villy","genres":["local-indie"],"tracks":27,"albums":6,"description":"грузино-украинская певица, автор/исполнитель, композитор. Поёт на английском и грузинском языке. Автор саундтреков к французским, грузинским, американским фильмам.","cover":{"small":"http://avatars.yandex.net/get-music-content/f245f9e6.a.473646-1/300x300","big":"http://avatars.yandex.net/get-music-content/f245f9e6.a.473646-1/1000x1000"}},{"id":833264,"name":"АлоэВера","genres":["local-indie"],"tracks":32,"albums":6,"link":"http://aloeband.ru/","description":"музыкальная группа из Екатеринбурга, исполняющая музыку в стиле поп-рок","cover":{"small":"http://avatars.yandex.net/get-music-content/2627440b.a.643907-2/300x300","big":"http://avatars.yandex.net/get-music-content/2627440b.a.643907-2/1000x1000"}},{"id":41170,"name":"Самое большое простое число","genres":["local-indie"],"tracks":107,"albums":14,"link":"http://sbp4.bandcamp.com/","description":"российская IDM-группа, созданная Кириллом Ивановым и группой «Ёлочные игрушки».","cover":{"small":"http://avatars.yandex.net/get-music-content/4af0da92.p.41170/300x300","big":"http://avatars.yandex.net/get-music-content/4af0da92.p.41170/1000x1000"}},{"id":2566273,"name":"The Uchpochmack","genres":["rusrock"],"tracks":3,"albums":1,"description":"российская музыкальная группа, основана Земфирой Рамазановой и двумя её племянниками : Артёмом и Артуром Рамазановыми.","cover":{"small":"http://avatars.yandex.net/get-music-content/c1cb0c33.a.1681174-1/300x300","big":"http://avatars.yandex.net/get-music-content/c1cb0c33.a.1681174-1/1000x1000"}},{"id":359562,"name":"Сансара","genres":["rusrock"],"tracks":121,"albums":23,"link":"http://sansara.ru/","description":"российская группа из Екатеринбурга, играющая в стиле инди-рок. Лидер и автор большинства песен - вокалист Александр Гагарин.","cover":{"small":"http://avatars.yandex.net/get-music-content/f1bd9bfa.p.359562/300x300","big":"http://avatars.yandex.net/get-music-content/f1bd9bfa.p.359562/1000x1000"}},{"id":232864,"name":"NRKTK","genres":["alternative","rock","indie"],"tracks":53,"albums":7,"description":"российский музыкальный коллектив, образованный в Москве в 2007 году. По определению журнала Rolling Stone Russia, группа играет в жанре «на стыке синти-попа и абстрактного хип-хопа».","cover":{"small":"http://avatars.yandex.net/get-music-content/37cc8443.p.232864/300x300","big":"http://avatars.yandex.net/get-music-content/37cc8443.p.232864/1000x1000"}},{"id":359577,"name":"Мельница","genres":["folk","rusfolk"],"tracks":94,"albums":10,"link":"http://www.melnitsa.net/","description":"российская фолк-рок-группа из Москвы. Основана 15 октября 1999 года. Вокалистка и основной автор песен - Наталья О’Шей, выступающая под псевдонимом Хелависа.","cover":{"small":"http://avatars.yandex.net/get-music-content/48d7d484.p.359577/300x300","big":"http://avatars.yandex.net/get-music-content/48d7d484.p.359577/1000x1000"}},{"id":427825,"name":"Мара","genres":["rusrock"],"tracks":99,"albums":12,"link":"http://www.maramusic.ru/","description":"российская рок-певица, автор песен. Является автором нескольких песен из альбома «АтакА» певицы Линды, в том числе хита «Цепи и кольца».","cover":{"small":"http://avatars.yandex.net/get-music-content/16944a3c.p.427825/300x300","big":"http://avatars.yandex.net/get-music-content/16944a3c.p.427825/1000x1000"}},{"id":41123,"name":"Lumen","genres":["alternative"],"tracks":238,"albums":18,"link":"http://lumen.ws/","description":"российская рок-группа из Уфы, основанная в 1998 году.","cover":{"small":"http://avatars.yandex.net/get-music-content/6cddf7ca.p.41123/300x300","big":"http://avatars.yandex.net/get-music-content/6cddf7ca.p.41123/1000x1000"}},{"id":41094,"name":"Ундервуд","genres":["rusrock"],"tracks":99,"albums":11,"link":"http://www.undervud.ru/","description":"российская и украинская рок-группа, основанная в 1995 году в Симферополе. Активную творческую и концертную деятельность группа начала после переезда в Москву в 2000 г.","cover":{"small":"http://avatars.yandex.net/get-music-content/667bfdb6.p.41094/300x300","big":"http://avatars.yandex.net/get-music-content/667bfdb6.p.41094/1000x1000"}},{"id":421792,"name":"Белая Гвардия","genres":["rusrock"],"tracks":101,"albums":8,"link":"http://bgvmusic.ru/","description":"российская музыкальная группа из Москвы, созданная Зоей Ященко в 1993 году. По определению самих участников, стиль, в котором играет группа - «Сенти-Ментальный рок»: Этимология этого словосочетания следующая: ментальный - значит умственный, сентиментальный - чувственный.","cover":{"small":"http://avatars.yandex.net/get-music-content/fc26f1dd.a.2704781-1/300x300","big":"http://avatars.yandex.net/get-music-content/fc26f1dd.a.2704781-1/1000x1000"}},{"id":41062,"name":"Сурганова и Оркестр","genres":["rusrock"],"tracks":231,"albums":17,"link":"http://surganova.su/","description":"российская рок-группа. Основана в 2003 году в результате объединения творческих усилий Светланы Сургановой и музыкального коллектива «Север Комбо». Лидер коллектива Светлана Сурганова определяет жанр, в котором работает группа, как «VIP-Punk-Decadence». Основу репертуара группы составляют песни, написанные Светланой Сургановой. Также исполняется ряд композиций на стихи классических поэтов и современных авторов. Наиболее известные песни группы «Сурганова и Оркестр»: «Мураками», «Корабли», «Весна», «Ты», «Апрельская».","cover":{"small":"http://avatars.yandex.net/get-music-content/a2b56c1e.p.41062/300x300","big":"http://avatars.yandex.net/get-music-content/a2b56c1e.p.41062/1000x1000"}},{"id":41154,"name":"Кукрыниксы","genres":["rusrock"],"tracks":35,"albums":4,"link":"http://www.kukry.ru/","description":"российская рок-группа, основанная Алексеем Горшенёвым, младшим братом Михаила Горшенёва - лидера группы «Король и Шут». Название группы происходит от трио советских карикатуристов Кукрыниксы: Куприянов, Крылов и Николай Соколов.","cover":{"small":"http://avatars.yandex.net/get-music-content/a1786be7.p.41154/300x300","big":"http://avatars.yandex.net/get-music-content/a1786be7.p.41154/1000x1000"}},{"id":407253,"name":"Pompeya","genres":["pop"],"tracks":32,"albums":10,"link":"http://pompeya.com/","description":"российская музыкальная нью-вейв группа. Своим идейным вдохновением участники группы позиционируют музыку диско 70-х, поп-музыку 80-х и инди 90-х. Группа выступает с многочисленными музыкальными концертами в России и за рубежом. Дебютный сингл Check был записан в начале июня 2007 года и быстро завоевал широкую популярность. В 2007 году группа отмечена клубной премией «Золотая Горгулья».","cover":{"small":"http://avatars.yandex.net/get-music-content/e73034ee.p.407253/300x300","big":"http://avatars.yandex.net/get-music-content/e73034ee.p.407253/1000x1000"}},{"id":519182,"name":"Everything Is Made in China","genres":["local-indie"],"tracks":16,"albums":4,"description":"русская инди-рок-группа, созданная в 2005 году в Москве. Музыкальный стиль EIMIC имеет черты шугейза и пост-рока, индитроника и эмбиента. Мелодии EIMIC минималистичны, но благодаря богатому стилистическому оформлению при помощи вокальных, электронных и инструментальных семплов, эффектны. Анонсируя выступление группы, клуб Б1 Maximum характеризует Everything is made in China как «наиболее успешную отечественную попытку совместить концептуальность пост-рока с жанровой привлекательностью поп-рока», отмечая также, что «величавая красота и здоровая психоделичность сочетаются с отменными мелодиями и настоящим драйвом».","cover":{"small":"http://avatars.yandex.net/get-music-content/78d5d546.p.519182/300x300","big":"http://avatars.yandex.net/get-music-content/78d5d546.p.519182/1000x1000"}},{"id":1014281,"name":"Motorama","genres":["local-indie"],"tracks":35,"albums":7,"link":"http://wearemotorama.com/","description":"ростовская группа, исполняющая тви-поп и постпанк. За короткий срок она смогла получить широкую для независимой группы известность не только на территории России, но и за рубежом. В 2011 году motorama вместе с сайд-проектом «Утро» были номинированы на премию «Степной волк». Группа активно гастролирует как по России, так и по Европе.","cover":{"small":"http://avatars.yandex.net/get-music-content/916c628f.p.1014281/300x300","big":"http://avatars.yandex.net/get-music-content/916c628f.p.1014281/1000x1000"}},{"id":232871,"name":"Mujuice","genres":["electronics"],"tracks":43,"albums":9,"link":"http://www.mujuice.com/","description":"российский электронный музыкант, диджей, продюсер и исполнитель. Дизайнер-график. Участник Red Bull Music Academy 2010, фестиваля электронной музыки Sonar 2011, SXSW 2012","cover":{"small":"http://avatars.yandex.net/get-music-content/ae5741ef.p.232871/300x300","big":"http://avatars.yandex.net/get-music-content/ae5741ef.p.232871/1000x1000"}},{"id":1020218,"name":"Disclosure","genres":["electronics","rock","dubstep"],"tracks":101,"albums":32,"link":"http://disclosureofficial.com/","description":"британский дуэт, состоящий из двух братьев - Гая и Говарда Лоуренсов, исполняющий музыку в жанрах электроники и гэриджа. Музыканты родом из города Рейгейт, графство Суррей. Их дебютный альбом Settle, изданный 3 июня 2013 года, был номинирован на премию «Грэмми» в категории Лучший танцевальный/электронный альбом.","cover":{"small":"http://avatars.yandex.net/get-music-content/03c83948.a.1813877-1/300x300","big":"http://avatars.yandex.net/get-music-content/03c83948.a.1813877-1/1000x1000"}},{"id":13905,"name":"Daft Punk","genres":["electronics"],"tracks":149,"albums":31,"link":"http://www.daftpunk.com/","description":"французский музыкальный электронный дуэт, образованный в 1993 году Томой Бангальтером и Ги-Мануэлем де Омем-Кристо. Достигли значительного успеха к концу девяностых на волне движения хаус-музыки во Франции, создав собственное звучание, смешав элементы электро, хауса, диско и синтипопа.","cover":{"small":"http://avatars.yandex.net/get-music-content/f4d3317d.p.13905/300x300","big":"http://avatars.yandex.net/get-music-content/f4d3317d.p.13905/1000x1000"}},{"id":232865,"name":"Xuman","genres":["local-indie"],"tracks":31,"albums":14,"link":"http://www.xumanrecords.com/","description":"российская эпик-поп-группа из Москвы, созданная 11 мая 2009 года Сашей Хьюманом и Ильей Сосницким. За весь период существования группа претерпевала метаморфозы от электро-поп до инди-рок музыки, но в итоге сформулировала свой стиль к 2012 году, выпустив сингл «Play».","cover":{"small":"http://avatars.yandex.net/get-music-content/030e3115.p.232865/300x300","big":"http://avatars.yandex.net/get-music-content/030e3115.p.232865/1000x1000"}},{"id":146764,"name":"Jamiroquai","genres":["pop","trance","disco"],"tracks":203,"albums":54,"link":"http://jamiroquai.com/","description":"британская группа, одни из наиболее ярких представителей британского джаз-фанка и эйсид-джаза 90-х. За свою карьеру группа, которую возглавляет вокалист и автор песен Джей Кей, выпустила 8 альбомов, проданных тиражом более 30 миллионов копий, получила множество музыкальных наград, включая «Грэмми» и 4 награды MTV, а их альбом Travelling Without Moving попал в Книгу рекордов Гиннесса как самый продаваемый альбом в стиле фанк. Позднее музыка Jamiroquai стала охватывать много направлений, включая поп-фанк, диско, рок, регги, электронные направления и другие.","cover":{"small":"http://avatars.yandex.net/get-music-content/92b89b1c.p.146764/300x300","big":"http://avatars.yandex.net/get-music-content/92b89b1c.p.146764/1000x1000"}},{"id":16406,"name":"Franz Ferdinand","genres":["rock","indie"],"tracks":28,"albums":12,"link":"http://www.franzferdinand.com/","description":"британская инди-рок-группа, образованная в 2002 году в Глазго. В состав группы, не менявшийся с момента её основания, входят Алекс Капранос, Ник Маккарти, Боб Харди и Пол Томсон.","cover":{"small":"http://avatars.yandex.net/get-music-content/3cd9f756.p.16406/300x300","big":"http://avatars.yandex.net/get-music-content/3cd9f756.p.16406/1000x1000"}},{"id":29692,"name":"Kasabian","genres":["rock"],"tracks":91,"albums":26,"link":"http://www.kasabian.co.uk/","description":"британская рок-группа, образовавшаяся в 1997 году в Лестере, Англия, и исполняющая альтернативный рок с элементами брит-попа, паб-панк-рока, даба и клубной танцевальной музыки. Некоторое время - отчасти с подачи самого Ноэля Гэллахера - считалась «новыми Oasis». Многие считают Kasabian последователями Rolling Stones, которые летом 2006 пригласили их в свой тур.","cover":{"small":"http://avatars.yandex.net/get-music-content/18d9b371.p.29692/300x300","big":"http://avatars.yandex.net/get-music-content/18d9b371.p.29692/1000x1000"}},{"id":36830,"name":"Placebo","genres":["rock","alternative"],"tracks":54,"albums":14,"link":"http://placeboworld.co.uk/","description":"британская группа, исполняющая альтернативный рок. Сформирована в 1994 году двумя музыкантами Брайаном Молко и Стефаном Олсдалом. В сентябре 2013 года вышел 7-й студийный альбом группы - Loud Like Love.","cover":{"small":"http://avatars.yandex.net/get-music-content/36454a77.p.36830/300x300","big":"http://avatars.yandex.net/get-music-content/36454a77.p.36830/1000x1000"}},{"id":4457,"name":"Jack White","genres":["alternative","rock"],"tracks":42,"albums":17,"description":"американский рок-музыкант, певец, гитарист, автор песен, продюсер, мультиинструменталист, актёр, наибольшую известность получил как лидер группы The White Stripes. В 2003 году журнал Rolling Stone поместил Джека Уайта на 17-е место в списке «100 величайших гитаристов всех времён».","cover":{"small":"http://avatars.yandex.net/get-music-content/2474090f.p.4457/300x300","big":"http://avatars.yandex.net/get-music-content/2474090f.p.4457/1000x1000"}},{"id":31243,"name":"Miles Kane","genres":["indie","rap"],"tracks":45,"albums":11,"description":"английский музыкант, бывший участник группы The Rascals. Ныне сольный исполнитель и второй участник проекта The Last Shadow Puppets. Его дебютный сольный альбом Colour of the Trap был выпущен 9 мая 2011, после которого, 3 июня 2013 года, в свет вышел Don't Forget Who You Are.","cover":{"small":"http://avatars.yandex.net/get-music-content/8cf49090.a.1767547-1/300x300","big":"http://avatars.yandex.net/get-music-content/8cf49090.a.1767547-1/1000x1000"}},{"id":11107,"name":"The Strokes","genres":["rock","alternative"],"tracks":60,"albums":8,"link":"http://www.thestrokes.com","description":"американская инди-рок-группа, образованная в 1998 году в Нью-Йорке. Музыка коллектива относится к направлениям: гаражный рок, постпанк, инди-рок.","cover":{"small":"http://avatars.yandex.net/get-music-content/8e93c577.a.1068722-1/300x300","big":"http://avatars.yandex.net/get-music-content/8e93c577.a.1068722-1/1000x1000"}},{"id":167401,"name":"Алиса","genres":["rusrock"],"tracks":357,"albums":27,"link":"http://www.alisa.net/","description":"советская и российская рок-группа, образованная в 1983 году в Ленинграде. Одна из самых популярных отечественных рок-групп России и СССР. Лидер и автор большинства песен «Алисы» - вокалист Константин Кинчев.","cover":{"small":"http://avatars.yandex.net/get-music-content/73541935.p.167401/300x300","big":"http://avatars.yandex.net/get-music-content/73541935.p.167401/1000x1000"}},{"id":168852,"name":"Сергей Шнуров","genres":["rusrock"],"tracks":45,"albums":10,"link":"http://www.sosimc.ru/","description":"российский рок-музыкант, актёр, телеведущий, художник и композитор, лидер групп «Ленинград» и «Рубль». О Шнурове снята документальная лента с говорящим названием «Он ругается матом», а также немецко-русская картина «Мужчина, который поёт».","cover":{"small":"http://avatars.yandex.net/get-music-content/e40dff9b.p.168852/300x300","big":"http://avatars.yandex.net/get-music-content/e40dff9b.p.168852/1000x1000"}},{"id":168854,"name":"Рубль","genres":["rusrock"],"tracks":25,"albums":1,"link":"http://www.ru-bl.ru/","description":"рок-группа из Санкт-Петербурга, музыкальный проект солиста группы «Ленинград» Сергея Шнурова.","cover":{"small":"http://avatars.yandex.net/get-music-content/119d5f57.p.168854/300x300","big":"http://avatars.yandex.net/get-music-content/119d5f57.p.168854/1000x1000"}},{"id":3123,"name":"Brian May","genres":["rock","pop","soundtrack"],"tracks":59,"albums":29,"description":"британский рок-музыкант, гитарист группы Queen, автор многих хитов группы. Командор Ордена Британской империи, учёный-астрофизик. Женат на актрисе Аните Добсон.","cover":{"small":"http://avatars.yandex.net/get-music-content/35032352.a.1184315-1/300x300","big":"http://avatars.yandex.net/get-music-content/35032352.a.1184315-1/1000x1000"}},{"id":3122,"name":"Roger Taylor","genres":["rock","pop"],"tracks":155,"albums":12,"description":"британский барабанщик, мульти-инструменталист, автор песен, композитор, певец. Наиболее знаменит как участник группы Queen и солист The Cross. Как барабанщик широко известен своим «объёмным» уникальным звучанием и считается одним из самых влиятельных рок-ударников 1970-х и 80-х годов.","cover":{"small":"http://avatars.yandex.net/get-music-content/880a5cda.a.1707438-1/300x300","big":"http://avatars.yandex.net/get-music-content/880a5cda.a.1707438-1/1000x1000"}},{"id":6920,"name":"Deep Purple","genres":["rock"],"tracks":822,"albums":121,"link":"http://www.deeppurple.com/","description":"британская рок-группа, образованная в феврале 1968 года в Хартфорде, Англия, и считающаяся одной из самых заметных и влиятельных в хард-роке 1970-х годов. Музыкальные критики считают Deep Purple одними из основателей хард-рока и высоко оценивают их вклад в развитие прогрессивного рока и хеви-метала. Музыканты «классического» состава Deep Purple считаются инструменталистами-виртуозами. В мире продано более 100 миллионов копий их альбомов.","cover":{"small":"http://avatars.yandex.net/get-music-content/41c356ed.p.6920/300x300","big":"http://avatars.yandex.net/get-music-content/41c356ed.p.6920/1000x1000"}},{"id":90,"name":"Scorpions","genres":["rock"],"tracks":341,"albums":59,"link":"http://www.the-scorpions.com","description":"немецкая англоязычная рок-группа, основанная в 1965 году в Ганновере. Для стиля группы характерны как классический хард-рок, так и лирические гитарные баллады. Scorpions является самой популярной рок-группой Германии и одной из самых известных групп на мировой рок-сцене, продавшей более 100 миллионов копий альбомов.","cover":{"small":"http://avatars.yandex.net/get-music-content/a1fb7dc4.p.90/300x300","big":"http://avatars.yandex.net/get-music-content/a1fb7dc4.p.90/1000x1000"}},{"id":6601,"name":"The Rolling Stones","genres":["rock","blues"],"tracks":812,"albums":85,"link":"http://www.rollingstones.com/","description":"британская рок-группа, образовавшаяся 12 июля 1962 года и многие годы соперничавшая по популярности с The Beatles. The Rolling Stones, ставшие важной частью Британского вторжения, считаются одной из самых влиятельных и успешных групп в истории рока. The Rolling Stones, которые по замыслу менеджера Эндрю Луга Олдэма должны были стать «бунтарской» альтернативой The Beatles, уже в 1969 году в ходе американского турне рекламировались как «величайшая рок-н-ролльная группа в мире» и, сумели сохранить этот статус по сей день.","cover":{"small":"http://avatars.yandex.net/get-music-content/20261416.p.6601/300x300","big":"http://avatars.yandex.net/get-music-content/20261416.p.6601/1000x1000"}},{"id":489738,"name":"B.May","genres":["pop"],"tracks":6,"albums":3,"description":"британский рок-музыкант, гитарист группы Queen, автор многих хитов группы. Командор Ордена Британской империи, учёный-астрофизик. Женат на актрисе Аните Добсон.","cover":{"small":"http://avatars.yandex.net/get-music-content/6c077ab9.a.654418-1/300x300","big":"http://avatars.yandex.net/get-music-content/6c077ab9.a.654418-1/1000x1000"}},{"id":1415,"name":"Keith Richards","genres":["alternative","rock"],"tracks":95,"albums":39,"link":"http://www.keithrichards.com/","description":"британский гитарист и автор песен, вместе с Миком Джаггером составляющий неизменный костяк рок-группы The Rolling Stones.","cover":{"small":"http://avatars.yandex.net/get-music-content/99fb0a6a.p.1415/300x300","big":"http://avatars.yandex.net/get-music-content/99fb0a6a.p.1415/1000x1000"}},{"id":1424,"name":"Mick Jagger","genres":["rock"],"tracks":114,"albums":40,"description":"британский рок-музыкант, актёр, продюсер, вокалист рок-группы The Rolling Stones.","cover":{"small":"http://avatars.yandex.net/get-music-content/2025c1f7.p.1424/300x300","big":"http://avatars.yandex.net/get-music-content/2025c1f7.p.1424/1000x1000"}},{"id":68227,"name":"Led Zeppelin","genres":["rock"],"tracks":316,"albums":19,"link":"http://www.ledzeppelin.com/","description":"британская рок-группа, образовавшаяся в сентябре 1968 года в Лондоне, Англия, и признанная одной из самых успешных, новаторских и влиятельных в современной истории. Создав собственное звучание, Led Zeppelin стали одной из ведущих групп хард-рока, сыграли основополагающую роль в становлении хэви метал, свободно интерпретируя фолк- и блюз-классику и обогащая стиль элементами других музыкальных жанров. Именно Led Zeppelin, отказавшись от выпуска синглов, заложили основу понятия «альбомный рок».","cover":{"small":"http://avatars.yandex.net/get-music-content/d1133dd2.p.68227/300x300","big":"http://avatars.yandex.net/get-music-content/d1133dd2.p.68227/1000x1000"}},{"id":168372,"name":"Кипелов","genres":["metal"],"tracks":97,"albums":11,"link":"http://www.kipelov.ru/","description":"российская рок-группа под руководством Валерия Кипелова, играющая в стиле хэви-метал. Лауреат премии MTV Russia Music Awards 2004 года как лучший рок-проект.","cover":{"small":"http://avatars.yandex.net/get-music-content/49b74070.p.168372/300x300","big":"http://avatars.yandex.net/get-music-content/49b74070.p.168372/1000x1000"}},{"id":41052,"name":"Король и Шут","genres":["punk"],"tracks":59,"albums":6,"link":"http://www.korol-i-shut.ru/","description":"российская хоррор-панк-группа из Санкт-Петербурга. Группа была образована в Ленинграде в 1988 году и прекратила своё существование в 2014 году в связи со смертью её лидера и основателя Михаила Горшенёва 19 июля 2013 года.","cover":{"small":"http://avatars.yandex.net/get-music-content/24e096f6.p.41052/300x300","big":"http://avatars.yandex.net/get-music-content/24e096f6.p.41052/1000x1000"}},{"id":168373,"name":"Сергей Маврин","genres":["metal","prog","rock"],"tracks":152,"albums":15,"link":"http://mavrick.ru/","description":"советский и российский рок-музыкант, гитарист-виртуоз, автор песен. Участник групп «Чёрный кофе», «Металлаккорд», «Ария» и «Кипелов», основатель и лидер группы «Маврин», играющей в жанре хеви-метал.","cover":{"small":"http://avatars.yandex.net/get-music-content/250d61ba.p.168373/300x300","big":"http://avatars.yandex.net/get-music-content/250d61ba.p.168373/1000x1000"}},{"id":170660,"name":"Эпидемия","genres":["metal"],"tracks":94,"albums":7,"link":"http://epidemia.ru/","description":"российская пауэр-метал-группа, основанная в 1993 году, наиболее известна своими метал-операми. Выступает на крупнейших рок-фестивалях страны.","cover":{"small":"http://avatars.yandex.net/get-music-content/229fce9d.p.170660/300x300","big":"http://avatars.yandex.net/get-music-content/229fce9d.p.170660/1000x1000"}},{"id":164354,"name":"Ария","genres":["metal","rock","videogame"],"tracks":258,"albums":23,"link":"http://www.aria.ru/","description":"советская и российская хеви-метал группа. «Ария» является одной из старейших и самых успешных рок-групп России, при этом это одна из немногих российских групп, достигших серьёзного коммерческого и творческого успехов и популярности за пределами поклонников хэви-метала. Лауреат премии Fuzz 2007 года как лучшая live-группа. Её бывшими участниками были образованы многие другие известные группы, которые вместе составляют плеяду, называемую «семейка Арии».","cover":{"small":"http://avatars.yandex.net/get-music-content/152d5227.p.164354/300x300","big":"http://avatars.yandex.net/get-music-content/152d5227.p.164354/1000x1000"}},{"id":359598,"name":"Чёрный Обелиск","genres":["metal"],"tracks":225,"albums":20,"link":"http://blackobelisk.ru/","description":"советская и российская рок-группа, существовавшая в период 1986-1988 и 1990-1997 годов под лидерством бас-гитариста, вокалиста, автора текстов и музыки Анатолия Крупнова, а после его смерти коллектив был реорганизован в 1999 году несколькими бывшими участниками.","cover":{"small":"http://avatars.yandex.net/get-music-content/90979ff4.a.2761048-1/300x300","big":"http://avatars.yandex.net/get-music-content/90979ff4.a.2761048-1/1000x1000"}},{"id":213255,"name":"Чёрный кофе","genres":["metal","rock"],"tracks":76,"albums":11,"link":"http://varshavskiy.ru/","description":"советская и российская рок-группа. Основатель, автор почти всей музыки и части текстов песен, гитарист и вокалист Дмитрий Варшавский.","cover":{"small":"http://avatars.yandex.net/get-music-content/e38d1b86.p.213255/300x300","big":"http://avatars.yandex.net/get-music-content/e38d1b86.p.213255/1000x1000"}},{"id":359599,"name":"Мастер","genres":["metal"],"tracks":175,"albums":14,"link":"http://master-rockgroup.com/","description":"советская и российская рок-группа, играющая в стилях трэш-метал и хэви-метал. Является одной из «корневых» и наиболее успешных групп на отечественной метал-сцене. Основатели - Алик Грановский и Андрей Большаков.","cover":{"small":"http://avatars.yandex.net/get-music-content/e0597ee8.p.359599/300x300","big":"http://avatars.yandex.net/get-music-content/e0597ee8.p.359599/1000x1000"}},{"id":359627,"name":"Артерия","genres":["metal"],"tracks":21,"albums":2,"link":"http://artteria.ru/","description":"музыкальный проект экс-гитариста групп «Ария» и «Кипелов» Сергея Терентьева, существующий с 2003 года. Исполняют музыку в стиле хеви-метал.","cover":{"small":"http://avatars.yandex.net/get-music-content/6b8ee276.p.359627/300x300","big":"http://avatars.yandex.net/get-music-content/6b8ee276.p.359627/1000x1000"}},{"id":6371,"name":"Tarja Turunen","genres":["rock","metal","pop"],"tracks":160,"albums":17,"link":"http://www.tarjaturunen.com","description":"финская рок-певица, пианистка, композитор, бывшая вокалистка симфо-метал-группы Nightwish. В мае 2003 года Тарья сообщила, что несколько месяцев назад сочеталась браком с аргентинским бизнесменом, владельцем звукозаписывающей компании NEMS Enterprises, продюсером и менеджером Nightwish в Южной Америке, Марсело Кабули.","cover":{"small":"http://avatars.yandex.net/get-music-content/81bff503.p.6371/300x300","big":"http://avatars.yandex.net/get-music-content/81bff503.p.6371/1000x1000"}},{"id":73216,"name":"Within Temptation","genres":["metal"],"tracks":182,"albums":28,"link":"http://www.within-temptation.com/","description":"нидерландская симфоник-метал-группа. Группа была основана в 1996 году гитаристом Робертом Вестерхольтом и вокалисткой Шарон ден Адель. Музыкальный стиль Within Temptation определяют как симфоник-метал и готик-метал, в то время, как сама Шарон ден Адель считает, что Within Temptation работают в жанре симфоник-рок с разными влияниями и не являются готик-группой.","cover":{"small":"http://avatars.yandex.net/get-music-content/9d443d37.p.73216/300x300","big":"http://avatars.yandex.net/get-music-content/9d443d37.p.73216/1000x1000"}},{"id":222057,"name":"Epica","genres":["metal"],"tracks":149,"albums":18,"link":"http://www.epica.nl/","description":"голландская группа, играющая музыку в стиле симфоник-метал. Визитной карточкой Epica являются женский вокал в сочетании с мужским гроулингом, свойственным дэт-металу, так называемая формула «красавица и чудовище». Также в группе используется струнный оркестр и хор. Была образована в 2003 году гитаристом и вокалистом Марком Янсеном после его ухода из After Forever.","cover":{"small":"http://avatars.yandex.net/get-music-content/d6aaf2f0.p.222057/300x300","big":"http://avatars.yandex.net/get-music-content/d6aaf2f0.p.222057/1000x1000"}},{"id":10900,"name":"Tuomas Holopainen","genres":["metal"],"tracks":13,"albums":2,"description":"лидер и создатель финской симфоник-метал-группы Nightwish. Туомас занимается написанием стихов и мелодий песен, играет на клавишных. Помимо Nightwish Холопайнен имеет отношение к творчеству следующих групп: For My Pain…, Dismal Silence, Furthest Shore, Kotiteollisuus, Nattvindens Gråt, Sethian, Timo Rautiainen & Trio Niskalaukaus, Darkwoods My Betrothed.","cover":{"small":"http://avatars.yandex.net/get-music-content/75778aa4.a.1940108-1/300x300","big":"http://avatars.yandex.net/get-music-content/75778aa4.a.1940108-1/1000x1000"}},{"id":32526,"name":"Sonata Arctica","genres":["metal","rock"],"tracks":119,"albums":16,"link":"http://www.sonataarctica.info/","description":"финская англоязычная пауэр-метал-группа, образованная в 1996 году. Группа выпустила восемь студийных альбомов.","cover":{"small":"http://avatars.yandex.net/get-music-content/da6df6ef.p.32526/300x300","big":"http://avatars.yandex.net/get-music-content/da6df6ef.p.32526/1000x1000"}},{"id":11171,"name":"Apocalyptica","genres":["metal"],"tracks":94,"albums":23,"link":"http://www.apocalyptica.com","description":"финская группа, исполняющая метал на виолончелях. В состав группы входят 3 виолончелиста и барабанщик. Первоначально прославившись инструментальными кавер-версиями композиций известных трэш-метал-групп, в дальнейшем Apocalyptica начала выпускать материал собственного сочинения.","cover":{"small":"http://avatars.yandex.net/get-music-content/0d3ab200.p.11171/300x300","big":"http://avatars.yandex.net/get-music-content/0d3ab200.p.11171/1000x1000"}},{"id":303416,"name":"Sirenia","genres":["metal","rock"],"tracks":61,"albums":11,"link":"http://www.sirenia.no/","description":"норвежский готик-метал-проект, основанный Мортеном Веландом в 2001 году после ухода из Tristania. В новом проекте Мортен является бессменным участником и идейным лидером, продолжая писать тексты и музыку. Более того, он исполняет практически все музыкальные партии в выпускаемых альбомах. Для их записи используется большое число гитар: бас-гитара, акустическая гитара, электрогитара, шести-, семи- и двенадцатиструнные гитары, а также барабаны, синтезатор, фортепиано и скрипка. Характерная черта проекта - женский вокал со вставками хоровых пений, гроулинга и чистого мужского вокала...","cover":{"small":"http://avatars.yandex.net/get-music-content/beb89b26.p.303416/300x300","big":"http://avatars.yandex.net/get-music-content/beb89b26.p.303416/1000x1000"}},{"id":294287,"name":"After Forever","genres":["metal"],"tracks":12,"albums":1,"description":"голландская группа, игравшая музыку в жанре симфоник-метал. After Forever использовали женский оперный вокал - сопрано, клавишные и оркестровые аранжировки. Марк Янсен, один из основателей группы, покинувший её в 2002 году, основал аналогичный по жанру проект Epica.","cover":{"small":"http://avatars.yandex.net/get-music-content/874ac2b6.a.119384-1/300x300","big":"http://avatars.yandex.net/get-music-content/874ac2b6.a.119384-1/1000x1000"}},{"id":424256,"name":"Amaranthe","genres":["metal"],"tracks":47,"albums":9,"link":"http://www.amaranthe.se/","description":"шведско-датская модерн метал-группа, основанная в 2008 году Джейком Е. Люндбергом и Олофом Мёрком. Проект начал складываться, когда к группе присоединились вокалисты Элиз Рид и Энди Сульвестрём, а также ударник Мортен Лёве. После выхода первого демо-альбома состав коллектива пополнил басист Юхан Андреассен.","cover":{"small":"http://avatars.yandex.net/get-music-content/88818825.a.2289181-1/300x300","big":"http://avatars.yandex.net/get-music-content/88818825.a.2289181-1/1000x1000"}},{"id":84852,"name":"Blind Guardian","genres":["metal"],"tracks":187,"albums":23,"link":"http://www.blind-guardian.com/","description":"немецкая метал-группа, образованная в 1984 году в городе Крефельд. Тексты группы, написанные вокалистом Ханси Кюршем, основаны на сюжетах из фантастических произведений: книг Джона Толкина, Майкла Муркока, Стивена Кинга, а также легендах и мифах разных народов.","cover":{"small":"http://avatars.yandex.net/get-music-content/69fdb93a.p.84852/300x300","big":"http://avatars.yandex.net/get-music-content/69fdb93a.p.84852/1000x1000"}},{"id":64049,"name":"Stone Sour","genres":["metal","alternative","rock"],"tracks":97,"albums":15,"link":"http://www.stonesour.com/","description":"американская рок-группа, играющая в жанре альтернативный метал. Её основатели - Кори Тейлор, ставший знаменитым как вокалист группы Slipknot, а также барабанщик Джоел Экман. Название группы происходит от алкогольного коктейля, состоящего из виски, апельсинового сока и так называемого sour mix’а.","cover":{"small":"http://avatars.yandex.net/get-music-content/5ab68dce.p.64049/300x300","big":"http://avatars.yandex.net/get-music-content/5ab68dce.p.64049/1000x1000"}},{"id":89882,"name":"Korn","genres":["metal"],"tracks":280,"albums":39,"link":"http://www.korn.com/","description":"американская мультиплатиновая рок-группа из Бейкерсфилда, штат Калифорния. Фактически они являются основателями жанра ню-метал.","cover":{"small":"http://avatars.yandex.net/get-music-content/096f3ba6.p.89882/300x300","big":"http://avatars.yandex.net/get-music-content/096f3ba6.p.89882/1000x1000"}},{"id":48827,"name":"Disturbed","genres":["alternative","rock"],"tracks":159,"albums":21,"link":"http://www.disturbed1.com/","description":"американская рок-группа, исполняющая музыку в стиле альтернативный метал с элементами прочих направлений, как ню-метал и хард-рок. Группа была образована в городе Чикаго, штат Иллинойс, музыкантами Дэном Дониганом, Стивом Кмаком, Майком Венгреном и Дэвидом Дрейманом. С момента формирования группы они продали около тридцати миллионов копий альбомов во всем мире и выпустили шесть студийных альбомов, которые сделали их одной из самых успешных рок-групп за последние годы.","cover":{"small":"http://avatars.yandex.net/get-music-content/61c6ceb5.p.48827/300x300","big":"http://avatars.yandex.net/get-music-content/61c6ceb5.p.48827/1000x1000"}},{"id":48198,"name":"Corey Taylor","genres":["reggae"],"tracks":10,"albums":10,"description":"американский певец, более известный как фронтмен и вокалист групп Slipknot и Stone Sour. Кори Тейлор основал группу Stone Sour, которая на данный момент выпустила пять студийных альбомов.","cover":{"small":"http://avatars.yandex.net/get-music-content/33090a8c.a.1084666-2/300x300","big":"http://avatars.yandex.net/get-music-content/33090a8c.a.1084666-2/1000x1000"}},{"id":9278,"name":"Limp Bizkit","genres":["alternative","rock"],"tracks":117,"albums":28,"link":"http://www.limpbizkit.com/","description":"американская ню-метал/рэп-рок-группа, образованная в 1994 году в городе Джэксонвилл, штат Флорида. В нынешний состав коллектива входят Фред Дёрст, Уэс Борланд, Сэм Риверс и Джон Отто. На концертных выступлениях также участвует DJ Skeletor. Limp Bizkit стали известны жёсткой тематикой песен, агрессивной манерой исполнения Фреда Дёрста, звуковыми экспериментами и устрашающим сценическим образом Уэса Борланда, а также детально разработанными и эффектными концертными выступлениями. Группа трижды номинировалась на премию «Грэмми» и продала более 40 миллионов копий альбомов по всему миру.","cover":{"small":"http://avatars.yandex.net/get-music-content/8f68589f.p.9278/300x300","big":"http://avatars.yandex.net/get-music-content/8f68589f.p.9278/1000x1000"}},{"id":5130,"name":"Papa Roach","genres":["alternative","rock"],"tracks":128,"albums":21,"link":"http://www.paparoach.com/","description":"американская рок-группа из города Вакавилль, штат Калифорния, образованная в 1993 году. Обрела мировую известность благодаря своему дебютному мэйджор-альбому Infest. К настоящему моменту группа выпустила 8 мини-альбомов, 1 концертный альбом и 8 студийных альбомов, последний из которых, F.E.A.R., был выпущен 26 января 2015 года.","cover":{"small":"http://avatars.yandex.net/get-music-content/9887c15b.p.5130/300x300","big":"http://avatars.yandex.net/get-music-content/9887c15b.p.5130/1000x1000"}},{"id":1404,"name":"Marilyn Manson","genres":["industrial"],"tracks":235,"albums":57,"link":"http://marilynmanson.com/","description":"американская рок-группа, известная своим вызывающим имиджем, достигшая огромного успеха: 4 альбома были удостоены звания мультиплатинового, 5 золотых альбомов, 1 золотой сборник, 1 золотой видео-альбом и 7 альбомов группы попали в топ 10, включая два альбома номер один. VH1 поставили Marilyn Manson на 78 место лучших рок-групп в рейтинге «100 Great Artists of Hard Rock». Marilyn Manson признаны номером 723 в рамке великих артистов всего времени.","cover":{"small":"http://avatars.yandex.net/get-music-content/0e0123aa.p.1404/300x300","big":"http://avatars.yandex.net/get-music-content/0e0123aa.p.1404/1000x1000"}},{"id":749174,"name":"Brian Welch","genres":["rock"],"tracks":23,"albums":6,"description":"гитарист и один из основателей группы Korn, рок-группы, значительно повлиявшей на развитие стиля ню-метал. Уэлч также исполняет обязанности бэк-вокалиста. Известен своими необычайно агрессивными и тяжелыми риффами, повлиявшими на развитие альтернативной музыки второй половины девяностых.","cover":{"small":"http://avatars.yandex.net/get-music-content/c937cbfd.a.760154-1/300x300","big":"http://avatars.yandex.net/get-music-content/c937cbfd.a.760154-1/1000x1000"}},{"id":20959,"name":"Jonathan Davis","genres":["videogame","soundtrack","trance"],"tracks":61,"albums":8,"description":"вокалист американской мультиплатиновой ню-метал-группы Korn.","cover":{"small":"http://avatars.yandex.net/get-music-content/e6908346.a.1696309-1/300x300","big":"http://avatars.yandex.net/get-music-content/e6908346.a.1696309-1/1000x1000"}},{"id":67437,"name":"System Of A Down","genres":["alternative","rock"],"tracks":78,"albums":19,"link":"http://systemofadown.com/","description":"американская рок-группа, образованная в 1992 году в Лос-Анджелесе Сержем Танкяном и Дароном Малакяном под названием Soil, а в 1995 принявшая нынешнее название. Все участники группы имеют армянское происхождение. В период с 1998 по 2005 год группа выпустила пять студийных альбомов, каждый из которых стал платиновым, общим тиражом свыше 12 миллионов экземпляров. В 2006 году участники System of a Down решили временно приостановить совместную деятельность и заняться сольными проектами. 29 ноября 2010 года группа объявила о воссоединении и проведении европейского турне в 2011 году. Изначально группа должна была называться «Victims of the Down» - по стихотворению, написанному Дароном Малакяном...","cover":{"small":"http://avatars.yandex.net/get-music-content/ada8f733.p.67437/300x300","big":"http://avatars.yandex.net/get-music-content/ada8f733.p.67437/1000x1000"}},{"id":10899,"name":"Nightwish","genres":["metal"],"tracks":103,"albums":17,"link":"http://www.nightwish.com","description":"финская метал-группа, исполняющая песни преимущественно на английском языке. Была образована Туомасом Холопайненом в 1996 году в городе Китеэ. Раннее творчество Nightwish отличалось сочетанием женского оперного вокала бывшей вокалистки Тарьи Турунен, клавишно-симфонической аранжировки и тяжёлой гитарной основы пауэр-метала. Этот стиль чаще всего определяют как пауэр-метал и симфоник-метал.","cover":{"small":"http://avatars.yandex.net/get-music-content/ced92940.p.10899/300x300","big":"http://avatars.yandex.net/get-music-content/ced92940.p.10899/1000x1000"}},{"id":48491,"name":"Delain","genres":["rock","metal"],"tracks":53,"albums":4,"link":"http://www.delain.nl/","description":"нидерландская группа, исполняющая музыку в стиле симфоник-метал. Группа была основана бывшим клавишником группы Within Temptation Мартейном Вестерхольтом.","cover":{"small":"http://avatars.yandex.net/get-music-content/6231dd37.a.3264917-1/300x300","big":"http://avatars.yandex.net/get-music-content/6231dd37.a.3264917-1/1000x1000"}},{"id":110173,"name":"Evanescence","genres":["alternative"],"tracks":60,"albums":11,"link":"http://www.evanescence.com/","description":"американская рок-группа, основанная в 1995 году вокалисткой Эми Ли и гитаристом Беном Муди. Группа добилась большой популярности в начале 2003 года с выходом альбома Fallen, разошедшегося тиражом около 15 миллионов копий и принёсшего группе две премии «Грэмми».","cover":{"small":"http://avatars.yandex.net/get-music-content/e07c415d.a.33097-1/300x300","big":"http://avatars.yandex.net/get-music-content/e07c415d.a.33097-1/1000x1000"}},{"id":45727,"name":"Mike Shinoda","genres":[],"tracks":28,"albums":5,"description":"вокалист, гитарист, клавишник, MC и один из основателей группы Linkin Park, а также художник, дизайнер-график. Является основателем сольного проекта Fort Minor, в котором приняли участие другие известные исполнители, такие как Tariq «Black Thought» Trotter из The Roots, нью-соул-исполнитель Джон Ледженд и многие другие.","cover":{"small":"http://avatars.yandex.net/get-music-content/935f5bde.a.2397228-1/300x300","big":"http://avatars.yandex.net/get-music-content/935f5bde.a.2397228-1/1000x1000"}},{"id":49069,"name":"Chester Bennington","genres":[],"tracks":30,"albums":4,"description":"американский музыкант, вокалист групп Grey Daze, Linkin Park, Dead by Sunrise и Stone Temple Pilots.","cover":{"small":"http://avatars.yandex.net/get-music-content/935f5bde.a.2397228-1/300x300","big":"http://avatars.yandex.net/get-music-content/935f5bde.a.2397228-1/1000x1000"}},{"id":49258,"name":"Skillet","genres":["alternative","rock"],"tracks":159,"albums":24,"link":"http://www.skillet.com/","description":"христианская рок-группа из города Мемфис, штат Теннесси, основанная в 1996 году. На данный момент группой выпущено восемь студийных альбомов, один EP и два концертных альбома.","cover":{"small":"http://avatars.yandex.net/get-music-content/be962027.a.2259369-1/300x300","big":"http://avatars.yandex.net/get-music-content/be962027.a.2259369-1/1000x1000"}},{"id":48742,"name":"Fort Minor","genres":["rap","alternative","pop"],"tracks":56,"albums":7,"description":"сольный проект Майка Шиноды, MC-вокалиста группы Linkin Park, основанный в 2004 году. Дебютный альбом «The Rising Tied» вышел 22 ноября 2005 года. Несмотря на то, что Fort Minor считается сольным проектом Шиноды, очень часто в песнях, на концертах и на фотосессиях присутствует группа Styles of Beyond. В 2005 году альбом занял 51 место в чарте Billboard 200 и 142 в UK Albums Chart. В 2006 году 4-й сингл Where’d You Go занял 4 место в чарте Billboard Hot 100.","cover":{"small":"http://avatars.yandex.net/get-music-content/d8f12f30.a.38104-1/300x300","big":"http://avatars.yandex.net/get-music-content/d8f12f30.a.38104-1/1000x1000"}},{"id":92178,"name":"30 Seconds To Mars","genres":["alternative"],"tracks":72,"albums":17,"link":"http://www.thirtysecondstomars.com/","description":"американская рок-группа из Лос-Анджелеса, штат Калифорния, исполняющая альтернативный рок. Основана в 1998 году братьями Джаредом и Шенноном Лето. Название группы было взято участниками из статьи бывшего гарвардского профессора, где шла речь о технологическом прогрессе, в результате которого человечество в буквальном смысле слова окажется вскоре «в тридцати секундах от Марса».","cover":{"small":"http://avatars.yandex.net/get-music-content/7da872d1.p.92178/300x300","big":"http://avatars.yandex.net/get-music-content/7da872d1.p.92178/1000x1000"}},{"id":125760,"name":"Dead By Sunrise","genres":["rock"],"tracks":18,"albums":3,"link":"https://www.facebook.com/DeadBySunrise","description":"сольный проект вокалиста рок-группы Linkin Park Честера Беннингтона, основанный в 2006 году. В группе также участвуют Амир Дерак, Райан Шак, Брандон Белски, Элиас Андра, Энтони Валкич. Их дебютный альбом Out of Ashes вышел 13 октября 2009 года. В Японии вышел ранее - 30 сентября того же года.","cover":{"small":"http://avatars.yandex.net/get-music-content/fa2faefb.a.45182-1/300x300","big":"http://avatars.yandex.net/get-music-content/fa2faefb.a.45182-1/1000x1000"}},{"id":9276,"name":"John Otto","genres":["jazz"],"tracks":15,"albums":2,"description":"барабанщик и один из основателей американской нью-метал группы «Limp Bizkit».","cover":{"small":"http://avatars.yandex.net/get-music-content/39ccdd8a.a.1049234-1/300x300","big":"http://avatars.yandex.net/get-music-content/39ccdd8a.a.1049234-1/1000x1000"}},{"id":671,"name":"Coldplay","genres":["rock"],"tracks":191,"albums":69,"link":"http://coldplay.com/","description":"британская рок-группа. Начав играть в январе 1998 года, настоящего успеха в мире Coldplay добились только в 2000 году, после выхода их второго сингла «Yellow» из альбома Parachutes, ворвавшегося на вершины всех чартов Великобритании и Соединённых Штатов Америки. Альбомы Coldplay разошлись тиражом более 80 миллионов экземпляров.","cover":{"small":"http://avatars.yandex.net/get-music-content/f3a0e93f.p.671/300x300","big":"http://avatars.yandex.net/get-music-content/f3a0e93f.p.671/1000x1000"}},{"id":762678,"name":"Dan Reynolds","genres":["conjazz","folk"],"tracks":26,"albums":6,"description":"американский музыкант и фронтмен рок-группы Imagine Dragons.","cover":{"small":"http://avatars.yandex.net/get-music-content/850aacd3.a.1644189-1/300x300","big":"http://avatars.yandex.net/get-music-content/850aacd3.a.1644189-1/1000x1000"}},{"id":646102,"name":"Of Monsters And Men","genres":["indie"],"tracks":28,"albums":6,"link":"http://www.ofmonstersandmen.com/","description":"инди-фолк-группа из Исландии.","cover":{"small":"http://avatars.yandex.net/get-music-content/ab60b7b7.p.646102/300x300","big":"http://avatars.yandex.net/get-music-content/ab60b7b7.p.646102/1000x1000"}},{"id":17955,"name":"Dave Grohl","genres":["rock"],"tracks":21,"albums":3,"description":"американский рок-музыкант и автор песен. Наиболее известен как барабанщик рок-группы Nirvana c 1990 года до её распада в 1994 году и как гитарист-вокалист собственной группы Foo Fighters, которая к 2014 году выпустила восемь коммерчески успешных альбомов.","cover":{"small":"http://avatars.yandex.net/get-music-content/73cc366b.a.763956-1/300x300","big":"http://avatars.yandex.net/get-music-content/73cc366b.a.763956-1/1000x1000"}},{"id":17956,"name":"Kurt Cobain","genres":["rock"],"tracks":33,"albums":2,"description":"автор песен, музыкант и художник, наиболее известный как вокалист и гитарист американской рок-группы Nirvana, исполнявшей гранж.","cover":{"small":"http://avatars.yandex.net/get-music-content/2b43ce21.p.17956/300x300","big":"http://avatars.yandex.net/get-music-content/2b43ce21.p.17956/1000x1000"}},{"id":17958,"name":"Krist Novoselic","genres":["rock"],"tracks":11,"albums":2,"description":"американский музыкант, бывший бас-гитарист группы Nirvana.","cover":{"small":"http://avatars.yandex.net/get-music-content/73cc366b.a.763956-1/300x300","big":"http://avatars.yandex.net/get-music-content/73cc366b.a.763956-1/1000x1000"}},{"id":27451,"name":"Hole","genres":["rock","alternative","pop"],"tracks":75,"albums":21,"description":"американская альтернативная рок-группа, основанная в 1989 году Кортни Лав и Эриком Эрландсоном.","cover":{"small":"http://avatars.yandex.net/get-music-content/9bdf8981.a.59934-1/300x300","big":"http://avatars.yandex.net/get-music-content/9bdf8981.a.59934-1/1000x1000"}},{"id":112486,"name":"Alice In Chains","genres":["rock","alternative"],"tracks":175,"albums":24,"link":"http://www.aliceinchains.com/","description":"американская рок-группа из Сиэтла, образованная Джерри Кантреллом и Лейном Стэйли в 1987 году. В начале 90-х коллектив получил широкую известность на волне роста популярности гранжа вместе с Nirvana, Pearl Jam и Soundgarden. С момента своего образования группа выпустила пять студийных альбомов, три мини-альбома, два концертных альбома, четыре сборника и два сборника видео. Количество проданных альбомов по всему миру превышает 35 миллионов копий.","cover":{"small":"http://avatars.yandex.net/get-music-content/e99edc31.a.496052-3/300x300","big":"http://avatars.yandex.net/get-music-content/e99edc31.a.496052-3/1000x1000"}},{"id":36833,"name":"Red Hot Chili Peppers","genres":["alternative"],"tracks":322,"albums":42,"link":"http://redhotchilipeppers.com/","description":"американская рок-группа, образованная в 1983 году в Калифорнии вокалистом Энтони Кидисом, басистом Майклом Бэлзари, гитаристом Хиллелом Словаком и барабанщиком Джеком Айронсом. Обладает 7 премиями «Грэмми». Во всём мире проданы более 80 миллионов копий их альбомов. По версии VH1 «100 Greatest Artists of Hard Rock» заняли 30-е место. 14 апреля 2012 года группа была включена в Зал славы рок-н-ролла. Группа заняла третье место в символическом списке «Лучшие исполнители за 10 лет скробблинга» портала Last.fm.","cover":{"small":"http://avatars.yandex.net/get-music-content/bab1d938.p.36833/300x300","big":"http://avatars.yandex.net/get-music-content/bab1d938.p.36833/1000x1000"}},{"id":43107,"name":"Bellamy","genres":["dance"],"tracks":12,"albums":1,"description":"британский вокалист, гитарист, клавишник и композитор, фронтмен группы Muse.","cover":{"small":"http://avatars.yandex.net/get-music-content/10a56369.a.3157918-1/300x300","big":"http://avatars.yandex.net/get-music-content/10a56369.a.3157918-1/1000x1000"}},{"id":48692,"name":"John Frusciante","genres":["rock","alternative"],"tracks":117,"albums":11,"description":"американский гитарист, исполнитель, автор песен и продюсер. Наиболее известен как гитарист группы Red Hot Chili Peppers, в составе которой он записал пять альбомов. Ведёт активную сольную карьеру - по состоянию на 2013 год выпустил одиннадцать альбомов под своим именем и два в составе сайд проекта Ataxia, в который кроме него входят Джо Лэлли из Fugazi и Джош Клингхоффер. Сольные работы Фрушанте соединяют в себе элементы множества стилей: от экспериментальной рок-музыки и эмбиента до новой волны и электроники. В 2010 году выбран величайшим гитаристом тридцатилетия по результатам голосования, проведённого BBC.","cover":{"small":"http://avatars.yandex.net/get-music-content/56842764.a.22056-1/300x300","big":"http://avatars.yandex.net/get-music-content/56842764.a.22056-1/1000x1000"}},{"id":48691,"name":"Chad Smith","genres":["rock","relax","country"],"tracks":137,"albums":14,"description":"ударник рок-группы Red Hot Chili Peppers. С 2008 года участник супергруппы Chickenfoot. Стал членом RHCP после ухода из неё Джэка Айронса по причине расстройства и хаоса, возникшего вследствие смерти Хиллела Словака.","cover":{"small":"http://avatars.yandex.net/get-music-content/4e8f795d.a.845162-1/300x300","big":"http://avatars.yandex.net/get-music-content/4e8f795d.a.845162-1/1000x1000"}},{"id":36784,"name":"Nickelback","genres":["rock"],"tracks":116,"albums":28,"link":"http://nickelback.com/","description":"канадская рок-группа, играет в стиле альтернативный рок, образована в 1995 году в городе Ханна. Группа состоит из гитариста и вокалиста Чеда Крюгера, гитариста, клавишника и бэк-вокалиста Райана Пике, басиста Майка Крюгера, и барабанщика Дэниеля Адаира. Название группы образовано от Here’s your nickel back. - «Вот ваша сдача». Или дословно: «Вот ваши пять центов сдачи». Никель - американское название пятицентовой монеты. Группа попала в список лучших артистов первого десятилетия XXI века, по мнению Billboard, где заняла первое место среди рок-групп.","cover":{"small":"http://avatars.yandex.net/get-music-content/bf50a239.p.36784/300x300","big":"http://avatars.yandex.net/get-music-content/bf50a239.p.36784/1000x1000"}},{"id":76606,"name":"Josh Klinghoffer","genres":["rock"],"tracks":7,"albums":1,"description":"американский мультиинструменталист и продюсер. C октября 2009 года является гитаристом группы Red Hot Chili Peppers, сменив в ней Джона Фрушанте. Клингхоффер был включён в Зал славы рок-н-ролла в составе Red Hot Chili Peppers 14 апреля 2012 года, став самым молодым участником зала.","cover":{"small":"http://avatars.yandex.net/get-music-content/879ebf92.a.487497-1/300x300","big":"http://avatars.yandex.net/get-music-content/879ebf92.a.487497-1/1000x1000"}},{"id":36782,"name":"Chad Kroeger","genres":["rock"],"tracks":23,"albums":22,"description":"главный вокалист и гитарист рок-группы Nickelback. Кроме своей работы в Nickelback, Крюгер записывает песни для фильмов и других артистов.","cover":{"small":"http://avatars.yandex.net/get-music-content/b9607ff1.a.12658-1/300x300","big":"http://avatars.yandex.net/get-music-content/b9607ff1.a.12658-1/1000x1000"}},{"id":6105,"name":"Chris Brown","genres":["rnb","rap","pop"],"tracks":477,"albums":259,"link":"http://www.chrisbrownworld.com/","description":"американский певец и актёр. Браун выпустил свой дебютный альбом Chris Brown в конце 2005 в 16 лет","cover":{"small":"http://avatars.yandex.net/get-music-content/425383d4.p.6105/300x300","big":"http://avatars.yandex.net/get-music-content/425383d4.p.6105/1000x1000"}},{"id":6169,"name":"Taio Cruz","genres":["pop","dance","rap"],"tracks":117,"albums":43,"link":"http://www.taiocruzmusic.co.uk/","description":"британский певец нигерийско-бразильского происхождения, автор песен, продюсер, рэпер и предприниматель. В 2008 году он выпустил свой дебютный альбом Departure, который Круз написал сам. Он принёс первый успех в Великобритании и номинацию MOBO awards. В июне 2010 года Круз выпустил свой следующий альбом Rokstarr, который включает сингл «Break Your Heart». В ноябре 2010 года сотрудничал с Кайли Миноуг и Трэвис МакКой к синглу Higher. Кроме этого Круз написал песню Telling the World для мультфильма Рио.","cover":{"small":"http://avatars.yandex.net/get-music-content/0d329269.p.6169/300x300","big":"http://avatars.yandex.net/get-music-content/0d329269.p.6169/1000x1000"}},{"id":3525,"name":"Flo Rida","genres":["rap","dance","pop"],"tracks":326,"albums":137,"link":"http://www.officialflo.com/","description":"американский рэпер, наиболее известный синглом \"Low\" который занимал первое место в Billboard Hot 100 в течение 10 недель в начале 2008 года, а по итогам года стал самым продаваемым синглом в США. Первый дебютный сольный альбом Фло Райды носил название Mail on Sunday. В начале 2009 года Фло Райда вернулся на первую строчку в чартах с кавер-версией диско-хита Right Round.","cover":{"small":"http://avatars.yandex.net/get-music-content/ecc094e2.p.3525/300x300","big":"http://avatars.yandex.net/get-music-content/ecc094e2.p.3525/1000x1000"}},{"id":454026,"name":"Bahh Tee","genres":["rusrap"],"tracks":98,"albums":24,"link":"http://bahh-tee.ru/","description":"российский певец азербайджанского происхождения, автор песен. Bahh Tee стал первым российским артистом, получившим известность через социальные сети и которому позже удалось донести своё творчество до телезрителей и радиослушателей.","cover":{"small":"http://avatars.yandex.net/get-music-content/c54ce492.p.454026/300x300","big":"http://avatars.yandex.net/get-music-content/c54ce492.p.454026/1000x1000"}},{"id":424985,"name":"Алексей Воробьёв","genres":["pop","rnb"],"tracks":14,"albums":12,"link":"http://www.alekseyvorobyov.ru/","description":"российский музыкант и актёр, режиссёр, посол доброй воли ООН, победитель проекта «Лёд и пламень», представитель России на конкурсе Евровидение 2011.","cover":{"small":"http://avatars.yandex.net/get-music-content/152a7d81.p.424985/300x300","big":"http://avatars.yandex.net/get-music-content/152a7d81.p.424985/1000x1000"}},{"id":838736,"name":"Johnyboy","genres":["rusrap"],"tracks":48,"albums":5,"link":"http://johnyboy.ru/","description":"российский рэп-исполнитель латвийского происхождения. На текущий момент выпустил три студийных альбома «Холод»; «Мимо теней» и «Моя книга грехов».","cover":{"small":"http://avatars.yandex.net/get-music-content/99977c39.a.670799-1/300x300","big":"http://avatars.yandex.net/get-music-content/99977c39.a.670799-1/1000x1000"}},{"id":1715764,"name":"Bebe Rexha","genres":["pop"],"tracks":18,"albums":16,"description":"американская певица и автор песен. Наибольшая известная пришла после выхода треков «Take Me Home» совместно с Cash Cash и «Hey Mama» совместно с Дэвидом Геттой. Ранее выступала вокалисткой в коллективе Black Cards, созданном Питом Вентцом, а также была соавтором хита Эминема и Рианны - «The Monster».","cover":{"small":"http://avatars.yandex.net/get-music-content/925274c3.a.3350938-1/300x300","big":"http://avatars.yandex.net/get-music-content/925274c3.a.3350938-1/1000x1000"}},{"id":32964,"name":"Craig David","genres":["pop","rnb","dance"],"tracks":157,"albums":45,"link":"http://craigdavid.com/","description":"британский певец и автор песен. Его отец гренадец, а мать еврейка . Дэвид начал заниматься музыкой с раннего возраста. Первые уроки игры на гитаре ему дал отец, который сам занимался музыкой и играл в музыкальной группе, которая называлась «Eboney Rockers». Уже подростком Крейг начал сочинять собственные песни, а в возрасте 14 лет стал диджеем на пиратской радиостанции. Одновременно он играл в местном клубе. Первым заметным успехом для Крейга стала победа на национальном конкурсе с композицией «I’m Ready».","cover":{"small":"http://avatars.yandex.net/get-music-content/66726c0f.a.19917-1/300x300","big":"http://avatars.yandex.net/get-music-content/66726c0f.a.19917-1/1000x1000"}},{"id":593952,"name":"T-Killah","genres":["pop","rnb","dub"],"tracks":57,"albums":19,"link":"http://t-killah.ru/","description":"российский рэп/хип-хоп/R’n’B исполнитель. Стал известен в 2010 году после выхода песни «Над землей», которую он исполнил дуэтом с певицей Настей Кочетковой.","cover":{"small":"http://avatars.yandex.net/get-music-content/774b89be.p.593952/300x300","big":"http://avatars.yandex.net/get-music-content/774b89be.p.593952/1000x1000"}},{"id":29509,"name":"All Saints","genres":["pop"],"tracks":92,"albums":33,"link":"http://www.allsaintsofficial.co.uk","description":"британско-канадская женская поп-группа, образованная в 1993 году. Долгое время считалась самым успешным женским коллективом Великобритании, после Spice Girls. Группа распалась в 2001 году и вновь собралась в 2006, выпустив новый альбом «Studio 1».","cover":{"small":"http://avatars.yandex.net/get-music-content/2937b844.a.3353724-1/300x300","big":"http://avatars.yandex.net/get-music-content/2937b844.a.3353724-1/1000x1000"}},{"id":165436,"name":"Adam Lambert","genres":["pop","electronics"],"tracks":124,"albums":28,"link":"http://www.adamofficial.com/","description":"американский певец, поэт-песенник и актёр из Сан-Диего, Калифорния. В мае 2009 он стал финалистом восьмого сезона реалити-шоу American Idol. Адам Ламберт самый известный участник American Idol. Ламберт выпустил свой дебютный альбом For Your Entertainment в ноябре 2009 через компанию RCA Records/19 Recordings. Альбом дебютировал 3 строкой в Billboard 200 в декабре 2009, продав 198,000 копий в США на первой неделе. Сейчас продано около 2,500,000 копий альбома по всему миру. 15 мая 2012 года Адам выпустил свой второй альбом Trespassing, который дебютировал № 1 в Billboard 200, продав за первую неделю 77,000 копий в США.","cover":{"small":"http://avatars.yandex.net/get-music-content/b9deacf9.p.165436/300x300","big":"http://avatars.yandex.net/get-music-content/b9deacf9.p.165436/1000x1000"}},{"id":431926,"name":"Олег Чубыкин","genres":["rusrock"],"tracks":75,"albums":8,"link":"http://chubykin.ru/","description":"российский поп-музыкант и музыкальный продюсер.","cover":{"small":"http://avatars.yandex.net/get-music-content/2484102a.a.3317878-1/300x300","big":"http://avatars.yandex.net/get-music-content/2484102a.a.3317878-1/1000x1000"}},{"id":3214072,"name":"The Avener","genres":["electronics"],"tracks":28,"albums":11,"link":"http://www.theavener.com/","description":"французский музыкальный продюсер. Получил известность благодаря синглу Fade Out Lines 2014 года.","cover":{"small":"http://avatars.yandex.net/get-music-content/844b7e91.a.3060220-1/300x300","big":"http://avatars.yandex.net/get-music-content/844b7e91.a.3060220-1/1000x1000"}},{"id":2762595,"name":"Kadebostany","genres":["pop","dance","electronics"],"tracks":35,"albums":19,"description":"швейцарская группа, состоящая первоначально только из Kadebostan. Основанная в 2008 году в Швейцарии, группа выпустила свой первый альбом только в 2011 году под названием The National Fanfare of Kadebostany, представляющий собой электронную музыку с оттенком фанфар. В 2012 году певица Амина Каделли присоединилась к группе и добавила оттенки рэпа и альтернативного рока.","cover":{"small":"http://avatars.yandex.net/get-music-content/69afc5fc.p.2762595/300x300","big":"http://avatars.yandex.net/get-music-content/69afc5fc.p.2762595/1000x1000"}},{"id":2990056,"name":"Shawn Mendes","genres":["pop"],"tracks":28,"albums":8,"link":"http://www.shawnmendesofficial.com/","description":"канадский поп-певец, автор-исполнитель. Его дебютный альбом Handwritten, выпущенный 14 апреля 2015 года, занял первые строчки хит-парадов США и Канады.","cover":{"small":"http://avatars.yandex.net/get-music-content/2f53e890.a.2699977-1/300x300","big":"http://avatars.yandex.net/get-music-content/2f53e890.a.2699977-1/1000x1000"}},{"id":381015,"name":"Lilly Wood & The Prick","genres":["electronics","dance"],"tracks":21,"albums":10,"description":"французская фолк-группа, дуэт французско-израильской вокалистки Нили Хадиды и парижского гитариста Бенджамина Котто. История дуэта начинается с их знакомства в одном из парижских кафе.","cover":{"small":"http://avatars.yandex.net/get-music-content/a5822b05.a.1980032-3/300x300","big":"http://avatars.yandex.net/get-music-content/a5822b05.a.1980032-3/1000x1000"}},{"id":1185458,"name":"Robin Schulz","genres":["dance","house","electronics"],"tracks":70,"albums":29,"link":"http://robin-schulz.com/","description":"немецкий диджей и музыкальный продюсер. Играет в жанрах tropical house и Deep house. Стал известен после ремикса на песню Waves исполнителя Mr.Probz, который возглавил многие европейские чарты весной 2014 года. Его следующий сингл, выпущенный 6 июня 2014 года, был ремикс на Lilly Wood & the Prick трек Prayer in C. Оба ремикса имели успех во многих европейских странах и США, что привело к международному признанию для Робина.","cover":{"small":"http://avatars.yandex.net/get-music-content/3977a8f8.p.1185458/300x300","big":"http://avatars.yandex.net/get-music-content/3977a8f8.p.1185458/1000x1000"}},{"id":6925,"name":"Iggy Pop","genres":["rock"],"tracks":939,"albums":224,"link":"http://www.iggypop.com/","description":"американский рок-вокалист, один из зачинателей и гуру альтернативного рока. За вклад в развитие рок-альтернативы его величают «крёстным отцом» панк-рока и гранжа. В 2009 году авторитетный британский журнал Classic Rock удостоил его званием «Живая легенда».","cover":{"small":"http://avatars.yandex.net/get-music-content/fb119c16.p.6925/300x300","big":"http://avatars.yandex.net/get-music-content/fb119c16.p.6925/1000x1000"}},{"id":7348,"name":"Gwen Stefani","genres":["pop"],"tracks":89,"albums":45,"link":"http://www.gwenstefani.com/","description":"американская певица, автор песен, актриса, продюсер и дизайнер. Солистка музыкальной группы No Doubt, лауреат 46 музыкальных наград.","cover":{"small":"http://avatars.yandex.net/get-music-content/60cfcee3.p.7348/300x300","big":"http://avatars.yandex.net/get-music-content/60cfcee3.p.7348/1000x1000"}},{"id":291,"name":"a-ha","genres":["pop","rock"],"tracks":451,"albums":42,"link":"http://a-ha.com/","description":"норвежская музыкальная группа, созданная в 1982 году в городе Осло и работающая в стиле электро-поп, появившемся на излёте «новой волны». Музыке a-ha присущи графичный, холодноватый стиль, синтезаторно-гитарное звучание, выразительная балладная мелодика.","cover":{"small":"http://avatars.yandex.net/get-music-content/7d30210e.p.291/300x300","big":"http://avatars.yandex.net/get-music-content/7d30210e.p.291/1000x1000"}},{"id":117334,"name":"Сергей Лазарев","genres":["pop"],"tracks":130,"albums":20,"link":"http://sergeylazarev.ru/","description":"российский певец, актёр театра, кино и озвучивания, бывший участник группы Smash!!. Представитель России на конкурсе песни «Евровидение-2016».","cover":{"small":"http://avatars.yandex.net/get-music-content/782e5670.p.117334/300x300","big":"http://avatars.yandex.net/get-music-content/782e5670.p.117334/1000x1000"}},{"id":87394,"name":"Benny Benassi","genres":["dance","house","pop"],"tracks":158,"albums":53,"link":"http://www.bennybenassi.com/","description":"итальянский диджей, композитор, продюсер, записавший в 2002 году вместе с братом Алле популярнейший сингл «Satisfaction».","cover":{"small":"http://avatars.yandex.net/get-music-content/60a3bcfc.a.3317760-1/300x300","big":"http://avatars.yandex.net/get-music-content/60a3bcfc.a.3317760-1/1000x1000"}},{"id":792433,"name":"Twenty One Pilots","genres":["alternative","indie"],"tracks":40,"albums":5,"description":"американский дуэт из Колумбуса, штат Огайо. Группа образовалась в 2009 году и состоит из Тайлера Джозефа и Джоша Дана. Они самостоятельно выпустили два альбома: Twenty One Pilots в 2009 и Regional at Best в 2011. В 2012 году подписали контракт с Columbus' Newport Music Hall, и в 2013 выпустили студийный альбом Vessel. 19 мая 2015 года вышел четвёртый студийный альбом Blurryface.","cover":{"small":"http://avatars.yandex.net/get-music-content/0719cba3.a.2747498-1/300x300","big":"http://avatars.yandex.net/get-music-content/0719cba3.a.2747498-1/1000x1000"}},{"id":595799,"name":"Jamala","genres":["local-indie"],"tracks":59,"albums":13,"link":"http://jamalamusic.com/","description":"украинская оперная и джазовая певица, исполняющая авторскую музыку на стыке джаза, соула, world music и ритм-н-блюза, электронной музыки и госпела. Известность Джамале принесло выступление на Международном конкурсе молодых исполнителей «Новая волна 2009» в Юрмале, где она получила гран-при.","cover":{"small":"http://avatars.yandex.net/get-music-content/250c01f2.p.595799/300x300","big":"http://avatars.yandex.net/get-music-content/250c01f2.p.595799/1000x1000"}},{"id":41205,"name":"Flёur","genres":["indie"],"tracks":114,"albums":8,"link":"http://www.fleurmusic.com/","description":"украинский музыкальный коллектив из Одессы.","cover":{"small":"http://avatars.yandex.net/get-music-content/28362376.p.41205/300x300","big":"http://avatars.yandex.net/get-music-content/28362376.p.41205/1000x1000"}},{"id":835019,"name":"Tesla Boy","genres":["local-indie"],"tracks":60,"albums":16,"link":"http://www.teslaboy.com/","description":"российская электропоп-группа, исполняющая песни на английском языке. Создана в августе 2008 года Антоном Севидовым. Группа состоит из четырёх участников - Антона Севидова, Леонида Затагина, Михаила Студницына и Станислава Астахова. Критики относят творчество группы к волне восьмидесятнического возрождения, набравшей обороты в конце нулевых. Лучшая российская группа 2009 года по версии портала Lookatme.ru. Открытие 2009 года среди отечественных артистов по версии радио MAXIMUM. Дважды становились лучшей российской группой года по версии LookAtMe. Постоянные гости обложек известных глянцевых журналов и разворотов таких изданий как Interview, InStyle, Rolling Stone, их российских аналогов, а также журналов Афиша и Собака.","cover":{"small":"http://avatars.yandex.net/get-music-content/7427693d.p.835019/300x300","big":"http://avatars.yandex.net/get-music-content/7427693d.p.835019/1000x1000"}},{"id":41075,"name":"Кино","genres":["rusrock"],"tracks":891,"albums":63,"description":"одна из самых популярных советских рок-групп 1980-х годов. Лидером, автором практически всех текстов и музыки неизменно оставался Виктор Цой, после смерти которого коллектив, выпустивший в общей сложности за девять лет на студийных альбомах более ста песен, несколько сборников и концертных записей, а также большое количество неофициальных бутлегов, прекратил существование.","cover":{"small":"http://avatars.yandex.net/get-music-content/703d86d2.p.41075/300x300","big":"http://avatars.yandex.net/get-music-content/703d86d2.p.41075/1000x1000"}},{"id":48196,"name":"Slipknot","genres":["alternative","metal"],"tracks":170,"albums":16,"link":"http://www.slipknot1.com/","description":"американская метал-группа, образованная в 1992 году в США. Альбомы группы получили статус платиновых, всего продано около 35 млн копий по всему миру. В 2006 году группа получила свою единственную на сегодняшний день премию Грэмми. Коллектив известен тем, что его участники на концертах, фотосессиях и интервью носят маски и специальные комбинезоны. Маски видоизменяются с выходом нового альбома. В настоящий момент группа гастролирует в поддержку пятого альбома The Gray Chapter и пишет материал для шестого студийного альбома, выход которого планируется на первую половину 2017 года.","cover":{"small":"http://avatars.yandex.net/get-music-content/8f5f32f0.p.48196/300x300","big":"http://avatars.yandex.net/get-music-content/8f5f32f0.p.48196/1000x1000"}},{"id":36800,"name":"Linkin Park","genres":["alternative"],"tracks":309,"albums":45,"link":"http://www.linkinpark.com/main","description":"американская альтернативная рок-группа, основанная в 1996 году под названием Xero. Существуя с 2000 года под названием Linkin Park, группа два раза удостоилась награды «Грэмми». Группа обрела успех благодаря дебютному альбому 2000 года под названием Hybrid Theory, проданному тиражом в 27 миллионов экземпляров. Следующий студийный альбом, Meteora, повторил, хоть и не превзошёл успех предыдущего, лидируя в 2003 году в чарте Billboard 200. В общей сложности альбомы группы разошлись общим тиражом около 73 миллионов экземпляров.","cover":{"small":"http://avatars.yandex.net/get-music-content/a0e5b2b6.p.36800/300x300","big":"http://avatars.yandex.net/get-music-content/a0e5b2b6.p.36800/1000x1000"}},{"id":9262,"name":"Nirvana","genres":["alternative","rock"],"tracks":471,"albums":28,"link":"http://www.nirvana.com/","description":"американская рок-группа, созданная вокалистом и гитаристом Куртом Кобейном и басистом Кристом Новоселичем в Абердине, штат Вашингтон, в 1987 году. В составе коллектива сменились несколько барабанщиков; дольше всех с группой играл ударник Дэйв Грол, присоединившийся к Кобейну и Новоселичу в 1990 году.","cover":{"small":"http://avatars.yandex.net/get-music-content/045190cb.p.9262/300x300","big":"http://avatars.yandex.net/get-music-content/045190cb.p.9262/1000x1000"}},{"id":125851,"name":"Jason Derulo","genres":["pop","rnb","rap"],"tracks":113,"albums":58,"link":"http://www.jasonderulo.com","description":"американский певец, автор песен, актёр, музыкант и танцор.","cover":{"small":"http://avatars.yandex.net/get-music-content/c6672c12.p.125851/300x300","big":"http://avatars.yandex.net/get-music-content/c6672c12.p.125851/1000x1000"}}] \ No newline at end of file diff --git a/app/src/main/java/ru/yandex/yamblz/data/Artist.java b/app/src/main/java/ru/yandex/yamblz/data/Artist.java new file mode 100644 index 0000000..0b10475 --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/data/Artist.java @@ -0,0 +1,97 @@ +package ru.yandex.yamblz.data; + +import android.util.Log; + +import com.google.gson.Gson; +import com.google.gson.JsonSyntaxException; +import com.google.gson.reflect.TypeToken; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.lang.reflect.Type; +import java.util.List; + +/** + * Created by grin3s on 06.08.16. + */ + +public class Artist { + public static class Cover { + String small; + String big; + + public Cover(String small, String big) { + this.small = small; + this.big = big; + } + + @Override + public String toString() { + return "Cover{" + + "small='" + small + '\'' + + ", big='" + big + '\'' + + '}'; + } + } + + int id; + String name; + List genres; + int tracks; + + int albums; + String link; + String description; + Cover cover; + + public List getGenres() { + return genres; + } + + public String getName() { + return name; + } + + public Cover getCover() { + return cover; + } + + public Artist(int id, String name, List genres, int tracks, int albums, String link, String description, Cover cover) { + this.id = id; + this.name = name; + this.genres = genres; + this.tracks = tracks; + this.albums = albums; + this.link = link; + this.description = description; + this.cover = cover; + } + + public static List loadFromJson(InputStream inputStream) throws IOException { + Type collectionType = new TypeToken>() {}.getType(); + try { + List resList = new Gson().fromJson(new BufferedReader(new InputStreamReader(inputStream)), collectionType); + return resList; + } + catch (JsonSyntaxException e) { + e.printStackTrace(); + } + return null; + } + + @Override + public String toString() { + return "Artist{" + + "id=" + id + + ", name='" + name + '\'' + + ", genres=" + genres + + ", tracks=" + tracks + + ", albums=" + albums + + ", link='" + link + '\'' + + ", description='" + description + '\'' + + ", cover=" + cover + + '}'; + } +} diff --git a/app/src/main/java/ru/yandex/yamblz/data/Genre.java b/app/src/main/java/ru/yandex/yamblz/data/Genre.java index 49b443d..002ae47 100644 --- a/app/src/main/java/ru/yandex/yamblz/data/Genre.java +++ b/app/src/main/java/ru/yandex/yamblz/data/Genre.java @@ -1,8 +1,49 @@ package ru.yandex.yamblz.data; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + /** * Created by grin3s on 06.08.16. */ public class Genre { + String name; + List artistList; + + public Genre(String name, List artistList) { + this.name = name; + this.artistList = artistList; + } + + private void addArtist(Artist artist) { + artistList.add(artist); + } + + + public static List groupArtistsByGenres(List inArtists) { + HashMap resMap = new HashMap<>(); + for (Artist artist : inArtists) { + for (String genreName : artist.getGenres()) { + if (resMap.containsKey(genreName)) { + resMap.get(genreName).addArtist(artist); + } + else { + resMap.put(genreName, new Genre(genreName, new ArrayList<>(Arrays.asList(artist)))); + } + } + } + + return new ArrayList<>(resMap.values()); + } + + public String getName() { + return name; + } + + public List getArtistList() { + return artistList; + } } diff --git a/app/src/main/java/ru/yandex/yamblz/loader/GenresLoader.java b/app/src/main/java/ru/yandex/yamblz/loader/GenresLoader.java new file mode 100644 index 0000000..d059a45 --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/loader/GenresLoader.java @@ -0,0 +1,126 @@ +package ru.yandex.yamblz.loader; + +import android.support.v4.content.AsyncTaskLoader; +import android.content.Context; +import android.util.Log; + +import java.io.IOException; +import java.io.InputStream; +import java.util.List; + +import ru.yandex.yamblz.data.Artist; +import ru.yandex.yamblz.data.Genre; + +/** + * Created by grin3s on 06.08.16. + */ + +public class GenresLoader extends AsyncTaskLoader> { + public GenresLoader(Context context) { + super(context); + } + + List mData = null; + + @Override + public List loadInBackground() { + try { + InputStream istream = getContext().getApplicationContext().getAssets().open("artists.json"); + List artistList = Artist.loadFromJson(istream); + return Genre.groupArtistsByGenres(artistList); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + @Override + public void deliverResult(List data) { + if (isReset()) { + // The Loader has been reset; ignore the result and invalidate the data. + releaseResources(data); + return; + } + + // Hold a reference to the old data so it doesn't get garbage collected. + // We must protect it until the new data has been delivered. + List oldData = mData; + mData = data; + + if (isStarted()) { + // If the Loader is in a started state, deliver the results to the + // client. The superclass method does this for us. + super.deliverResult(data); + } + + // Invalidate the old data as we don't need it any more. + if (oldData != null && oldData != data) { + releaseResources(oldData); + } + } + + @Override + protected void onStartLoading() { + if (mData != null) { + // Deliver any previously loaded data immediately. + deliverResult(mData); + } + + // Begin monitoring the underlying data source. +// if (mObserver == null) { +// mObserver = new SampleObserver(); +// register observer +// } + + if (takeContentChanged() || mData == null) { + // When the observer detects a change, it should call onContentChanged() + // on the Loader, which will cause the next call to takeContentChanged() + // to return true. If this is ever the case (or if the current data is + // null), we force a new load. + forceLoad(); + } + } + + @Override + protected void onStopLoading() { + // The Loader is in a stopped state, so we should attempt to cancel the + // current load (if there is one). + cancelLoad(); + + // Note that we leave the observer as is. Loaders in a stopped state + // should still monitor the data source for changes so that the Loader + // will know to force a new load if it is ever started again. + } + + @Override + protected void onReset() { + super.onReset(); + // Ensure the loader has been stopped. + onStopLoading(); + + // At this point we can release the resources associated with 'mData'. + if (mData != null) { + releaseResources(mData); + mData = null; + } + + // The Loader is being reset, so we should stop monitoring for changes. +// if (mObserver != null) { +// // TODO: unregister the observer +// mObserver = null; +// } + } + + @Override + public void onCanceled(List data) { + // Attempt to cancel the current asynchronous load. + super.onCanceled(data); + + // The load has been canceled, so we should release the resources + // associated with 'data'. + releaseResources(data); + } + + private void releaseResources(List data) { + } +} diff --git a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java index 9d2db97..023d0b4 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java @@ -5,11 +5,16 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.TextView; +import java.util.AbstractList; import java.util.ArrayList; import java.util.List; +import butterknife.BindView; +import butterknife.ButterKnife; import ru.yandex.yamblz.R; +import ru.yandex.yamblz.data.Artist; import ru.yandex.yamblz.data.Genre; /** @@ -18,7 +23,7 @@ public class GenresAdapter extends RecyclerView.Adapter { - List genreList = new ArrayList(); + List genreList = new ArrayList<>(); @Override public GenresHolder onCreateViewHolder(ViewGroup parent, int viewType) { @@ -27,19 +32,46 @@ public GenresHolder onCreateViewHolder(ViewGroup parent, int viewType) { return holder; } + public void changeData(List newData) { + genreList = newData; + notifyDataSetChanged(); + } + + public void resetData() { + genreList = new ArrayList<>(); + } + @Override public void onBindViewHolder(GenresHolder holder, int position) { - + holder.bind(genreList.get(position)); } @Override public int getItemCount() { - return 5; + return genreList.size(); } static class GenresHolder extends RecyclerView.ViewHolder { + @BindView(R.id.genre_textview) + TextView genreTextView; + + @BindView(R.id.artists_textview) + TextView artistsTextView; + public GenresHolder(View itemView) { super(itemView); + ButterKnife.bind(this, itemView); + } + + void bind(Genre genre) { + genreTextView.setText(genre.getName()); + StringBuilder builder = new StringBuilder(); + List artistList = genre.getArtistList(); + for (int i = 0; i < artistList.size() - 1; i++) { + builder.append(artistList.get(i).getName()).append(", "); + } + builder.append(artistList.get(artistList.size()- 1).getName()); + artistsTextView.setText(builder); } } } diff --git a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java index b03e620..0c64ec0 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java @@ -3,24 +3,32 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.app.LoaderManager; +import android.support.v4.content.Loader; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import java.util.List; + import butterknife.BindView; import ru.yandex.yamblz.R; +import ru.yandex.yamblz.data.Genre; +import ru.yandex.yamblz.loader.GenresLoader; import ru.yandex.yamblz.ui.adapters.GenresAdapter; -public class ContentFragment extends BaseFragment { +public class ContentFragment extends BaseFragment implements LoaderManager.LoaderCallbacks>{ @BindView(R.id.rv) RecyclerView rv; @NonNull @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - return inflater.inflate(R.layout.fragment_content, container, false); + View rootView = inflater.inflate(R.layout.fragment_content, container, false); + getLoaderManager().initLoader(0, null, this); + return rootView; } @Override @@ -29,4 +37,19 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { rv.setLayoutManager(new LinearLayoutManager(getContext())); rv.setAdapter(new GenresAdapter()); } + + @Override + public Loader> onCreateLoader(int id, Bundle args) { + return new GenresLoader(getContext()); + } + + @Override + public void onLoadFinished(Loader> loader, List data) { + ((GenresAdapter) rv.getAdapter()).changeData(data); + } + + @Override + public void onLoaderReset(Loader> loader) { + ((GenresAdapter) rv.getAdapter()).resetData(); + } } diff --git a/app/src/main/res/layout/rv_element.xml b/app/src/main/res/layout/rv_element.xml index 960d904..e6fa728 100644 --- a/app/src/main/res/layout/rv_element.xml +++ b/app/src/main/res/layout/rv_element.xml @@ -1,16 +1,18 @@ - + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + app:cardUseCompatPadding="true" + app:cardCornerRadius="10dp"> @@ -32,11 +34,14 @@ android:layout_height="wrap_content" android:layout_below="@+id/genre_textview" android:layout_toRightOf="@+id/genre_imageview" - android:id="@+id/textView2" + android:id="@+id/artists_textview" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignBottom="@+id/genre_imageview" - android:textSize="18sp" /> + android:textSize="14sp" + android:ellipsize="end" + android:lines="5" + /> diff --git a/dependencies.gradle b/dependencies.gradle index d340e7b..3391359 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -37,6 +37,8 @@ ext.versions = [ equalsVerifier : '1.7.5', mockito : '1.10.19', supportTestRunner : '0.5', + + gson : '2.7' ] ext.gradlePlugins = [ @@ -85,4 +87,6 @@ ext.libraries = [ supportTestRules : "com.android.support.test:rules:$versions.supportTestRunner", espressoCore : "com.android.support.test.espresso:espresso-core:$versions.espresso", espressoContrib : "com.android.support.test.espresso:espresso-contrib:$versions.espresso", + + gson : "com.google.code.gson:gson:$versions.gson", ] From 1cea699f8d1dfcd5c97751eb604b0e3e9b6eb498 Mon Sep 17 00:00:00 2001 From: grin3s Date: Sun, 7 Aug 2016 02:15:54 +0300 Subject: [PATCH 3/9] one image per genre loaded asyncronously --- app/src/main/java/ru/yandex/yamblz/App.java | 4 - .../yandex/yamblz/ApplicationComponent.java | 7 ++ .../ru/yandex/yamblz/ApplicationModule.java | 11 +++ .../java/ru/yandex/yamblz/data/Artist.java | 4 + .../ru/yandex/yamblz/loader/AsyncLoader.java | 9 ++ .../yandex/yamblz/loader/CollageLoader.java | 10 +- .../yamblz/loader/CollageLoaderManager.java | 17 ---- .../yamblz/loader/DumbCollageStrategy.java | 16 ++++ .../ru/yandex/yamblz/loader/ImageTarget.java | 2 +- .../yamblz/loader/StubCollageLoader.java | 31 ------- .../yamblz/loader/ThreadedCollageLoader.java | 91 +++++++++++++++++++ .../yamblz/network/ImageDownloadTask.java | 35 +++++++ .../yamblz/ui/adapters/GenresAdapter.java | 64 ++++++++++++- .../yamblz/ui/fragments/ContentFragment.java | 2 +- 14 files changed, 241 insertions(+), 62 deletions(-) create mode 100644 app/src/main/java/ru/yandex/yamblz/loader/AsyncLoader.java delete mode 100644 app/src/main/java/ru/yandex/yamblz/loader/CollageLoaderManager.java create mode 100644 app/src/main/java/ru/yandex/yamblz/loader/DumbCollageStrategy.java delete mode 100644 app/src/main/java/ru/yandex/yamblz/loader/StubCollageLoader.java create mode 100644 app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java create mode 100644 app/src/main/java/ru/yandex/yamblz/network/ImageDownloadTask.java diff --git a/app/src/main/java/ru/yandex/yamblz/App.java b/app/src/main/java/ru/yandex/yamblz/App.java index e5f9972..f3a0f38 100644 --- a/app/src/main/java/ru/yandex/yamblz/App.java +++ b/app/src/main/java/ru/yandex/yamblz/App.java @@ -6,8 +6,6 @@ import ru.yandex.yamblz.developer_settings.DevMetricsProxy; import ru.yandex.yamblz.developer_settings.DeveloperSettingsModel; -import ru.yandex.yamblz.handler.CriticalSectionsManager; -import ru.yandex.yamblz.loader.CollageLoaderManager; import timber.log.Timber; public class App extends Application { @@ -34,8 +32,6 @@ public void onCreate() { devMetricsProxy.apply(); } - CollageLoaderManager.init(null); // add implementation - CriticalSectionsManager.init(null); // add implementation } @NonNull diff --git a/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java b/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java index 59dd030..a9b4f3c 100644 --- a/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java +++ b/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java @@ -3,6 +3,8 @@ import android.os.Handler; import android.support.annotation.NonNull; +import java.util.concurrent.ThreadPoolExecutor; + import javax.inject.Named; import javax.inject.Singleton; @@ -13,6 +15,7 @@ import ru.yandex.yamblz.developer_settings.DeveloperSettingsModule; import ru.yandex.yamblz.developer_settings.LeakCanaryProxy; import ru.yandex.yamblz.ui.activities.MainActivity; +import ru.yandex.yamblz.ui.adapters.GenresAdapter; @Singleton @Component(modules = { @@ -35,5 +38,9 @@ public interface ApplicationComponent { @NonNull @Named(ApplicationModule.MAIN_THREAD_HANDLER) Handler mainThreadHandler(); + @Named(ApplicationModule.MAIN_THREAD_POOL_EXECUTOR) @Singleton + ThreadPoolExecutor mainExecutor(); + void inject(@NonNull MainActivity mainActivity); + void inject(@NonNull GenresAdapter.GenresHolder genresHolder); } diff --git a/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java b/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java index 952a6e6..909e2ed 100644 --- a/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java +++ b/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java @@ -5,6 +5,10 @@ import android.os.Looper; import android.support.annotation.NonNull; +import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + import javax.inject.Named; import javax.inject.Singleton; @@ -15,6 +19,7 @@ public class ApplicationModule { public static final String MAIN_THREAD_HANDLER = "main_thread_handler"; + public static final String MAIN_THREAD_POOL_EXECUTOR = "main_thread_pool_executor"; @NonNull private final Application application; @@ -33,4 +38,10 @@ public Handler provideMainThreadHandler() { return new Handler(Looper.getMainLooper()); } + @Provides @Named(ApplicationModule.MAIN_THREAD_POOL_EXECUTOR) @Singleton + ThreadPoolExecutor provideMainExecutor() { + int nCores = Runtime.getRuntime().availableProcessors(); + return new ThreadPoolExecutor(nCores, nCores, 120, TimeUnit.SECONDS, new LinkedBlockingDeque<>()); + } + } diff --git a/app/src/main/java/ru/yandex/yamblz/data/Artist.java b/app/src/main/java/ru/yandex/yamblz/data/Artist.java index 0b10475..c05f1ac 100644 --- a/app/src/main/java/ru/yandex/yamblz/data/Artist.java +++ b/app/src/main/java/ru/yandex/yamblz/data/Artist.java @@ -27,6 +27,10 @@ public Cover(String small, String big) { this.big = big; } + public String getSmall() { + return small; + } + @Override public String toString() { return "Cover{" + diff --git a/app/src/main/java/ru/yandex/yamblz/loader/AsyncLoader.java b/app/src/main/java/ru/yandex/yamblz/loader/AsyncLoader.java new file mode 100644 index 0000000..20d6764 --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/loader/AsyncLoader.java @@ -0,0 +1,9 @@ +package ru.yandex.yamblz.loader; + +/** + * Created by grin3s on 07.08.16. + */ + +// and interface describing a general class that loads something in the background +public interface AsyncLoader { +} diff --git a/app/src/main/java/ru/yandex/yamblz/loader/CollageLoader.java b/app/src/main/java/ru/yandex/yamblz/loader/CollageLoader.java index dad5b76..c82b90f 100644 --- a/app/src/main/java/ru/yandex/yamblz/loader/CollageLoader.java +++ b/app/src/main/java/ru/yandex/yamblz/loader/CollageLoader.java @@ -4,14 +4,14 @@ import java.util.List; -public interface CollageLoader { +public abstract class CollageLoader implements AsyncLoader{ - void loadCollage(List urls, ImageView imageView); + public abstract void loadCollage(List urls, ImageView imageView); - void loadCollage(List urls, ImageTarget imageTarget); + public abstract void loadCollage(List urls, ImageTarget imageTarget); - void loadCollage(List urls, ImageView imageView, CollageStrategy collageStrategy); + public abstract void loadCollage(List urls, ImageView imageView, CollageStrategy collageStrategy); - void loadCollage(List urls, ImageTarget imageTarget, CollageStrategy collageStrategy); + public abstract void loadCollage(List urls, ImageTarget imageTarget, CollageStrategy collageStrategy); } diff --git a/app/src/main/java/ru/yandex/yamblz/loader/CollageLoaderManager.java b/app/src/main/java/ru/yandex/yamblz/loader/CollageLoaderManager.java deleted file mode 100644 index ef00d00..0000000 --- a/app/src/main/java/ru/yandex/yamblz/loader/CollageLoaderManager.java +++ /dev/null @@ -1,17 +0,0 @@ -package ru.yandex.yamblz.loader; - -public class CollageLoaderManager { - - private static CollageLoader sCollageLoader; - - public static void init(CollageLoader collageLoader) { - sCollageLoader = collageLoader; - } - - public static CollageLoader getLoader() { - if (sCollageLoader == null) { - sCollageLoader = new StubCollageLoader(); - } - return sCollageLoader; - } -} diff --git a/app/src/main/java/ru/yandex/yamblz/loader/DumbCollageStrategy.java b/app/src/main/java/ru/yandex/yamblz/loader/DumbCollageStrategy.java new file mode 100644 index 0000000..62cfcf7 --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/loader/DumbCollageStrategy.java @@ -0,0 +1,16 @@ +package ru.yandex.yamblz.loader; + +import android.graphics.Bitmap; + +import java.util.List; + +/** + * Created by grin3s on 06.08.16. + */ + +public class DumbCollageStrategy implements CollageStrategy { + @Override + public Bitmap create(List bitmaps) { + return bitmaps.get(0); + } +} diff --git a/app/src/main/java/ru/yandex/yamblz/loader/ImageTarget.java b/app/src/main/java/ru/yandex/yamblz/loader/ImageTarget.java index 9a8be2b..9e88b55 100644 --- a/app/src/main/java/ru/yandex/yamblz/loader/ImageTarget.java +++ b/app/src/main/java/ru/yandex/yamblz/loader/ImageTarget.java @@ -4,5 +4,5 @@ public interface ImageTarget { - void onLoadBitmap(Bitmap bitmap); + void onLoadBitmap(Bitmap bitmap, AsyncLoader asyncLoader); } diff --git a/app/src/main/java/ru/yandex/yamblz/loader/StubCollageLoader.java b/app/src/main/java/ru/yandex/yamblz/loader/StubCollageLoader.java deleted file mode 100644 index 1dc051b..0000000 --- a/app/src/main/java/ru/yandex/yamblz/loader/StubCollageLoader.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.yandex.yamblz.loader; - -import android.widget.ImageView; - -import java.util.List; - -public class StubCollageLoader implements CollageLoader { - - @Override - public void loadCollage(List urls, ImageView imageView) { - - } - - @Override - public void loadCollage(List urls, ImageTarget imageTarget) { - - } - - @Override - public void loadCollage(List urls, ImageView imageView, - CollageStrategy collageStrategy) { - - } - - @Override - public void loadCollage(List urls, ImageTarget imageTarget, - CollageStrategy collageStrategy) { - - } - -} diff --git a/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java b/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java new file mode 100644 index 0000000..d754c43 --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java @@ -0,0 +1,91 @@ +package ru.yandex.yamblz.loader; + +import android.graphics.Bitmap; +import android.os.Handler; +import android.util.Log; +import android.widget.ImageView; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; +import java.util.concurrent.ThreadPoolExecutor; + +import ru.yandex.yamblz.network.ImageDownloadTask; + +/** + * Created by grin3s on 06.08.16. + */ + +public class ThreadedCollageLoader extends CollageLoader { + + ThreadPoolExecutor mExecutor; + + Handler mainThreadHandler; + + WeakReference imageTargetRef; + List urls; + CollageStrategy collageStrategy; + + + public ThreadedCollageLoader(ThreadPoolExecutor mExecutor, Handler mainThreadHandler) { + this.mExecutor = mExecutor; + this.mainThreadHandler = mainThreadHandler; + } + + @Override + public void loadCollage(List urls, ImageView imageView) { + + } + + @Override + public void loadCollage(List urls, ImageTarget imageTarget) { + loadCollage(urls, imageTarget, new DumbCollageStrategy()); + } + + @Override + public void loadCollage(List urls, ImageView imageView, CollageStrategy collageStrategy) { + + } + + @Override + public void loadCollage(List urls, ImageTarget imageTarget, CollageStrategy collageStrategy) { + Log.d("POST", "POST4"); + this.imageTargetRef = new WeakReference(imageTarget); + this.urls = urls; + this.collageStrategy = collageStrategy; + mExecutor.execute(new MakeCollageTask()); + } + + private class MakeCollageTask implements Runnable { + @Override + public void run() { + Log.d("POST", "POST3"); + List> futures = new ArrayList<>(); + for (String url : urls) { + futures.add(mExecutor.submit(new ImageDownloadTask(url))); + break; + } + List bitmapList = new ArrayList<>(); + try { + for (Future future : futures) { + bitmapList.add(future.get()); + } + Log.d("POST", "POST2"); + Bitmap collageBitmap = collageStrategy.create(bitmapList); + mainThreadHandler.post(() -> { + ImageTarget imageTarget = imageTargetRef.get(); + if (imageTarget != null) { + Log.d("POST", "POST1"); + // TODO: put this into ui thread queue + imageTarget.onLoadBitmap(collageBitmap, ThreadedCollageLoader.this); + } + }); + } catch (InterruptedException | ExecutionException e) { + e.printStackTrace(); + } + } + } + +} diff --git a/app/src/main/java/ru/yandex/yamblz/network/ImageDownloadTask.java b/app/src/main/java/ru/yandex/yamblz/network/ImageDownloadTask.java new file mode 100644 index 0000000..f17e375 --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/network/ImageDownloadTask.java @@ -0,0 +1,35 @@ +package ru.yandex.yamblz.network; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.concurrent.Callable; + +/** + * Created by grin3s on 06.08.16. + */ + +public class ImageDownloadTask implements Callable { + String url; + + public ImageDownloadTask(String url) { + this.url = url; + } + + @Override + public Bitmap call() throws Exception { + try { + URL url = new URL(this.url); + InputStream inputStream = new BufferedInputStream(url.openStream()); + Bitmap bitmap = BitmapFactory.decodeStream(inputStream); + return bitmap; + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java index 023d0b4..f50b78a 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java @@ -1,21 +1,40 @@ package ru.yandex.yamblz.ui.adapters; +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; import android.media.tv.TvContract; +import android.os.Handler; +import android.support.annotation.MainThread; +import android.support.v7.app.ActionBar; import android.support.v7.widget.RecyclerView; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.TextView; import java.util.AbstractList; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.ThreadPoolExecutor; + +import javax.inject.Inject; +import javax.inject.Named; import butterknife.BindView; import butterknife.ButterKnife; +import ru.yandex.yamblz.App; +import ru.yandex.yamblz.ApplicationModule; import ru.yandex.yamblz.R; import ru.yandex.yamblz.data.Artist; import ru.yandex.yamblz.data.Genre; +import ru.yandex.yamblz.loader.AsyncLoader; +import ru.yandex.yamblz.loader.CollageLoader; +import ru.yandex.yamblz.loader.ImageTarget; +import ru.yandex.yamblz.loader.ThreadedCollageLoader; /** * Created by grin3s on 06.08.16. @@ -25,10 +44,16 @@ public class GenresAdapter extends RecyclerView.Adapter genreList = new ArrayList<>(); + Context mContext; + + public GenresAdapter(Context context) { + mContext = context; + } + @Override public GenresHolder onCreateViewHolder(ViewGroup parent, int viewType) { final View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.rv_element, parent, false); - final GenresHolder holder = new GenresHolder(view); + final GenresHolder holder = new GenresHolder(view, mContext); return holder; } @@ -51,19 +76,34 @@ public int getItemCount() { return genreList.size(); } - static class GenresHolder extends RecyclerView.ViewHolder { + public static class GenresHolder extends RecyclerView.ViewHolder implements ImageTarget { + @Inject @Named(ApplicationModule.MAIN_THREAD_POOL_EXECUTOR) + ThreadPoolExecutor executor; + + @Inject @Named(ApplicationModule.MAIN_THREAD_HANDLER) + Handler mainThreadHandler; + @BindView(R.id.genre_textview) TextView genreTextView; @BindView(R.id.artists_textview) TextView artistsTextView; - public GenresHolder(View itemView) { + @BindView(R.id.genre_imageview) + ImageView genreImageView; + + CollageLoader currentAsyncLoader; + + int counter = 0; + + public GenresHolder(View itemView, Context context) { super(itemView); ButterKnife.bind(this, itemView); + App.get(context).applicationComponent().inject(this); } void bind(Genre genre) { + Log.d("BIND", "bind"); genreTextView.setText(genre.getName()); StringBuilder builder = new StringBuilder(); List artistList = genre.getArtistList(); @@ -72,6 +112,24 @@ void bind(Genre genre) { } builder.append(artistList.get(artistList.size()- 1).getName()); artistsTextView.setText(builder); + + //obtaining urls + List imageUrls = new ArrayList<>(); + for (Artist artist : artistList) { + imageUrls.add(artist.getCover().getSmall()); + } + + genreImageView.setImageBitmap(null); + currentAsyncLoader = new ThreadedCollageLoader(executor, mainThreadHandler); + currentAsyncLoader.loadCollage(imageUrls, this); + } + + @Override + public void onLoadBitmap(Bitmap bitmap, AsyncLoader asyncLoader) { + counter++; + Log.d("COUNTER", Integer.toString(counter)); + genreImageView.setImageBitmap(bitmap); } } + } diff --git a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java index 0c64ec0..56172d8 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java @@ -35,7 +35,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); rv.setLayoutManager(new LinearLayoutManager(getContext())); - rv.setAdapter(new GenresAdapter()); + rv.setAdapter(new GenresAdapter(getContext())); } @Override From 69f5c823b115d6eca63ab7cbd8e8916f6794043e Mon Sep 17 00:00:00 2001 From: grin3s Date: Sun, 7 Aug 2016 03:05:21 +0300 Subject: [PATCH 4/9] PowerOfTwoCollageStrategy --- .../yamblz/loader/DumbCollageStrategy.java | 15 ++++++- .../loader/PowerOfTwoCollageStrategy.java | 39 +++++++++++++++++++ .../yamblz/loader/ThreadedCollageLoader.java | 5 ++- .../yamblz/ui/adapters/GenresAdapter.java | 11 ++++-- .../java/ru/yandex/yamblz/utils/Utils.java | 15 +++++++ 5 files changed, 79 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/ru/yandex/yamblz/loader/PowerOfTwoCollageStrategy.java create mode 100644 app/src/main/java/ru/yandex/yamblz/utils/Utils.java diff --git a/app/src/main/java/ru/yandex/yamblz/loader/DumbCollageStrategy.java b/app/src/main/java/ru/yandex/yamblz/loader/DumbCollageStrategy.java index 62cfcf7..0b7b242 100644 --- a/app/src/main/java/ru/yandex/yamblz/loader/DumbCollageStrategy.java +++ b/app/src/main/java/ru/yandex/yamblz/loader/DumbCollageStrategy.java @@ -1,16 +1,29 @@ package ru.yandex.yamblz.loader; import android.graphics.Bitmap; +import android.graphics.Canvas; import java.util.List; +import java.util.Random; + +import ru.yandex.yamblz.utils.Utils; /** * Created by grin3s on 06.08.16. */ public class DumbCollageStrategy implements CollageStrategy { + private final static Random rnd = new Random(); @Override public Bitmap create(List bitmaps) { - return bitmaps.get(0); + Bitmap firstImage = bitmaps.get(0); + int width = firstImage.getWidth(); + int height = firstImage.getHeight(); + Bitmap result = Bitmap.createBitmap(width, height, firstImage.getConfig()); + Canvas canvas = new Canvas(result); + for (Bitmap bitmap : bitmaps) { + canvas.drawBitmap(bitmap, Utils.getRandomCoordinate(0, width), Utils.getRandomCoordinate(0, height), null); + } + return result; } } diff --git a/app/src/main/java/ru/yandex/yamblz/loader/PowerOfTwoCollageStrategy.java b/app/src/main/java/ru/yandex/yamblz/loader/PowerOfTwoCollageStrategy.java new file mode 100644 index 0000000..de72357 --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/loader/PowerOfTwoCollageStrategy.java @@ -0,0 +1,39 @@ +package ru.yandex.yamblz.loader; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; + +import java.util.Collections; +import java.util.List; + +/** + * Created by grin3s on 07.08.16. + */ + +public class PowerOfTwoCollageStrategy implements CollageStrategy { + @Override + public Bitmap create(List bitmaps) { + int nRows = (int) Math.floor(Math.sqrt(bitmaps.size())); + Bitmap firstImage = bitmaps.get(0); + int width = firstImage.getWidth(); + int height = firstImage.getHeight(); + Bitmap result = Bitmap.createBitmap(width, height, firstImage.getConfig()); + Canvas canvas = new Canvas(result); + + int delta = (int) Math.floor(width / nRows); + int curBitmap = 0; + int curLeft = 0; + int curTop = 0; + for (int i = 0; i < nRows; i++) { + for (int j = 0; j < nRows; j++) { + canvas.drawBitmap(Bitmap.createScaledBitmap(bitmaps.get(curBitmap), delta, delta, false), curLeft, curTop, null); + curLeft += delta; + curBitmap += 1; + } + curTop += delta; + curLeft = 0; + } + return result; + } +} diff --git a/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java b/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java index d754c43..985123a 100644 --- a/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java +++ b/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java @@ -7,6 +7,7 @@ import java.lang.ref.WeakReference; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; @@ -41,7 +42,7 @@ public void loadCollage(List urls, ImageView imageView) { @Override public void loadCollage(List urls, ImageTarget imageTarget) { - loadCollage(urls, imageTarget, new DumbCollageStrategy()); + loadCollage(urls, imageTarget, new PowerOfTwoCollageStrategy()); } @Override @@ -65,7 +66,6 @@ public void run() { List> futures = new ArrayList<>(); for (String url : urls) { futures.add(mExecutor.submit(new ImageDownloadTask(url))); - break; } List bitmapList = new ArrayList<>(); try { @@ -73,6 +73,7 @@ public void run() { bitmapList.add(future.get()); } Log.d("POST", "POST2"); + Collections.shuffle(bitmapList); Bitmap collageBitmap = collageStrategy.create(bitmapList); mainThreadHandler.post(() -> { ImageTarget imageTarget = imageTargetRef.get(); diff --git a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java index f50b78a..5a2b807 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java @@ -120,15 +120,20 @@ void bind(Genre genre) { } genreImageView.setImageBitmap(null); + + /* + here we use the trick from https://developer.android.com/training/displaying-bitmaps/process-bitmap.html + remembering the AsyncLoader that was last and comparing it to the one that finished in onLoadBitmap + */ currentAsyncLoader = new ThreadedCollageLoader(executor, mainThreadHandler); currentAsyncLoader.loadCollage(imageUrls, this); } @Override public void onLoadBitmap(Bitmap bitmap, AsyncLoader asyncLoader) { - counter++; - Log.d("COUNTER", Integer.toString(counter)); - genreImageView.setImageBitmap(bitmap); + if (asyncLoader == currentAsyncLoader) { + genreImageView.setImageBitmap(bitmap); + } } } diff --git a/app/src/main/java/ru/yandex/yamblz/utils/Utils.java b/app/src/main/java/ru/yandex/yamblz/utils/Utils.java new file mode 100644 index 0000000..0433387 --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/utils/Utils.java @@ -0,0 +1,15 @@ +package ru.yandex.yamblz.utils; + +import java.util.Random; + +/** + * Created by grin3s on 07.08.16. + */ + +public class Utils { + private static Random rnd = new Random(); + + public static int getRandomCoordinate(int start, int end) { + return (int) Math.floor(rnd.nextFloat() * (end - start) + start); + } +} From fcdefbb881f56cf1376c796f0db33bfd13799d2d Mon Sep 17 00:00:00 2001 From: grin3s Date: Sun, 7 Aug 2016 12:10:16 +0300 Subject: [PATCH 5/9] cache added and deadlock fixed --- .../yandex/yamblz/ApplicationComponent.java | 6 ++- .../ru/yandex/yamblz/ApplicationModule.java | 12 ++++- .../ru/yandex/yamblz/images/ImageCache.java | 24 +++++++++ .../ImageDownloadTask.java | 2 +- .../ru/yandex/yamblz/loader/GenresLoader.java | 5 +- .../yamblz/loader/ThreadedCollageLoader.java | 14 ++--- .../yamblz/{data => models}/Artist.java | 4 +- .../yandex/yamblz/{data => models}/Genre.java | 2 +- .../yamblz/ui/adapters/GenresAdapter.java | 54 ++++++++++++------- .../yamblz/ui/fragments/ContentFragment.java | 2 +- 10 files changed, 86 insertions(+), 39 deletions(-) create mode 100644 app/src/main/java/ru/yandex/yamblz/images/ImageCache.java rename app/src/main/java/ru/yandex/yamblz/{network => images}/ImageDownloadTask.java (96%) rename app/src/main/java/ru/yandex/yamblz/{data => models}/Artist.java (97%) rename app/src/main/java/ru/yandex/yamblz/{data => models}/Genre.java (97%) diff --git a/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java b/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java index a9b4f3c..04cac99 100644 --- a/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java +++ b/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java @@ -14,6 +14,7 @@ import ru.yandex.yamblz.developer_settings.DeveloperSettingsModel; import ru.yandex.yamblz.developer_settings.DeveloperSettingsModule; import ru.yandex.yamblz.developer_settings.LeakCanaryProxy; +import ru.yandex.yamblz.images.ImageCache; import ru.yandex.yamblz.ui.activities.MainActivity; import ru.yandex.yamblz.ui.adapters.GenresAdapter; @@ -38,9 +39,12 @@ public interface ApplicationComponent { @NonNull @Named(ApplicationModule.MAIN_THREAD_HANDLER) Handler mainThreadHandler(); - @Named(ApplicationModule.MAIN_THREAD_POOL_EXECUTOR) @Singleton + @Named(ApplicationModule.THREAD_POOL_EXECUTOR) @Singleton ThreadPoolExecutor mainExecutor(); + @Named(ApplicationModule.IMAGE_CACHE) @Singleton + ImageCache imageCache(); + void inject(@NonNull MainActivity mainActivity); void inject(@NonNull GenresAdapter.GenresHolder genresHolder); } diff --git a/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java b/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java index 909e2ed..3a20aa0 100644 --- a/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java +++ b/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java @@ -14,12 +14,14 @@ import dagger.Module; import dagger.Provides; +import ru.yandex.yamblz.images.ImageCache; @Module public class ApplicationModule { public static final String MAIN_THREAD_HANDLER = "main_thread_handler"; - public static final String MAIN_THREAD_POOL_EXECUTOR = "main_thread_pool_executor"; + public static final String THREAD_POOL_EXECUTOR = "main_thread_pool_executor"; + public static final String IMAGE_CACHE = "image_cache"; @NonNull private final Application application; @@ -38,10 +40,16 @@ public Handler provideMainThreadHandler() { return new Handler(Looper.getMainLooper()); } - @Provides @Named(ApplicationModule.MAIN_THREAD_POOL_EXECUTOR) @Singleton + @Provides @Named(ApplicationModule.THREAD_POOL_EXECUTOR) @Singleton ThreadPoolExecutor provideMainExecutor() { int nCores = Runtime.getRuntime().availableProcessors(); return new ThreadPoolExecutor(nCores, nCores, 120, TimeUnit.SECONDS, new LinkedBlockingDeque<>()); } + @Provides @Named(ApplicationModule.IMAGE_CACHE) @Singleton + public ImageCache provideImageCache() { + int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); + return new ImageCache(maxMemory / 8); + } + } diff --git a/app/src/main/java/ru/yandex/yamblz/images/ImageCache.java b/app/src/main/java/ru/yandex/yamblz/images/ImageCache.java new file mode 100644 index 0000000..b309ecd --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/images/ImageCache.java @@ -0,0 +1,24 @@ +package ru.yandex.yamblz.images; + +import android.graphics.Bitmap; +import android.support.v4.util.LruCache; + +/** + * Created by grin3s on 07.08.16. + */ + +public class ImageCache extends LruCache { + /** + * @param maxSize for caches that do not override {@link #sizeOf}, this is + * the maximum number of entries in the cache. For all other caches, + * this is the maximum sum of the sizes of the entries in this cache. + */ + public ImageCache(int maxSize) { + super(maxSize); + } + + @Override + protected int sizeOf(String key, Bitmap bitmap) { + return bitmap.getByteCount() / 1024; + } +} diff --git a/app/src/main/java/ru/yandex/yamblz/network/ImageDownloadTask.java b/app/src/main/java/ru/yandex/yamblz/images/ImageDownloadTask.java similarity index 96% rename from app/src/main/java/ru/yandex/yamblz/network/ImageDownloadTask.java rename to app/src/main/java/ru/yandex/yamblz/images/ImageDownloadTask.java index f17e375..3e9d4cc 100644 --- a/app/src/main/java/ru/yandex/yamblz/network/ImageDownloadTask.java +++ b/app/src/main/java/ru/yandex/yamblz/images/ImageDownloadTask.java @@ -1,4 +1,4 @@ -package ru.yandex.yamblz.network; +package ru.yandex.yamblz.images; import android.graphics.Bitmap; import android.graphics.BitmapFactory; diff --git a/app/src/main/java/ru/yandex/yamblz/loader/GenresLoader.java b/app/src/main/java/ru/yandex/yamblz/loader/GenresLoader.java index d059a45..828c5cb 100644 --- a/app/src/main/java/ru/yandex/yamblz/loader/GenresLoader.java +++ b/app/src/main/java/ru/yandex/yamblz/loader/GenresLoader.java @@ -2,14 +2,13 @@ import android.support.v4.content.AsyncTaskLoader; import android.content.Context; -import android.util.Log; import java.io.IOException; import java.io.InputStream; import java.util.List; -import ru.yandex.yamblz.data.Artist; -import ru.yandex.yamblz.data.Genre; +import ru.yandex.yamblz.models.Artist; +import ru.yandex.yamblz.models.Genre; /** * Created by grin3s on 06.08.16. diff --git a/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java b/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java index 985123a..2b535b6 100644 --- a/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java +++ b/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java @@ -2,7 +2,6 @@ import android.graphics.Bitmap; import android.os.Handler; -import android.util.Log; import android.widget.ImageView; import java.lang.ref.WeakReference; @@ -10,10 +9,12 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutionException; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.ThreadPoolExecutor; -import ru.yandex.yamblz.network.ImageDownloadTask; +import ru.yandex.yamblz.images.ImageDownloadTask; /** * Created by grin3s on 06.08.16. @@ -23,6 +24,9 @@ public class ThreadedCollageLoader extends CollageLoader { ThreadPoolExecutor mExecutor; + //we need this executor to avoid deadlocks in case we aggregate results in mExecutor + Executor resultAggregationExecutor = Executors.newSingleThreadExecutor(); + Handler mainThreadHandler; WeakReference imageTargetRef; @@ -52,17 +56,15 @@ public void loadCollage(List urls, ImageView imageView, CollageStrategy @Override public void loadCollage(List urls, ImageTarget imageTarget, CollageStrategy collageStrategy) { - Log.d("POST", "POST4"); this.imageTargetRef = new WeakReference(imageTarget); this.urls = urls; this.collageStrategy = collageStrategy; - mExecutor.execute(new MakeCollageTask()); + resultAggregationExecutor.execute(new MakeCollageTask()); } private class MakeCollageTask implements Runnable { @Override public void run() { - Log.d("POST", "POST3"); List> futures = new ArrayList<>(); for (String url : urls) { futures.add(mExecutor.submit(new ImageDownloadTask(url))); @@ -72,13 +74,11 @@ public void run() { for (Future future : futures) { bitmapList.add(future.get()); } - Log.d("POST", "POST2"); Collections.shuffle(bitmapList); Bitmap collageBitmap = collageStrategy.create(bitmapList); mainThreadHandler.post(() -> { ImageTarget imageTarget = imageTargetRef.get(); if (imageTarget != null) { - Log.d("POST", "POST1"); // TODO: put this into ui thread queue imageTarget.onLoadBitmap(collageBitmap, ThreadedCollageLoader.this); } diff --git a/app/src/main/java/ru/yandex/yamblz/data/Artist.java b/app/src/main/java/ru/yandex/yamblz/models/Artist.java similarity index 97% rename from app/src/main/java/ru/yandex/yamblz/data/Artist.java rename to app/src/main/java/ru/yandex/yamblz/models/Artist.java index c05f1ac..c623435 100644 --- a/app/src/main/java/ru/yandex/yamblz/data/Artist.java +++ b/app/src/main/java/ru/yandex/yamblz/models/Artist.java @@ -1,6 +1,4 @@ -package ru.yandex.yamblz.data; - -import android.util.Log; +package ru.yandex.yamblz.models; import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; diff --git a/app/src/main/java/ru/yandex/yamblz/data/Genre.java b/app/src/main/java/ru/yandex/yamblz/models/Genre.java similarity index 97% rename from app/src/main/java/ru/yandex/yamblz/data/Genre.java rename to app/src/main/java/ru/yandex/yamblz/models/Genre.java index 002ae47..64d8f37 100644 --- a/app/src/main/java/ru/yandex/yamblz/data/Genre.java +++ b/app/src/main/java/ru/yandex/yamblz/models/Genre.java @@ -1,4 +1,4 @@ -package ru.yandex.yamblz.data; +package ru.yandex.yamblz.models; import java.util.ArrayList; import java.util.Arrays; diff --git a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java index 5a2b807..2c6e567 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java @@ -1,13 +1,8 @@ package ru.yandex.yamblz.ui.adapters; import android.content.Context; -import android.content.res.Resources; import android.graphics.Bitmap; -import android.graphics.drawable.BitmapDrawable; -import android.media.tv.TvContract; import android.os.Handler; -import android.support.annotation.MainThread; -import android.support.v7.app.ActionBar; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; @@ -16,7 +11,6 @@ import android.widget.ImageView; import android.widget.TextView; -import java.util.AbstractList; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ThreadPoolExecutor; @@ -29,8 +23,9 @@ import ru.yandex.yamblz.App; import ru.yandex.yamblz.ApplicationModule; import ru.yandex.yamblz.R; -import ru.yandex.yamblz.data.Artist; -import ru.yandex.yamblz.data.Genre; +import ru.yandex.yamblz.images.ImageCache; +import ru.yandex.yamblz.models.Artist; +import ru.yandex.yamblz.models.Genre; import ru.yandex.yamblz.loader.AsyncLoader; import ru.yandex.yamblz.loader.CollageLoader; import ru.yandex.yamblz.loader.ImageTarget; @@ -68,7 +63,7 @@ public void resetData() { @Override public void onBindViewHolder(GenresHolder holder, int position) { - holder.bind(genreList.get(position)); + holder.bind(genreList.get(position), position); } @Override @@ -77,7 +72,12 @@ public int getItemCount() { } public static class GenresHolder extends RecyclerView.ViewHolder implements ImageTarget { - @Inject @Named(ApplicationModule.MAIN_THREAD_POOL_EXECUTOR) + private static final String COLLAGE_CACHE_KEY_TEMPLATE = "collage:"; + + @Inject @Named(ApplicationModule.IMAGE_CACHE) + ImageCache imageCache; + + @Inject @Named(ApplicationModule.THREAD_POOL_EXECUTOR) ThreadPoolExecutor executor; @Inject @Named(ApplicationModule.MAIN_THREAD_HANDLER) @@ -94,7 +94,7 @@ public static class GenresHolder extends RecyclerView.ViewHolder implements Imag CollageLoader currentAsyncLoader; - int counter = 0; + int currentLoadingPosition; public GenresHolder(View itemView, Context context) { super(itemView); @@ -102,8 +102,7 @@ public GenresHolder(View itemView, Context context) { App.get(context).applicationComponent().inject(this); } - void bind(Genre genre) { - Log.d("BIND", "bind"); + void bind(Genre genre, int position) { genreTextView.setText(genre.getName()); StringBuilder builder = new StringBuilder(); List artistList = genre.getArtistList(); @@ -119,19 +118,34 @@ void bind(Genre genre) { imageUrls.add(artist.getCover().getSmall()); } - genreImageView.setImageBitmap(null); + Bitmap cachedCollage = fetchCollageFromCache(position); + if (cachedCollage != null) { + genreImageView.setImageBitmap(cachedCollage); + } + else { + genreImageView.setImageBitmap(null); + + //here we use the trick from https://developer.android.com/training/displaying-bitmaps/process-bitmap.html + //remembering the AsyncLoader that was last and comparing it to the one that finished in onLoadBitmap + + currentAsyncLoader = new ThreadedCollageLoader(executor, mainThreadHandler); + currentLoadingPosition = position; + currentAsyncLoader.loadCollage(imageUrls, this); + } + } + + private String getCacheKeyForPosition(int position) { + return COLLAGE_CACHE_KEY_TEMPLATE + position; + } - /* - here we use the trick from https://developer.android.com/training/displaying-bitmaps/process-bitmap.html - remembering the AsyncLoader that was last and comparing it to the one that finished in onLoadBitmap - */ - currentAsyncLoader = new ThreadedCollageLoader(executor, mainThreadHandler); - currentAsyncLoader.loadCollage(imageUrls, this); + private Bitmap fetchCollageFromCache(int position) { + return imageCache.get(getCacheKeyForPosition(position)); } @Override public void onLoadBitmap(Bitmap bitmap, AsyncLoader asyncLoader) { if (asyncLoader == currentAsyncLoader) { + imageCache.put(getCacheKeyForPosition(currentLoadingPosition), bitmap); genreImageView.setImageBitmap(bitmap); } } diff --git a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java index 56172d8..bb86932 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java @@ -15,7 +15,7 @@ import butterknife.BindView; import ru.yandex.yamblz.R; -import ru.yandex.yamblz.data.Genre; +import ru.yandex.yamblz.models.Genre; import ru.yandex.yamblz.loader.GenresLoader; import ru.yandex.yamblz.ui.adapters.GenresAdapter; From 1d3b4b58ebcbd5deb11c0d3ff30b4340f206b215 Mon Sep 17 00:00:00 2001 From: grin3s Date: Sun, 7 Aug 2016 14:00:16 +0300 Subject: [PATCH 6/9] cache refactor --- .../handler/CriticalSectionsHandlerImpl.java | 81 +++++++++++++++++++ .../handler/CriticalSectionsManager.java | 17 ---- .../handler/StubCriticalSectionsHandler.java | 39 --------- .../yamblz/loader/ThreadedCollageLoader.java | 54 ++++++++----- .../yamblz/ui/adapters/GenresAdapter.java | 28 ++----- 5 files changed, 121 insertions(+), 98 deletions(-) create mode 100644 app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsHandlerImpl.java delete mode 100644 app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsManager.java delete mode 100644 app/src/main/java/ru/yandex/yamblz/handler/StubCriticalSectionsHandler.java diff --git a/app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsHandlerImpl.java b/app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsHandlerImpl.java new file mode 100644 index 0000000..de9bfd3 --- /dev/null +++ b/app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsHandlerImpl.java @@ -0,0 +1,81 @@ +package ru.yandex.yamblz.handler; + +import android.os.Handler; +import android.os.HandlerThread; + +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.Queue; +import java.util.TreeMap; + +public class CriticalSectionsHandlerImpl implements CriticalSectionsHandler { + + private HashSet sectionsSet = new HashSet<>(); + private HashSet tasksInQueue = new HashSet<>(); + private Queue lowPriorityTasksQueue = new LinkedList<>(); + + private Handler mainThreadHandler; + + public CriticalSectionsHandlerImpl(Handler mainThreadHandler) { + this.mainThreadHandler = mainThreadHandler; + } + + @Override + public void startSection(int id) { + sectionsSet.add(id); + } + + @Override + public void stopSection(int id) { + sectionsSet.remove(id); + postQueuedTasks(); + } + + @Override + public void stopSections() { + sectionsSet.clear(); + postQueuedTasks(); + } + + @Override + public void postLowPriorityTask(Task task) { + if (isInSection()) { + lowPriorityTasksQueue.add(task); + tasksInQueue.add(task); + } + else { + mainThreadHandler.post(task::run); + } + + } + + @Override + public void postLowPriorityTaskDelayed(Task task, int delay) { + + } + + @Override + public void removeLowPriorityTask(Task task) { + + } + + @Override + public void removeLowPriorityTasks() { + + } + + boolean isInSection() { + return sectionsSet.size() > 0; + } + + void postQueuedTasks() { + while (!lowPriorityTasksQueue.isEmpty()) { + Task task = lowPriorityTasksQueue.remove(); + if (tasksInQueue.contains(task)) { + tasksInQueue.remove(task); + mainThreadHandler.post(task::run); + } + } + } +} diff --git a/app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsManager.java b/app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsManager.java deleted file mode 100644 index 8a3d496..0000000 --- a/app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsManager.java +++ /dev/null @@ -1,17 +0,0 @@ -package ru.yandex.yamblz.handler; - -public class CriticalSectionsManager { - - private static CriticalSectionsHandler sCriticalSectionsHandler; - - public static void init(CriticalSectionsHandler criticalSectionsHandler) { - sCriticalSectionsHandler = criticalSectionsHandler; - } - - public static CriticalSectionsHandler getHandler() { - if (sCriticalSectionsHandler == null) { - sCriticalSectionsHandler = new StubCriticalSectionsHandler(); - } - return sCriticalSectionsHandler; - } -} diff --git a/app/src/main/java/ru/yandex/yamblz/handler/StubCriticalSectionsHandler.java b/app/src/main/java/ru/yandex/yamblz/handler/StubCriticalSectionsHandler.java deleted file mode 100644 index 0af9646..0000000 --- a/app/src/main/java/ru/yandex/yamblz/handler/StubCriticalSectionsHandler.java +++ /dev/null @@ -1,39 +0,0 @@ -package ru.yandex.yamblz.handler; - -public class StubCriticalSectionsHandler implements CriticalSectionsHandler { - - @Override - public void startSection(int id) { - - } - - @Override - public void stopSection(int id) { - - } - - @Override - public void stopSections() { - - } - - @Override - public void postLowPriorityTask(Task task) { - - } - - @Override - public void postLowPriorityTaskDelayed(Task task, int delay) { - - } - - @Override - public void removeLowPriorityTask(Task task) { - - } - - @Override - public void removeLowPriorityTasks() { - - } -} diff --git a/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java b/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java index 2b535b6..86a3ac5 100644 --- a/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java +++ b/app/src/main/java/ru/yandex/yamblz/loader/ThreadedCollageLoader.java @@ -2,6 +2,7 @@ import android.graphics.Bitmap; import android.os.Handler; +import android.text.TextUtils; import android.widget.ImageView; import java.lang.ref.WeakReference; @@ -14,6 +15,7 @@ import java.util.concurrent.Future; import java.util.concurrent.ThreadPoolExecutor; +import ru.yandex.yamblz.images.ImageCache; import ru.yandex.yamblz.images.ImageDownloadTask; /** @@ -33,10 +35,13 @@ public class ThreadedCollageLoader extends CollageLoader { List urls; CollageStrategy collageStrategy; + ImageCache imageCache; - public ThreadedCollageLoader(ThreadPoolExecutor mExecutor, Handler mainThreadHandler) { + + public ThreadedCollageLoader(ThreadPoolExecutor mExecutor, Handler mainThreadHandler, ImageCache imageCache) { this.mExecutor = mExecutor; this.mainThreadHandler = mainThreadHandler; + this.imageCache = imageCache; } @Override @@ -65,28 +70,39 @@ public void loadCollage(List urls, ImageTarget imageTarget, CollageStrat private class MakeCollageTask implements Runnable { @Override public void run() { - List> futures = new ArrayList<>(); - for (String url : urls) { - futures.add(mExecutor.submit(new ImageDownloadTask(url))); - } - List bitmapList = new ArrayList<>(); - try { - for (Future future : futures) { - bitmapList.add(future.get()); + String cacheKey = TextUtils.join("", urls); + Bitmap cachedCollage = imageCache.get(cacheKey); + if (cachedCollage == null) { + List> futures = new ArrayList<>(); + for (String url : urls) { + futures.add(mExecutor.submit(new ImageDownloadTask(url))); } - Collections.shuffle(bitmapList); - Bitmap collageBitmap = collageStrategy.create(bitmapList); - mainThreadHandler.post(() -> { - ImageTarget imageTarget = imageTargetRef.get(); - if (imageTarget != null) { - // TODO: put this into ui thread queue - imageTarget.onLoadBitmap(collageBitmap, ThreadedCollageLoader.this); + List bitmapList = new ArrayList<>(); + try { + for (Future future : futures) { + bitmapList.add(future.get()); } - }); - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); + Collections.shuffle(bitmapList); + Bitmap collageBitmap = collageStrategy.create(bitmapList); + imageCache.put(cacheKey, collageBitmap); + postResult(collageBitmap); + } catch (InterruptedException | ExecutionException e) { + e.printStackTrace(); + } + } + else { + postResult(cachedCollage); } } + + private void postResult(Bitmap bitmap) { + mainThreadHandler.post(() -> { + ImageTarget imageTarget = imageTargetRef.get(); + if (imageTarget != null) { + imageTarget.onLoadBitmap(bitmap, ThreadedCollageLoader.this); + } + }); + } } } diff --git a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java index 2c6e567..546126e 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java @@ -94,8 +94,6 @@ public static class GenresHolder extends RecyclerView.ViewHolder implements Imag CollageLoader currentAsyncLoader; - int currentLoadingPosition; - public GenresHolder(View itemView, Context context) { super(itemView); ButterKnife.bind(this, itemView); @@ -118,34 +116,18 @@ void bind(Genre genre, int position) { imageUrls.add(artist.getCover().getSmall()); } - Bitmap cachedCollage = fetchCollageFromCache(position); - if (cachedCollage != null) { - genreImageView.setImageBitmap(cachedCollage); - } - else { - genreImageView.setImageBitmap(null); - - //here we use the trick from https://developer.android.com/training/displaying-bitmaps/process-bitmap.html - //remembering the AsyncLoader that was last and comparing it to the one that finished in onLoadBitmap + genreImageView.setImageBitmap(null); - currentAsyncLoader = new ThreadedCollageLoader(executor, mainThreadHandler); - currentLoadingPosition = position; - currentAsyncLoader.loadCollage(imageUrls, this); - } - } - - private String getCacheKeyForPosition(int position) { - return COLLAGE_CACHE_KEY_TEMPLATE + position; - } + //here we use the trick from https://developer.android.com/training/displaying-bitmaps/process-bitmap.html + //remembering the AsyncLoader that was last and comparing it to the one that finished in onLoadBitmap - private Bitmap fetchCollageFromCache(int position) { - return imageCache.get(getCacheKeyForPosition(position)); + currentAsyncLoader = new ThreadedCollageLoader(executor, mainThreadHandler, imageCache); + currentAsyncLoader.loadCollage(imageUrls, this); } @Override public void onLoadBitmap(Bitmap bitmap, AsyncLoader asyncLoader) { if (asyncLoader == currentAsyncLoader) { - imageCache.put(getCacheKeyForPosition(currentLoadingPosition), bitmap); genreImageView.setImageBitmap(bitmap); } } From da0dc52c969bb689ab86c810f035890a9bbde6a4 Mon Sep 17 00:00:00 2001 From: grin3s Date: Sun, 7 Aug 2016 14:28:02 +0300 Subject: [PATCH 7/9] critical sections work, images are not loaded while scrolling --- .../yandex/yamblz/ApplicationComponent.java | 4 +++ .../ru/yandex/yamblz/ApplicationModule.java | 8 +++++ .../yamblz/ui/adapters/GenresAdapter.java | 7 +++- .../yamblz/ui/fragments/ContentFragment.java | 34 +++++++++++++++++++ 4 files changed, 52 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java b/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java index 04cac99..4fedbcc 100644 --- a/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java +++ b/app/src/main/java/ru/yandex/yamblz/ApplicationComponent.java @@ -17,6 +17,7 @@ import ru.yandex.yamblz.images.ImageCache; import ru.yandex.yamblz.ui.activities.MainActivity; import ru.yandex.yamblz.ui.adapters.GenresAdapter; +import ru.yandex.yamblz.ui.fragments.ContentFragment; @Singleton @Component(modules = { @@ -45,6 +46,9 @@ public interface ApplicationComponent { @Named(ApplicationModule.IMAGE_CACHE) @Singleton ImageCache imageCache(); + + void inject(@NonNull MainActivity mainActivity); void inject(@NonNull GenresAdapter.GenresHolder genresHolder); + void inject(@NonNull ContentFragment contentFragment); } diff --git a/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java b/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java index 3a20aa0..a19ec9b 100644 --- a/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java +++ b/app/src/main/java/ru/yandex/yamblz/ApplicationModule.java @@ -14,6 +14,8 @@ import dagger.Module; import dagger.Provides; +import ru.yandex.yamblz.handler.CriticalSectionsHandler; +import ru.yandex.yamblz.handler.CriticalSectionsHandlerImpl; import ru.yandex.yamblz.images.ImageCache; @Module @@ -22,6 +24,7 @@ public class ApplicationModule { public static final String MAIN_THREAD_HANDLER = "main_thread_handler"; public static final String THREAD_POOL_EXECUTOR = "main_thread_pool_executor"; public static final String IMAGE_CACHE = "image_cache"; + public static final String MAIN_THREAD_CRITICAL_SECTIONS_HANDLER = "image_cache"; @NonNull private final Application application; @@ -52,4 +55,9 @@ public ImageCache provideImageCache() { return new ImageCache(maxMemory / 8); } + @Provides @Named(MAIN_THREAD_CRITICAL_SECTIONS_HANDLER) @Singleton + public CriticalSectionsHandler provideMainThreadCriticalSectionHandler(@Named(MAIN_THREAD_HANDLER) Handler mainThreadHandler) { + return new CriticalSectionsHandlerImpl(mainThreadHandler); + } + } diff --git a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java index 546126e..ecc41a4 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/adapters/GenresAdapter.java @@ -23,6 +23,8 @@ import ru.yandex.yamblz.App; import ru.yandex.yamblz.ApplicationModule; import ru.yandex.yamblz.R; +import ru.yandex.yamblz.handler.CriticalSectionsHandler; +import ru.yandex.yamblz.handler.Task; import ru.yandex.yamblz.images.ImageCache; import ru.yandex.yamblz.models.Artist; import ru.yandex.yamblz.models.Genre; @@ -83,6 +85,9 @@ public static class GenresHolder extends RecyclerView.ViewHolder implements Imag @Inject @Named(ApplicationModule.MAIN_THREAD_HANDLER) Handler mainThreadHandler; + @Inject @Named(ApplicationModule.MAIN_THREAD_CRITICAL_SECTIONS_HANDLER) + CriticalSectionsHandler criticalSectionsHandler; + @BindView(R.id.genre_textview) TextView genreTextView; @@ -128,7 +133,7 @@ void bind(Genre genre, int position) { @Override public void onLoadBitmap(Bitmap bitmap, AsyncLoader asyncLoader) { if (asyncLoader == currentAsyncLoader) { - genreImageView.setImageBitmap(bitmap); + criticalSectionsHandler.postLowPriorityTask(() -> genreImageView.setImageBitmap(bitmap)); } } } diff --git a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java index bb86932..3cb0cf8 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java @@ -13,8 +13,14 @@ import java.util.List; +import javax.inject.Inject; +import javax.inject.Named; + import butterknife.BindView; +import ru.yandex.yamblz.App; +import ru.yandex.yamblz.ApplicationModule; import ru.yandex.yamblz.R; +import ru.yandex.yamblz.handler.CriticalSectionsHandler; import ru.yandex.yamblz.models.Genre; import ru.yandex.yamblz.loader.GenresLoader; import ru.yandex.yamblz.ui.adapters.GenresAdapter; @@ -23,10 +29,14 @@ public class ContentFragment extends BaseFragment implements LoaderManager.Loade @BindView(R.id.rv) RecyclerView rv; + @Inject @Named(ApplicationModule.MAIN_THREAD_CRITICAL_SECTIONS_HANDLER) + CriticalSectionsHandler criticalSectionsHandler; + @NonNull @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_content, container, false); + App.get(getContext()).applicationComponent().inject(this); getLoaderManager().initLoader(0, null, this); return rootView; } @@ -36,6 +46,7 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); rv.setLayoutManager(new LinearLayoutManager(getContext())); rv.setAdapter(new GenresAdapter(getContext())); + rv.setOnScrollListener(new RecyclerScrollListener(criticalSectionsHandler)); } @Override @@ -52,4 +63,27 @@ public void onLoadFinished(Loader> loader, List data) { public void onLoaderReset(Loader> loader) { ((GenresAdapter) rv.getAdapter()).resetData(); } + + private static class RecyclerScrollListener extends RecyclerView.OnScrollListener { + CriticalSectionsHandler criticalSectionsHandler; + + public RecyclerScrollListener(CriticalSectionsHandler criticalSectionsHandler) { + this.criticalSectionsHandler = criticalSectionsHandler; + } + + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + super.onScrollStateChanged(recyclerView, newState); + switch (newState) { + case RecyclerView.SCROLL_STATE_DRAGGING: + criticalSectionsHandler.startSection(0); + break; + case RecyclerView.SCROLL_STATE_IDLE: + criticalSectionsHandler.stopSection(0); + break; + default: + break; + } + } + } } From c7e42b7345c3c623d4749d98b6f6de511d350bff Mon Sep 17 00:00:00 2001 From: grin3s Date: Sun, 7 Aug 2016 14:58:23 +0300 Subject: [PATCH 8/9] finished critical sections --- .../handler/CriticalSectionsHandlerImpl.java | 24 ++++++++++++++----- .../yamblz/ui/fragments/ContentFragment.java | 1 + 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsHandlerImpl.java b/app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsHandlerImpl.java index de9bfd3..747926d 100644 --- a/app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsHandlerImpl.java +++ b/app/src/main/java/ru/yandex/yamblz/handler/CriticalSectionsHandlerImpl.java @@ -4,10 +4,10 @@ import android.os.HandlerThread; import java.util.HashSet; -import java.util.LinkedHashMap; + import java.util.LinkedList; import java.util.Queue; -import java.util.TreeMap; + public class CriticalSectionsHandlerImpl implements CriticalSectionsHandler { @@ -16,9 +16,13 @@ public class CriticalSectionsHandlerImpl implements CriticalSectionsHandler { private Queue lowPriorityTasksQueue = new LinkedList<>(); private Handler mainThreadHandler; + private Handler waitingHandler; public CriticalSectionsHandlerImpl(Handler mainThreadHandler) { this.mainThreadHandler = mainThreadHandler; + HandlerThread waitingThread = new HandlerThread("waiting"); + waitingThread.start(); + waitingHandler = new Handler(waitingThread.getLooper()); } @Override @@ -47,22 +51,30 @@ public void postLowPriorityTask(Task task) { else { mainThreadHandler.post(task::run); } - } @Override public void postLowPriorityTaskDelayed(Task task, int delay) { - + waitingHandler.postDelayed(() -> { + if (isInSection()) { + lowPriorityTasksQueue.add(task); + } + else { + mainThreadHandler.post(task::run); + } + }, delay); + tasksInQueue.add(task); } @Override public void removeLowPriorityTask(Task task) { - + tasksInQueue.remove(task); } @Override public void removeLowPriorityTasks() { - + tasksInQueue.clear(); + lowPriorityTasksQueue.clear(); } boolean isInSection() { diff --git a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java index 3cb0cf8..d9474cb 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java @@ -7,6 +7,7 @@ import android.support.v4.content.Loader; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; From 37594a467c7baba6db5302d1230fe68501a9be32 Mon Sep 17 00:00:00 2001 From: grin3s Date: Sun, 7 Aug 2016 15:07:38 +0300 Subject: [PATCH 9/9] exit crash fixed --- .../java/ru/yandex/yamblz/ui/fragments/ContentFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java index d9474cb..e9ad817 100644 --- a/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java +++ b/app/src/main/java/ru/yandex/yamblz/ui/fragments/ContentFragment.java @@ -62,7 +62,7 @@ public void onLoadFinished(Loader> loader, List data) { @Override public void onLoaderReset(Loader> loader) { - ((GenresAdapter) rv.getAdapter()).resetData(); + } private static class RecyclerScrollListener extends RecyclerView.OnScrollListener {