Title: Ambisonic B-Format Playback Issues on Vision Pro

I'm trying to implement Ambisonic B-Format audio playback on Vision Pro with head tracking. So far audio plays, head tracking works, and the sound appears to be stereo. The problem is that it is not a proper binaural playback when compared to playing back the audiofile with a DAW. Has anyone successfully implemented B-Format playback on Vision Pro? Any suggestions on my current implementation:

func playAmbiAudioForum() async {
        do {
            try AVAudioSession.sharedInstance().setCategory(.playback)
            try AVAudioSession.sharedInstance().setActive(true)
            
            // AudioFile laoding/preperation
            guard let testFileURL = Bundle.main.url(forResource: "audiofile", withExtension: "wav") else {
                print("Test file not found")
                return
            }
            
            let audioFile = try AVAudioFile(forReading: testFileURL)
            let audioFileFormat = audioFile.fileFormat
            
            // create AVAudioFormat with Ambisonics B Format
            guard let layout = AVAudioChannelLayout(layoutTag: kAudioChannelLayoutTag_Ambisonic_B_Format) else {
                print("layout failed")
                return
            }
                                
            let format = AVAudioFormat(
                commonFormat: audioFile.processingFormat.commonFormat,
                sampleRate: audioFile.fileFormat.sampleRate,
                interleaved: false,
                channelLayout: layout
            )
            
            // write audiofile to buffer
            guard let buffer = AVAudioPCMBuffer(pcmFormat: format, frameCapacity: UInt32(audioFile.length)) else {
                print("buffer failed")
                return
            }
            
            try audioFile.read(into: buffer)
            
            playerNode.renderingAlgorithm = .HRTF
            
            // connecting nodes
            audioEngine.attach(playerNode)
            audioEngine.connect(playerNode, to: audioEngine.outputNode, format: format)
                        
            audioEngine.prepare()

            playerNode.scheduleBuffer(buffer, at: nil) {
                print("File finished playing")
            }
            
            try audioEngine.start()
            playerNode.play()
            
        } catch {
            print("Setup error:", error)
        }
    }
Title: Ambisonic B-Format Playback Issues on Vision Pro
 
 
Q