Pergunta

Eu percebi isso pode ser relativamente nicho, mas talvez por isso este é bom perguntar de qualquer maneira. Eu estou olhando para um hardware console de gravação de entrada múltipla (como o Alesis IO 26) para tomar uma entrada lightpipe 8 canais Adat para fazer o processamento do sinal. Como eu ainda tenho que adquirir o dispositivo e necessidade de descobrir se isso é viável (preocupações orçamentais), eu gostaria de perguntar se alguém tem alguma experiência tocando todos esses 8 entradas de dados em Java? Eu vi toneladas de exemplos de gravação de som usando as bibliotecas javax.sound.sampled mas eu não poderia encontrar qualquer informação sobre multicanal que é mais do que 2. O que me interessa é a amostragem das 8 canais indivíduo como mono-fonte para executar algumas simples DSP sobre eles. Será que o dispositivo de hardware ser tratado como um misturador? E os 8 canais ser representado como 8 linhas? Espero que eu tenho a minha terminologia correta.

Eu apreciaria se alguém pode me apontar para qualquer informação relevante. Obrigado!

Foi útil?

Solução

áudio multi-canal é suposto ser possível em Java, dependendo da versão do Java você está executando, a plataforma que está sendo executado, e o tipo de placa de som que você está executando. Ver o excelente Java Áudio Faq Para mais detalhes. Eu nunca fui capaz de usar isso de forma confiável em todas as plataformas.

Se você realmente se preocupam fazendo áudio multicanal robusto, eu recomendaria usando uma API C, como PortAudio , Juce , ou PulseAudio .

Eu tive sorte com PortAudio e Juce ambos.

Para usá-los em Java você precisa criar uma JNI interface para as APIs C .

Isto, obviamente, é mais trabalho do que apenas usando javax.sound, mas dá-lhe muito mais controle sobre o hardware de áudio que você está usando. Na minha experiência em lidar com dispositivos de áudio, sendo muito longe do hardware (ou seja, 4 camadas de abstração em vez de 2) muitas vezes elimina sua capacidade de fazer sério multi-canal, profundidade de bits alta, alta de áudio taxa de amostragem.

Outras dicas

Eu tenho implementado algo semelhante com cartões Terratec em cascata 32 entradas, a única biblioteca na época era Jsyn.

Um realmente boa biblioteca, uma vez que você começa a conhecê-lo.

http://www.softsynth.com/jsyn

Eu não estou certo se há qualquer outra coisa que pode ajudar.

I acabou de adicionar um wrapper Java JNI para PortAudio. O plano é manter isso junto com fonte PortAudio. PortAudio suporta áudio de canais múltiplos, em que N> 2.

Hoje, 9/3/12, JPortAudio ainda está em alpha mode. No momento em que você lê este pode ser estável.

http://www.portaudio.com/docs/v19-doxydocs/ java_binding.html

Eu não posso lhe dar uma resposta direta sobre se a API javax.sound trabalha com múltiplos canais (Mas de acordo com o doc API deveria).

No entanto, eu fui uma outra maneira para processamento de áudio multi-canal com Java, que pode estar trabalhando para você também. Eu costumava Jack (Kit de Conexão Jack Audio) para canalizar os sinais de e para o dispositivo de áudio e, em seguida, a biblioteca JJack para executar processamento de sinais. Você não mencionou o seu sistema operacional alvo. Eu usei essa abordagem com sucesso em Linux. AFAIR havia uma porta de Windows para Jack no caminho.

ciao, elm

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