Git Product home page Git Product logo

8d-audio's Introduction

8D Audio

Try it out at www.8daudio.ca

The inspiration for this project came from a series of YouTube videos I was shown, called 8D Audio.
Yeah, the name doesn't make a ton of sense, but anyways, I thought this was pretty neat. I think it would be cool to try and make a series of signal processing methods to make any song "8D Audio". This is what it looks like so far. 8d

Getting Started

The dependancies required to run the script are in requirments.txt. This was built using python 3.6.5, you can install the dependancies with the command
pip install -r requirements.txt
To add effects chains to the songs such as reverb, you need SoX installed on your computer. If you are on Windows, make sure you add SoX to PATH in enviorment variables. The web app also now has the funcitonality to download a song from youtube given a link. In order for this to run locally, you may also need ffprobe or avprobe. I use ffprobe, you can download it here.
The system architecture is as follows.

  • app.py
    • This is the main script to launch the flask app
  • audio_features.py
    • This is the method containing all of the digital signal processing
  • templates/.
    • Webpage to be rendered
  • static/
    • Folder used by flask to serve up index.js and index.css to webpage
  • out/
    • A temp folder for storing audio files To run the flask app locally, python app.py.

What needs to be done

Currently, audio moves on horizontal plane and vertical plane with effects chain and is pretty close to achieving "8D" status. Some other things I am wanting to approve:

  • Reduce loss in audio reconstruction from ifft when applying high and low pass filters

8d-audio's People

Contributors

imfunniee avatar maxgillham avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

8d-audio's Issues

AttributeError: module 'librosa' has no attribute 'output'

App generates below logs

`

  • Serving Flask app 'app' (lazy loading)
  • Environment: production
    WARNING: This is a development server. Do not use it in a production deployment.
    Use a production WSGI server instead.
  • Debug mode: on
  • Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
  • Restarting with stat
  • Debugger is active!
  • Debugger PIN: 666-792-098
    [youtube] a4NGZFMhEUY: Downloading webpage
    [download] Destination: out/test.wav
    [download] 100% of 3.63MiB in 00:00
    [ffmpeg] Post-process file out/test.wav exists, skipping
    127.0.0.1 - - [23/May/2021 12:22:59] "POST /convert HTTP/1.1" 200 -
    /home/vijay/Downloads/8D-Audio/librosa/librosa/core/audio.py:165: UserWarning: PySoundFile failed. Trying audioread instead.
    warnings.warn("PySoundFile failed. Trying audioread instead.")
    /home/vijay/Downloads/8D-Audio/librosa/librosa/core/audio.py:165: UserWarning: PySoundFile failed. Trying audioread instead.
    warnings.warn("PySoundFile failed. Trying audioread instead.")
    Debugging middleware caught exception in streamed response at a point where response headers were already sent.
    Traceback (most recent call last):
    File "/home/vijay/.local/lib/python3.8/site-packages/werkzeug/wsgi.py", line 462, in next
    return self._next()
    File "/home/vijay/.local/lib/python3.8/site-packages/werkzeug/wrappers/response.py", line 49, in _iter_encoded
    for item in iterable:
    File "/home/vijay/Downloads/8D-Audio/app.py", line 47, in long_time
    save_song('./out/in.wav', wav, sampling_rate)
    File "/home/vijay/Downloads/8D-Audio/audio_features.py", line 31, in save_song
    librosa.output.write_wav(name, wav, sampling_rate)
    AttributeError: module 'librosa' has no attribute 'output'`

Audio elevation

Figure out how to incorporate audio elevation and make the height alternate in rotate method

Could you share me about audio knowledge.

Could you help me to share the document to convert the audio music to 8D. I need to make it on mobile. Sharing for me something like algorithm, step as audio_features.py did that. Maybe I need to do it by java/kotlin/swift code to make it can run on Mobile.

Thank you so much!

Fix tail end of output

The while loop goes to (length//(4*end_of_bar))*(4*end_of_bar) which is less than the actual length of the song. It needs to be like this for indexing issues but now the end of songs outputted switch back to original version.

Add reverb to songs

Add some dry reverb to tracks, the amount of reverb and style should be specific to the tempo of the song and number of beat frames. ie a song with a lot of sudden quiet areas must have very little reverb, and very dry reverb.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.