Skip to content

SimLoads/xavi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Xavi

Read the ongoing notes here
codebeat badge

Welcome, Git Cloners!

If you're cloning this repo, ensure you use

git clone https://github.com/SimLoads/xavi/ --branch setup --single-branch

to prevent the cloning of random things that you don't need.

If you encounter the error "ImportError: DLL Load Failed..."

If you hit

from ._ufuncs import *
  File "_ufuncs.pyx", line 1, in init scipy.special._ufuncs
ImportError: DLL load failed: The specified module could not be found.

There is now a fix for this! Re-run 'SetupScript' again and suspend execution on the prompt. Enter 'c' and let the installer finish. Once it exits, use

pip install -r requirements.txt

This will install the dependencies regularly and should fix this error.

What can Xavi do?

Xavi is designed with simplicity in mind and will do its best to automate as many processes as possible. Here's a small feature list that you can use right now:

  • NO DEPENDENCIES LEFT BEHIND - Automatic install of packages needed by Xavi (handled by the installer)
  • Send either a file or live microphone input to two output devices in real-time
  • Figure out tempos of songs, to the nearest 10 or so
  • Generate test tones of a certain length and frequency
  • Powerful command line input processing with parameters and non-order-specific delimiters
  • Can just play music regularly too.
  • Simple updating of code

Getting started with Xavi

To start, download 'ScriptSetup.py' and run it in the target directory.

When the install is complete, you can use Xavi by using the Stop 'N' Swap System, XaviSNS.

Here's an example of a command:

XaviSNS.py -c testwave -f test1 -l 1 -r 1000

Here, i'm calling the 'testwave' function which generates a tone, and saving the output to a file called 'test1', with a 1 second length and frequency of 1000 Hz. If you need help with parameters, simply type:

XaviSNS.py -h

Here's another example. Say I want to play that file back to my headphones and speakers at the same time, so I can show some friends my brand new sine wave. To list available audio devices, use:

XaviSNS.py -c livebridge

Passing the livebridge function with no arguments returns a list of recommended devices. In my case, my speakers are device '4' and my headphones are device '6'. I can then send these, along with the file, to livebridge.

XaviSNS.py -c livebridge -f test1.wav -fd 4 -sd 6

This plays the sound to both devices simultaneously.

Xavi makes use of and can download the following packages:

This wonderful precompiled version of PyAudio by intxcc
This awesome low pass filter by piercus
BeautifulSoup4
Sounddevice
SciPy
NumPy
Matplotlib
Filetype
Six
Pyparsing
Libpng
Freetype
Kiwisolver
Dateutil
Cycler