Audio processor to map oracle notes in the VoG raid in Destiny 2 to call outs.

Related tags

Audio vog_oracles
Overview

vog_oracles

Audio processor to map oracle notes in the VoG raid in Destiny 2 to call outs.

Huge thanks to mzucker on GitHub for the note detection code. Also thanks to u/brainstormcsgo on reddit for mapping the notes to call outs.

Requirements

  1. Python 3.6, PyAudio, NumPy.
    • Has to be 3.6 as PyAudio hasn't been updated since.
    • Should work with any 3.6.x python version, but I have only tested on 3.6.0
    • If you are new to python PyAudio and NumPy are python packages. To install them try running "pip install NAME", replacing NAME with the package name. If that fails google how to install python packages for your environment, or message me.
  2. Game audio as PC input.
    • I have written instructions for this if you are on PC, please checkout the PC Instructions file.
    • On console I use my monitors output as an audio line in.
    • I haven't tested using speakers from console and a microphone as input, but it could work.
    • Try to avoid routing VC with game audio, as this will make it harder to detect notes.

To use

Set ATHEON constant to true if in Atheon room, false for oracles/templar. Run main.py. Your audio inputs will be listed numbered from 0 upwards, type the number for the audio input you want and press enter.

You will need to modify the constants for better results, use the debug modes to help with tweaking them. DECIBEL_CUTOFF helps to isolate background noise, but if too high it will prevent proper note detection. If you run in DEBUG mode 1 and see no output to the console its likely that DECIBEL_CUTOFF is too high. If it is at 0 and you still get no output to the console it means the audio input you selected has no audio output.

Variables might need to change between rooms, for example I found I had to drop my decibel cutoff from 20 to 15 for Atheon.

You can change the note_to_location function to modify the callouts you want to use. By default it uses 1-7 left to right for oracles, and far/close left/middle/right for Atheon.

I recommend running in a terminal that you can easily clear, to get rid of any incorrect results between cycles.

Usefulness

Script is not perfect, but should help with missed calls, ordering etc. Works a lot better if you are able to isolate the oracle sounds, for example not firing weapons/using abilities.

I have not tested it as much in Atheon room, as you can't easily test it solo and there are fewer videos with good audio for it. Atheon room also has the issue of more sounds / fewer places to avoid damage, making note detection harder. If you sit on the ledge at the back it should work pretty well (if you have tweaked the settings as needed).

Potential future improvements

  1. Improvement to B flat detection
  2. Better filtering out of non oracle sounds
  3. Using both rotations of the notes to figure out call, instead of printing all
  4. Pulling D2 game audio directly (when on PC) without requiring user to take additional steps

If anyone has any suggestions for improvements please let me know! I'm an average player and programmer, but have no music experience, so there are definitely improvements to be made!

You might also like...
Audio fingerprinting and recognition in Python
Audio fingerprinting and recognition in Python

dejavu Audio fingerprinting and recognition algorithm implemented in Python, see the explanation here: How it works Dejavu can memorize audio by liste

kapre: Keras Audio Preprocessors

Kapre Keras Audio Preprocessors - compute STFT, ISTFT, Melspectrogram, and others on GPU real-time. Tested on Python 3.6 and 3.7 Why Kapre? vs. Pre-co

Python library for audio and music analysis

librosa A python package for music and audio analysis. Documentation See https://librosa.org/doc/ for a complete reference manual and introductory tut

?️ Open Source Audio Matching and Mastering
?️ Open Source Audio Matching and Mastering

Matching + Mastering = ❤️ Matchering 2.0 is a novel Containerized Web Application and Python Library for audio matching and mastering. It follows a si

Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications
Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications

A Python library for audio feature extraction, classification, segmentation and applications This doc contains general info. Click here for the comple

Manipulate audio with a simple and easy high level interface

Pydub Pydub lets you do stuff to audio in a way that isn't stupid. Stuff you might be looking for: Installing Pydub API Documentation Dependencies Pla

Scalable audio processing framework written in Python with a RESTful API

TimeSide : scalable audio processing framework and server written in Python TimeSide is a python framework enabling low and high level audio analysis,

Python module for handling audio metadata

Mutagen is a Python module to handle audio metadata. It supports ASF, FLAC, MP4, Monkey's Audio, MP3, Musepack, Ogg Opus, Ogg FLAC, Ogg Speex, Ogg The

