Embora simples, configurar o Fmdx Webserver pode não ser uma tarefa tão trivial — especialmente para quem tem pouca familiaridade com computadores e rádios.
Neste artigo, veremos para que servem todas as configurações disponíveis no painel de administração do sistema, de modo que você seja perfeitamente capaz de ajustá-lo de acordo com suas necessidades.
Caso você não saiba o que é o Fmdx, como ele funciona ou ainda como instalá-lo, recomendo a leitura do artigo anterior – Fmdx Webserver no Raspberry com TEF668x
Nele, falo sobre o projeto da comunidade fmdx.org e a infraestrutura necessária para colocar no ar um servidor de rádio disponível para o mundo através da internet.
Sem mais delongas, vamos ao que interessa! Boa leitura!
Visão Geral do Painel de Administração
Quando precisamos configurar o Fmdx WebServer, o fazemos de duas formas diferentes: via painel de administração (recomendado) ou editando arquivos de configuração do próprio servidor.
Podemos acessar o painel diretamente pela sua URL (http://<ip>:8080/setup) ou pelo menu de configurações da interface de usuário conforme abaixo:

Em seguida digite a senha definida durante a instalação e clique no botão ao lado da caixa de texto:

Isso fará com que você se logue como administrador do sistema. Por fim, volte ao mesmo menu de configurações e veja que agora aparece o botão “Go to Admin“:

Basta clicar nele para ir diretamente ao painel de configurações. Veja abaixo como ele se parece:

É nesta página que podemos configurar diversos aspectos do nosso Fmdx Webserver. Portanto, familiarize-se bem, pois a utilizaremos muito ao longo deste artigo!
Perceba que ela é composta por um menu principal que fica no lado esquerdo. Ele agrupa as configurações por função. Dessa maneira fica fácil encontrarmos o que desejamos ajustar.
Veremos a seguir o que cada item desse menu contém e como alterar corretamente seu conteúdo.
Dashboard
O dashboard é um painel que exibe informações e métricas importantes sobre o sistema e os usuários. Ele nos mostra a quantidade de usuários ativos, uso de memória e tempo de atividade do servidor.
Além disso, na parte inferior, podemos acompanhar o log do sistema e sabermos tudo que vem acontecendo desde sua inicialização.
No entanto, esse dashboard foge um pouco à regra de apenas exibir informações e disponibiliza algumas configurações rápidas conforme abaixo:

A opção public tuner determina quais usuários podem acessar o seu Fmdx Webserver. Ela vem ativada por padrão, portanto, todos os usuários poderão escutar e operar seu rádio.
Em contrapartida, caso você queira restringir o acesso a apenas usuários munidos de senha, desative essa opção e defina a senha no campo tune password.
De maneira semelhante, porém mais restritiva, a opção admin lock bloqueia o acesso a todos os usuários, exceto ao administrador do sistema.
Essa opção vem desabilitada por padrão e sua senha é a mesma definida durante a instalação do sistema e utilizada para se logar ao painel de administração.
Tuner
As configurações dentro da categoria Tuner permitem configurar o Fmdx Webserver de modo que o ele reconheça o equipamento de rádio e o utilize adequadamente.
Além disso essa categoria de configuração também oferece ajustes de volume, frequência padrão, largura de banda e desligamento automático do sintonizar do rádio.
Veremos como tudo isso funciona em instantes. Por hora, veja como se parece a tela de configuração do Tuner:

Com o intuito de facilitar a compreensão, dividi a explicação em cinco subtópicos listados a seguir.
Device type
Nesta seção determinamos o tipo de rádio com o qual o servidor irá trabalhar.
No momento que escrevo este artigo, o Fmdx Webserver suporta apenas dispositivos baseados no chip TEF668x/TEA685x, rádios Sony XDR e dispositivos SDR baseados no RTL-SDR/Airspy:

Vale destacar que a utilização de dispositivos SDR precisa de softwares adicionais e um pouco mais de trabalho para que o Fmdx funcione corretamente. Esse assunto fica para um outro artigo!
No entanto, caso queira saber um pouco mais sobre rádio definido por software (SDR), recomendo a leitura de um outro artigo onde falo sobre esse tema: Rádio Definido por Software com RTL2838
Acredito que das três opções de dispositivos de rádio, o TEF668x é de longe a mais utilizada.
Connection type
O Fmdx Webserver pode conectar-se ao rádio de duas formas distintas: por conexão serial (direct) ou via rede por TCP/IP.

Há rádios que disponibilizam acesso somente via rede, por outro lado, existem dispositivos que somente fornecem conexão serial (por USB). Há casos onde existem ambos no mesmo aparelho.
Device / Server
Os ajustes desta seção dependem da seleção da seção anterior. Portanto, caso você marque a conexão direta (direct), você deverá ver o seguinte:

Aqui, basta escolhermos na lista a porta serial referente ao rádio e pronto.
Por outro lado, quando selecionamos a conexão via rede (TCP/IP), eis o que aparece:

Neste caso, precisamos apontar para o endereço IP do rádio, a porta de operação e sua respectiva senha. Lembrando que já fizemos tudo isso no artigo anterior.
Cabem aqui algumas informações extras que podem ser de grande valor para uma possível mudança na infraestrutura do seu projeto.
Perceba que existe uma mensagem orientando a manter o IP 127.0.0.1 (localhost) caso você use o xdrd. Mas o que é o xdrd? (https://github.com/kkonradpl/xdrd)
Trata-se de um programa criado por um dos fundadores do fmdx.org que “converte” comunicação via rede para serial e vice-versa.
Em outras palavras, o xdrd recebe um comando via rede, repassa-o para o rádio pela USB e faz o caminho inverso quando necessário.
Honestamente, uma vez que o Fmdx Webserver já possui suporte a ambos os tipos de comunicação, não vejo muito sentido em adicionar uma camada extra entre o rádio e o servidor.
No entanto, penso que em casos muito específicos, onde o rádio somente possua comunicação serial e precise estar em um computador diferente do Fmdx, o uso do xdrd faça algum sentido.
Startup volume e Default frequency
Estas duas opções são bastante autoexplicativas e portanto precisam de pouca atenção! Primeiramente veja como se parece:

O volume, obviamente, refere-se o volume do streaming dos usuários. Já default frequency permite que você defina uma frequência que o servidor sempre sintonizará após a inicialização.
Isso significa que o primeiro usuário a se conectar após a subida do sistema começará a operar o rádio a partir desta frequência.
Miscellaneous
Por fim, esta seção permite que ajustemos mais duas funcionalidades diferentes: permissão ao usuário para alterar a largura de banda e autodesligamento do tuner (quando estiver sem usuários).

Quando ativado, o bandwidth switch acrescenta um drop menu na interface do usuário que permite alterar a largura de banda da frequência sintonizada:

O recurso automatic shutdown, por sua vez, faz com que o Fmdx Webserver desligue o sintonizador do rádio quando não houver mais usuários conectados.
Ele é religado automaticamente assim que um novo usuário se conecta ao servidor. Isso permite poupar energia e vida útil do equipamento.
No entanto, pelo menos no meu equipamento tal processo leva alguns segundos e esse tempo de espera pode ser um pouco incômodo para algumas pessoas.
Áudio
Esta seção do painel de administração permite configurar diversos aspectos de áudio no Fmdx Webserver, desde sua interface até a qualidade do som.
Todas as opções são bem intuitivas e não exigem muitas explicação, mesmo assim passarei por todas elas de modo que não fique nenhuma dúvida.
Device
A primeira delas, device, permite a definição da interface de entrada de áudio do computador. Para que o servidor funcione adequadamente, é primordial que o dispositivo correto esteja selecionado.

No meu caso, o dispositivo de line-in (entrada) chama-se hw:SB. Possivelmente esse nome será diferente no seu computador.
Como encontrar o dispositivo correto varia muito de acordo com o sistema operacional, fica muito difícil fazer um passo a passo sobre isso.
No entanto, procure por alguma seção de configuração de áudio dentro do seu SO, provavelmente você encontrará a informação que precisa.
Channels
Em channels, podemos escolher a quantidade de canais (1 ou 2), ou seja, mono ou stereo:

Bitrate
Essa opção nos permite configurar a qualidade do áudio que desejamos entregar aos usuários, variando de 64kbps (qualidade baixa) à 320kbps (qualidade alta):

Lembrando que quanto melhor a qualidade, maior será o tráfego de rede. Acredito que o padrão de 128kbps seja uma boa opção, equilibrando qualidade e desempenho.
Volume
Diferentemente da opção de volume das configurações do Tuner, essa opção apenas adiciona um boost (ganho extra) no volume principal do sistema:

Com o intuito de evitar distorções no áudio, apenas habilite essa opção se o volume estiver muito baixo, mesmo após aumentá-lo ao máximo no sistema operacional.
Experimental
Essa opção pode resolver problemas relacionados ao áudio provenientes de dispositivos USB.

Uma vez que não encontrei problemas dessa natureza nos meus testes, infelizmente não consigo detalhar o funcionamento do modo experimental.
No entanto, caso esteja enfrentando algum problema com seu dispositivo USB, vale a pena habilitar essa opção para ver o que acontece.
FFmpeg
O Fmdx Webserver usa o FFmpeg para transmitir o áudio via internet aos seus usuários. Habilitar essa opção faz com que o servidor utilize o FFmpeg com parâmetros adicionais:

Assim como na seção Experimental, também não tive problemas relacionados ao streaming durante testes em diferentes cenários.
Assim sendo, não sei dizer ao certo quais reais impactos essa configuração causa na transmissão do áudio.
Caso esteja passando por qualquer comportamento indesejado do FFmpeg, fica essa carta na manga para tentar resolver o problema.
Sample rate Offset
O Offset do sample rate tem a finalidade de resolver problemas de atraso ou cortes no áudio dos usuários.
Isso pode ocorrer se o seu dispositivo de áudio não consegue manter uma taxa de amostragem (sample rate) constante. Infelizmente é comum em dispositivos mais baratos.

Se você percebe que o áudio vai ficando atrasado com o tempo, tente um valor negativo pequeno, tipo -0.05 ou -0.1.
Se o áudio fica instável, com cortes, talvez o sample rate real do hardware seja mais baixo. Teste um valor positivo.
No meu caso, não precisei alterar o valor padrão (0) em nenhum dos testes. Utilizei tanto placas de som USB quanto dispositivos onboard.
Dessa maneira, recomendo configurar esse parâmetro apenas se o Fmdx Webserver apresentar um dos sintomas acima.
Webserver
Esta parte da configuração refere-se à aspectos gerais do servidor, como por exemplo endereçamento IP, chaveamento de antenas, imagem de background e mais alguma opções de sintonia.
Assim como fizemos nas seções anteriores, vamos analisar o que cada uma delas faz.
Connection
Configurar esses parâmetros faz com que o Fmdx Webserver “escute” por conexões de forma personalizada.

A configuração padrão acima determina que o servidor aceite conexões em todas as interfaces de rede, vindas de dentro ou fora da rede local e na porta 8080.
Como a ideia é deixar o servidor exposto para a internet, essa é a configuração ideal. No entanto, caso queira algo mais restritivo, altere o IP de 0.0.0.0 para o IP do próprio servidor na rede local.
Isso fará com que ele aceite somente conexões vindas da sua rede local.
Design
Nesta seção podemos ajustar dois aspectos visuais do Fmdx Webserver: plano de fundo (background) e temas:

Definir uma imagem de fundo é bastante simples: coloque o arquivo da imagem desejada na raiz http do servidor (pasta web do diretório do fmdx).
Já a escolha de temas é muito intuitiva e dispensa explicação! Basta selecionar um dos temas disponíveis na lista.
Antennas
Existem dispositivos de rádio, como o headless tef (https://fmdx.org/projects/headless-tef.php), que permitem a conexão de duas ou mais antenas ao mesmo tempo.
A opção Antenna Switch funciona em equipamentos com essa característica e que também possuam suporte ao recurso eletrônico de troca de antena, como é o caso do headless.

Ao habilitar essa opção, o servidor torna-se capaz de identificar a antena correta para sintonizar a frequência desejada. No exemplo, estão habilitadas duas antenas.
Na maioria dos casos, como os receptores suportam apenas uma antena, deixe essa opção desmarcada.
Tuning Options
Aqui podemos diminuir a faixa de frequência do nosso rádio. Sinceramente, não sei ao certo em qual ou quais aplicações isso seria útil, no entanto é bom saber que isso é possível:

No exemplo acima, se habilitássemos o Limit Tuning, o rádio teria sua faixa de FM reduzida para 100 à 108 Mhz.
Presets
Presets permite que pré-configuremos quatro frequências que podem ser acessadas através das teclas F1 à F4. Funciona como um atalho para estações preferidas.

RDS Mode e RDS Timeout
O RDS Mode refere-se a dois padrões muito semelhantes de transmissão de dados digitais junto com o sinal de rádio FM, mas usados em regiões diferentes.
Os EUA e o Canadá usam o RBDS, enquanto praticamente o restante do mundo utiliza o padrão RDS.

Uma vez que estamos no Brasil, basta deixar esta opção desabilitada.
O RDS Timeout, por sua vez, define um tempo em segundos para limpar os dados de RDS previamente capturados, caso nenhum dado seja recebido.
Isso é muito útil para sinais RDS muito fracos, onde o servidor não consegue decodificar as informações. Isso evita que mensagens incompletas ou bagunçadas fiquem na tela.
O valor definido em 0 desabilita essa função.
Transmitter Search Algorithmn
Nesta opção podemos escolher entre três algoritmos diferentes para decodificação de sinais RDS. A documentação do Fmdx não deixa claro em quais circunstâncias devemos usar um ou outro.
No meu caso não notei diferença entre eles, portanto deixei selecionada a primeira opção (Algorithm 1).
No entanto, caso esteja passado por problemas na exibição do RDS, aconselho experimentar algoritmos diferentes.

Identification & Map
Esta seção é dedicada a configurações de identificação e localização do Fmdx Webserver.
O primeiro painel, Basic info, permite adicionarmos informações básicas como nome do servidor e uma breve descrição sobre o mesmo:

Além disso, no painel Online map, podemos registrar nosso servidor no serviço de mapa do fmdx.org:

Fazemos isso ao habilitar a opção Broadcast do Map. Dessa forma, adicionamos nosso servidor na lista de servidores Fmdx espalhados pelo mundo. Acesse https://servers.fmdx.org/ e veja como funciona:

Ao clicar em qualquer ponto verde no mapa, um menu contendo as informações que preenchemos anteriormente abrirá ao lado direito da tela:

Esta é uma ótima maneira de divulgar seu Fmdx. A não ser que sua intenção seja construir um projeto privado, recomendo fortemente habilitar essa opção!
Voltando ao painel Online Map, abaixo do botão Broadcast to map existem mais dois campos: Owner Contact e Broadcast Address.
Em Owner Contact, você pode colocar alguma informação de contato, como por exemplo e-mail, telefone, etc.
Já Broadcast Address precisa de mais atenção. Esse campo determina o endereço de acesso do seu servidor. Tal endereço fica associado ao botão Connect da imagem acima.
Dessa maneira, um endereço errado aqui resulta na impossibilidade do usuário acessar seu servidor.
Para finalizar, o painel Location (como era de se esperar) determina sua posição no mapa através das coordenadas de latitude e longitude:

Você pode obtê-las facilmente através do Google Maps.
Plugins
Através do mecanismo de plugins, podemos configurar o Fmdx Webserver de modo que inclua mais funcionalidades e melhore ainda mais a experiência do usuário.
Existem diversos plugins disponíveis para download que adicionam desde funções avançadas como rotacionar antenas até modificações de interface gráfica como logotipos, botões, temas, etc.
A lista completa de plugins fica no Github de um dos fundadores do Fmdx.org em https://github.com/NoobishSVK/fm-dx-webserver/wiki/Plugin-List.
Cada plugin possui suas próprias instruções de instalação e configuração. Em linhas gerais, eles são compostos por uma pasta e um arquivo .js.
Ambos precisam estar dentro da pasta plugins, que fica dentro da pasta de instalação do Fmdx Webserver.
O Fmdx vem com um plugin de exemplo, sem função, apenas para demonstrar como é sua estrutura:
~/fm-dx-webserver
->plugins
example.js
example
->frontend.js
Com os arquivos organizados dessa maneira, o Fmdx pode reconhecer o plugin e adicioná-lo em sua lista de plugins:

No entanto ainda precisamos ativá-lo. Basta clicar no plugin e em seguida salvar as configurações. Alguns plugins requerem reinicialização do servidor.
Se você seguiu o artigo anterior, pode fazer isso apenas reiniciando o serviço:
sudo systemctl restart fm-dx-webserverFuturamente pretendo dedicar um artigo especialmente para a instalação e configuração dos plugins mais usados, fique ligado!
User management
Aqui você pode habilitar ou desabilitar o chat dos usuários e banir aqueles que causam qualquer tipo de problema:

O Fmdx também pode banir automaticamente usuários que façam spam no chat. Caso queira, você pode remover o Ban de usuários na própria lista.
Extras
Por fim, o Fmdx Webserver fornece meios de integração com os serviços de FMList e conexão por Túnel.
O FMList é um banco de dados internacional voltado principalmente para entusiastas de DX em FM (FM-DX).
Ele reúne informações detalhadas sobre emissoras de rádio FM e TV de todo o mundo, com foco especial na Europa, mas com dados de muitos outros países também.

Habilitar essa recurso faz com que seu servidor envie as informações de emissoras sintonizadas por seu equipamento para o FMList.
Já a conexão por túnel é um recurso muito interessante pela praticidade que oferece. Utilizar o túnel do fmtuner.org elimina toda preocupação com a infraestrutura de acesso externo ao seu servidor.

No entanto, esse serviço de conexão é restrito. Conforme mencionei no artigo anterior, você precisa entrar em contato com o pessoal do fmdx.org via Discord e verificar sua disponibilidade.
Futuramente pretendo dedicar outro artigo para apresentar alternativas ao sistema de tunelamento de conexão do fmtuner.org.
Conclusão
Você pôde ver ao longo deste artigo que configurar o Fmdx Webserver não é algo complicado nem trabalhoso, pois tudo é muito bem dividido no painel de administração.
As configurações disponibilizadas através do painel permitem ajustarmos as características mais importantes do servidor. No entanto, elas não param por aí.
Como o código fonte é aberto, podemos ir ainda mais fundo e customizar aspectos que não aparecem na interface gráfica de configuração.
Além disso, é possível criar nossos próprios plugins para estender as capacidades do servidor — o que, aliás, é a forma recomendada pelos fundadores do projeto para realizar modificações no sistema.
Enfim, o Fmdx Webserver é um software simples que cumpre com o que promete: difundir o dxismo ao redor do mundo através da internet.
Espero ter ajudado!
Até a próxima!
