Computação Musical e Processamento de Som – 06.1

Slides:



Advertisements
Apresentações semelhantes
Representação da Informação como padrões de bits
Advertisements

Arquitetura de Computadores
Programação em Java Prof. Maurício Braga
O Áudio (Parte I) Prof. AMOUSSOU DOROTHÉE
Sistemas Multimídia Som
Noções de Sistemas Operacionais
Tecnologia Hipermídia e Multimídia
Dados analógicos no ARDUINO
Análise de Casos de Uso.
Profa. Priscila Facciolli
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
MULTIMÍDIA Mídia, Multimídia e Sistema Multimídia (Slide - 2)
MULTIMÍDIA Mídia, Multimídia e Sistema Multimídia (Slide - 2)
Arquitetura de Sistemas Operacionais
Sistema para Gerenciamento de Redes Baseado em Agentes Móveis
Interação Cliente Servidor
Endereçamento de hardware e identificação de quadros
Equipamentos 3/25/2017 Equipamentos Computação Gráfica - Gattass.
April 05 Prof. Ismael H. F. Santos - 1 Módulo II XML Processing: XSLT, SAX e DOM Prof. Ismael H F Santos.
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Maria Aparecida Castro Livi
Java Media Framework JMF Ronaldo Celso Messias Correia
Sistemas Operacionais
Geórgia Vanize E Vanessa Cristina
Universidade Federal de Minas Gerais
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Introdução a Programação JAVA
Análise de Casos de Uso Alexandre Motnteiro.
Hardware/Software para Multimédia
Aquisição e reprodução de som
Unidade de Vídeo Escola Secundária Diogo de Macedo Curso Tecnológico de Informática Aplicações Informáticas A Prof.: Henrique Ribeiro Paulo Cruz 11ºD nº2.
DIAGRAMA DE COMPONENTES
Unidade 4 – Utilização dos sistemas Multimédia
Relação de Movimentação de Produtos 1 Posto de Combustível.
Lógica de programação Eliél Xavier Soares Administração e Suporte de Sistemas Operacionais de Código Aberto.
Localização de fonte sonora utilizando microfones
Visão geral do projeto Videophone Conference Messenger.
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Departamento de Electrónica, Telecomunicações e Informática
9º ANO INTRODUÇÃO ÀS TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO
Guia Geral: Apresentação do Programa Apresentação do Sistema - Atenção: Este Software não deverá ser rodado em REDE.
Abr-17 Projetar Cápsulas Aula de Laboratório Projetar classes.
Ritornello Um Framework para Representação de Conhecimento Musical
O Pacote Java MIDI.
Centro de Informática - UFPE Computação Musical
Ferramentas para áudio: panorama
MULTIROOM / AMPLIFICADOR MULTICANAL
Trabalho Realizado por: - João Chapouto nº8 11º12
Organização e Arquitetura de Computadores
O Som Escola Secundária Diogo de Macedo Curso Tecnológico de Informática Ano Lectivo 2006/2007 Trabalho elaborado por: Fábio Santos Nº 1 11ºD Ricardo Santos.
BC-0502 Metodologia e Algoritmos Computacionais Santo André, Abril de Arquivos em Java.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Configuração do Ambiente de programação
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Geber Ramalho & Osman Gioia - UFPE ExercíciosTurma 01/1.
Aquisição e reprodução de som
Sugestões de projetos.
Faculdade de Engenharia da Universidade do Porto Licenciatura em Engenharia Electrotécnica e de Computadores Ramo de Telecomunicações, Electrónica e Computadores.
O áudio.
Propriedades físicas do som Vibrações e som
Características do Hardware Para Multimídia.
Pedro Leite Agenda Introdução Buffers Listener Sources Modelos de Distância Demo Conclusão Referências.
Classificação dos Sistemas Multimídia
O Pacote Java MIDI. Roteiro Principais Classes e Interfaces do Pacote MIDI Acessando Recursos MIDI Carregando Seqüências MIDI Transmitindo e Recebendo.
Sincronização Lip Sync Sincronização cursor-voz Entre outras mídias.
Computação Musical e Processamento de Som – 03.1
Transcrição da apresentação:

Computação Musical e Processamento de Som – 06.1 Java Sound (Sampled ) Computação Musical e Processamento de Som – 06.1 Márcio Dahia (mlmd@cin.ufpe.br) e Ernesto Trajano (etl@cin.ufpe.br)

Roteiro Teoria Exemplos e Exercícios O que é? Java Sound Engine Arquitetura Principais conceitos Classes importantes Exemplos e Exercícios Listando os recursos disponíveis “Tocando” um arquivo Criando uma onda “Construindo” um filtro passa-baixa

O que é? (1/3) API Java para manipular sons (áudio e MIDI): 2 pacotes Disponível a partir do jdk1.3 2 pacotes javax.sound.sampled: captura, mixagem e reprodução de áudio digital javax.sound.midi: síntese, sequenciamento, transporte de eventos Service provider interface: implementação de serviços adicionais (plug-ins) javax.sound.sampled.spi: mp3, conversão de formatos, etc. javax.sound.midi.spi: sintetizadores, soundbank, etc

