FPlay

FPlay para Android é um player de música com interface limpa, equalizador, ajuste de graves e de cores. E o melhor, é completamente open source! O código está disponível no GitHub :D

O principal objetivo desse projeto é fornecer ao usuário um player completamente funcional, baseado em listas e pastas. O player, por sua vez, não consome muita memória e respeita as diretrizes para cores e contraste do WCAG 2.0, sendo amigável a pessoas com daltonismo, alguns tipos de dislexia, bem como com algumas deficiências visuais leves.

O player está sempre em "fase beta", portanto, ainda podem existir alguns pequenos bugs. Por favor, me avise se por acaso você se deparar com um deles ;)

Outras funcionalidades do player:

  • Personalização de cores e de temas
  • Suporte nativo de fonte amigável para dislexia (melhor legibilidade)
  • Envio de informação da música atual via A2DP / AVRCP Bluetooth (testado em Android 4.0+)
  • Reprodução de streams da Internet
  • Fade in de volume depois de retornar de chamadas e do pause
  • Analisador de espectro em tempo real
  • Totalmente controlável através do teclado
  • Controlável via dispositivos de áudio Bluetooth (testado em Android 4.0+)
  • Baixa latência nas mudanças entre músicas consecutivas em Android 4.1+
  • Controle total através da área de notificação em Android 4.1+
  • Desligamento programável por timer
  • Suporte à tecnologia assistiva TalkBack
  • Virtualização de áudio
  • Acesso a dispositivos USB externos

Disponível no Google Play

Equalizador Gráfico

Sempre fui fanático por sons, áudio e aqueles "ledzinhos que pulam" conforme a música, desde bem pequeno...

Pouco tempo depois de ter entrado nessa vida de programação, quando já me sentia confortável com threads e C++, resolvi começar a programar coisas relacionadas a áudio. Minhas primeiras brincadeiras foram com a (agora esquecida por muitos) Windows Media Control Interface API, ou Win32 MCI API. Em seguida migrei para Waveform Audio API (aquelas waveInXXX, waveOutXXX), depois DirectSound, e agora XAudio.

Enquanto trabalhava com DirectSound, criei um equalizador gráfico em C++, onde era possível desenhar a resposta em frequência, em vez de apenas arrastar uns poucos botões, um para cada frequência.

Como eu vi que já existia um plugin externo para o Winamp que já fazia isso, transformei esse equalizador em um pequeno player, que aliás, uso até hoje :)

Mas... O mundo não para... O que ontem era lento e desprezado por alguns, hoje começa a se tornar um padrão, e dos bem poderosos! Com toda essa história de HTML5, JavaScript melhorado e Web API's, resolvi fazer um teste, e converter o equalizador de C++ para JavaScript, coisa que soaria bem estranho há alguns anos!!! O resultado deu bem certo! Tanto que foi parar na galeria de exemplos de Web Audio API! :D

Disponibilizei o projeto inteiro no GitHub e deixei ele aqui na minha página para o pessoal ir testando. Tem só um requisito: utilize um browser com suporte para a Web Audio API.

InteropMIX

Aqui você encontra o resumo (versão em baixa resolução) da minha apresentação do InteropMIX 2014: "C++ ao resgate! Acelerando apps Android com instruções SIMD".

Resumo da palestra: Introdução sobre os conceitos de SIMD. Conjunto de instruções NEON da arquitetura ARM. Exemplos de como utilizar instruções NEON, em um breve tutorial. Case final: como o SIMD ajudou a melhorar o desempenho de uma aplicação real na Play Store, o FPlay.

Arquitetura Computacional

Esses são alguns dos programas utilizados como auxílio ao material da disciplina de Arquitetura Computacional.

Tem também o compilador e emulador de Assembly Intel x86. Com ele é possível criar, editar, compilar, executar e depurar programas utilizando um subconjunto das operações disponíveis nos processadores Intel x86 da atualidade.

Caso você possua um computador mais lento, ou esteja acessando através de um tablet, pode ser que o editor de código funcional utilizado na versão acima deixe o aplicativo lento... Por isso, existe a versão abaixo sem o editor de código funcional.

Programação Web

Esses são alguns dos programas utilizados como auxílio ao material da disciplina de Programação Web. Calma, que os dois primeiros serão utilizados só nas duas primeiras aula... Depois a conversa é outra! ;)

Ficou perdido? Não lembra onde procurar ajuda?

Há ainda outros programas de exemplo, que trabalham bastante com DOM e JavaScript.

Além do material das aulas convencionais, você também pode dar uma olhada nesse material especial sobre WebGL e conceitos gerais de computação gráfica, sprites e animação. Não temos tempo de ver isso em sala de aula, mas se alguém gostar, se interessar ou tiver alguma dúvida, pode vir falar comigo!

Filósofos que Jantam

Este é o exemplo funcional com a resolução para o problema dos filósofos que jantam, utilizando a solução por grafos de precedência, em JavaScript.

Scratch e Ferramentas

Quando comecei com as aulas de lógica e algoritmos na faculdade, foi proposto utilizar uma ferramenta para auxiliar o aprendizado daqueles que ainda estão dando seus primeiros passos nesse mundo da programação, o Scratch.

O Scratch oferece um ambiente inteiramente gráfico e bem amigável, o que sempre leva os alunos a querer desenvolver jogos. Apesar de todas as funcionalidades oferecidas pela versão atual, 1.4, ainda falta uma integração com joysticks. Por isso criei um pequeno emulador para converter comandos de joystick em teclas de teclado convencional, e outras coisinhas.