do lado do servidor mixer de áudio. O que está disponível? (Can Csound fazer isso?)

StackOverflow https://stackoverflow.com/questions/1803131

  •  05-07-2019
  •  | 
  •  

Pergunta

Estou interessado em saber se existe um programa ou biblioteca que pode realizar as seguintes tarefas, e seria adequado para executar como parte de um processo do lado do servidor em um Web site. (Está tudo bem se ele demorar mais do que o máximo de 200 milisecond que é razoável para uma única solicitação de página -. Posso executá-lo como um processo assíncrono)

A tarefa é esta: Eu tenho como entrada um conjunto de arquivos de áudio, e eu tenho alguns dados sobre quando cada arquivo de áudio deve começar a jogar em uma linha do tempo. O programa deve saída um arquivo de áudio que é uma mistura do áudio de entrada, combinados usando os dados cronograma. Ou seja, eu quero um mixer de áudio que opera em modo de lote , e não em tempo real.

Já fiz algumas pesquisas no Google, mas veio um pouco frustrado porque eu não sei exatamente o que eu deveria estar procurando. A maioria dos misturadores de áudio parecem voltados para aplicações em tempo real, como jogos, e eu não tenho certeza de como encontrar algo que faz esta tarefa como algo como um utilitário de linha de comando - puramente tomando entrada e produzir a saída o mais rápido que puder.

Espero que esta questão faz sentido.

Edit: Alguém comentou sobre Csound , e, em seguida, excluí-la. O que é Csound? É relativamente simples de fazer o que eu estou pedindo? Tenha em mente que meus arquivos de som de entrada pode ser entre 10-50 segundos de duração, e eu não estou interessado em distorção campo.

Como você fazer isso em Csound?

Existe alguma coisa que não seja Csound que pode fazer esse tipo de coisa?

Foi útil?

Solução

Você pode definitivamente usar Csound para isso, e que poderia ser implementado de várias maneiras. Infelizmente, o meu estudo ainda bastante incipiente de Csound tem sido mais envolvido com a síntese de áudio e composição algorítmica de amostragem e processamento, por isso não posso oferecer sugestões para uma implementação robusta.

No entanto, eu acho que do seu projeto arquivo orquestra (a parte de um programa Csound que contém a síntese de áudio e processamento de informações, contidas em módulos chamados instrumentos ) envolveria o opcode soundin, que lê a partir de um arquivo de áudio, e em seguida, ele iria reduzir a amplitude de várias correntes e misturá-los antes de passar para a saída.

A linha de tempo provavelmente seria tratado no arquivo de pontuação (a parte de um programa Csound que trata a inicialização de instrumentos e mesas de função), o que se traduziria seus dados cronograma em tempo de reprodução.

Você também pode olhar-se sub-rotina GEN01 do Csound, que lê dados de áudio de um arquivo em uma tabela de funções.

Outras dicas

Se você estiver disposto a considerar a execução de scripts em lote, como parte desse processo, você pode encontrar SoX útil . Sua "misturador" e comandos "remix" parecem que pode ser útil, embora você possivelmente necessidade de tornar o espaço vazio no início de arquivos de som para offsets do punho.

Você deve ter um olhar para SuperCollider . Talvez isso iria fazer o truque para você.

Algo como PHP OpenAL ligações ?

Você pode olhar para o BASS Biblioteca Áudio . Eu sou incapaz de ver se ele pode misturar mais rápido do que o tempo real, como ele é bloqueado no firewall, mas eu achei amigável para usar no passado.

Você provavelmente estão recebendo um monte de sugestões para soluções de áudio em tempo real por causa da maneira como você ter formulado a pergunta:

O programa deve saída um áudio arquivo que é uma mistura da entrada de áudio, usando a linha de tempo combinado dados.

"audio de entrada" é muito vago. Para mim, isso soa como um fluxo de entrada ao vivo (como um microfone). Se você não está lidando com eu vivo / O córregos em tudo, então sim, Csound seria um provável candidato. Há uma abundância de tutoriais Csound online.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top