;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Rick Bonadio critica funk no Grammy 2021: 'Precisamos exportar música boa'

Rick Bonadio fala sobre performance de Cardi B na premiação - Reprodução/YouTube
Rick Bonadio fala sobre performance de Cardi B na premiação Imagem: Reprodução/YouTube

Colaboração para o Splash, em São Paulo

15/03/2021 10h43

O produtor musical Rick Bonadio reprovou o "barulho" que o público brasileiro fez após Cardi B colocar um trecho do remix de "WAP", feito por Pedro Sampaio, em sua apresentação no Grammy 2021.

"Já exportamos Bossa Nova, já exportamos Samba Rock, Jobim, Ben Jor. Até Roberto Carlos. Mas o barulho que fazem por causa de 15 segundos de funk na apresentação da Cardi B me deixa com vergonha."

Em seguida, Bonadio completou seu pensamento no Twitter. "Precisamos exportar música boa e não esse 'fica de quatro'", escreveu ele, fazendo referência ao trecho do remix exibido na premiação ontem.

Rick Bonadio fala de Grammy 2020 no Twitter - Reprodução/Twitter - Reprodução/Twitter
Rick Bonadio fala de Grammy 2020 no Twitter
Imagem: Reprodução/Twitter

Na rede social, ele foi criticado por usuários, que não aprovaram a separação de "alta cultura" e "baixa cultura". "Comentário preconceituoso", afirmou uma internauta.

"A pessoa viver de arte e não ter entendido ainda que toda manifestação artística é válida e merece respeito (não somente a que eu gosto e julgo "boa") é de uma prepotência descabida", completou.

"Meio contraditório seu comentário. Se JÁ exportamos tudo isso, por que não exportarmos também o funk carioca? Só porque você não gosta?", disse outro perfil na rede.

Funk brasileiro no Grammy

A internet foi a loucura após Cardi B levar funk brasileiro para o palco do Grammy 2021, em Los Angeles. A cantora usou o remix de Pedro Sampaio para "WAP" no finalzinho de sua apresentação com Megan Thee Stallion.

O remix foi compartilhado no Twitter de Pedro Sampaio em agosto do ano ado. Muito ligada no funk brasileiro (e no sertanejo também!), a cantora viu, amou e retuitou em seu perfil na rede social.

Apesar de ter entrado nos assuntos mais comentados das redes sociais, o DJ estava dormindo na hora do Grammy e não viu o momento ao vivo. Pedro, que havia feito uma live na véspera do prêmio, comemorou nas redes sociais.