An iOS piano keyboard view for iPhone or iPad, written in Swift 5.

Has an IBDesignable preview in interface builder with IBInspectable properties for:

  • Number of keys
  • Hide/show note names on white keys
  • Black key height and width
  • Hightlight keys, with individual colour (optional play note)
  • Custom key labels

Other features

  • Latch/Hold key

All images are drawn using Core Graphics.



To use via CocoaPods, add the following line to your Podfile:

pod 'PianoKeyboard'

Swift Package Manager

With Xcode 11+ you can add PianoKeyboard to your project using the Swift Package Manager. From the File menu select Swift Packages and then select Add Package Dependency. A dialogue then will request the package repository URL, enter:



The Example app demonstrates how to integrate and use PianoKeyboard in your project. It includes a simple AVAudioEngine/AVAudioUnitSampler based sound source.

Delegate Methods

func pianoKeyDown(_ keyNumber: Int) {
  // Called when the key corresponding to midi number keyNumber is pressed

func pianoKeyUp(_ keyNumber: Int) {
  // Called when the key corresponding to midi number keyNumber is released


Key Labels

A key’s label must be assigned a value for it to show:

keyboard.setLabel(for: 60, text: "Do")
keyboard.setLabel(for: 62, text: "Re")
keyboard.setLabel(for: 64, text: "Mi")

for noteNumber in 65...72 {
    keyboard.setLabel(for: noteNumber, text: Note.name(for: noteNumber))


  • Swift 5

Download Details:

Author: Gary Newby

GitHub: http://github.com/garynewby/PianoKeyboard

#piano keyboard #audio #swift #ios #mobile-apps

Piano keyboard view for iOS in Swift
8.85 GEEK