From b942283c9dcb44c24b1bffb8f1dd107fe7f0bccd Mon Sep 17 00:00:00 2001 From: HumanoidSandvichDispenser Date: Sun, 8 Feb 2026 20:05:38 -0800 Subject: [PATCH] Add README.md --- as1/README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/as1/README.md b/as1/README.md index e69de29..6b61ab8 100644 --- a/as1/README.md +++ b/as1/README.md @@ -0,0 +1,68 @@ +# 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 +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