> On Thu, Sep 1, 2011 at 1:03 PM, David Hicks <
email@hidden> wrote:
>>
>> I can answer the question about Program Change, at least for the DLS
>> Synth. I have borrowed some code here from PlaySoftMIDI. Take a look at that
>> sample to see what precedes the code below.
>> I have added the second call to MusicDeviceMIDIEvent, which sends Patch 72
>> to the default MIDI channel.
>> require_noerr (result = AUGraphInitialize (graph), home);
>> //set our bank
>> require_noerr (result = MusicDeviceMIDIEvent(synthUnit,
>> kMidiMessage_ControlChange << 4 | midiChannelInUse,
>> kMidiMessage_BankMSBControl, 0,
>> 0/*sample offset*/), home);
>> require_noerr (result =
>> MusicDeviceMIDIEvent(synthUnit, kMidiMessage_ControlChange << 4 |
>> midiChannelInUse,
>> kMidiMessage_BankMSBControl, 0,
>> 0/*sample offset*/), home);
>> // This code isn't in the project, and works to send a Program Change
>> require_noerr (result =
>> MusicDeviceMIDIEvent(synthUnit, kMidiMessage_ProgramChange << 4 |
>> midiChannelInUse,
>> 72, 0,
>> 0), home);
>> Note that on most software synths today you change sounds using their UIs,
>> not using MIDI Program changes. This requires either showing the CocoaView
>> or the GenericView for the AU. Good sample code is in the CocoaAUHost
>> project.
>> HTH,
>> David
>
> Thanks. I'll look at that.
>
> There has to be some way to change sounds using both the UI and some kind
> of program change event, otherwise there would be no way to establish in
> Logic or GB the persistency of a patch, and you'd have to do it in the UI on
> load. Which you don't. :)