Comments (7)
Which wavplay implemention are you using? Is it the pulse audio implementation or the native macOS implementation?
from wav.jl.
Oh, yeah, sorry. I am on Ubuntu 18.04, so pulse audio!
from wav.jl.
Any updates on this?
from wav.jl.
I’m sorry, but I don’t have time to track this issue down. I am accepting pull requests though.
from wav.jl.
Sure, no problem. I'll see what I can do, but my schedule is tight too! Thank you!
from wav.jl.
@async
just creates a task (for co-routines) and does not run it in another thread, so your example works sequentially (single-threaded), as expected.
For what you wanted, try to spawn a task into an available thread:
$ cat test.jl
using WAV
using Base.Threads
y, fs = wavread("example.wav")
Threads.@spawn wavplay(y, fs)
while true println("async!") end
$ JULIA_NUM_THREADS=2 julia test.jl
Note that Threads.@spawn
is still an experimental feature as of Julia 1.4.
What I think you probably really wanted: if a backend provides asynchronous playback (i.e., tell the C function call to return immediately), we could expose this to the user e.g. as wavplay(y, fs; async=true)
.
The Windows backend apparently can do this: we could replace the flag SND_SYNC
with SND_ASYNC
, although I'm not sure if this alone is memory safe (as Julia might garbage-connect the waveform buffer before it is played asynchronously). I don't know yet about the other backends.
from wav.jl.
closing due to lack of follow up
from wav.jl.
Related Issues (20)
- Caption for WAV display HOT 3
- Extra \0 bytes in RIFF INFO tags causes wav_info_read() to raise ArgumentError HOT 2
- Buggy interaction with Gtk.jl HOT 2
- wavread needs a "float" data type
- WAV.jl not reading wav files with incorrect file size in header HOT 3
- 256x smaller values using "native" format HOT 5
- wavrecord and simultaneous play and record HOT 7
- Support Julia v0.7? HOT 9
- Artifacts in sound played by wavplay HOT 8
- wavplay example not working on Linux HOT 16
- wavread with subrange of step >1 gives wrong result HOT 4
- Add some support for reading from pipe HOT 2
- `wavplay(y, fs)` does not work HOT 11
- Chunk padding not recognized HOT 3
- TagBot trigger issue HOT 3
- Slower loading because of GC issue
- Affiliate this package with JuliaAudio HOT 4
- Read operations do not start at the start of the file
- wavread cannot access a sample number 59614786 or higher HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wav.jl.