From 7f0b0a59425321dcc880ddc0f4b479bce85e0bb0 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Mon, 14 Jul 2025 16:35:32 -0400 Subject: pke: audio: process each tick, impl buffer copy --- tests/pke-test-audio.cpp | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) (limited to 'tests') diff --git a/tests/pke-test-audio.cpp b/tests/pke-test-audio.cpp index 2d48022..4607033 100644 --- a/tests/pke-test-audio.cpp +++ b/tests/pke-test-audio.cpp @@ -50,23 +50,23 @@ int pke_test_audio_001() { UBO.model = glm::translate(glm::mat4(1.f), glm::vec3(0, 0, 0)); - float *zip_bop_bytes = pk_new(48000, bkt); + float *zip_bop_bytes = pk_new(PKE_AUDIO_BITRATE, bkt); float phase = 0.0f; - float phase_increment = 440.f / 48000.f; - for (i = 0; i < 48000; ++i) { + float phase_increment = 440.f / float(PKE_AUDIO_BITRATE); + for (i = 0; i < PKE_AUDIO_BITRATE; ++i) { zip_bop_bytes[i] = 2.f * (phase - floor(phase + 0.5f)); phase += phase_increment; if (phase >= 1.f) phase -= 1.f; } const AssetKey ak_sawtooth {"sawthooth"}; - AssetHandle ah_sawtooth = AM_Register(ak_sawtooth, PKE_ASSET_TYPE_AUDIO, zip_bop_bytes, sizeof(float) * 48000, 64); - pk_delete(zip_bop_bytes, 48000, bkt); + AssetHandle ah_sawtooth = AM_Register(ak_sawtooth, PKE_ASSET_TYPE_AUDIO, zip_bop_bytes, sizeof(float) * PKE_AUDIO_BITRATE, 64); + pk_delete(zip_bop_bytes, PKE_AUDIO_BITRATE, bkt); pke_audio_play(ah_sawtooth, pke_audio_source_music, pke_audio_flag_none, glm::vec3(0)); while (pke_audio_mstr.playing_objects.next > 0) { pke_audio_tick(0.001f); - std::this_thread::sleep_for(std::chrono::milliseconds(1)); + std::this_thread::sleep_for(std::chrono::nanoseconds(500000)); } AM_Release(ah_sawtooth); @@ -96,16 +96,16 @@ int pke_test_audio_002() { }; for(k = 0; k < 3; ++k) { - float *zip_bop_bytes = pk_new(48000, bkt); + float *zip_bop_bytes = pk_new(PKE_AUDIO_BITRATE, bkt); float phase = 0.0f; - float phase_increment = freqs[k] / 48000.f; - for (i = 0; i < 48000; ++i) { + float phase_increment = freqs[k] / float(PKE_AUDIO_BITRATE); + for (i = 0; i < PKE_AUDIO_BITRATE; ++i) { zip_bop_bytes[i] = 2.f * (phase - floor(phase + 0.5f)); phase += phase_increment; if (phase >= 1.f) phase -= 1.f; } - ahs[k] = AM_Register(aks[k], PKE_ASSET_TYPE_AUDIO, zip_bop_bytes, sizeof(float) * 48000, 64); - pk_delete(zip_bop_bytes, 48000, bkt); + ahs[k] = AM_Register(aks[k], PKE_ASSET_TYPE_AUDIO, zip_bop_bytes, sizeof(float) * PKE_AUDIO_BITRATE, 64); + pk_delete(zip_bop_bytes, PKE_AUDIO_BITRATE, bkt); } std::chrono::milliseconds(1); for(k = 0; k < 3; ++k) { @@ -114,7 +114,7 @@ int pke_test_audio_002() { while (pke_audio_mstr.playing_objects.next > 0) { pke_audio_tick(0.001f); - std::this_thread::sleep_for(std::chrono::milliseconds(1)); + std::this_thread::sleep_for(std::chrono::nanoseconds(500000)); } for(k = 0; k < 3; ++k) { @@ -141,8 +141,7 @@ int pke_test_audio_003() { CompInstance *inst = ECS_CreateInstance(ent, pk_uuid_zed, nullptr, &inst_pos); uint64_t dur_seconds = 2; - uint64_t bit_rate = 48000; - uint64_t total_frames = bit_rate * dur_seconds; + uint64_t total_frames = PKE_AUDIO_BITRATE * dur_seconds; AssetHandle ahs[1]; const AssetKey aks[1] {"sawtooth"}; float freqs[1] = {2000.f}; @@ -153,7 +152,7 @@ int pke_test_audio_003() { for(k = 0; k < 1; ++k) { float *zip_bop_bytes = pk_new(total_frames, bkt); float phase = 0.0f; - float phase_increment = freqs[k] / float(bit_rate); + float phase_increment = freqs[k] / float(PKE_AUDIO_BITRATE); for (i = 0; i < total_frames; ++i) { zip_bop_bytes[i] = 2.f * (phase - floor(phase + 0.5f)); phase += phase_increment; @@ -167,7 +166,6 @@ int pke_test_audio_003() { pke_audio_play(ahs[k], pke_audio_source_music, pke_audio_flag_pos_spatial, src_poss[k], inst->instanceHandle); } - float delta = 0.f; float delta_elapsed = 0.f; btTransform trfm{}; @@ -187,7 +185,7 @@ int pke_test_audio_003() { inst->bt.rigidBody->setWorldTransform(trfm); // fprintf(stdout, "%f,%f,%f\n", rot_pos.x, rot_pos.y, rot_pos.z); - std::this_thread::sleep_for(std::chrono::nanoseconds(1)); + std::this_thread::sleep_for(std::chrono::nanoseconds(500000)); } for(k = 0; k < 1; ++k) { -- cgit v1.2.3