# \[ANN\] WaveFlow.jl: Audio engine in Julia

**URL:** <https://discourse.julialang.org/t/ann-waveflow-jl-audio-engine-in-julia/131490>\
**Category:** Package Announcements\
**Tags:** package, audio, games, game-engine, cruise\
**Created:** [August 9, 2025, 2:29pm UTC](https://discourse.julialang.org/t/ann-waveflow-jl-audio-engine-in-julia/131490 "2025-08-09T14:29:46Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gesee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gesee/32/217235_2.png) [@Gesee](https://discourse.julialang.org/u/Gesee)\
**Post date:** [August 9, 2025, 2:29pm UTC](https://discourse.julialang.org/t/ann-waveflow-jl-audio-engine-in-julia/131490/1 "2025-08-09T14:29:46Z")

</div>

Hello guys.  
I present my new package [WaveFlow.jl](https://github.com/Gesee-y/WaveFlow.jl), a complet audio engine.  
I’m not an audio engineer but I think it’s pretty good 😅  
Here are the available features:

- **File loading** : Waves can load a wide variety of format such as ogg, wav, mpeg and soon mp3
- **Streaming** : Waves use a circular buffer to let you play long audio without comsuming too much memory and processing power.
- **Groups and Bus** : Waves let you create sound groups and sound bus for more granular control over you sounds
- **Mixing** : You are not limited to one sound at a time.
- **Configurable** : You can manage volume, panning, pitch, speed as you want.
- **Effects** : Add reverb, equalizer, compressor or even you custom effect on your sounds!
- **Metrics** : Track CPU usage, signal peaks, and more — updated in real-time
- **Real-time audio** : Powered by PortAudio for low-latency playback

Hope you will enjoy using it.  
The package is being registered but you can still take it as a development version

---

<div class="post-metadata">

**Author:** ![tp2750](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tp2750/32/207806_2.png) [@tp2750](https://discourse.julialang.org/u/tp2750)\
**Post date:** [August 11, 2025, 7:05pm UTC](https://discourse.julialang.org/t/ann-waveflow-jl-audio-engine-in-julia/131490/2 "2025-08-11T19:05:40Z")

</div>

Thanks @Gesee ,  
Great to see some new activity on the audio front!

A few friendly comments from an initial testing:

- It looks like you changed the interface since writing the documentation:  
[This line](https://github.com/Gesee-y/WaveFlow.jl/blob/75c6fb77e7d7c2450db3c227835c5c2ef3b0ceee/docs/index.md?plain=1#L186) gives an error:  
`sine = generate_sine_wave(frequency=440.0, duration=3.0, amplitude=0.5)`  
but this works: `sine = generate_sine_wave(440.0, 3.0)`. I think you should just go with the keyword arguments as in the docs.

- Could you please add an option to choose the device in [WaveFlow.jl/src/core.jl at 75c6fb77e7d7c2450db3c227835c5c2ef3b0ceee · Gesee-y/WaveFlow.jl · GitHub](https://github.com/Gesee-y/WaveFlow.jl/blob/75c6fb77e7d7c2450db3c227835c5c2ef3b0ceee/src/core.jl#L282).  
I’m not getting any sound out of device 1.

Looking forward to doing some more testing!

---

<div class="post-metadata">

**Author:** ![Gesee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gesee/32/217235_2.png) [@Gesee](https://discourse.julialang.org/u/Gesee)\
**Post date:** [August 12, 2025, 5:48am UTC](https://discourse.julialang.org/t/ann-waveflow-jl-audio-engine-in-julia/131490/3 "2025-08-12T05:48:58Z")

</div>

Oh, I will do it. Thanks for testing this package. And have you tried the white noises ?

---

<div class="post-metadata">

**Author:** ![tp2750](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tp2750/32/207806_2.png) [@tp2750](https://discourse.julialang.org/u/tp2750)\
**Post date:** [August 13, 2025, 6:00pm UTC](https://discourse.julialang.org/t/ann-waveflow-jl-audio-engine-in-julia/131490/4 "2025-08-13T18:00:59Z")

</div>

Not yet 🙂

---

<div class="post-metadata">

**Author:** ![tp2750](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tp2750/32/207806_2.png) [@tp2750](https://discourse.julialang.org/u/tp2750)\
**Post date:** [August 16, 2025, 4:46pm UTC](https://discourse.julialang.org/t/ann-waveflow-jl-audio-engine-in-julia/131490/5 "2025-08-16T16:46:46Z")

</div>

@Gesee , I’ve created a PR fixing the errors I found 😄

> <https://github.com/Gesee-y/WaveFlow.jl/pull/2>
>
> This fixes #1 
> 
> \- Make \`input\_device\`and \`output\_device\` kw arguments to \`Wave…System()\`
> \- Convert positional arguments to kw arguments for all effects to match documentation.
> \- fix the sine function generator.

It is great you have put this together. Thanks a lot.

The white noise worked well, and I fixed the error in the sine generator.

---

<div class="post-metadata">

**Author:** ![Gesee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gesee/32/217235_2.png) [@Gesee](https://discourse.julialang.org/u/Gesee)\
**Post date:** [August 16, 2025, 5:10pm UTC](https://discourse.julialang.org/t/ann-waveflow-jl-audio-engine-in-julia/131490/6 "2025-08-16T17:10:04Z")

</div>

Thanks for these fixes  
I actually have some technical difficulties, that’s why I couldn’t do it
