---
title: AVAudioUnitMIDIInstrument
framework: avfaudio
role: symbol
role_heading: Class
path: avfaudio/avaudiounitmidiinstrument
---

# AVAudioUnitMIDIInstrument

An object that represents music devices or remote instruments.

## Declaration

```swift
class AVAudioUnitMIDIInstrument
```

## Overview

Overview Use an AVAudioUnitMIDIInstrument in a chain that processes real-time (live) input and has the general concept of music events; for example, notes.

## Topics

### Creating a MIDI instrument

- [init(audioComponentDescription:)](avfaudio/avaudiounitmidiinstrument/init(audiocomponentdescription:).md)

### 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(_:onChannel:)](avfaudio/avaudiounitmidiinstrument/sendprogramchange(_:onchannel:).md)
- [sendProgramChange(_:bankMSB:bankLSB:onChannel:)](avfaudio/avaudiounitmidiinstrument/sendprogramchange(_:bankmsb:banklsb:onchannel:).md)
- [send(_:)](avfaudio/avaudiounitmidiinstrument/send(_:).md)

### Starting and stopping play

- [startNote(_:withVelocity:onChannel:)](avfaudio/avaudiounitmidiinstrument/startnote(_:withvelocity:onchannel:).md)
- [stopNote(_:onChannel:)](avfaudio/avaudiounitmidiinstrument/stopnote(_:onchannel:).md)

## Relationships

### Inherits From

- [AVAudioUnit](avfaudio/avaudiounit.md)

### Inherited By

- [AVAudioUnitSampler](avfaudio/avaudiounitsampler.md)

### Conforms To

- [AVAudio3DMixing](avfaudio/avaudio3dmixing.md)
- [AVAudioMixing](avfaudio/avaudiomixing.md)
- [AVAudioStereoMixing](avfaudio/avaudiostereomixing.md)
- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
