Bortosz, Looking at your example and comparing it to mine (which dates now), I would try two things:
(1) I believe that AUGraphUninitialize alters (or unloads) the SoundFonts and hence your new Note On calls end up nowhere. (2) In my setup for updating Sample Rate (as a result of RouteChange), I stop the AUGraph, Update Stream Formats, Make Connections, Initialize AUGraph, and run AUGraphUpdate and then re-start the graph. I guess the ordering here is also important. This said, we are both in the danger zone since AUGraph is doomed for deprecation. Any updates on this?! Arshia Cont www.antescofo.com <http://www.antescofo.com/> > On 10 Jul 2018, at 20:53, Bartosz Nowotny <bartosznowo...@gmail.com> wrote: > > Yes, I have tried AVAudioSession route change notification as well - same > result. > > Even though the code can handle multiple AUMIDISynths, I have set it up so > that for testing only 1 is ever created. > > There is definitely something weird going on: if I respond to the route > change and then try to play some notes - the app always crashes. If I plug in > my headphones while some notes are being played, it either continues to play, > goes to silence or crashes. > > I have created a snippet that shows how my set up looks like: > https://hastebin.com/ugumilofid.m <https://hastebin.com/ugumilofid.m> > At the top, you can find a brief explaination of what the included code is > supposed to do, what the test scenario is and what is the app output. > > I am out of ideas as to what is wrong here. Is it possible that this is a > threading issue? Other than the route change handling the set up works great: > I can load up multiple soundfonts, play notes, unload soundfonts, shut the > graph down and then start it again later. > > Regards, > Bartosz > > On Tue, Jul 10, 2018 at 11:20 AM, Sven Thoennissen <bioch...@me.com > <mailto:bioch...@me.com>> wrote: > Hello, > > It may have to do something with the property listener. Have you tried using > AVAudioSession.routeChangeNotification instead? > Did you connect more than 8 AUMIDISynth to your mixer? (IIRC 8 is the maximum > possible, at least with AVAudioMixerNode) > > In any case it is hard to tell without seeing code. I recommend to set up a > minimal test project with only 1 AUMIDISynth. > > Have you considered using AVFoundation classes instead of the old V2 API? (at > least to reproduce the problem) > > Best regards, > Sven > > > Am 09.07.2018 um 21:32 schrieb Bartosz Nowotny <bartosznowo...@gmail.com > > <mailto:bartosznowo...@gmail.com>>: > > > > Hello, > > > > I am trying to programmatically reconfigure AUGraph at runtime, in response > > to a route change. > > > > My set up consists of a couple of AUMIDISynth nodes connected to a multi > > channel mixer node which in turn is connected to RemoteIO node. This set up > > works fine and I am able to produce audio by sending MIDI note on/off > > events. > > > > I want to avoid audio data resampling at any point in the graph. I can > > start with a properly set up AUGraph that has all audio units use the same > > sample rate (starting from midi synths, through mixer to remote IO). Route > > changes (e.g. plugging in headphones) can change the output sample rate and > > thus introduce resampling and other side effects. > > > > To respond to a route change I set up a property listener for StreamFormat > > on my IO unit. When the stream format changes, I call a method that > > reconfigures the AUGraph in the following manner: > > 1. Stop the AUGraph > > 2. Uninitialize the AUGraph > > 3. Clear all graph connections > > 4. Set mixer output sample rate (propagates to IO input sample rate) > > 5. Set synth output sample rates (propagates to mixer input sample rates) > > 6. Connect synth nodes to mixer node > > 7. Connect mixer node to IO node > > 8. Update, Initialize and Start the AUGraph > > > > None of the above operations returns an error result. > > > > The issue occurs when I send some note on/off events - the app crashes. > > What am I missing? > > > > Regards, > > Bartosz Nowotny > > _______________________________________________ > > Do not post admin requests to the list. They will be ignored. > > Coreaudio-api mailing list (Coreaudio-api@lists.apple.com > > <mailto:Coreaudio-api@lists.apple.com>) > > Help/Unsubscribe/Update your Subscription: > > https://lists.apple.com/mailman/options/coreaudio-api/biochill%40me.com > > <https://lists.apple.com/mailman/options/coreaudio-api/biochill%40me.com> > > > > This email sent to bioch...@me.com <mailto:bioch...@me.com> > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Coreaudio-api mailing list (Coreaudio-api@lists.apple.com > <mailto:Coreaudio-api@lists.apple.com>) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/coreaudio-api/bartosznowotny%40gmail.com > > <https://lists.apple.com/mailman/options/coreaudio-api/bartosznowotny%40gmail.com> > > This email sent to bartosznowo...@gmail.com <mailto:bartosznowo...@gmail.com> > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Coreaudio-api mailing list (Coreaudio-api@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/coreaudio-api/arshiacont%40antescofo.com > > This email sent to arshiac...@antescofo.com
_______________________________________________ Do not post admin requests to the list. They will be ignored. Coreaudio-api mailing list (Coreaudio-api@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com This email sent to arch...@mail-archive.com