# Building and Running Clone the repository, navigate to the root of the project, and initialize the submodules: ```sh 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: ```sh cd as1 mkdir -p build cd build cmake .. ``` Compile the code using `make`: ```sh make ``` This should create an executable named `as1` in the `build` directory. You can run the executable with the following command: ```sh ./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: - Ping sound effect: https://soundbuttonsworld.com/sound-button/among-us-emergency-meeting-1642465321284 - Background music: https://github.com/ShaleGame/ShaleGame/blob/main/Assets/Music/ice-theme-sparse.mp3