Skip to content

Example project demonstrating how to use the Rubber Band Library for time-stretching and pitch-shifting audio in iOS and macOS apps using AVFoundation.

Notifications You must be signed in to change notification settings

jerryseigle/rubberband-ios-macos-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 

Repository files navigation

Rubber Band Library – iOS & macOS AVFoundation Example

This project demonstrates how to integrate the Rubber Band Library into an iOS or macOS application using AVFoundation. It includes a working Objective-C example that loads an audio file, applies real-time pitch and time-stretching using Rubber Band, and plays back the processed audio.


πŸ”§ Features

  • βœ… Real-time audio pitch shifting
  • βœ… Optional time-stretching
  • βœ… Uses Rubber Band v4.0.0 (R3 engine support)
  • βœ… Formant preservation for natural voice quality
  • βœ… Built with AVAudioEngine and AVAudioPlayerNode

πŸ“¦ Requirements

  • Xcode 14 or newer
  • iOS 14+ or macOS 11+

πŸš€ Setup Instructions

  1. Clone this repo

🧠 Key Concepts

  • Rubber Band requires audio to be de-interleaved per channel
  • Audio is processed in blocks and output is reassembled into buffers
  • The R3 engine (OptionEngineFiner) provides higher-quality pitch shifting
  • OptionFormantPreserved maintains vocal character

πŸ™Œ Credits


πŸ“„ License

This example is for educational purposes and provided "as-is." For commercial use of the Rubber Band Library, you must obtain a license from the authors.


About

Example project demonstrating how to use the Rubber Band Library for time-stretching and pitch-shifting audio in iOS and macOS apps using AVFoundation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published