Na API Java Sound, dispositivos são representados por objetos da classe Mixer. O propósito de um mixer é manipular um ou mais streams de entrada ou saída de áudio. Tipicamente, o mixer mescla múltiplos streams de entrada em um stream de saída.
Na API Java Sound, um componente tal como um microfone conectado a uma placa de som não é considerado um dispositivo (como o mixer), mas é chamado de porta (port) entrando ou saindo do mixer. Tipicamente, uma porta provê um único stream de áudio para dentro ou para fora do mixer. O Mixer pode ter vários tipos de portas. Por exemplo, um mixer que representa a capacidade de saída de uma placa de som pode misturar vários streams de áudio juntos e então enviar o sinal mixado para qualquer uma das várias portas de saída conectadas ao mixer. Estas portas de saída podem ser, por exemplo, um fone de ouvido ou um alto falante.
A imagem abaixo ajuda a compreender a noção de mixer na API Java Sound (inclusive, algumas imagens que estou colocando aqui foram tiradas do Java Sound Programmer Guide) e mostra o console de um mixer físico.Imagine um show ao vivo que está sendo gravado em modo estéreo. Cabos vindos de muitos microfones e instrumentos elétricos do palco são plugados nas entradas do aparelho de mixagem. Cada entrada possui um canal específico no mixer. O engenheiro de som decide sobre as configurações de ganho, pan, e controles de reverb. A saída de todos os canais e a unidade de reverb são mixadas juntamente em 2 canais. Estes canais vão para duas saídas no mixer por cabos que estão plugados a um gravador e que também podem ser enviados, via um amplificador, para alto-falantes.
Agora imagine um estúdio de gravação em que cada instrumento é gravado em uma trilha particular de uma fita de gravação multi-trilhas. Após instrumentos e vocais serem gravados, o engenheiro de som executa um "mixdown" para combinar todas as trilhas gravadas em uma gravação de 2 canais. Novamente o engenheiro pode decidir os valores de ganho, pan e reverb para cada trilha.
Estes 2 exemplos ilustram dois diferentes usos de um mixer:
- capturar múltiplos canais de entrada, combiná-los em algumas trilhas
- executar múltiplas trilhas enquanto as mixamos em poucas trilhas.
Na API Java Sound, um mixer pode ser usado tanto para captura de áudio quanto para playback. No primeiro caso, a origem do áudio para o mixer é fornecida por uma ou mais portas de entrada. O mixer envia o áudio capturado e mixado para um target (um objeto com um buffer onde o programa pode recuperar as informações do áudio mixado). No caso de playback, as origens de áudio do mixer são objetos contendo buffers e os targets são as portas de saída.
Nenhum comentário:
Postar um comentário