O que é? (2/3) Nível mais baixo em Java Outras APIs consideradas alto-nível (Java Media Framework) Execução, controle e sincronização de múltiplas mídias (time-based media--vídeo, sons) Foco no transporte de dados: como mover bytes de dados formatados (áudio) para/de uma aplicação Acesso aos dispositivos de áudio do PC

O que é? (3/3) Adaptado do Beatnik Audio Engine formato: aiff, au e wav canais: mono ou estéreo taxa de amostragem: 8 a 48 kHz resolução: 8 ou 16 bits codificação: linear, a-law ou µ-law mixer de 64 canais de áudio digital ou midi em software

Sampled audio (Áudio digital) Captura de áudio dispositivos de entrada (microfones) Mixagem e reprodução Controle ajuste de volume, reverberação, etc. Conversores de formato Status e notificações recebimento de eventos relacionados à reprodução

Arquitetura

Principais conceitos Transporte de dados! Entrada/Aplicação, Aplicação/Saída Para executar/capturar um som é necessário, no mínimo Dado formatado Um mixer (aplicação) Um line (meio de transporte) Manipulação do áudio digital com ou sem buffers

Dados Formatados Distinção entre formato de dados e formato de arquivo AudioFormat Técnica da codificação (normalmente PCM) Número de canais (1-mono, 2-estéreo ...) Taxa de amostragem Resolução da amostragem Taxa de Frames Tamanho do Frame AudioFileFormat Tipo do arquivo (WAVE, AIFF ...) Tamanho do arquivo em bytes Tamanho, em frames, dos dados contidos no arquivo Objeto AudioFormat

Mixer Encapsula diversos dispositivos que manipulam áudio Placa de som, etc. Abstração de uma mesa de mixagem Possui uma ou mais entradas de áudio uma ou mais saídas de áudio Controles de volume, reverberação e panorama de conjuntos de entradas Métodos de sincronização das entradas

Line(1/3) Representa um caminho por onde o som flui Tipos Clip Entrada de áudio sem streaming SourceDataLine Entrada de áudio com streaming Port Entrada ou saída de dispositivo (microfone, alto-falante etc.) TargetDataLine Saída de áudio com streaming Mixer

Line(2/3) Funcionalidades Controles (controls) volume, panorama, reverb etc. Status “aberto” e “fechado” Aberto, aloca recursos exclusivamente Fechado, libera Eventos Envia os eventos para os listeners cadastrados Subinterfaces introduzem mais eventos

Line(3/3)

DataLine Acrescenta à Line: Posição atual da mídia AudioFormat associado Posição atual da mídia Tamanho do buffer interno Level (a amplificação atual do sinal) Start, stop Flush (descartar dados não processados) Drain (consume os dados do buffer)

AudioSystem Agrupa métodos estáticos para alocar os principais recursos do sistema Mixers, Lines, AudioInputStreams, conversores de formato etc. Geralmente, a requisição do recurso é feita através da inner class Info do mesmo recurso static Mixer getMixer(Mixer.Info info) static Line getLine(Line.Info info)

AudioInputStream Pode-se obtê-lo a partir de InputStream acrescido de AudioFormat Formato de áudio Tamanho do segmento de dados (em frames) Posicão atual (em frames) Tamanho do frame (em bytes) Pode-se obtê-lo a partir de TargetDataLine InputStream + formato de audio + tamanho do segmento de dados a partir de um nome de arquivo (através da classe AudioSystem)

Controles Afetam o sinal durante a passagem por um Line BooleanControl Panorama, reverb etc. Inner class <nome-controle>.Type BooleanControl Podem ter apenas dois valores (ligado/desligado) Ex. Mute, Apply reverb etc. FloatControl Valores variam em um intervalo Ex. panorama EnumControl Valores são objetos, apenas um pode ser escolhido Ex. reverb (ReverbType) CompoundControl Coleção de Controls Ex. um equalizador pode ser um conjunto de FloatControls

Exemplos Exemplo 1 - Listando os recursos disponíveis Exemplo 2 - Tocando um arquivo de áudio Tarefa 2 Alterar algum controle (Control) do clip Atenção: A mudança no controle de um Line só funciona caso ele esteja aberto Exemplo 3 - Criando uma onda sonora Tarefa 3 Salvar a onda em arquivo Não existe AudioOutputStream O AudioSystem é responsável pela alocação de recursos

Documentação Java Media API Guia do Programador Java Sound Resources http://java.sun.com/products/java-media/sound/ API http://java.sun.com/products/java-media/sound/doc-sampled.html Guia do Programador http://java.sun.com/j2se/1.4.1/docs/guide/sound/programmer_guide/contents.html Java Sound Resources http://www.jsresources.org