# User-created sounds not playing in FMOD with pthreads

**URL:** https://qa.fmod.com/t/user-created-sounds-not-playing-in-fmod-with-pthreads/24359
**Category:** FMOD Engine
**Tags:** html5
**Created:** [June 25, 2026, 2:33am UTC](https://qa.fmod.com/t/user-created-sounds-not-playing-in-fmod-with-pthreads/24359 "2026-06-25T02:33:55Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![rhys-L](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/rhys-l/32/6882_2.png) [@rhys-L](https://qa.fmod.com/u/rhys-L)
#### Post date: [June 25, 2026, 2:33am UTC](https://qa.fmod.com/t/user-created-sounds-not-playing-in-fmod-with-pthreads/24359/1 "2026-06-25T02:33:55Z")

</div>

I’m trying to set up the pthread-enabled wasm port. Everything seems alright, except sounds that are played by programmer sounds are silent. Swapping `fmodstudioPL.js` with `fmodstudioL.js` makes all sounds audible.

All sounds are loaded without the nonblocking flag. The exact same code works with the single-threaded version, and is silent with the pthread version.

Sounds doesn’t sound like a word anymore.

Is there something different about how programmer sounds are created with multiple threads?

Thanks 🙂

---

<div class="post-metadata">

### Author: ![brett](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/brett/32/261_2.png) [@brett](https://qa.fmod.com/u/brett)
#### Post date: [July 2, 2026, 6:19am UTC](https://qa.fmod.com/t/user-created-sounds-not-playing-in-fmod-with-pthreads/24359/2 "2026-07-02T06:19:41Z")

</div>

This is not documented well in FMOD 2.3. Im attaching a section from the upcoming revamped HTML5 release in 2.4. Your relevant entry is the [FMOD\_STUDIO\_EVENT\_CALLBACK](https://fmod.lightning.force.com/lightning/r/Case/500Od00000kMpr0IAC/view) section.

--

The ‘P’ versions of the FMOD libraries support threaded mixing, streaming and **FMOD\_NONBLOCKING** support.

An important limitation to note is that user callbacks will not fire from a pthread, as JavaScript objects cannot be shared between threads.  
The table below lists if certain callbacks are supported at all, and if they are, conditions with different types of callbacks are marked with a ? in the ‘Note’ column.

| Callback | Support | Note |
| --- | --- | --- |
| **FMOD\_3D\_ROLLOFF\_CALLBACK** | No | Not supported |
| **FMOD\_CHANNELCONTROL\_CALLBACK** | Yes | Called from **System::update** |
| **FMOD\_DEBUG\_CALLBACK** | No | Called from multiple threads |
| **FMOD\_DSP\_CALLBACK** | No | Not supported |
| **DSP plug-in API callbacks** | ? | Must use **FMOD\_OUTPUTTYPE\_AUDIOWORKLET** or **FMOD\_OUTPUTTYPE\_WEBAUDIO** over **FMOD\_OUTPUTTYPE\_AUDIOWORKLETP**. Called from **System::update** |
| **FMOD\_FILE\_OPEN\_CALLBACK**  
**FMOD\_FILE\_CLOSE\_CALLBACK**  
**FMOD\_FILE\_READ\_CALLBACK**  
**FMOD\_FILE\_SEEK\_CALLBACK**. | ? | Core API: Must not use **FMOD\_NONBLOCKING**. **FMOD\_CREATESTREAM** must use **FMOD\_INIT\_STREAM\_FROM\_UPDATE**.  
Studio API: You must use **FMOD\_STUDIO\_INIT\_LOAD\_FROM\_UPDATE** with **FMOD\_STUDIO\_INIT\_SYNCHRONOUS\_UPDATE**. |
| **FMOD\_FILE\_ASYNCREAD\_CALLBACK**  
**FMOD\_FILE\_ASYNCCANCEL\_CALLBACK** | No | Not supported |
| **FMOD\_MEMORY\_ALLOC\_CALLBACK**  
**FMOD\_MEMORY\_REALLOC\_CALLBACK**  
**FMOD\_MEMORY\_FREE\_CALLBACK** | No | Called from multiple threads |
| **FMOD\_SOUND\_NONBLOCK\_CALLBACK** | No | Not supported |
| **FMOD\_SOUND\_PCMREAD\_CALLBACK**  
**FMOD\_SOUND\_PCMSETPOS\_CALLBACK** | ? | **FMOD\_CREATESTREAM** must use **FMOD\_INIT\_STREAM\_FROM\_UPDATE** |
| **FMOD\_SYSTEM\_CALLBACK** | No | Not supported |
| **FMOD\_STUDIO\_SYSTEM\_CALLBACK** | ? | Must use **FMOD\_STUDIO\_INIT\_SYNCHRONOUS\_UPDATE** |
| **FMOD\_STUDIO\_EVENT\_CALLBACK** | ? | Timeline callbacks must use **FMOD\_STUDIO\_INIT\_DEFERRED\_CALLBACKS** |
| **FMOD\_STUDIO\_COMMANDREPLAY\_FRAME\_CALLBACK**  
**FMOD\_STUDIO\_COMMANDREPLAY\_LOAD\_BANK\_CALLBACK**  
**FMOD\_STUDIO\_COMMANDREPLAY\_CREATE\_INSTANCE\_CALLBACK** | No | Not supported |
