Brilliantly cool! Thanks for notifying the update! I will test it very soon. I guess it would be possible to use this technique also to synthesize something. Like "white noise until CTRL + C is pressed", so to speak..
On Sunday, 13 March 2016 19:54:48 UTC, Sebastian Kraft wrote: > > In the last days I added some code to allow realtime and asynchronous IO. > I think it is still quite hackish, but absolutely have no clue how to pass > something like a callback object in Julia. > > The thing is I want to open a stream and pass it an initialized > "processor" object which is then doing the realtime processing in the > background until the stream is closed. My current solution looks like shown > in this example: > > https://github.com/seebk/PortAudio.jl/blob/master/examples/async_processing.jl > > Maybe the whole concept of async IO as I have planned it is not possible > in Julia? > > Any ideas how this could be done more in a smart (Julia style) way? > > Sebastian > > Am Montag, 22. Februar 2016 09:51:04 UTC+1 schrieb CrocoDuck O'Ducks: >> >> Cool! I will stay updated. Thanks! >> >> On Monday, 22 February 2016 07:50:39 UTC, Sebastian Kraft wrote: >>> >>> Please only stick to the examples given in the Readme.md file. Single >>> buffer IO is not working properly, yet. >>> My current plan is to extend open() so you can pass a callback function >>> which does the processing asynchronously. However, it does not seem to work >>> when C code is called in an @async block... Have to investigate that >>> further in the next days... >>> >>> Am Sonntag, 21. Februar 2016 16:44:50 UTC+1 schrieb CrocoDuck O'Ducks: >>>> >>>> Hi there! >>>> >>>> I got into PortAudio.jl <https://github.com/seebk/PortAudio.jl> >>>> recently (see this >>>> <https://groups.google.com/forum/#!topic/julia-users/ooyT55TI-jk> >>>> thread). I would like to code realtime digital filters. By that I mean >>>> that >>>> I would like to acquire data from sound-card input(s) and, while the >>>> acquisition goes on, filter the acquired samples and write the result to >>>> the sound-card output(s). Latency does not need to be low. I have mostly >>>> loudspeaker pre-hemphasis applications for acoustic measurements in mind >>>> for that, that means I will time align what I need later on... I think the >>>> PortAudio module should make me able to do that... but I have not figured >>>> out how. Here what I have (very naively) tried: >>>> >>>> iostream = open(devID, (max_input_channels, max_output_channels), >>>> sample_rate, buf_size) >>>> >>>> # Use a loop. Ctrl + C to exit the loop. >>>> >>>> doloop = true >>>> >>>> try >>>> while doloop >>>> >>>> ibuffer = read(iostream, buf_size) # Collect Input >>>> obuffer = some_filtering_of(ibuffer) # Do some processing >>>> write(iostream, obuffer) # Write it to output >>>> >>>> end >>>> catch excp >>>> >>>> if isa(excp, InterruptException) # Ctrl + C generates an >>>> InterruptException >>>> doloop = false >>>> end >>>> >>>> end >>>> >>>> Of course, there are many problems with that (it is not collecting >>>> consecutive buffers, for example). I guess it can help you understanding >>>> what I have in mind though. >>>> >>>
