Merge branch 'master' of github.com:Pezz89/pysound
This commit is contained in:
@@ -1,49 +1,24 @@
|
||||
# SPPySound
|
||||
# Pysound
|
||||
|
||||
SPPySound is a python project that acts as a wrapper to the pysndfile library, adding aditional functionality needed for audio and DSP related projects.
|
||||
Currently the project is focused on the generation of audio descriptor meta data for sound databases as part of my final year project.
|
||||
The project is currently in development but aims to generate a range of useful functions for sound manipulation.
|
||||
The project is designed with flexability in mind so that new functions and features can be added as needed.
|
||||
To address this the project has a modular nature and currently consists of 3 main classes for the encapsulation of audio files:
|
||||
A python script for generating granular synthesis driven representations of
|
||||
audio files based on audio database analysis.
|
||||
|
||||
## Main audiofile Module
|
||||
This script was developed to explore the creative potential of combining
|
||||
short-time audio analyses with granular synthesis, to synthesize perceptually
|
||||
related representations of target audio files. Through use of analysed
|
||||
databases of varying sizes, an output can be generated that represents a mix of
|
||||
the spectral and temporal features of the original target sound and the corpus
|
||||
of source sounds.
|
||||
|
||||
### AudioFile
|
||||
To achieve this, a technique known as "concatenative synthesis" is used. This
|
||||
form of synthesis combines the ability to window and join small segments of
|
||||
sound to create a new sound (a process known as granular synthesis), with audio
|
||||
analysis techniques capable of describing a sound in order to differentiate it
|
||||
from others. By analysing small segments in a target sound for their perceptual
|
||||
characteristics (such as pitch, timbre and loudness), it is then possible to
|
||||
compare these segments to a collection of source sounds to find perceptually
|
||||
similar segments. From this, the most perceptually similar matches can be taken
|
||||
and joined using granular synthesis techniques in order to achieve the final
|
||||
result.
|
||||
|
||||
This is the base class for creating an audio file object and has methods for simple processed on the audio file.
|
||||
Functionality such as converting the file to mono and convenience functions for reading and writing grains of audio are included.
|
||||
|
||||
### AnalysedAudioFile
|
||||
|
||||
Inheriting from the AudioFile class, this encapsulates the audio file and the analyses that can be generated through the seperate audio analysis modules.
|
||||
This will be used for the processing of analyses of audio files and to group audio files with their analyses.
|
||||
|
||||
### AudioDatabase
|
||||
|
||||
An audio database is a class used to group AnalysedAudioFiles for batch processing.
|
||||
This class will be used for comparison methods to compare audiofiles and their meta data.
|
||||
|
||||
## Analysis Modules - Under development
|
||||
|
||||
### RMSAnalysis
|
||||
Generates an RMS analysis file.
|
||||
Currently stored as a plain text file.
|
||||
Values can be accessed through RMSAnalysis class methods.
|
||||
|
||||
### ZeroXAnalysis
|
||||
Generates a windowed zero-crossing anaysis of the audio file
|
||||
Currently stored as a plain text file
|
||||
Values can be accessed through ZeroXAnalysis class methods.
|
||||
|
||||
### AttackAnalysis
|
||||
Generates an estimate for the attack start and end of a monophonic audio file.
|
||||
Will only work on single event audio files
|
||||
Estimation algorithm needs improvments.
|
||||
|
||||
## Package Installation
|
||||
Simply run:
|
||||
pip install .
|
||||
from the package folder
|
||||
Alternatively:
|
||||
pip install -e .
|
||||
will install the package keeping it's contents in place in the folder so that they can be easily developed and tested.
|
||||
Full documentation can be found at: http://pezz89.github.io/pysound/index.html
|
||||
|
||||
Reference in New Issue
Block a user