
Como você sabe, não há limite para a perfeição. Mesmo para acústica portátil caseira, cujo público-alvo inclui apenas uma pessoa. Uma pessoa muito exigente e às vezes maníaca e teimosa. Após o lançamento do
primeiro post sobre Pi-Sonos, quase 5 meses se passaram. Durante esse período, o software dentro dessa acústica conseguiu mudar drasticamente duas vezes. A razão para as mudanças foram conselhos úteis dos habrachianos e sua própria UX.
Um pouco de história para quem tem preguiça de ler ou que já esqueceu o primeiro artigoPi-Sonos é uma acústica compacta caseira, cuja criação foi inspirada no Sonos Play 1. O objetivo dessa acústica era, antes de tudo, tocar música de estações de rádio da Internet. Ao criá-lo, coloquei o minimalismo e a conveniência em primeiro plano: conectei-o a uma tomada e, em qualquer lugar da casa, controle a música do seu smartphone / computador / tablet.
Sobre o que é este artigoAntes de tudo, sobre perseverança e curiosidade a caminho do ideal. Sob o corte,
nome de usuário , não haverá solução para nenhum problema global, nem uma descrição de uma nova tecnologia exclusiva. O artigo apenas apresenta uma comparação de centros de mídia populares para o Raspberry Pi, revela seus pontos fortes e fracos, bem como minha visão pessoal da estrutura ideal para um rádio na Internet. De fato, enquanto desenvolvia meu próprio software para o alto-falante, apenas repeti parcialmente o caminho dos criadores do Volumio, percebendo do zero apenas uma de suas funções (leia-se: “inventou outra bicicleta”).
Apesar do artigo abordar o tópico de desenvolvimento de software, não há código, porque o objetivo do artigo é descrever a ideia e a funcionalidade, e não o processo de sua implementação. Se o tópico do código for interessante para os residentes, tentarei dominar um artigo separado que descreve o processo de desenvolvimento.
Inicialmente, o software para acústica era o
OSMC , mas as pessoas sábias nos comentários chamaram a atenção para o fato de que Kodi (também conhecido como OSMC) é muito ousado como o "cérebro" de uma estação de rádio na Internet. Ele é muito inteligente e grande, apenas para projetos de áudio
Volumio é melhor. Na verdade, acabou assim. O Volumio é mais leve, aprimorado pela interface da web e possui uma API mais avançada e fácil de desenvolver. Além disso, não há necessidade de um cabo HDMI saindo por trás, porque o Volumio é totalmente personalizável em qualquer navegador.
No entanto, Volumio também mostrou algumas deficiências importantes que me levaram a mais pesquisas. Este é, primeiro, o tempo de download e, segundo, a falta de reprodução automática. Depois de estudar a
documentação oficial (da qual se pode entender que o Volumio é um complemento para mpd (Music Player Daemon)), decidi que era hora de escrever meu próprio invólucro chamado RPi-Radio nos js que resolveria esses problemas. Sua parte do servidor está em execução no Node.js, e a parte do cliente (GUI) usando o React.js está pronta desde o OSMC, apenas precisando ser ajustada. Agora, ele aparece na tela do smartphone:
Abaixo está uma placa que mostra claramente as desvantagens e vantagens de cada uma das estruturas.
Critério | OSMC | Volumio | RPi-Radio |
---|
Tempo de carregamento | 35 s | 45 s | 20 s |
Reprodução automática de inicialização | não * | não * | sim |
O número de fitas da tela principal da GUI “nativa” no smartphone para selecionar uma estação de rádio da lista Favoritos ** | 5 + 1 rolagem | 4 | 1 |
A necessidade de um monitor, teclado e mouse *** | sim | não | não |
Gerenciamento da Web | parcial | completo | parcial |
Editando lista de estações | mais ou menos | as normas | mais ou menos |
Fácil configuração inicial | mais ou menos | ótimo | medíocre |
Integração com a GUI do meu smartphone | com muletas | com muletas | fora da caixa |
Conveniência de uso diário | ☆ | ☆☆ | ☆☆☆ |
* na verdade sim, mas você precisa fazer uma muleta e palma da mão na inicialização do Raspbian; no caso do OSMC, a muleta é escrita em python, e no caso do Volumio, em js ou bash. Mas em ambos os casos, ainda não funciona como gostaríamos.
** para OSMC e Volumio, esses são parâmetros muito importantes, porque todos esses toques devem ser feitos sempre que você ativar a coluna. Para o RPi-Radio, esse parâmetro, embora mínimo, ainda não é tão importante, pois a coluna começa a ser reproduzida quando é ligada.
*** Quero dizer a conexão física do monitor, teclado e mouse ao próprio Raspberry Pi, ou seja, nos casos em que não há como contornar a interface da web interna ou a conexão ssh.
Sob esse spoiler, há uma explicação detalhada de cada um dos pontos de comparação.Um tempo de inicialização de 20 segundos é, na minha opinião, o mínimo que pode ser alcançado sem a necessidade de otimizar o Raspbian para este projeto. É quanto tempo leva para o Malinka carregar o sistema operacional e iniciar o serviço mpd. Provavelmente, esse resultado poderá ser aprimorado se você substituir o microSDHC pelo microSDXC com uma velocidade de leitura / gravação mais alta (vou verificar se possível). Surpreendentemente, Volumio, fingindo ser leve e ágil, leva mais tempo para carregar do que a colheitadeira de monstros OSMC. 45 segundos de espera estão além do limiar da operação confortável, e esse foi o principal motivo para deixar o Volumio.
A reprodução automática está presente no mpd, não precisei fazer nada para ativá-lo - convenientemente! No Volumio, embora seja um wrapper mpd, essa função foi estrangulada por causa de um belo som de saudação. Como já escrevi, você pode criar um script e colocá-lo na inicialização. A situação é semelhante para o OSMC.
O OSMC tem a maior parte da interação do usuário através do monitor: existe uma interface bonita, a capacidade de assistir vídeos, fotos, ler notícias e assistir o clima - há muitas coisas que minha coluna nunca fará na minha vida.
Mas o gerenciamento da Web da OSMC é muito limitado e você não pode configurar remotamente sua lista de estações favoritas no plug-in Radio - apenas através do monitor. Na Volumio - pelo contrário, tudo é apenas através da interface da web. A edição da lista de estações é mais conveniente no navegador do desktop / laptop, mas também é possível no smartphone, se desejado. Com o RPi-Radio, você pode selecionar apenas uma estação e ajustar o som pela interface da web. A lista de estações e, de fato, tudo o mais deve ser feito através do console via ssh. A lista de estações é a mais difícil: se o OSMC e o Volumio têm suas próprias bibliotecas extensas de estações de rádio na Internet, então no RPi-Radio eu tive que inserir manualmente os endereços das minhas estações favoritas no formato JSON. Inconvenientemente, mas apenas uma (ou várias) vezes na vida.
Com a configuração inicial, o OSMC é o pior. Primeiro, você precisa conectar um monitor ao "raspberry" e configurar o plug-in Radio, depois configurar a saída de som para o IQAudio DAC externo (o mesmo da placa Suptronics X400) via console ou via ssh. O RPi-Radio tem a mesma configuração de DAC, mas pelo menos tudo o mais é feito via ssh. O líder nesta categoria, é claro, é o Volumio - para emitir som através de um DAC externo, basta selecionar o item apropriado na lista suspensa no menu de configurações. Há uma comparação mesmo no site oficial da Suptronics (http://www.suptronics.com/xseries/x400.html)
A GUI no RPi-Radio é uma página da web simples implementada no React.js. A parte do servidor, responsável pela interação entre a GUI do cliente e o mpd, é executada no Node.js e é um servidor HTTP e WebSocket simples baseado na conexão express
Socket.io
+ http
+ express
. É executado no Raspbian como um serviço quando o sistema é ligado imediatamente após o serviço mpd ser iniciado e usa o módulo mpc-js
para controlar o mpd. A GUI do cliente pode ser acessada em qualquer navegador da minha rede doméstica simplesmente por ip ou nome de host "raspberry". Perfeito.
As fontes RPi-Radio são publicadas no
Github . No mesmo repositório, nos brunches correspondentes, é possível encontrar as duas adaptações da GUI para trabalhar com OSMC e Volumio.
O resultado dos meus exercícios, RPi-Radio, está além do escopo de uma simples adição a uma única coluna. Esse é um tipo de solução pronta que transforma não apenas o Raspberry Pi em um receptor de rádio da Internet, mas também qualquer dispositivo com saída de áudio, acesso à Internet e a capacidade de executar mpd e Node.js. A principal vantagem desse sistema é a falta de tudo o que é supérfluo. Na verdade, como foi feito no Sonos, no ideal que eu me esforço para alcançar.