Re: Micro tuning the AUSampler in iOS
Re: Micro tuning the AUSampler in iOS
- Subject: Re: Micro tuning the AUSampler in iOS
- From: Lukas Bühler <email@hidden>
- Date: Sat, 31 Dec 2011 11:13:12 -0500
I actually did send the message to all channels since I did not know which one is the base channel:
UInt32 modeMessage = 124; //omni off
UInt32 polyMessage = 127; //poly on
for (int i=0; i<16; i++) {
UInt32 command = 0xB << 4 | i;
MusicDeviceMIDIEvent (self.samplerUnit, command, modeMessage, 0, 0);
MusicDeviceMIDIEvent (self.samplerUnit, command, polyMessage, 0, 0);
}
Another reason why I know it doesn't work is that such a control change message should also turn all notes off but that doesn't work as well.
Thank you brian for the detailed answer though!
-Luke
On Sat, Dec 31, 2011 at 2:31 AM, Brian Willoughby
<email@hidden> wrote:
The MIDI Specification points out that in some cases a MIDI synth device will act like 16 virtual instruments, so you have to send Omni Off on all Channels. Your example message below is for Channel 0, but you should repeat that for Channels 1 through 15 (BF 7C 00). It still might not work, but at least it's a complete implementation.
As for the resources, the answer has two parts. Tracking notes and voice assignments for 16 separate channels as opposed to 1 Omni channel does not really increase the resource footprint that much. The actual voices will take more resources if you are to hear them all, but standard voice allocation methods can be used to match the notes requested to the voices that are available. Any synth can simply truncate sounds that exceed its synthesis ability.
Brian Willoughby
Sound Consulting
On Dec 30, 2011, at 19:50, Lukas Bühler wrote:
Thanks for the help, that looked like the thing I was looking for! So I read up on modes and poly and set the mode change messages to omni off (B0 7C 00), but to no effect...
I really wonder if the iOS AUSampler supports omni off /poly? It would use quite some resources, so maybe Apple has does not support it?
Any other ideas?
On Fri, Dec 30, 2011 at 8:01 PM, Brian Willoughby <
email@hidden> wrote:
Are you familiar with the MIDI Specification for Channel Modes? The default "power-up" conditions are recommended as Channel 1, Omni On/Poly, otherwise known as Mode 1. In this mode, the channel number is basically ignored, which would seem to explain why your pitch bend messages are affecting all channels.
I recommend that you send a Channel Mode message to select Omni Off. You should certainly do this at startup or whenever a new MIDI destination is selected, and perhaps also after a preset change. If this does not solve your problem, then look deeper into the MIDI Specification, starting with Poly/Mono and related modes.
On Dec 30, 2011, at 15:30, Lukas Bühler wrote:
I'm developing an iOS instrument using the UASampler audio unit and I want to support micto tuning. Currently I'm playing each note in a different channel and I send pitch bend MIDI messages to micro tune that note. What happens though is that all channels are pitch bend not just the one I send the bend message to.
Does the AUSampler not support pitch bend on the individual channels? Anybody know how to do this?
_______________________________________________
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