Resposta parcial:
Primeiro, deixe-me dizer que é muito provável que você não precise escrever uma configuração para o seu M-Track. Na verdade, a maneira como você configurou isso é o que você não quer na maioria das circunstâncias: você fez de cada canal um dispositivo separado. Isso significa que quando você tenta gravar, digamos, uma banda tocando ao mesmo tempo, é possível obter deslocamentos aleatórios entre os canais (membros da banda) porque cada canal é processado separadamente. Então, normalmente, você gravaria todos os 8 canais em faixas separadas, e então você os sincroniza bem e pode editá-los.
O mesmo vale se você quiser conectar seu sistema Hi-Fi doméstico para reproduzir música: Você quer canais síncronos para dispositivos esquerdo / direito / central / subwoofer / traseiro etc., não separados.
As únicas circunstâncias em que posso pensar se faz sentido separar dispositivos é se, por algum motivo, cada canal estiver conectado a um alto-falante em uma sala diferente e você quiser reproduzir músicas diferentes em cada uma delas.
Além disso, o moderno ALSA fornece automaticamente dshare
e dsnoop
plugins em cima do hardware por padrão, então você não precisa especificá-los explicitamente.
Dito isto, aqui estão as explicações:
-
channels
: o número de canais que são simultaneamente gravados / reproduzidos. 1 para mono, 2 para estéreo, 8 para o seu cartão. Entrada e saída são contadas separadamente, então para 8 entradas e 8 canais de entrada você diz apenas "8 canais". A maneira como você configura seus dispositivosinch
eoutch
requer uma entradachannels 1
para cada. -
bindings
: mapeia os canais do dispositivo ao qual o dispositivo escravo está vinculado aos canais deste dispositivo. Digamos que você queira trocar os canais esquerdo e direito do dispositivo original colocando um plug-in na parte superior e, em seguida, diriabindings { 0 1 1 0 }
. -
ipc_key
:dmix
,dshare
edsnoop
plugins permitem que vários clientes se comuniquem com uma única origem / coletor. Essa comunicação é feita por meio dessa chave (IPC = comunicação entre processos). Então, a chave precisa ser diferente para cada plugin, não importa se você tem vários plugins para uma placa de som ou um plugin para cada placa de som, ou você terá problemas. -
buffer_size
: Os dados de áudio são armazenados e transferidos nos chamados buffers, ou seja, pedaços de RAM para um número de amostras. Se você aumentar muito, muitos dados serão armazenados antes de serem processados, aumentando a latência. Se você diminuir muito, a sobrecarga de processamento impedirá que todos os dados sejam processados antes que os próximos dados sejam recebidos ou que precisem ser apagados, portanto, você terá a perda de áudio. -
period_size
: nenhuma ideia.
Todos os plugins do ALSA PCM também são descritos aqui em detalhes.
Não mexa com buffer_size
ou period_size
a menos que você realmente saiba o que está fazendo. Se a latência for importante para você (por exemplo, se você quiser usar o computador para uma apresentação ao vivo), a primeira coisa a fazer é verificar se o Pulseaudio está desinstalado e usar jackd
para todos os tipos de áudio. Somente se você ainda experimentar problemas de latência notáveis, poderá tentar valores diferentes para buffer_size
.