Skip to content

Releases: hsercanatli/pitchfilter

pitchfilter v1.2.1

08 Jun 21:07

Choose a tag to compare

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

08 May 03:39

Choose a tag to compare

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

15 Mar 00:15

Choose a tag to compare

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

24 Jan 19:31

Choose a tag to compare

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.