A set of Java applications each of which an interactive demonstration application of digital audio effects and processes.
Developed in 2009 to 2010
Copyright (C) 2010 - Andrew Kwok-Fai Lui
The Open University of Hong Kong
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, see https://www.gnu.org/licenses/.
There are 11 interactive demo applications included in this package
- Wave Generator (
faifai.audio.WaveGeneratorApplication
) - Audio Playback (
faifai.audio.AudioFilePlaybackApplication
) - Resampling Demo (
faifai.audio.ResamplingDemoApplication
) - Quantization Demo (
faifai.audio.QuantizationDemoApplication
) - Frequency Masking Demo (
faifai.audio.MaskingDemoApplication
) - Midi Instrument Demo (
faifai.midi.MidiInstrumentApplication
) - Midi Chord Demo (
faifai.midi.MidiChordApplication
) - Midi File Player (
faifai.midi.MidiFilePlayerApplication
) - Midi Instrument Record Demo (
faifai.midi.MidiInstrumentSaveApplication
) - Audio Effect Demo (
faifai.audio.EffectApplication
) - Wave Harmonics Generator (
faifai.audio.WaveHarmonicsGeneratorApplication
)
- Java JRE 1.8 or above
A launcher application ApplicationLauncher.class
is provided for running each of the 11 applications.
- Download the repository to a folder, assuming that it is
/app/DMAudioDemo
. The Java classes are found in thebin
folder. - Execute
ApplicationLauncher.class
insider the folder
cd /app/DMAudioDemo
java -cp "./bin" ApplicationLauncher
Alternatively, each of the 11 applications can be executed from their main classes (as in the above list).
cd /app/DMAudioDemo
java -cp "./bin" faifai.audio.WaveGeneratorApplication
Class: faifai.audio.WaveGeneratorApplication
- Generate sine, triangle and square, sawtooth, click-sine waveforms
- Set frequency and amplitude
- Visualize the waveform
Class: faifai.audio.WaveHarmonicsGeneratorApplication
- Set frequency
- Set the amplitudes of 4 harmonics
- Visualize the waveform
Class: faifai.audio.AudioFilePlaybackApplication
- Load audio file, play and record
- Visualize the waveform
Class: faifai.audio.ResamplingDemoApplication
- Upsample and Downsample
- Visualize the waveforms before and after the processing
Class: faifai.audio.QuantizationDemoApplication
- Change quantization levels between 8 bits to 1 bit
- Visualize the waveforms before and after the processing
Class: faifai.audio.MaskingDemoApplication
- Play two audio signal of different frequencies at the same time.
Instruction: set two signals to the same frequency with one at a significantly lower amplitude than the other. Adjust the weaker signal's frequency (turning it up) until you start hearing it. The difference in frequency is the marked zone. Refer to this page for information about frequency masking
Class: faifai.audio.EffectApplication
- Supports digital audio processing such as amplify, boost, fade-in, fade-out, and high-pass , low-pass, band-pass and band-reject filters. It also supports reverse and reverb
The Midi demo include the following classes.
- Midi Instrument Demo (
faifai.midi.MidiInstrumentApplication
) - Midi Chord Demo (
faifai.midi.MidiChordApplication
) - Midi File Player (
faifai.midi.MidiFilePlayerApplication
) - Midi Instrument Record Demo (
faifai.midi.MidiInstrumentSaveApplication
)
These demo applications play MIDI sound either interactively or from a Midi file.