---
title: "sendProgramChange(_:onChannel:)"
framework: avfaudio
role: symbol
role_heading: Instance Method
path: "avfaudio/avaudiounitmidiinstrument/sendprogramchange(_:onchannel:)"
---

# sendProgramChange(_:onChannel:)

Sends MIDI Program Change and Bank Select events to the instrument.

## Declaration

```swift
func sendProgramChange(_ program: UInt8, onChannel channel: UInt8)
```

## Parameters

- `program`: The program (preset) number within the bank to load. The valid range is 0 to 127.
- `channel`: The channel number to send the event to. The valid range is 0 to 15.

## Discussion

Discussion The system loads the instrument from the bank that was previously set by the MIDI “Bank Select” controller messages (0 and 31). The system uses bank 0 if not previously set.

## See Also

### Sending information to the MIDI instrument

- [sendController(_:withValue:onChannel:)](avfaudio/avaudiounitmidiinstrument/sendcontroller(_:withvalue:onchannel:).md)
- [sendMIDIEvent(_:data1:)](avfaudio/avaudiounitmidiinstrument/sendmidievent(_:data1:).md)
- [sendMIDIEvent(_:data1:data2:)](avfaudio/avaudiounitmidiinstrument/sendmidievent(_:data1:data2:).md)
- [sendMIDISysExEvent(_:)](avfaudio/avaudiounitmidiinstrument/sendmidisysexevent(_:).md)
- [sendPitchBend(_:onChannel:)](avfaudio/avaudiounitmidiinstrument/sendpitchbend(_:onchannel:).md)
- [sendPressure(_:onChannel:)](avfaudio/avaudiounitmidiinstrument/sendpressure(_:onchannel:).md)
- [sendPressure(forKey:withValue:onChannel:)](avfaudio/avaudiounitmidiinstrument/sendpressure(forkey:withvalue:onchannel:).md)
- [sendProgramChange(_:bankMSB:bankLSB:onChannel:)](avfaudio/avaudiounitmidiinstrument/sendprogramchange(_:bankmsb:banklsb:onchannel:).md)
- [send(_:)](avfaudio/avaudiounitmidiinstrument/send(_:).md)
