-
Notifications
You must be signed in to change notification settings - Fork 13
Sound ~ References
This page serves as a collection of information for future sound teams to reference.
The SDL2 library and header files can be located by running:
Dynamic Libraries:
$cd /usr/lib/x86_64-linux-gnu
Header Files:
$cd /usr/include/SDL2
After copying and moving the required files, you can navigate back to your desktop by running:
$cd ../../../home/CNETID
Advanced Linux Sound Architecture (ALSA) is a library that provides audio functionality to Linux operating systems. We believe the following errors are a result of working remotely through the CS Linux Servers.
When compiling an audio program, a function from the SDL library, Mix_OpenAudio() is receiving an error that informs the user that an audio device cannot be found. If an audio device is not found, this is the following output when trying to run an executable audio program:
ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5220:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM default
Unable to open audio: ALSA: Couldn't open audio device: No such file or directory
We identified that the CS Linux Remote Servers did not have audio devices installed in them, therefore the required SDL functions couldn't locate a source to play sound. We confirmed this by trying to play a YouTube video that has sound on NoMachine, a remote desktop that is SSHed to the CS Linux server. When we did not hear sound, we ran the command: arecord -l
on the Linux Terminal. This is a command that lists all sound cards and audio devices.
This is the following output from the CS Linux Server Terminal:
arecord: device_list:274: no soundcards found...
This is the following output from a Linux environment on a local virtual box:
Note: These outputs will vary depending on the sound cards and audio devices installed on your computer.
$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: I82801AAICH [Intel 82801AA-ICH], device 0: Intel ICH [Intel 82801AA-ICH]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: I82801AAICH [Intel 82801AA-ICH], device 1: Intel ICH - MIC ADC [Intel 82801AA-ICH - MIC ADC]
Subdevices: 1/1
Subdevice #0: subdevice #0
A local virtual box installed with Linux has access to our local computer's sound cards and audio devices. However, working remotely on the CS Linux Server, the CS Linux server cannot access our computer's sound cards and audio device, leading to the ALSA errors when compiling. As of May 14th, the tech staff was currently looking into the audio issues we encountered through noMachine.
#Residual Backlog Issues:
Implement play/load sound function: Play sound within src/sound/sound.c appears to be working, but the sound_init() function does not incorporate the given variables correctly. This doesn’t seem to be an issue when playing a sound, so perhaps sound_init() is unnecessary. Additionally, to play the sound we are able to use SDL_OpenAudioDevice(), SDL_QueueAudio(), SDL_delay() functionally while also ending and closing the sound file with SDL_CloseAudioDevice(), SDL_FreeWAV(), and SDL_Quit().
Notes from https://wiki.libsdl.org/Introduction
CMake builds the library. The library supports the following: Windows, Mac OS, Linus, iOS, android. SDL can access the following: Video (3D graphics, creates and manages multiple windows), input events (Mouse, keyboard, joystick, force feedback), audio (runs independently in a separate thread), file I/O abstraction (built-in support for files and memory), threads, timers, CPU feature detection, endian independence, power managements
-
Action Management
-
Battles
- Design Document
- Text Based Combat in Other Games
- User Stories
- Wishlist
- Battle Planning 2022
- Battle User Stories Review 2022
- Structs in Other Modules Related to Battles 2022
- Stat Changes Design Document
- Run Function Design Document
- CLI Integration Design Document
- Move Changes Design Document
- Unstubbing Stubs Design Document
- Battle Items and Equipment Design Document
- Battle Item Stats
- Battles Demo Design Document
- Battles Testing Moves, Items, and Equipment Design Document
- Sound integration with battle (design document)
-
Custom Actions
-
Custom Scripts
-
DSL
-
CLI
-
Enhanced CLI
-
Game-State
-
Graphics
- Design Plan
- Design document for integrating split screen graphics with chiventure
- GDL (Graphical Description Language)
- Graphics Sandbox
- Design Document for NPC Graphics and Dialogue
- Feature Wishlist (Spring 2021)
- Installing and Building raylib on a VM
- LibSDL Research
- Module Interactions
- Working with Raylib and SSH
- raylib
- GDL
-
Linking the Libzip and Json C to chiventure on CSIL machines
-
Lua
-
NPC
- Dependencies: Player class, Open world, Battle
- Action Documentation
- Design Document for NPC Generation in Openworld
- Design and Planning
- Establishing Dependencies
- Implementation of Custom Scripts
- Independent Feature: NPC Movement Design Document
- Player Interaction Design and Planning
- Dialogue
- Design Document for NPC Dialogue and Action Implementation
- Loading NPCs from WDL Files
- NPC Battle Integration Design Document
- NPC Battle Integration Changes Design Document
-
Open World
- Autogeneration and Game State
- Deciding an integration approach
- Designing approach for static integration into chiventure
- Feature Wishlist
- Generation Module Design layout
- Potential connections to the rest of chiventure
- Single Room Generation Module Design
- Source Document
- User Stories
- World Generation Algorithm Plan
- Loading OpenWorld Attribute from WDL
-
Player Class
-
Player
-
Quests
-
Rooms
-
Skill Trees
- Avoiding soft locks in skill tree integration
- Components of Exemplary Skill Trees
- Design Document and Interface Guide
- Environment interactions based on skill characteristics
- Integrating complex skill (combined, random, sequential, etc.) implementation
- Integration of a Leveling System
- Potential Integration with existing WDL
- Research on game balancing in regards to skill trees
- Research on skill tree support in modern day game engines
- SkillTree Wiki Summary
- Skilltree "effect" implementation and roadmap
- Summary of md doc file for skilltrees
- Design ideas in connection to other features
- Summary of Skill Tree Integration 2022
- The Difficulty of the Reading the World
- Complex Skills Summary
-
Sound
-
Stats
-
WDL