A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Java Sound (Sampled ) Computação Musical e Processamento de Som – 06.1 Márcio Dahia e Ernesto Trajano

Apresentações semelhantes


Apresentação em tema: "1 Java Sound (Sampled ) Computação Musical e Processamento de Som – 06.1 Márcio Dahia e Ernesto Trajano"— Transcrição da apresentação:

1 1 Java Sound (Sampled ) Computação Musical e Processamento de Som – 06.1 Márcio Dahia e Ernesto Trajano

2 2 Roteiro Teoria 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

3 3 O que é? (1/3) API Java para manipular sons (áudio e MIDI): 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

4 4 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

5 5 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

6 6 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

7 7 Arquitetura

8 8 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

9 9 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

10 10 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

11 11 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

12 12 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

13 13 Line(3/3)

14 14 DataLine Acrescenta à Line: 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)

15 15 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)

16 16 AudioInputStream 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 )

17 17 Controles Afetam o sinal durante a passagem por um Line Panorama, reverb etc. Inner class.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

18 18 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

19 19 Documentação Java Media API sampled.html sampled.html Guia do Programador er_guide/contents.html er_guide/contents.html Java Sound Resources


Carregar ppt "1 Java Sound (Sampled ) Computação Musical e Processamento de Som – 06.1 Márcio Dahia e Ernesto Trajano"

Apresentações semelhantes


Anúncios Google