Skip to content

Instantly share code, notes, and snippets.

View thomasfillon's full-sized avatar

Thomas Fillon thomasfillon

  • Université Bretagne Sud
  • Vannes, France
View GitHub Profile
@thomasfillon
thomasfillon / ambisonics_setup_guide_for_games.md
Created June 12, 2023 13:12 — forked from Hiradur/ambisonics_setup_guide_for_games.md
Guide for achieving speaker-based immersive (3D) audio in hundreds of PC games using OpenAL Soft and Ambisonics

Speaker-based immersive (3D) audio in hundreds of PC games via Ambisonics using OpenAL Soft

Introduction

It's possible to achieve speaker-based immersive (3D) audio in many PC games that don't seem to be supported by current proprietary object-based audio technologies using some tinkering and a technology called Ambisonics. Since Ambisonics seems to have gone largely unnoticed in the consumer-space so far, I will first explain what it is, what its benefits are, what content is available right now, and how to set it up on a PC for gaming.

Theoretical Background

What is Ambisonics?

Many should be familiar with multi-channel audio based on discrete speaker feeds or the more recent object-based audio. Ambisonics uses neither of these approaches. Instead, it describes a continous full-sphere sound field around a single point in space. A so called Ambisonics decoder uses this information in combination with a decoding matrix, which is specific to a given speaker layout, to reproduce this sound field a

@thomasfillon
thomasfillon / Issue-Aubio-MFCC.ipynb
Created October 25, 2016 15:01
Illustration of NaN issue with Aubio MFCC when Yaafe is installed from conda
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@thomasfillon
thomasfillon / Timeside Server API.ipynb
Last active May 24, 2016 23:22
Timeside Server API Notebook
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@thomasfillon
thomasfillon / check_LimsiSAD-2.ipynb
Last active January 20, 2016 13:56
Test Limsi SAD Adaptatif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@thomasfillon
thomasfillon / gst_generate_samples_audiotestsrc.py
Created October 15, 2014 13:14
Generate audio samples with Gstreamer 'audiotestsrc' element
# -*- coding: utf-8 -*-
"""Generate samples with Gstreamer 'audiotestsrc' element"""
import pygst
pygst.require("0.10")
import gobject
import gst
# Initialize gobject in a threading environment
gobject.threads_init()
@thomasfillon
thomasfillon / gst_generate_samples_appsrc_push.py
Last active August 29, 2015 14:07
Generate audio samples with Gstreamer appsrc element in 'push' mode
# -*- coding: utf-8 -*-
"""Generate samples with Gstreamer 'appsrc' element in 'push' mode"""
import pygst
pygst.require("0.10")
import gobject
import gst
import numpy
import threading
@thomasfillon
thomasfillon / Pitch Display.ipynb
Created September 29, 2014 08:45
ipython notebook Display Pitch in TimeSide
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function () {
var v = document.getElementById("myVideo");
var p = document.getElementById("pbr");
var c = document.getElementById("currentPbr");
var t = document.getElementById('Time');
@thomasfillon
thomasfillon / Serialization example.ipynb
Created February 27, 2014 17:32
TimeSide Serialization example
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@thomasfillon
thomasfillon / Timeside API.ipynb
Last active January 4, 2016 15:29
AES 53rd conference demonstration ipython notebooks
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.