Native iOS Ambisonic Playback

Overview

Native iOS Ambisonic Playback

This xCode project is an example of the quickest way to get ambisonic decoding working natively with iOS audio. I was not able to find any examples like this when working with iOS and ambisonic playback so I am releasing this to hopefully help anyone else looking to play ambisonic files.

Project Overview

AmbisonicPlayback.swift

This is where the audio engine, environment, player node, bussing, and head rotation is being set up and controlled.

Scene.swift

This is not necessary to get ambisonic playback working but I included it as it is a helpful tool to visualize the rotation of the binaural rendering orientation.

Prerequisite

This was made with Xcode 13.1, Swift 5.5.1. I don't know if these are required but becuase ambisonic playback is somewhat recent, I would recommend using up to date tools.

Building

After updating your signing and capabilities settings, you can build this to the simulator or an actual iOS device. The UI should scale properly but we aware that it might not scale properly for every device. Following is the expected look.

Known Issues

You will notice that the ambisonic node volume is being set to 1 as it’s being played, and set to 0 as its being paused. This is due to a bug that is causing an unexpected sound. This sound appears to be a single buffer loop that is being played over and over again depending on the last buffer. Kinda sounds like a square / saw wave depending on when it was stopped. Uncomment the lines with ambisonicNode.volume if you would like to hear for yourself. Please let me know if you know how to fix this.

You might also like...
Soundable is a tiny library that uses AVFoundation to manage the playing of sounds in iOS applications in a simple and easy way

Soundable is a tiny library that uses AVFoundation to manage the playing of sounds in iOS applications in a simple and easy way. You can play

Swift audio synthesis, processing, & analysis platform for iOS, macOS and tvOS
Swift audio synthesis, processing, & analysis platform for iOS, macOS and tvOS

AudioKit AudioKit is an audio synthesis, processing, and analysis platform for iOS, macOS (including Catalyst), and tvOS. Installation To add AudioKit

AudioKit Synth One: Open-Source iOS Synthesizer App
AudioKit Synth One: Open-Source iOS Synthesizer App

AudioKit Synth One We've open-sourced the code for this synthesizer so that everyone is able to make changes to the code, introduce new features, fix

Classical music front-end for Apple Music: iOS app

concertino_ios Concertino is a classical music front-end for Apple Music. It's splitted in several projects. This one provides only the iOS app. (Ther

iOS application for finding formants in spoken sounds
iOS application for finding formants in spoken sounds

FORMANT PLOTTER Buy on the App Store: https://itunes.apple.com/us/app/formant-analyzer/id799183655?mt=8&uo=4&at=11l6hc&ct=fnd This is an iOS project t

:musical_keyboard: A simple iOS synthesiser powered by Pure Data. Based on the Korg Monotron Delay.

Monotone Delay A simple iOS Synthesizer based on Pure Data. You can see a short demo of the app on youtube. If you want to buy the app you can find it

Music Player for iOS which looks & feels like classic player
Music Player for iOS which looks & feels like classic player

Prodigal Music Player APP looks and feels like a classic device. Bring back the good old player to life. Screenshots Home Page Album Gallery Home Page

Voice Memos is an audio recorder App for iPhone and iPad that covers some of the new technologies and APIs introduced in iOS 8 written in Swift.
Voice Memos is an audio recorder App for iPhone and iPad that covers some of the new technologies and APIs introduced in iOS 8 written in Swift.

VoiceMemos Voice Memos is a voice recorder App for iPhone and iPad that covers some of the new technologies and APIs introduced in iOS 8 written in Sw

Learn to Code While Building Apps - The Complete iOS Development Bootcamp
Learn to Code While Building Apps - The Complete iOS Development Bootcamp

Xylophone Our Goal The goal of this tutorial is to dive into a simple iOS recipe - how to play sound and use an Apple library called AVFoundation. The

Comments
  • Pausing and ambisonic file causes an unexpected sound.

    Pausing and ambisonic file causes an unexpected sound.

    When pausing an ambisonic file, a noise that sounds like a small buffer that is being repeated over and over causing a square/saw sounding wave.

    This doesn't happen when pausing stereo or mono files.

    opened by robertncoomber 0
Owner
Robert Coomber
3D Audio Developer
Robert Coomber
HomeHub - Swift app to control my home's smart devices + show spotify current playback

HomeHub iPad app to control my home's smart devices + show spotify current playb

Cooper Bell 2 Oct 22, 2022
Titanium Amplitude - Use the native Amplitude iOS/Android SDK in Titanium

Titanium Amplitude Module A lightweight module to use the native Amplitude SDK's in Titanium. Example import Amplitude from 'ti.amplitude'; // Initia

Hans Knöchel 6 Jan 14, 2022
React Native version of the Podverse Mobile App

Podverse Podverse is an open source podcast manager for iOS, Android, and web. Check us out at podverse.fm! Free features: Subscribe to podcasts Auto-

Podverse 80 Dec 30, 2022
Sample project displaying bugs in the StarSDK while using Kotlin Native

StarSampleSdk iOS Bugs that need to be reproduced Retrieving network printer status fails after subsequent attempts Star Bluetooth printer with an act

Bailey Pollard 1 Aug 18, 2022
🖥 Control your display's brightness & volume on your Mac as if it was a native Apple Display

?? Control your display's brightness & volume on your Mac as if it was a native Apple Display. Use Apple Keyboard keys or custom shortcuts. Shows the native macOS OSDs.

null 20k Dec 29, 2022
Support for native cross-platform in-app-purchasing API's in Titanium

Support for native cross-platform in-app-purchasing API's in Titanium. This repository represents a modern alternative to ti.storekit (iOS) and ti.inappbilling (Android).

Hans Knöchel 12 Dec 23, 2022
Background sounds feature from iOS 15 on iOS 11+

Tranquil Background sounds feature from iOS 15 on iOS 11+ Only physically tested on iOS 14.3 and iOS 12.1.2, but it should support iOS 11 - iOS 15.x (

Dana Buehre 4 Dec 15, 2022
AudiosPlugin is a Godot iOS Audio Plugin that resolves the audio recording issue in iOS for Godot Engine.

This plugin solves the Godot game engine audio recording and playback issue in iOS devices. Please open the Audios Plugin XCode Project and compile the project. You can also use the libaudios_plugin.a binary in your project.

null 3 Dec 22, 2022
AudioKit is an audio synthesis, processing, and analysis platform for iOS, macOS, and tvOS.

AudioKit is an audio synthesis, processing, and analysis platform for iOS, macOS (including Catalyst), and tvOS. Installation To add AudioKit

AudioKit 9.5k Dec 31, 2022
AudioPlayer is a simple class for playing audio in iOS, macOS and tvOS apps.

AudioPlayer AudioPlayer is a simple class for playing audio in iOS, macOS and tvOS apps.

Tom Baranes 260 Nov 27, 2022