|
|
||
|---|---|---|
| .. | ||
| CMakeLists.txt | ||
| README.md | ||
| VolumeControl.h | ||
| as1.cpp | ||
| raygui.cpp | ||
README.md
Building and Running
Clone the repository, navigate to the root of the project, and initialize the submodules:
git clone https://github.com/humanoidsandvichdispenser/cs381.git
cd cs381
git submodule update --init --recursive
Navigate to the as1 directory, create a build directory, and run CMake to
generate the build files:
cd as1
mkdir -p build
cmake ..
Compile the code using make:
make
This should create an executable named as1 in the build directory. You can
run the executable with the following command:
./as1
Instructions on how to use the program
The program will display a window with three audio sliders: one for sound effects, one for music, and one for dialogue. Each slider can be adjusted by clicking and dragging the slider handle, allowing you to control the volume of each audio group independently.
The ping button at the bottom of the window will play a ping sound effect when clicked.
High-level Audio Information
A speaker produces audio by using a magnet to vibrate a diaphragm, which creates sound waves in the air. The rate of this vibration controls the frequency, which we perceive as pitch. The depth of the vibration controls the amplitude, which we perceive as volume. In digital audio, sound is represented as a series of samples that denote the amplitude of the sound wave at specific points in time. Most computers have built-in audio devices that can convert these digital samples into electrical signals to drive the speaker's magnet and produce sound.
The raylib::AudioDevice class is necessary because it provides access to the
system's audio hardware interface so that the program can feed audio data (as
PCM samples) to the audio device for playback. Although this is abstracted away
from the user, it is important for the program to have this access in order to
produce sound output.
Extra Credit
I have implemented the following extra credit features:
- A button to toggle between light and dark window backgrounds
- Custom audio from the internet. Here are the sources for the audio files used in the program: