Comments (11)
Turns out it is an issue with WAV v1.0.3. I solved it by removing the package and pulling the master:
] rm WAV
] add https://github.com/dancasimiro/WAV.jl
from wav.jl.
@dancasimiro In v1.0.3
, Project.toml
said
version = "1.0.3"
[compat]
FileIO = "≥ 0.2.0"
julia = "≥ 0.7.0"
but in the current main
branch it says
version = "1.0.4"
[compat]
FileIO = "0.2, 1.4"
julia = "0.7, 1.5"
That has at least two problems:
- If you make any changes to the
[compat]
section, I believe you will also have to change toversion = "1.1.0"
, as this no longer counts as a “patch” under semantic versioning. - Did you really intend to say that Julia 1.0, 1.1, ..., 1.4, are not compatible?
- The
FileIO
compatibility requirements look similarly odd (i.e., explicitly incompatible with FileIO 0.3.x–1.3.x).
See: https://julialang.github.io/Pkg.jl/v1/compatibility/ and in particular Behavior of versions with leading zeros.
On reflection, I now believe the changes (e.g., wavplay()
works again, the way the documentation is formatted) are significant enough to count as a minor release, not as a (third-level increment) “patch”, therefore I would suggest to move to
version = "1.1.0"
The compatible Julia versions should probably be specified as
julia = "0.7, 1"
In fact, it is probably time to drop 0.7, as that hasn't been officially supported for a long time, i.e.
julia = "1"
is also fine.
I don't know anything about the actual compatibility requirements of FileIO
, but I suspect you also meant to say something like
FileIO = "0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1"
and perhaps
FileIO = "1"
is also fine now?
Or just keep
[compat]
FileIO = "≥ 0.2.0"
julia = "≥ 0.7.0"
as it was. (As long as there is no breaking Julia 2 or FileIO 2 on the horizon to worry about.)
from wav.jl.
@dancasimiro Any chance you could merge PR #93 to make JuliaRegistrator happier and then tag/release v1.1.0
?
(My students have to do a signal-processing exercise in the coming weeks where Julia+WAV.jl is one of the recommended platforms. The current master fixes all the problems that my students encountered last year with wavplay
and the documentation in that exercise, so it would be great to get it released asap.)
from wav.jl.
I'm having the same problem. It seems like the these lines under WAV.jl
are not doing their job:
function wavplay end
wavplay(fname::AbstractString) = wavplay(wavread(fname)[1:2]...)
@static if Sys.islinux()
include("wavplay-pulse.jl")
elseif Sys.isapple()
include("wavplay-audioqueue.jl")
elseif Sys.iswindows()
include("wavplay-win32.jl")
else
wavplay(data, fs) = @warn "wavplay is not currently implemented on $(Sys.KERNEL)"
end
from wav.jl.
Thank you!
I look forward to the release of the new version. 1.0.4
from wav.jl.
@dancasimiro Could you please tag the current main branch head as the v1.0.4
release? At the moment, the latest release tag is still v1.0.3
, where wavplay()
does not work at all on any currently supported Julia version.
from wav.jl.
@mgkuhn I have attempted to tag v1.0.4
. You can follow the progress at JuliaRegistries/General#22393
from wav.jl.
@dancasimiro Is deploying CompatHelper actually useful here? The compatibility requirements of WAV.jl seem extremely simple currently, so I don't understand what problems CompatHelper would solve here (rather than create!).
from wav.jl.
PR #93 is how I would suggest to proceed.
from wav.jl.
Small note for future people: if you are using julia and WAV.jl within the windows subsystem for linux (WSL) then wavplay fails with the following error. This may have been fixed in WSL v2, but at least for v1 it's broken.
shared memfd open() failed: Function not implemented
pa_simple_new failed
error(::String)@error.jl:33
wavplay(::Array{Float64,2}, ::Float32)@wavplay-pulse.jl:118
wavplay(::String)@WAV.jl:1075
top-level scope@Local: 1
from wav.jl.
[That should have been a new issue really]
Are you running pulseaudio there? Do other Linux audio applications work? Via pulseaudio or via other audio APIs?
If not, I would not have expected WAV.wavplay
to work.
I'm no expert on the state of audio device access on WSL and WSL2 in general. From a quick web search, I gather that neither WSL or WSL2 have any access to an audio device, but people have succeeded in running PulseAudio on both WSL and Windows simultaneously and then configuring them to pass over the sound from one to the other via TCP: https://www.reddit.com/r/bashonubuntuonwindows/comments/hrn1lz/wsl_sound_through_pulseaudio_solved/
Based on that, I don't see what better WAV.jl could do than to be a PulseAudio client, which it already is.
P.S.: WSL[2] will probably always remain a horrendous hack. For the best experience with hardware I/O, I recommend to get a proper operating system, not stacks of kernel emulation layers or VMs.
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
- tag new version of WAV.jl that includes fixes for Julia v0.7 and v1.0 HOT 3
- How to resolve Libdl error on MAC? HOT 2
- Support Julia v0.7? HOT 9
- Artifacts in sound played by wavplay HOT 8
- Playing with @async is blocking HOT 7
- 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
- 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.