1

Devlog #1: Construindo uma biblioteca de decodificador de áudio no moderno C23

Estamos começando o desenvolvimento de uma nova biblioteca de decodificação de áudio, construída sobre os padrões modernos do C23.

Batizada de Sonus, ou libsonus, a biblioteca nasce como uma reimplementação baseada nos fundamentos das bibliotecas dr_libs, desenvolvidas por mackron. A proposta, porém, vai além de uma simples continuação. Estamos reorganizando e reescrevendo partes importantes da base para criar uma estrutura mais moderna, segura e adequada às necessidades do projeto.

O desenvolvimento será inicialmente concentrado em Linux. Mais adiante, pretendemos disponibilizar builds oficiais para Microsoft Windows.

A decodificação de áudio será uma parte importante do que estamos construindo para o futuro da empresa e, principalmente, para ferramentas voltadas à indústria de jogos. Existe uma atenção especial aos desenvolvedores independentes, que muitas vezes precisam montar suas próprias soluções a partir de diferentes bibliotecas e ferramentas.

A ideia não termina na simples leitura de arquivos de áudio.

Estamos trabalhando em direção a um ecossistema que poderá incluir middleware, renderização e composição de áudio, permitindo construir ambientes sonoros completos e trabalhar com áudio espacial de maneira mais acessível.

Uma das ideias que queremos explorar é a possibilidade de transformar fontes estéreo convencionais em experiências espaciais mais imersivas, incluindo suporte a configurações 5.1 e 7.1 e diferentes formas de reprodução em headsets.

Isso também abre espaço para experimentar com obras e materiais mais antigos, trazendo novas possibilidades para conteúdos que originalmente não foram produzidos pensando nesses ambientes.

O ecossistema

O Sonus faz parte de um ecossistema maior que estamos planejando. A tecnologia será dividida em diferentes componentes que, juntos, formarão a base do sistema de áudio que queremos construir.

Por enquanto, o primeiro passo é a biblioteca de decodificação.

O que exatamente o Sonus fará?

O Sonus será composto por bibliotecas compartilhadas (.so) responsáveis por trabalhar com alguns dos formatos de áudio mais utilizados, especialmente no desenvolvimento independente.

Entre eles estão:

  • FLAC.
  • MP3.
  • Opus.
  • Vorbis.
  • WAV.

A biblioteca será responsável por analisar os arquivos, extrair suas informações e disponibilizar os dados de áudio para outras partes do sistema.

Isso permitirá que o conteúdo seja utilizado por motores de áudio externos ou encaminhado diretamente para pipelines de áudio disponíveis no Linux, como ALSA, PulseAudio e PipeWire.

No início, apenas alguns formatos dentro dessas famílias serão suportados. Conforme o projeto evoluir, novos formatos poderão ser incorporados de acordo com as necessidades do ecossistema e com aquilo que fizer sentido para o desenvolvimento.

Não queremos simplesmente suportar tudo.
Queremos construir uma base que seja útil.

Por que C23?

C existe há décadas e continua evoluindo.

O C23 nos oferece uma oportunidade interessante de modernizar a forma como escrevemos essa biblioteca sem abandonar as características que tornam a linguagem particularmente adequada para software de baixo nível.

Grande parte da implementação original está sendo revisada, reescrita e reorganizada. Isso inclui mudanças na estrutura interna, nomenclatura e interfaces, sempre levando em consideração as necessidades que surgem durante o desenvolvimento.

Não estamos apenas atualizando código antigo. Estamos tentando descobrir qual deve ser a forma dessa biblioteca hoje.

Sobre o desenvolvimento

O Sonus ainda está em desenvolvimento ativo.

Ainda há bastante coisa para construir, testar e, inevitavelmente, refazer. Ao longo desse processo, vamos compartilhar novas decisões técnicas, problemas encontrados, experimentos, benchmarks e partes das implementações conforme elas fizerem sentido para serem apresentadas.

Quando o primeiro release oficial estiver pronto, o código será disponibilizado no GitHub.

A intenção é que as publicações não mostrem apenas o resultado final, mas também um pouco do caminho até ele. As coisas que funcionaram, as que não funcionaram, as decisões que mudaram no meio do caminho e aquilo que aprendemos enquanto construíamos.

Este é apenas o começo.
Mais novidades virão conforme o Sonus tomar forma.


Apoia-nos no Patreon · Assista no YouTube · Siga no Instagram

Carregando publicação patrocinada...