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

Heitor Villa-Lobos Compositor e músico brasileiro

5-3-1887, Rio de Janeiro (RJ)

17-11-1959, Rio de Janeiro (RJ)

Do Klick Educação

17/08/2015 20h58

Quando Heitor Villa-Lobos nasceu, um distinto grupo da cidade do Rio de Janeiro se entusiasmava com as óperas italianas, concertos de Bach, Beethoven, Chopin, e tudo o mais que viesse da Europa, ignorando a riqueza da musica popular brasileira. Quando jovem, inquieto por coisas novas e já apaixonado pela música popular, embrenhou-se no meio dos chorões cariocas e, em seguida, iniciou uma série de viagens pelo interior do Norte e Nordeste do país, pesquisando seu folclore e recolhendo canções populares. Usou apenas, como relata o musicólogo brasileiro Vasco Mariz, "uma espécie de taquigrafia com sinais representativos da unidade de movimentos e, uma vez anotado o que desejava, pedia ao cantador para repetir a canção, aproveitando para colocar notas sobre os sinais taquigrafados." Na busca de uma autenticidade nacional, mesmo extasiando-se com Wagner e Puccini, o maior músico erudito do país descartou as influências européias e incorporou temas populares às suas músicas, reformulando o conceito de nacionalismo musical. No entanto, não ou sem provocar polêmica. Em sua primeira apresentação oficial como compositor no Rio de Janeiro (1915), onde apresentou obras como 'Trio nº 1' (1911) e 'Sonata fantasia nº 2' (1914), foi severamente criticado pela audácia e modernidade de suas composições. Anos mais tarde explicaria: "Não escrevo dissonante para ser moderno. De maneira nenhuma. O que escrevo é conseqüência cósmica dos estudos que fiz, da síntese a que cheguei para espelhar uma natureza como a do Brasil." Autodidata, teve suas primeiras lições de música com o pai, com quem aprendeu a tocar violoncelo e clarinete, freqüentou concertos e óperas e participou de saraus de música. Escreveu sua primeira obra típica: os 'Cânticos Sertanejos', onde procurou reproduzir o ambiente musical brasileiro, em 1907. Seu estilo se concretizou em 'Danças africanas' (1914-1916), composição sobre três danças negras ('Farrapós', 'Kankikís' e 'Kankukús'), apresentada durante a Semana de Arte Moderna de 1922. Num conjunto de inúmeras composições, destacam-se 'Choros', uma obra exuberante e colossal (são 16 peças escritas no período de 1920 a 1928) que emprega temas, ritmos e instrumentos tipicamente brasileiros e as 'Bachianas Brasileiras', um conjunto de nove séries elaboradas entre os anos de 1930 a 1945, que justapõe a atmosfera musical de Bach a ambientes típicos brasileiros.