Skip to content

Commit eb82652

Browse files
committed
Update README.md
1 parent a012b20 commit eb82652

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,26 @@ synth.clear_midi()
140140
# add midi again, render again, and so on...
141141
```
142142

143+
## Known Issues
144+
145+
### Compatibility with JAX and other LLVM-based libraries
146+
147+
DawDreamer must be imported **before** JAX or other LLVM-based libraries (such as PyTorch with TorchScript, Numba, etc.) to avoid LLVM initialization conflicts that can cause segmentation faults:
148+
149+
```python
150+
# CORRECT:
151+
import dawdreamer as daw # Import DawDreamer first!
152+
import jax
153+
154+
# WRONG - May cause segfault:
155+
import jax
156+
import dawdreamer as daw # Importing after JAX can crash!
157+
```
158+
159+
**Why?** Both DawDreamer (via Faust's LLVM backend) and JAX use LLVM internally. When JAX initializes LLVM first (e.g., by calling `jax.devices()`), importing DawDreamer afterward can cause conflicts in LLVM's global state, resulting in a crash.
160+
161+
**Workaround:** Always import `dawdreamer` at the top of your Python file, before any JAX or related libraries.
162+
143163
## Documentation
144164

145165
**Full documentation:** https://dbraun.github.io/DawDreamer/

0 commit comments

Comments
 (0)