Medusa - Um ambiente de som distribu´ıdo
Fl´avio Luiz Schiavoni
USP - Universidade de S˜ao Paulo Instituto de Matem´atica e Estat´ıstica Orientador: Dr. Marcelo Gomes Queiroz
Apresenta¸c˜ao para o curso:
MAC0448/5910 - Programa¸c˜ao para Redes de Computadores Professor: Dr. Daniel Batista
09/11/2011
Computa¸c˜ ao Musical
Grava¸c˜ao Mixagem Apresenta¸c˜oes Composi¸c˜ao Nota¸c˜ao Distribui¸c˜ao
Ass´ıncrona: Conte´udo pronto (download)
S´ıncrona: No momento em que o conte´udo ´e gerado ...
Distribui¸c˜ ao de conte´ udo musical
Porque distribui¸c˜ao s´ıncrona?
Processamento de sinais distribu´ıdo Performances colaborativas
Compartilhamento de recursos de som Expans˜ao do modelo de conex˜oes de ´audio Maior flexibilidade de conex˜oes
Distribui¸c˜ ao de conte´ udo musical
Ferramentas relacionadas Jacktrip
Netjack SoundJack Rewire Otherside llcon LDAS netsend
Distribui¸c˜ ao de conte´ udo musical
Solu¸c˜ao simples:
Para enviar
mkfifo /tmp/inputvoice
cat /dev/dsp >/tmp/inputvoice
nc -u 1700 </tmp/inputvoice >/dev/dsp Para receber
nc ip-do-servidor -u 1700 </tmp/inputvoice >/dev/dsp
Distribui¸c˜ ao de conte´ udo musical
Problemas da solu¸c˜ao simples:
Dif´ıcil de integrar com softwares existentes Envia apenas a sa´ıda principal do ´audio Multicanais?
Usabilidade baixa Pouca flexibilidade
A solu¸c˜ao simples n˜ao resolve mas nos d´a uma boa ideia do que fazer.
Implementando um sistema de distribui¸c˜ ao
Arquitetura de ´audio ALSA
Jack Pure Data
LADSPA / DSSI/ CALF VST / VSTi
Arquitetura de rede TCP
UDP SCTP DCCP
Recursos em computa¸c˜ ao musical
Uma vez que um recurso ´e fornecido para a rede, a capacidade da rede ir´a influenciar a sua disponibilidade:
1 A largura de banda limita a escalabilidade.
2 Velocidade de transmiss˜aoversus latˆencia no som, atraso e sincroniza¸c˜ao.
3 Qualidade do sinal versus largura de banda.
Heterogeneidade de recursos
Figura: N´os diferentes podem possuir configura¸c˜oes distintas em uma mesma rede. Esta heterogeneidade pode ser causada pela configura¸c˜ao de hardware e software em cada n´o.
Heterogeneidade de recursos
O mesmo recurso pode ser fornecido de maneira diferente para diferentes cen´arios:
1 Monitoramento permite menor qualidade mas exige baixa latˆencia;
2 Grava¸c˜ao exige maior qualidade mas permite maior latˆencia;
3 O P´ublico aceita um pouco de latˆencia com uma qualidade razo´avel.
Heterogeneidade de recursos
Protocolos de transporte diferentes podem ser usados para alterar a rela¸c˜ao qualidade / velocidade:
1 DCCP
2 SCTP
3 TCP
4 UDP
Compress˜ao (audio codecs) pode aumentar a quantidade de canais em rela¸c˜ao a largura de banda por´em com perdas na qualidade do sinal.
Heterogeneidade de recursos
Heterogeneidade do sistema:
Diferentes APIs de ´audio
Diferentes configura¸c˜oes de ´audio Diferentes protocolos de rede Diferentes configura¸c˜oes de rede
Esta heterogeneidade permite utilizar de maneira mais precisa a distribui¸c˜ao de conte´udo musical em redes.
Ser´a que isto n˜ao torna o sistema imposs´ıvel de ser utilizado por um leigo?
Como tornar esta heterogeneidade transparente para o usu´ario?
Apresentamos oservidor de controle.
Transparˆ encia de recursos
Servidor de controle:
Abordagem semelhante ao FTP: Um canal para controle e um ou mais para dados
Publica¸c˜ao da configura¸c˜ao local
Transparˆ encia de recursos
Servidor de controle:
Conhecimento da rede como um todo: Ambiente Distribu´ıdo.
Mensagens XML simples
Transparˆ encia de recursos
1 Cada n´o publica seu recurso como desejar, independente de sua configura¸c˜ao local;
2 O recurso ser´a fornecido ao ambiente de acordo com sua publica¸c˜ao;
3 Os n´os que consumirem o recurso far˜ao o ajuste local.
Transparˆ encia de recursos
Mensagens de controle permitem que o usu´ario se conecte a um nomeem vez de umendere¸co de rede.
WAN LAN
O conhecimento da configura¸c˜ao de todos os n´os permite medir a utiliza¸c˜ao da rede pelo ambiente.
Al´ em da transparˆ encia
O servidor de controle pode ir al´em da informa¸c˜ao e ser utilizado para alterar o estado do ambiente:
Mensagens de Informa¸c˜ao:
Porta adicionada Porta removida ...
Mensagens de A¸c˜ao:
Adicionar porta Remover porta ...
Estas mensagens tamb´em s˜ao usadas para avisar o servidor sem estado (UDP e DCCP) que o cliente desconectou.
Implementa¸c˜ ao
Cada n´o na rede s´o deve ter um servidor de controle, independentemente de quantos canais de ´audio os mesmos utilizem.
Como permitir que processos distintos se comuniquem? RPC!
Implementa¸c˜ ao
Fun¸c˜oes do servidor de controle:
Mensagens de informa¸c˜ao: Broadcast Mensagens de a¸c˜ao: Unicast
M´aquinas em WAN?
Aloca¸c˜ao e libera¸c˜ao de portas Configura¸c˜oes locais
O que fazer caso o respons´avel pelo controle desligar?
Resultados Parciais
Figura: Primeira Implementa¸c˜ao: Jack com GUI em QT
Resultados Parciais
Figura: Segunda Implementa¸c˜ao: External do Pure Data
Resultados Parciais
Figura: Terceira Implementa¸c˜ao: Plugin LADSPA
Conclus˜ ao
Transparˆencia e usabilidade para o usu´ario
Integra¸c˜ao da distribui¸c˜ao de ´audio em rede em v´arios n´ıveis de softwares
Melhor utiliza¸c˜ao dos recursos de rede por trabalhar com v´arios protocolos de transporte
Utiliza¸c˜ao da heterogeneidade como algo positivo
Expans˜ao do modelo cliente-servidor para ambiente distribu´ıdo
Agradecimentos
O autor agradece a CNPq e FAPESP.
Obrigado!
D´uvidas?
Mobile Interactive Musical Processes http://www.eca.usp.br/mobile/portal/
Computer Music Research Group - IME/USP http://compmus.ime.usp.br
http://sourceforge.net/projects/medusa-audionet/
Apresenta¸c˜ao dispon´ıvel em: http://www.ime.usp.br/∼fls [email protected]