Add README.md
parent
fc51985e04
commit
b942283c9d
|
|
@ -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
|
||||
Loading…
Reference in New Issue