diff options
| author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-09-22 17:08:56 +0200 | 
|---|---|---|
| committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-09-22 17:08:56 +0200 | 
| commit | b7df77d6cc26cb9ee46891d7108f01734b3104dd (patch) | |
| tree | 903d1a0084f83d502d6ba98c5bdfb04e94876e9d /mwe | |
| parent | a12702c912ae0ce96c754ffcb2ab5d901c504b65 (diff) | |
add miniaudio pocpoc/audio-miniaudio
Diffstat (limited to 'mwe')
| -rw-r--r-- | mwe/audio/bgm.ogg | bin | 0 -> 125020 bytes | |||
| -rw-r--r-- | mwe/audio/miniaudio/CMakeLists.txt | 19 | ||||
| -rw-r--r-- | mwe/audio/miniaudio/main.cpp | 46 | ||||
| -rw-r--r-- | mwe/audio/sfx1.wav | bin | 0 -> 44144 bytes | |||
| -rw-r--r-- | mwe/audio/sfx2.wav | bin | 0 -> 44144 bytes | |||
| -rw-r--r-- | mwe/audio/sfx3.wav | bin | 0 -> 44144 bytes | 
6 files changed, 65 insertions, 0 deletions
| diff --git a/mwe/audio/bgm.ogg b/mwe/audio/bgm.oggBinary files differ new file mode 100644 index 0000000..d6397fb --- /dev/null +++ b/mwe/audio/bgm.ogg diff --git a/mwe/audio/miniaudio/CMakeLists.txt b/mwe/audio/miniaudio/CMakeLists.txt new file mode 100644 index 0000000..6dd0191 --- /dev/null +++ b/mwe/audio/miniaudio/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.28) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_EXPORT_COMPILE_COMMANDS 1) +set(CMAKE_BUILD_TYPE Debug) + +add_subdirectory(../../../lib/miniaudio miniaudio) + +project(poc C CXX) + +add_executable(main +	main.cpp +) + +target_link_libraries(main +	miniaudio +) + diff --git a/mwe/audio/miniaudio/main.cpp b/mwe/audio/miniaudio/main.cpp new file mode 100644 index 0000000..bf31898 --- /dev/null +++ b/mwe/audio/miniaudio/main.cpp @@ -0,0 +1,46 @@ +#include <miniaudio.h> + +#include <chrono> +#include <thread> + +using namespace std; +using namespace std::chrono_literals; + +int main() { +	ma_engine engine; +	ma_engine_init(NULL, &engine); + +	// 1. load background track (ogg vorbis) +	ma_sound bgm; +	ma_sound_init_from_file(&engine, "../bgm.ogg", 0, NULL, NULL, &bgm); + +	// 2. load samples (wav) +	ma_sound sfx[3]; +	ma_sound_init_from_file(&engine, "../sfx1.wav", 0, NULL, NULL, &sfx[0]); +	ma_sound_init_from_file(&engine, "../sfx2.wav", 0, NULL, NULL, &sfx[1]); +	ma_sound_init_from_file(&engine, "../sfx3.wav", 0, NULL, NULL, &sfx[2]); + +	// 3. start the background track +	ma_sound_start(&bgm); + +	// 4. play samples sequentially while controlling the background track +	this_thread::sleep_for(500ms); +	ma_sound_start(&sfx[0]); +	this_thread::sleep_for(500ms); +	ma_sound_start(&sfx[1]); +	ma_sound_stop(&bgm); +	this_thread::sleep_for(500ms); +	ma_sound_start(&sfx[2]); +	ma_sound_start(&bgm); // this actually resumes now +	this_thread::sleep_for(500ms); +	for (unsigned i = 0; i < 3; i++) +		ma_sound_seek_to_pcm_frame(&sfx[i], 0); + +	// 5. play all samples simultaniously +	for (unsigned i = 0; i < 3; i++) +		ma_sound_start(&sfx[i]); +	this_thread::sleep_for(1000ms); + +	ma_engine_uninit(&engine); +	return 0; +} diff --git a/mwe/audio/sfx1.wav b/mwe/audio/sfx1.wavBinary files differ new file mode 100644 index 0000000..576377a --- /dev/null +++ b/mwe/audio/sfx1.wav diff --git a/mwe/audio/sfx2.wav b/mwe/audio/sfx2.wavBinary files differ new file mode 100644 index 0000000..908ec86 --- /dev/null +++ b/mwe/audio/sfx2.wav diff --git a/mwe/audio/sfx3.wav b/mwe/audio/sfx3.wavBinary files differ new file mode 100644 index 0000000..20b7c84 --- /dev/null +++ b/mwe/audio/sfx3.wav |