Audio 1 Subject : T0934 / Multimedia Programming Foundation

advertisement
Audio 1
Subject
Session
Tahun
Versi
:
:
:
:
T0934 / Multimedia Programming Foundation
8
2009
1/0
Learning Outcomes
In the end of this session, students must be
able to:
– Understand the basic principal of
audio digitization and enhancement
– Identify Java Sound API syntax to
manipulate basic audio properties
Bina Nusantara
Outline
•
•
•
•
Audio Digitization
MIDI
Audio Quantization and Transmission
Java Sound API
Bina Nusantara
A Typical Audio Architecture
Bina Nusantara
http://java.sun.com/docs/books/tutorial/sound/index.html
Sound
• Sound are rapid vibrations that are transmitted
as variations in air pressure
• To use sound digitally, we must digitize
(converse to a stream of numbers) the analog
sound first
Amplitude
Analog signal
of sound
Bina Nusantara
Time
Sound Digitization
Quantization
• To fully digitize the sound, we have to
sample in Time (Sampling) and in
Amplitude (Quantization)
Sampling
Bina Nusantara
Sampling
• Sampling
– Measuring at evenly spaced intervals
• Sampling Rate
– Known as sampling frequency, measured in Hertz (Hz)
• Nyquist Rate
– To have a correct sampling, sampling rate should equal to at
least twice the maximum frequency
– If sampling rate is lower than Nyquist rate, it will result in false
(alias) frequency
Bina Nusantara
Quantization
• Sampling in the amplitude dimension, represented in
fixed numbers of bits (8, 12, or 16 bits)
• Results in a loss of precision
which is called distortion (or
called quantization noise)
• Dithering (adding random
noise to quantized audio) can
be used to remove some of
the distortion
Original
audio wave
Bina Nusantara
Quantization
error wave
Quantized
audio wave
Common Rates
Quality
Sample Rate
Quantization
Mono/Stereo
Frequency
Telephone
8
8
Mono
200-3400
AM Radio
11,025
8
Mono
100-5500
FM Radio
22,05
16
Stereo
20-11000
CD
44,1
16
Stereo
5-20000
DAT
48
16
Stereo
5-20000
192 (max)
24 (max)
Up to 6
96000 (max)
DVD audio
Bina Nusantara
Sampled Audio Format
File
Acronym
Originally
Type of Compression
Platforms
.aiff
Audio
File Format
Apple, adopted
Silicon Graphics
usually not
compressed version
Apple Macintosh and Silicon
and now also on Windows
.wav
IBM and Microsoft supports a number of
compression formats
primarily for Windows, but can be
systems
.au and Also called
.snd
or Sun muformat
Sun and NeXT
mu-law encoding
file at a ratio of 2:1;
decompression
Sun, NeXT, Unix or Linux operating
.mp3
Moving Pictures
Group
good compression rate
quality sound
cross-platform
Bina Nusantara
MPEG audio
3
Synthesizing Sounds
• Frequency Modulation (FM)
– Producing new audio signal using a source waveform’s
frequency is changed by a modulating frequency
– Based on the same principles used for FM radio trasmission
– Used in low-end versions of Creative Sound Blaster PC sound
card
• Wave-Table
– More accurate way reproducing sound
– Using actual samples of real instruments
– More expensive than FM synthesis (partly because of larger data
storage)
Bina Nusantara
MIDI
• Musical Instrument Digital Interface
• A scripting language that codes events
(MIDI messages + timings)
• Enable computers, synthesizers,
keyboards, and other musical devices to
communicate with each others.
Bina Nusantara
A Possible MIDI Configuration
Bina Nusantara
http://java.sun.com/docs/books/tutorial/sound/index.html
Synthesizers
• A sound generator that can vary pitch,
loudness, and tone color.
• Now included on PC sound cards. The
units that generate sound are called
tone/sound modules.
Bina Nusantara
Sequencers
• In the beginning, a special hardware
device for storing and editing a sequence
of musical events (MIDI data)
• Now, a software music editor on the
computer
Bina Nusantara
MIDI keyboards
• A keyboard that produces MIDI messages,
not sound
Bina Nusantara
MIDI Messages
• Sequences of MIDI instructions
Channel
messages
MIDI
messages
Voice
messages
Mode
messages
Common
messages
System
messages
Real-time
messages
Exclusive
messages
Bina Nusantara
Channel Messages
• Voice Messages
– Sends information of which note to play
– Used to control sustain, vibrato, tremolo, and pitch
• Mode Messages
– Determines how an instrument processes MIDI voice messages
(to respond all messages, respond just to correct channel, don’t
respond at all, etc)
Bina Nusantara
System Messages
• For commands that are not channelspecific
• Common messages
– Relates to timing or positioning
• Real-time messages
– Relates to synchronization
• Exclusive messages
– Included so manufacturers can extend the MIDI standard
Bina Nusantara
MIDI standard
• General MIDI (GM1)
– Standard for assigning instruments to patch numbers so MIDI
music can sound more or less the same on every machine
– Ex : patch no.1 = piano
• General MIDI level 2 (GM2)
– Extended General Midi, with SMF (Standard MIDI File) format
defined.
– Includes extra character of information such as karaoke lyrics
– Increases the number of available sounds
– Increases the amount of control available for sound editing and
musical performance
• General MIDI Lite (GML)
– For mobile applications
Bina Nusantara
Standard MIDI Files
• a digital file that contains MIDI events
• was developed in 1990 for file exchange
between MIDI sequencers
• The information in a standard MIDI file is
referred to as a sequence
• contains one or more tracks which each
typically contains the notes of a single
instrument
Bina Nusantara
Java Sound API
• Supports both sampled audio and MIDI
data
• javax.sound.sampled
– This package specifies interfaces for capture, mixing, and
playback of digital (sampled) audio.
• javax.sound.midi
– This package provides interfaces for MIDI synthesis,
sequencing, and event transport.
Bina Nusantara
Playing Sound
Full code downloadable in Additional Materi.
Bina Nusantara
Playing MP3
Create mp3 player
Open MP3 file and start player
Bina Nusantara
Playing MP3
Getting controller component
Result
Note : This program use JMF to play MP3 file.
Bina Nusantara
Full code is downloadable in Additional Materi
Playing WAV
Create player from file
Open WAV file
Getting music length
Bina Nusantara
Playing WAV
Setting control for control the music
Bina Nusantara
Playing MIDI
Bina Nusantara
Full code downloadable in Additional Materi.
References
• Basics of Digital Audio. 2001.
http://www.cs.cf.ac.uk/Dave/Multimedia/node143.html
• Developing a Strategy for Creating and Assessing Digital
Media Curriculum Material. 2004.
http://imej.wfu.edu/articles/2004/1/01/
• Midi. 2008. http://www.midi.org/
• Trail: Sound. 2008.
http://java.sun.com/docs/books/tutorial/sound/index.html
• The Java Sound API. 2009.
http://onjava.com/onjava/excerpt/jenut3_ch17/
• Sound. 2009. http://en.wikipedia.org/wiki/Sound
Bina Nusantara
Download