Re: Threading Question
Re: Threading Question
- Subject: Re: Threading Question
- From: Morgan Packard <email@hidden>
- Date: Mon, 30 Jan 2012 17:36:15 -0500
I use a message queue (using a circular buffer to store the messages) to pass messages from the UI thread to the audio thread. Then on the audio thread (inside the render callback, really) I check for an "attack" message, and call my attack method if appropriate. Happy to clarify if you need more explanation.
-Morgan
On Mon, Jan 30, 2012 at 4:30 PM, ben kamen
<email@hidden> wrote:
Hello,
I have an iOS synth app and I am running into a problem that I think needs to be resolved through thread management or through some sort of locking system.
I have an envelope generator, a c++ object, to which I call "attack()" "decay()" from an audio controller object. The envelope objects calls "decay()" and "sustain()" to itself within the render loop at appropriate times.
I've noticed that the "attack()" and "release()" functions get called on different threads than the "sustain()" and "decay()" functions, which sometimes (though not terribly often) results in the messages occuring out of order, and causes notes to get stuck on.
After some research my thinking is that I need a way to ensure that the audio controller only can call "attack()" or "release()" between render callbacks, or even better, in between processing each frame. Is there a design pattern or preferred method that can help me ensure that that will happen? A code example would be incredibly helpful.
I realize this could also be a DSP question, but I'm pretty sure that is not my issue here. I'm interested in knowing what the proper way to avoid this kind of situation is.
Thanks in advance!
Ben
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
--
===============
Morgan Packard
cell: (720) 891-0122
aim: mpackardatwork
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden