Releases: hsercanatli/pitchfilter
pitchfilter v1.2.1
pitchfilter
Repository for post-processing pitch tracks to filter erroneous estimations and correct octave errors.
Introduction
This repository implements the post-filtering methodology explained in Bozkurt, B. (2008).
Given a pitch track, the algorithm:
- corrects octave errors
- removes noisy regions
- removes small chunks
- removes extremely high or low pitch estimations
Usage
The method accepts numpy arrays, where the first column holds the time stamps (in seconds), the second column holds the frequencies (in Hz) and the third column holds the pitch saliences/confidence.
In the following example, the algorithm filters the pitch track of feda89e3-a50d-4ff8-87d4-c1e531cc1233 extracted using Predominant Melody Extractor repository.
import json
from pitchfilter.PitchFilter import PitchFilter
import numpy
# reading extracted pitch from json
pitch = numpy.array(json.load(open("sample_data/feda89e3-a50d-4ff8-87d4-c1e531cc1233.json", 'r'))['pitch'])
# filtering the extracted pitch
flt = PitchFilter()
pitch_filt = flt.run(pitch)Installation
If you want to install pitchfilter, it is recommended to install the repository and its dependencies into a virtualenv.
In the terminal, do the following:
virtualenv env
source env/bin/activate
python setup.py install
If you want to be able to edit files and have the changes be reflected, then install the package like this instead:
pip install -e .
Changelog
- Temporary fix for the chunk computation to output numpy arrays
Authors
Hasan Sercan Atlı [email protected]
Sertan Senturk [email protected]
References
Bozkurt, B. (2008). An automatic pitch analysis method for turkish maqam music. Journal of New Music Research, 37(1), 1-13.
pitchfilter v1.2
pitchpostfilter
Repository for post-processing pitch tracks to filter erroneous estimations and correct octave errors.
Introduction
This repository implements the post-filtering methodology explained in Bozkurt, B. (2008).
Given a pitch track, the algorithm:
- corrects octave errors
- removes noisy regions
- removes small chunks
- removes extremely high or low pitch estimations
Usage
The method accepts numpy arrays, where the first column holds the time stamps (in seconds), the second column holds the frequencies (in Hz) and the third column holds the pitch saliences/confidence.
In the following example, the algorithm filters the pitch track of feda89e3-a50d-4ff8-87d4-c1e531cc1233 extracted using Predominant Melody Extractor repository.
import json
from pitchfilter.pitchfilter import PitchPostFilter
# reading extracted pitch from json
pitch = json.load(open("sample_data/feda89e3-a50d-4ff8-87d4-c1e531cc1233.json", 'r'))['pitch']
# filtering the extracted pitch
flt = PitchPostFilter()
pitch = flt.run(pitch)Installation
If you want to install pitch-post-filter, it is recommended to install the repository and its dependencies into a virtualenv.
In the terminal, do the following:
virtualenv env
source env/bin/activate
python setup.py install
If you want to be able to edit files and have the changes be reflected, then
install compmusic like this instead
pip install -e .
Changelog v1.2 via Pull request 8
- Renamed the PitchFilter class and filename
- Added unittests
Authors
Hasan Sercan Atlı [email protected]
Sertan Senturk [email protected]
References
Bozkurt, B. (2008). An automatic pitch analysis method for turkish maqam music. Journal of New Music Research, 37(1), 1-13.
pitch-post-filter v1.1-tomato
pitch-post-filter
Introduction
Repository for post-processing pitch tracks to filter erroneous estimations and correct octave errors.
This repository implements the post-filtering methodology explained in Bozkurt, B. (2008).
Given a pitch track, the algorithm:
- corrects octave errors
- removes noisy regions
- removes small chunks
- removes extremely high or low pitch estimations
Usage
The method accepts numpy arrays, where the first column holds the time stamps (in seconds), the second column holds the frequencies (in Hz) and the third column holds the pitch saliences/confidence.
In the following example, the algorithm filters the pitch track of feda89e3-a50d-4ff8-87d4-c1e531cc1233 extracted using Predominant Melody Extractor repository.
import json
from pitchfilter.pitchfilter import PitchPostFilter
# reading extracted pitch from json
pitch = json.load(open("sample_data/feda89e3-a50d-4ff8-87d4-c1e531cc1233.json", 'r'))['pitch']
# filtering the extracted pitch
flt = PitchPostFilter()
pitch = flt.run(pitch)Please refer to the demo.ipynb for an interactive demo.
Installation
If you want to install pitch-post-filter, it is recommended to install the repository and its dependencies into a virtualenv.
In the terminal, do the following:
virtualenv env
source env/bin/activate
python setup.py install
If you want to be able to edit files and have the changes be reflected, then install the repository like this instead:
pip install -e .
Now you can install the rest of the dependencies:
pip install -r requirements
v1.1-tomato
- Releasing the branch to be used in the (tomato repository)[https://github.com/sertansenturk/tomato]
- Refactoring according to PEP8
- Added travis integration
Author
Hasan Sercan Atlı
[email protected]
Contributors
Sertan Şentürk (packaging)
[email protected]
References
Bozkurt, B. (2008). An automatic pitch analysis method for turkish maqam music. Journal of New Music Research, 37(1), 1-13.
pitch-post-filter v1.0
pitch-post-filter
Introduction
Repository for post-processing pitch tracks to filter erroneous estimations and correct octave errors.
This repository implements the post-filtering methodology explained in Bozkurt, B. (2008).
Given a pitch track, the algorithm:
- corrects octave errors
- removes noisy regions
- removes small chunks
- removes extremely high or low pitch estimations
Usage
The method accepts numpy arrays, where the first column holds the time stamps (in seconds), the second column holds the frequencies (in Hz) and the third column holds the pitch saliences/confidence.
In the following example, the algorithm filters the pitch track of feda89e3-a50d-4ff8-87d4-c1e531cc1233 extracted using Predominant Melody Extractor repository.
import json
from pitchfilter.pitchfilter import PitchPostFilter
# reading extracted pitch from json
pitch = json.load(open("sample_data/feda89e3-a50d-4ff8-87d4-c1e531cc1233.json", 'r'))['pitch']
# filtering the extracted pitch
flt = PitchPostFilter()
pitch = flt.run(pitch)Installation
If you want to install pitch-post-filter, it is recommended to install the repository and its dependencies into a virtualenv.
In the terminal, do the following:
virtualenv env
source env/bin/activate
python setup.py install
If you want to be able to edit files and have the changes be reflected, then
install compmusic like this instead
pip install -e .
Now you can install the rest of the dependencies:
pip install -r requirements
Author
Hasan Sercan Atlı
[email protected]
Contributors
Sertan Şentürk (packaging)
[email protected]
References
Bozkurt, B. (2008). An automatic pitch analysis method for turkish maqam music. Journal of New Music Research, 37(1), 1-13.