Java Sound (Sampled ) - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Java Sound (Sampled )

Description:

Java Sound (Sampled ) Computa o Musical e Processamento de Som 06.1 M rcio Dahia (mlmd_at_cin.ufpe.br) e Ernesto Trajano (etl_at_cin.ufpe.br) Roteiro Teoria O que ? – PowerPoint PPT presentation

Number of Views:81
Avg rating:3.0/5.0
Slides: 20
Provided by: MarcioLe
Category:
Tags: java | musical | sampled | sound

less

Transcript and Presenter's Notes

Title: Java Sound (Sampled )


1
Java Sound (Sampled )
  • Computação Musical e Processamento de Som 06.1

Márcio Dahia (mlmd_at_cin.ufpe.br) e Ernesto Trajano
(etl_at_cin.ufpe.br)
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
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
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
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
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
Arquitetura
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
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
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
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
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
Line(3/3)
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
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
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
Controles
  • Afetam o sinal durante a passagem por um Line
  • Panorama, reverb etc.
  • Inner class ltnome-controlegt.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
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
Documentação
  • Java Media
  • 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/pr
    ogrammer_guide/contents.html
  • Java Sound Resources
  • http//www.jsresources.org
Write a Comment
User Comments (0)
About PowerShow.com