;(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

Negra Li declara paixão por Jorge Ben Jor: 'Ninguém faz som como ele'

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

06/07/2021 04h00

Além de bastante conversa, é claro que também teve muita música no "Sai da Caixa", com Negra Li. Tiago Abravanel colocou o papo em dia com a cantora, entregou um vídeo exclusivo da Xuxa para ela, teve o a fotos nunca postadas no Instagram e soltou a voz ao seu lado. Toda quarta-feira, às 11h, Abravanel recebe convidados para conversar e cantar músicas fora de seus repertórios tradicionais no Canal UOL.

x - Reinaldo Canato/UOL - Reinaldo Canato/UOL
Tiago Abravanel recebe Negra Li no 'Sai da Caixa'
Imagem: Reinaldo Canato/UOL

Referências

Duelo de divas no "Sai da Caixa". Abravanel foi direto, ao questionar a preferência de Negra Li na música, Ella Fitzgerald ou Whitney Houston? "Gente, começa assim? Ella, acho que até a Whitney ia preferir ela", escolheu a cantora durante algumas risadas. E a escolha tem um resultado carinhoso e familiar.

De acordo com a convidada, a dor e o sofrimento de Ella na hora de cantar, a faz lembrar de sua tia: "Ela tem cara de tia Maria Ester. Quando vejo uns vídeos dela cantando, eu penso: 'Caramba, essa mulher é sofrida, ela já ou por poucas e boas'".

Mas calma, Whitney não sai do seu top, Negra Li justificou que Ella surgiu em uma época ainda mais difícil para a voz feminina e negra e que se vê nas suas

Por ser mulher preta, por ser cantora, por viver da música. Negra Li

n - Reinaldo Canato/UOL - Reinaldo Canato/UOL
Negra Li se apresenta no programa 'Sai da Caixa', com Tiago Abravanel
Imagem: Reinaldo Canato/UOL

A "Madalena" de Elis Regina

Uma das escolhas para soltar a voz no programa, foi o sucesso "Madalena", de Elis Regina: "Eu adoro, né? Tudo o que é da Elis é muito bom", começou. Negra Li ainda contou que aprendeu essa música na escola, mas ainda não tinha cantado, somente algumas outras não tão famosas, como "Bala com Bala" e "Cai Dentro".

Essa [Madalena] é uma que eu comecei a estudar e parei. Estudar que eu falo, é nota por nota. Eu colocava música de Elis num aplicativo que diminuía a velocidade para aprender a cantar como ela, nota por nota. Negra Li

Além dessa, a convidada da semana escolheu uma música totalmente fora do seu repertório para cantar com Tiago Abravanel: "Depois do Prazer", do Só Pra Contrariar. A dupla arrasou, viu?

s - Reinaldo Canato/UOL - Reinaldo Canato/UOL
Tiago Abravanel recebe Negra Li no 'Sai da Caixa'
Imagem: Reinaldo Canato/UOL

"Jorge Ben Jor, que raiva desse homem"

"Eu amo ele, já chorei até. Fui em um evento e eu era a primeira do palco e chorava", começou Negra Li falando da istração por Jorge Ben Jor. "Que raiva desse homem", brincou a cantora ao falar das letras escritas por ele.

Ele canta muito bem, encorpado, tem uma leveza na hora de cantar, uma precisão, um jeito meio africano, misturado com brasileiro, misturado com jazz. Ele é único, ninguém faz som como ele. Negra Li

"Sai da Caixa" toda quarta-feira, às 11h:

Você pode assistir a toda a programação do Canal UOL aqui.