I've run into a pretty major issue with AUMIDISynth (kAudioUnitSubType_MIDISynth) that I can also replicate in AUSampler. In brief, I have an SF2 with some samples that play for several seconds after touch-up, and if I play too many notes in succession, new notes will simply fail to sound until at least one of the previous notes has finished attenuating. My understanding is that standard MIDI polyphony is supposed to "steal" an already-playing note when you go past the polyphony limit. In AU Lab, using AUSampler, this works correctly when the polyphony is set to 8. However, if you set the polyphony to something like 32, the number of "voices" appears to be capped at 14 and prevents any new keys from sounding past 14 simultaneously playing notes.
Here's a demo YouTube video: https://www.youtube.com/watch?v=69KkpKk0OlQ Unfortunately, I can't find a way to adjust the polyphony or voice count when using kAudioUnitSubType_MIDISynth in software, which means there's no good way to prevent notes from failing to play past the voice limit. Sending a Sound Off command does reset the voices and allow me to start playing notes again, but this is a channel command, so I can only use it as a crude bludgeon to turn off every note simultaneously. I've considered several approaches to fix the problem — creating a separate synth for each instrument and putting each note in its own channel, creating a "double buffer" out of every two channels and only sending Sound Off to a buffer when they switch, or maybe just automatically sending Sound Off every 14 notes — but these feel like hacks. Surely there's a way to get around the issue in a more conventional way? It would be a shame if I had to code up a complex meta-synth just because I couldn't tweak a symple polyphony setting! _______________________________________________ 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]