Python I/O for STEM audio files
Python I/O for STEM audio files

stempeg = stems + ffmpeg Python package to read and write STEM audio files. Technically, stems are audio containers that combine multiple audio stream

Comments
  • issue with installing in windows.

    issue with installing in windows.

    as you can see bellow i was able to install python 3.6 pyaudio and numpy. but when running the application it states that numpy isn't installed.

    that

    C:\Users\removing this\AppData\Local\Programs\Python\Python36>python -m pip install pyaudio
    Collecting pyaudio
      Downloading https://files.pythonhosted.org/packages/ff/4f/removing this /PyAudio-0.2.11-cp36-cp36m-win_amd64.whl (52kB)
        100% |████████████████████████████████| 61kB 2.7MB/s
    Installing collected packages: pyaudio
    Successfully installed pyaudio-0.2.11
    You are using pip version 9.0.1, however version 21.1.3 is available.
    You should consider upgrading via the 'python -m pip install --upgrade pip' command.
    
    C:\Users\removing this\AppData\Local\Programs\Python\Python36>python -m pip install numpy
    Collecting numpy
      Downloading https://files.pythonhosted.org/packages/ea/bc/removing this/numpy-1.19.5-cp36-cp36m-win_amd64.whl (13.2MB)
        100% |████████████████████████████████| 13.2MB 77kB/s
    Installing collected packages: numpy
    Successfully installed numpy-1.19.5
    You are using pip version 9.0.1, however version 21.1.3 is available.
    You should consider upgrading via the 'python -m pip install --upgrade pip' command.
    
    C:\Users\removing this\AppData\Local\Programs\Python\Python36>cd vog_oracles-main
    
    C:\Users\removing this\AppData\Local\Programs\Python\Python36\vog_oracles-main>main.py
    Traceback (most recent call last):
      File "C:\Users\removing this\AppData\Local\Programs\Python\Python36\vog_oracles-main\main.py", line 3, in <module>
        import numpy as np
    ModuleNotFoundError: No module named `'numpy'`
    
    opened by nntb 1
Owner
null
Carnatic Notes Predictor for audio files

Carnatic Notes Predictor for audio files Link for live application: https://share.streamlit.io/pradeepak1/carnatic-notes-predictor-for-audio-files/mai

null 1 Nov 6, 2021
cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for Python

audioread Decode audio files using whichever backend is available. The library currently supports: Gstreamer via PyGObject. Core Audio on Mac OS X via

beetbox 419 Dec 26, 2022
cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for Python

audioread Decode audio files using whichever backend is available. The library currently supports: Gstreamer via PyGObject. Core Audio on Mac OS X via

beetbox 359 Feb 15, 2021
Audio spatialization over WebRTC and JACK Audio Connection Kit

Audio spatialization over WebRTC Spatify provides a framework for building multichannel installations using WebRTC.

Bruno Gola 34 Jun 29, 2022
Audio augmentations library for PyTorch for audio in the time-domain

Audio augmentations library for PyTorch for audio in the time-domain, with support for stochastic data augmentations as used often in self-supervised / contrastive learning.

Janne 166 Jan 8, 2023
praudio provides audio preprocessing framework for Deep Learning audio applications

praudio provides objects and a script for performing complex preprocessing operations on entire audio datasets with one command.

Valerio Velardo 105 Dec 26, 2022
convert-to-opus-cli is a Python CLI program for converting audio files to opus audio format.

convert-to-opus-cli convert-to-opus-cli is a Python CLI program for converting audio files to opus audio format. Installation Must have installed ffmp

null 4 Dec 21, 2022
:notes: Cross-platform music player

Exaile Exaile is a music player with a simple interface and powerful music management capabilities. Features include automatic fetching of album art,

Exaile 327 Dec 19, 2022
A small project where I identify notes and key harmonies in a piece of music and use them further to recreate and generate the same piece of music through Python

A small project where I identify notes and key harmonies in a piece of music and use them further to recreate and generate the same piece of music through Python

null 5 Oct 7, 2022
Convert complex chord names to midi notes

ezchord Simple python script that can convert complex chord names to midi notes Prerequisites pip install midiutil Usage ./ezchord.py Dmin7 G7 C timi

Alex Zhang 2 Dec 20, 2022