I'm using AVAudioSession to configure my audio session and set up preferred sample rate, buffer size. Other than that, I'm using exclusively the C API - AUGraph and AudioUnits.
My app *sometimes* needs more than 1 MIDISynth unit running at a time because some songs require 2 different soundfonts to be loaded simultaneously. As far as my understanding goes, a MIDISynth unit can only load a single soundfont. Am I fundamentally mistaken here? Since my original email, I configured my audio session and all the audio units to use consistent sample rate so that no resampling has to be done at any point. The issue still pertains. The issue is clearly audible when using Yamaha 9ft Grand piano preset from CompiFONT (http://pphidden.wixsite.com/compifont). This particular soundfont is really big in size. Since I only need the piano preset, I use a soundfont that has just that one preset extracted (download: https://mega.nz/#!nYoz0YxZ!gvwd7hCibvG0_n8xEunSJlBapo9d6VhvLg7uNQFsSrw). I should also say that this issue is present regardless of the number of MIDISynth units running - it sounds the same with 1 MIDISynth unit or more. Moreover, that very same soundfont and bank/preset is used in Android version of the app where the backing synth is FluidSynth and it sounds lovely - with polyphony count set to 64! If it would be helpful, I can record how the piano sounds in my iOS app vs a synth on Windows or Android. Regards, Bartosz On Thu, Jul 5, 2018 at 4:01 AM, [email protected] < [email protected]> wrote: > Are you using the C API or the Objective C API? > > Why do you have multiple 16-channel MIDISynth units running? You could > possibly run out of CPU because they cannot steal voices from each other. > > If your MIDISynth code works for one bank but not another, I find it hard > to imagine it is a configuration issue. > > Can you point me to the banks in question? > > -DS > > > On Jul 3, 2018, at 3:02 PM, Bartosz Nowotny <[email protected]> > wrote: > > > > Hello > > > > I need advice on how to properly configure AudioUnits in my MIDISynth > iOS app. > > > > In my code I start by configuring AudioSession: I set the right category > (playback), preferred sample rate and buffer size and then start the > session. > > Next up, I create the graph: multiple synth units > (kAudioUnitSubType_MIDISynth) -> multichannel mixer -> remote IO. > > For mixer unit, I configure number of input elements (buses) and maximum > frames per slice. > > For synth units, I configure the soundbank URL and maximum frames per > slice. > > > > This set up is enough for my app to successfully produce music by > sending MIDI note on/off events to specific synth units. For some > soundfonts, the produced sound is not correct, as if it was distorted. > Because the soundfonts I'm using are popular and publicly available > soundfonts, tested on multiple devices and different synths, I'm pretty > certain the soundfonts are not at fault here. My best guess is that I'm > missing parts of the configuration: > > > > 1. Is any additional configuration required for any of the AudioUnits I > use? In particular, should I configure synth units output stream format, so > that for instance, the sample rate matches what is actually used by the > hardware? Should I also configure stream format for the mixer or IO units? > How should the stream format configs look like? > > 2. If I do need to do the above configuration, how should I respond to > audio session route changes? I noticed, for instance, that plugging in > headphones changes the hardware output sample rate from 48kHz to 44.1kHz. > > > > Regards, > > Bartosz > > > > _______________________________________________ > > Do not post admin requests to the list. They will be ignored. > > Coreaudio-api mailing list ([email protected]) > > Help/Unsubscribe/Update your Subscription: > > https://lists.apple.com/mailman/options/coreaudio-api/ > douglas_scott%40apple.com > > > > This email sent to [email protected] > >
_______________________________________________ Do not post admin requests to the list. They will be ignored. Coreaudio-api mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com This email sent to [email protected]
