Read the ongoing notes here
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 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.
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
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