removed matplotlib from project

This commit is contained in:
2016-03-22 14:22:59 +00:00
parent 0b63ccd9e1
commit 2f62f23161
7 changed files with 8 additions and 93 deletions
-10
View File
@@ -40,16 +40,6 @@ Generates an estimate for the attack start and end of a monophonic audio file.
Will only work on single event audio files Will only work on single event audio files
Estimation algorithm needs improvments. Estimation algorithm needs improvments.
## Project Roadmap:
Choose best audio descriptors for implementation [ ]
Create a few basic descriptors to test matching on [x]
Create database object matching algorithm [ ]
- Starting with a brute force algorithm that tests every entry against every other entry [ ]
Create simple synthesis algorithm [ ]
Create all descriptors required for project [ ]
Work on improving matching and synthesis algorithms [ ]
Create front-end? [ ]
## Package Installation ## Package Installation
Simply run: Simply run:
pip install . pip install .
-13
View File
@@ -1,13 +0,0 @@
funcsigs==0.4
matplotlib==1.4.3
mock==1.3.0
nose==1.3.7
numpy==1.9.2
pbr==1.7.0
pyparsing==2.0.3
pysndfile==0.2.11
python-dateutil==2.4.2
pytz==2015.4
scipy==0.16.0
six==1.9.0
wheel==0.24.0
+4 -4
View File
@@ -14,7 +14,7 @@ def read(fname):
setup( setup(
name="sppysound", name="sppysound",
version="0.1", version="1.0",
author="Sam Perry", author="Sam Perry",
author_email="u1265119@unimail.hud.ac.uk", author_email="u1265119@unimail.hud.ac.uk",
description=("A library for audio analysis and synthesis."), description=("A library for audio analysis and synthesis."),
@@ -22,7 +22,7 @@ setup(
keywords="synthesis audio", keywords="synthesis audio",
url="https://github.com/Pezz89/pysound", url="https://github.com/Pezz89/pysound",
package_dir={'': 'src'}, package_dir={'': 'src'},
packages=find_packages(where='src', exclude=['tests']), packages=find_packages(where='src'),
setup_requires=['numpy'], setup_requires=["numpy"], # Just numpy here
install_requires=read('requirements.txt'), install_requires=read('requirements.txt')
) )
-17
View File
@@ -5,7 +5,6 @@ import collections
from scipy import signal from scipy import signal
import numpy as np import numpy as np
import pysndfile import pysndfile
import matplotlib.pyplot as plt
import pdb import pdb
import sys import sys
import traceback import traceback
@@ -600,15 +599,6 @@ class AudioFile(object):
""" """
return float(samps) / self.samplerate * 1000.0 return float(samps) / self.samplerate * 1000.0
def plot_grain_to_graph(self, start_index, number_of_samps):
"""
Convenience method.
Use matplotlib to create a graph of the audio file.
"""
samps = self.read_grain(start_index, self.ms_to_samps(number_of_samps))
self.plot_array_to_graph(samps)
def fade_audio(self, audio, position, fade_time, mode): def fade_audio(self, audio, position, fade_time, mode):
""" """
Fade the audio in or out linearly from the position specified over the Fade the audio in or out linearly from the position specified over the
@@ -764,13 +754,6 @@ class AudioFile(object):
raise ValueError("'{0}' is not a valid window" raise ValueError("'{0}' is not a valid window"
" type".format(window_type)) " type".format(window_type))
@staticmethod
def plot_array_to_graph(array):
plt.plot(array, 'r')
plt.xlabel('Time (samples)')
plt.ylabel('sample value')
plt.show()
@staticmethod @staticmethod
def normalize_audio(audio, maximum=1.0): def normalize_audio(audio, maximum=1.0):
""" """
@@ -94,26 +94,7 @@
"metadata": { "metadata": {
"collapsed": false "collapsed": false
}, },
"outputs": [ "outputs": [],
{
"ename": "IOError",
"evalue": "Unable to create file (Unable to open file: name = './exampleoutput/data/analysis_data.hdf5', errno = 17, error message = 'file exists', flags = 15, o_flags = a02)",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mIOError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-5-f15280defdb2>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0moutput_database\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_database\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreanalyse\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/Users/samuelperry/PerryPerrySource/pysource/sppysound/src/sppysound/database.pyc\u001b[0m in \u001b[0;36mload_database\u001b[0;34m(self, reanalyse)\u001b[0m\n\u001b[1;32m 107\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0morganize_audio\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msubdir_paths\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 108\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 109\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0manalyse_database\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msubdir_paths\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreanalyse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 110\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0manalyse_database\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubdir_paths\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreanalyse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/samuelperry/PerryPerrySource/pysource/sppysound/src/sppysound/database.pyc\u001b[0m in \u001b[0;36manalyse_database\u001b[0;34m(self, subdir_paths, reanalyse)\u001b[0m\n\u001b[1;32m 119\u001b[0m \u001b[0;31m# Create data file for storing analysis data for the database\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 120\u001b[0m \u001b[0mdatapath\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msubdir_paths\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'data'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'analysis_data.hdf5'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 121\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5py\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdatapath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'a'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 122\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0manalysed_audio\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 123\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/samuelperry/.pyenv/versions/2.7.11/lib/python2.7/site-packages/h5py/_hl/files.pyc\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, name, mode, driver, libver, userblock_size, swmr, **kwds)\u001b[0m\n\u001b[1;32m 258\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 259\u001b[0m \u001b[0mfapl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fapl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdriver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlibver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 260\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muserblock_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mswmr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mswmr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 261\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 262\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mswmr_support\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/samuelperry/.pyenv/versions/2.7.11/lib/python2.7/site-packages/h5py/_hl/files.pyc\u001b[0m in \u001b[0;36mmake_fid\u001b[0;34m(name, mode, userblock_size, fapl, fcpl, swmr)\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_RDWR\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 102\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mIOError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 103\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcreate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_EXCL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfcpl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfcpl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 104\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmode\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 105\u001b[0m \u001b[0;31m# Try to open in append mode (read/write).\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2458)\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/_objects.c:2415)\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32mh5py/h5f.pyx\u001b[0m in \u001b[0;36mh5py.h5f.create (/Users/travis/build/MacPython/h5py-wheels/h5py/h5py/h5f.c:1965)\u001b[0;34m()\u001b[0m\n",
"\u001b[0;31mIOError\u001b[0m: Unable to create file (Unable to open file: name = './exampleoutput/data/analysis_data.hdf5', errno = 17, error message = 'file exists', flags = 15, o_flags = a02)"
]
}
],
"source": [ "source": [
"output_database.load_database(reanalyse=False)" "output_database.load_database(reanalyse=False)"
] ]
+2 -24
View File
@@ -71,18 +71,7 @@
"metadata": { "metadata": {
"collapsed": false "collapsed": false
}, },
"outputs": [ "outputs": [],
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/samuelperry/.pyenv/versions/2.7.11/lib/python2.7/site-packages/numpy/core/_methods.py:59: RuntimeWarning: Mean of empty slice.\n",
" warnings.warn(\"Mean of empty slice.\", RuntimeWarning)\n",
"/Users/samuelperry/.pyenv/versions/2.7.11/lib/python2.7/site-packages/numpy/core/_methods.py:70: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n"
]
}
],
"source": [ "source": [
"target_database = AudioDatabase(\n", "target_database = AudioDatabase(\n",
" target_dir,\n", " target_dir,\n",
@@ -146,18 +135,7 @@
"collapsed": false, "collapsed": false,
"scrolled": true "scrolled": true
}, },
"outputs": [ "outputs": [],
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/samuelperry/PerryPerrySource/pysource/sppysound/src/sppysound/audiofile.py:665: FutureWarning: comparison to `None` will result in an elementwise object comparison in the future.\n",
" if self.times == None:\n",
"/Users/samuelperry/PerryPerrySource/pysource/sppysound/src/sppysound/audiofile.py:297: UserWarning: write_frames::warning::audio data has been clipped while writing to file ./.shift_input.wav.\n",
" return self.pysndfile_object.write_frames(input)\n"
]
}
],
"source": [ "source": [
"synthesizer.synthesize()" "synthesizer.synthesize()"
] ]
+1 -5
View File
@@ -39,7 +39,6 @@ extensions = [
'sphinxcontrib.bibtex', 'sphinxcontrib.bibtex',
'sphinx.ext.graphviz' 'sphinx.ext.graphviz'
] ]
exclude_patterns = ['_build', '**.ipynb_checkpoints']
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ['_templates']
@@ -84,7 +83,7 @@ language = None
# List of patterns, relative to source directory, that match files and # List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files. # directories to ignore when looking for source files.
exclude_patterns = ['_build'] exclude_patterns = ['_build', '**.ipynb_checkpoints']
# The reST default role (used for this markup: `text`) to use for all # The reST default role (used for this markup: `text`) to use for all
# documents. # documents.
@@ -300,6 +299,3 @@ if os.environ.get('READTHEDOCS', None) == 'True':
os.environ["PATH"] += os.pathsep + os.path.abspath('_bin') os.environ["PATH"] += os.pathsep + os.path.abspath('_bin')
os.environ["LD_LIBRARY_PATH"] = os.path.abspath('_bin') os.environ["LD_LIBRARY_PATH"] = os.path.abspath('_bin')
latex_elements = {
'preamble': '\usepackage{tikz}',
}