JuliaAudio / JACKAudio.jl

Access Audio I/O using the JACK Audio Connection Kit from Julia
Other
27 stars 7 forks source link

fixed deprecated syntax typealias and Base.SingleAsyncWork #6

Open hagi123456 opened 6 years ago

hagi123456 commented 6 years ago

updated to support julia 0.6.0 and require at least julia 0.5

codecov[bot] commented 6 years ago

Codecov Report

Merging #6 into master will increase coverage by 0.69%. The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master       #6      +/-   ##
==========================================
+ Coverage   85.12%   85.81%   +0.69%     
==========================================
  Files           2        2              
  Lines         289      289              
==========================================
+ Hits          246      248       +2     
+ Misses         43       41       -2
Impacted Files Coverage Δ
src/libjack.jl 65.51% <ø> (ø) :arrow_up:
src/JACKAudio.jl 88.07% <100%> (+0.76%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 87e1e8a...e7b9c89. Read the comment docs.

ssfrr commented 6 years ago

Thanks for the contribution! I'll check this out shortly.

Also for future reference, you can update an existing pull request by pushing new commits to your remote branch, rather than starting a new PR.

ssfrr commented 6 years ago

hmm, on my linux machine this segfaults on creating a JACKClient. I'm assuming it works for you? ;)

It's been a while since I've been in the bowels of this code, but if I remember correctly, the API for AsyncCondition is a little different from SingleAsyncWork in that you're supposed to wait on it from your Julia task and then it gets notifyed from the audio thread.

I've been meaning to re-work the audio thread management in this package to match PortAudio.jl, which now uses RingBuffers.jl and a little bit of custom C code. After maintaining these packages for a while it became clear that trying to keep my Julia code runnable from the audio thread is asking for trouble and somewhat brittle, and it's much more robust to just write the audio callback in C but use RingBuffers.jl to make it as convenient as possible to pass data from the audio callback to Julia.

If we can get it working on 0.6 without this overhaul than great, but in the long run that's the direction I think it's going to need to go.

hagi123456 commented 6 years ago

Here everything seemed ok. Did no extensive testing, though. I am running Debian Stretch.