From 8e5e12a19c6d0cb027636847029a1d8ab4b5a7fd Mon Sep 17 00:00:00 2001 From: Lily Han Date: Tue, 28 Jul 2020 11:51:49 -0700 Subject: [PATCH 1/5] added filtering --- muda/deformers/__init__.py | 1 + muda/deformers/filter.py | 546 +++++++++++++++++++++++++++++++++++ tests/data/mixture.jams | 381 +++++++++++++++++++++++++ tests/data/mixture.wav | Bin 0 -> 66194 bytes tests/test_deformers.py | 564 +++++++++++++++++++++++++++++++++++++ 5 files changed, 1492 insertions(+) create mode 100644 muda/deformers/filter.py create mode 100644 tests/data/mixture.jams create mode 100644 tests/data/mixture.wav diff --git a/muda/deformers/__init__.py b/muda/deformers/__init__.py index aff43df..d2e9c38 100644 --- a/muda/deformers/__init__.py +++ b/muda/deformers/__init__.py @@ -10,3 +10,4 @@ from .util import * from .colorednoise import * from .ir import * +from .filter import * diff --git a/muda/deformers/filter.py b/muda/deformers/filter.py new file mode 100644 index 0000000..083ee6f --- /dev/null +++ b/muda/deformers/filter.py @@ -0,0 +1,546 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- +# CREATED:2020-07-11 by Han Han +"""Filtering (low/band/high-pass) algorithms""" + +import numpy as np +from scipy import signal +from copy import deepcopy +import numpy as np + +from ..base import BaseTransformer, _get_rng + +__all__ = ["Filter", "RandomLPFilter", "RandomHPFilter","RandomBPFilter"] + + +def checkfreqinband(freq,state,datatype): + #check if frequency falls into the passband, frequency received in hertz + #convert frequency to hertz + if datatype == "midi": + frequency = 2**((freq-69)/12)*440 + elif datatype == "hz": + frequency = freq + elif datatype == "pitchclass": + frequency = pitch2freq(freq) + #check if it falls into the passband + if state["btype"] == "bandpass": + low,high = state["cut_off"] + elif state["btype"] == "low": + high = state["cut_off"] + low = 0 + else: + high = state["nyquist"] + low = state["cut_off"] + + if frequency <=low: + return None,False + elif frequency >= high: + return None,False + else: + return freq, True + +def pitch2freq(pitchclass): + A4 = 440 + C0 = A4*pow(2, -4.75) + name = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"] + tonic = pitchclass[:-1] + pitch = int(pitchclass[-1]) + n = name.index(tonic) + h = pitch * 12 + n + freq = C0 * 2 **(h/12) + return freq + + +class AbstractFilter(BaseTransformer): + """Abstract base class for Filtering transformations""" + + + def __init__(self): + """Abstract base class for Filtering Transformations. + + This implements the deformations, but does not manage state. + """ + + BaseTransformer.__init__(self) + + # Build the annotation mapping + self._register("pitch_contour", self.filter_contour) + self._register("pitch_hz|note_hz", self.filter_hz) + self._register("pitch_midi|note_midi", self.filter_midi) + self._register("pitch_class", self.filter_class) + + + def states(self,jam): + mudabox = jam.sandbox.muda + state = dict( + nyquist=mudabox._audio["sr"]/2 + ) + yield state + + @staticmethod + def audio(mudabox, state): + + if state["btype"] == "bandpass": + low,high = state["cut_off"] + sos = signal.cheby2( + state["order"], + state["attenuation"]/2, + [low,high], + btype=state["btype"], + output='sos', + fs=mudabox._audio["sr"]) + else: + sos = signal.cheby2( + state["order"], + state["attenuation"]/2, + state["cut_off"], + btype=state["btype"], + output='sos', + fs=mudabox._audio["sr"]) + + mudabox._audio["y"] = signal.sosfiltfilt(sos, mudabox._audio["y"]) + + + + @staticmethod + def filter_contour(annotation, state): + #same length after modification + for obs in annotation.pop_data(): + new_freq,voice = checkfreqinband(obs.value["frequency"],state,datatype="hz") + annotation.append( + time=obs.time, + duration=obs.duration, + confidence=obs.confidence, + value={ + "index": obs.value["index"], + "frequency": new_freq, + "voiced": voice, + }, + ) + + @staticmethod + def filter_hz(annotation, state): + #non-existent pitch removed + for obs in annotation.pop_data(): + new_freq,voice = checkfreqinband(obs.value,state,datatype="hz") + if voice: + annotation.append( + time=obs.time, + duration=obs.duration, + confidence=obs.confidence, + value=new_freq, + ) + + @staticmethod + def filter_midi(annotation, state): + #non-existent pitch removed + for obs in annotation.pop_data(): + new_midi,voice = checkfreqinband(obs.value,state,datatype="midi") + if voice: + annotation.append( + time=obs.time, + duration=obs.duration, + confidence=obs.confidence, + value=new_midi, + ) + + @staticmethod + def filter_class(annotation, state): + #non-existent pitch removed + for obs in annotation.pop_data(): + value = deepcopy(obs.value) + + new_freq, voice = checkfreqinband(value["tonic"]+str(value["pitch"]),state,"pitchclass") + if voice: + value["tonic"] = new_freq[:-1] + value["pitch"] = int(new_freq[-1]) + annotation.append( + time=obs.time, + duration=obs.duration, + confidence=obs.confidence, + value=value, + ) + + + + +class Filter(AbstractFilter): + """ Filtering by cheby2 iir filter + + This transformation affects the following attributes: + + - Annotations + - pitch_contour, pitch_hz, pitch_midi, pitch_class + - note_hz, note_midi + - Audio + + Attributes + ---------- + type: "low" or "high" or "bandpass" + order: int > 0 + order of the filter + attenutation: float > 0 + The minimum attenuation required in the stop band. + Specified in decibels, as a positive number. + + cutoff: in hz + can be float, list of float, or list of tuples in the case of bandpass filter + + make one or more filters of the same type, but customized cutoff frequencies + + See Also + -------- + RandomFilter + + Examples + -------- + >>> # Shift down by a quarter-tone + >>> D = muda.deformers.Filter(btype,order,attenuation,cutoff) + """ + + def __init__(self,btype="low",order=4, attenuation=60.0, cutoff=4000): + AbstractFilter.__init__(self) + self.btype = btype + self.order = order + self.attenuation = attenuation + if self.btype == "bandpass": + if type(cutoff) == tuple: + self.cutoff = [cutoff] + elif type(cutoff) == list: + if all(type(i) == tuple for i in cutoff): + self.cutoff = cutoff + elif all(type(i) == list for i in cutoff): + if all(len(i) == 2 for i in cutoff): # [[a,b],[c,d]] + self.cutoff = [tuple(c) for c in cutoff] + else: + raise ValueError("bandpass filter cutoff must be tuple or list of tuples") + else: + raise ValueError("bandpass filter cutoff must be tuple or list of tuples") + else: + raise ValueError("bandpass filter cutoff must be tuple or list of tuples") + + else: + if type(cutoff) == tuple: + raise ValueError("low/high pass filter cutoff must be float or list of floats") + elif type(cutoff)==list and type(cutoff[0])==tuple: + raise ValueError("low/high pass filter cutoff must be float or list of floats") + + else: + self.cutoff = np.atleast_1d(cutoff).flatten().tolist() + + + def states(self, jam): + for state in AbstractFilter.states(self, jam): + if self.btype == "bandpass": + for low,high in self.cutoff: + if low > high: + raise ValueError("cutoff_low must be smaller than cutoff_high") + else: + state["cut_off"] = (low,high) + state["order"] = self.order + state["attenuation"] = self.attenuation + state["btype"] = self.btype + yield state + elif self.btype == "low": + for freq in self.cutoff: + if freq <= 0: + raise ValueError("cutoff frequency for lowpass filter must be strictly positive") + else: + state["cut_off"] = freq + state["order"] = self.order + state["attenuation"] = self.attenuation + state["btype"] = self.btype + yield state + elif self.btype == "high": + for freq in self.cutoff: + if freq <= 0 or freq >= state["nyquist"]: + raise ValueError("cutoff frequency for high pass filter must be strictly positive and smaller than nyquist frequency") + else: + state["cut_off"] = freq + state["order"] = self.order + state["attenuation"] = self.attenuation + state["btype"] = self.btype + yield state + + + +class RandomLPFilter(AbstractFilter): + """ Filtering by cheby2 iir filter + + This transformation affects the following attributes: + + - Annotations + - pitch_contour, pitch_hz, pitch_midi, pitch_class + - note_hz, note_midi + - Audio + + Attributes + ---------- + n_samples : int > 0 + The number of samples to generate per input + + order: int > 0 + order of the filter + attenuation: float > 0 + The minimum attenuation required in the stop band. + Specified in decibels, as a positive number. + cutoff: float in hz + low pass cutoff frequency + + + sigma : float > 0 + The parameters of the normal distribution for sampling + pitch shifts + + rng : None, int, or np.random.RandomState + The random number generator state. + + If `None`, then `np.random` is used. + + If `int`, then `rng` becomes the seed for the random state. + + See Also + -------- + Filter + + Examples + -------- + >>> # Shift down by a quarter-tone + >>> D = muda.deformers.RandomLPFilter(n_samples,order,attenuation,cutoff,sigma) + """ + + def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff=8000,sigma=1.0,rng=0): + AbstractFilter.__init__(self) + if sigma <= 0: + raise ValueError("sigma must be strictly positive") + + if n_samples <= 0: + raise ValueError("n_samples must be None or positive") + + if type(cutoff)==float and cutoff<=0: + raise ValueError("cutoff frequency must be None or positive") + + if type(cutoff)==list and sum(np.array(cutoff)<=0)>0: + raise ValueError("cutoff frequency must be None or positive") + + if order <= 0 or attenuation <= 0: + raise ValueError("order and attenuation must be None or positive") + + + + self.n_samples = n_samples + self.order = order + self.attenuation = attenuation + self.sigma = float(sigma) + self.rng = rng + self._rng = _get_rng(rng) + self.cutoff = float(cutoff) + + + + #specify and stores the type/parameters of the augmentation + def states(self, jam): + for state in AbstractFilter.states(self, jam): + for _ in range(self.n_samples): + state["btype"] = "low" + state["order"] = self.order + state["attenuation"] = self.attenuation + state["cut_off"] = self._rng.normal( + loc=self.cutoff, scale=self.sigma, size=None + ) + + yield state + + + + +class RandomHPFilter(AbstractFilter): + """ Filtering by cheby2 iir filter + + This transformation affects the following attributes: + + - Annotations + - pitch_contour, pitch_hz, pitch_midi, pitch_class + - note_hz, note_midi + - Audio + + Attributes + ---------- + n_samples : int > 0 + The number of samples to generate per input + + order: int > 0 + order of the filter + attenuation: float > 0 + The minimum attenuation required in the stop band. + Specified in decibels, as a positive number. + + cutoff: float in hz + high pass cutoff frequency + + sigma : float > 0 + The parameters of the normal distribution for sampling + pitch shifts + + rng : None, int, or np.random.RandomState + The random number generator state. + + If `None`, then `np.random` is used. + + If `int`, then `rng` becomes the seed for the random state. + + + See Also + -------- + Filter + + Examples + -------- + >>> # Shift down by a quarter-tone + >>> D = muda.deformers.RandomLPFilter(m_samples,order,attenuation,cutoff,sigma) + """ + + def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff=8000,sigma=1.0,rng=0): + AbstractFilter.__init__(self) + if sigma <= 0: + raise ValueError("sigma must be strictly positive") + + if n_samples <= 0: + raise ValueError("n_samples must be None or positive") + + if order <= 0 or attenuation <= 0: + raise ValueError("order and attenuation must be None or positive") + + if type(cutoff)==list or cutoff<=0: + raise ValueError("high pass cutoff frequency must be strictly positive and lower than nyquist frequency") + + + self.n_samples = n_samples + self.order = order + self.attenuation = attenuation + self.sigma = float(sigma) + self.rng = rng + self._rng = _get_rng(rng) + self.cutoff = float(cutoff) + + + + #specify and stores the type/parameters of the augmentation + + def states(self, jam): + for state in AbstractFilter.states(self, jam): + for _ in range(self.n_samples): + state["btype"] = "high" + state["order"] = self.order + state["attenuation"] = self.attenuation + state["cut_off"] = self._rng.normal( + loc=self.cutoff, scale=self.sigma, size=None + ) + + yield state + + +class RandomBPFilter(AbstractFilter): + """ Filtering by cheby2 iir filter + + This transformation affects the following attributes: + + - Annotations + - pitch_contour, pitch_hz, pitch_midi, pitch_class + - note_hz, note_midi + - Audio + + Attributes + ---------- + n_samples : int > 0 + The number of samples to generate per input + + order: int > 0 + order of the filter + attenuation: float > 0 + The minimum attenuation required in the stop band. + Specified in decibels, as a positive number. + + cutoff: float in hz + high pass cutoff frequency + + + + sigma : float > 0 + The parameters of the normal distribution for sampling + pitch shifts + + rng : None, int, or np.random.RandomState + The random number generator state. + + If `None`, then `np.random` is used. + + If `int`, then `rng` becomes the seed for the random state. + + + See Also + -------- + Filter, RandomHPFilter, RandomLPFilter + + Examples + -------- + >>> # Shift down by a quarter-tone + >>> D = muda.deformers.RandomBPFilter(n_samples,order,attenuation,cutoff_low,cutoff_high,sigma) + """ + + def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff_low=4000, cutoff_high=8000,sigma=1.0,rng=0): + AbstractFilter.__init__(self) + if sigma <= 0: + raise ValueError("sigma must be strictly positive") + + if n_samples <= 0: + raise ValueError("n_samples must be None or positive") + + if order <= 0 or attenuation <= 0: + raise ValueError("order and attenuation must be None or positive") + + if cutoff_low >= cutoff_high: + raise ValueError("band pass higher cutoff frequency must be strictly greater than lower cutoff frequency") + if cutoff_low<=0 or cutoff_high <=0: + raise ValueError("band pass cutoff frequency must be strictly greater than zero") + + self.n_samples = n_samples + self.order = order + self.attenuation = attenuation + self.sigma = float(sigma) + self.rng = rng + self._rng = _get_rng(rng) + self.cutoff_low = float(cutoff_low) + self.cutoff_high = float(cutoff_high) + + + #specify and stores the type/parameters of the augmentation + + def states(self, jam): + for state in AbstractFilter.states(self, jam): + for _ in range(self.n_samples): + + #make sure higher bound is lower than lower bound + high = self._rng.normal( + loc=self.cutoff_high, scale=self.sigma, size=None + ) + low = self._rng.normal( + loc=self.cutoff_low, scale=self.sigma, size=None + ) + while high <= low: + high = self._rng.normal( + loc=self.cutoff_high, scale=self.sigma, size=None + ) + low = self._rng.normal( + loc=self.cutoff_low, scale=self.sigma, size=None + ) + state["btype"] = "bandpass" + state["cut_off"] = (low,high) + state["order"] = self.order + state["attenuation"] = self.attenuation + + + + yield state + + diff --git a/tests/data/mixture.jams b/tests/data/mixture.jams new file mode 100644 index 0000000..c5d5f87 --- /dev/null +++ b/tests/data/mixture.jams @@ -0,0 +1,381 @@ +{ + "annotations": [ + { + "annotation_metadata": { + "curator": { + "name": "", + "email": "" + }, + "annotator": {}, + "version": "", + "corpus": "", + "annotation_tools": "", + "annotation_rules": "", + "validation": "", + "data_source": "synth" + }, + "namespace": "pitch_contour", + "data": { + "time": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "duration": [ + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5 + ], + "value": [ + { + "index": 0, + "frequency": 50.0, + "voiced": true + }, + { + "index": 0, + "frequency": 100.0, + "voiced": true + }, + { + "index": 0, + "frequency": 400.0, + "voiced": true + }, + { + "index": 0, + "frequency": 800.0, + "voiced": true + }, + { + "index": 0, + "frequency": 1000.0, + "voiced": true + }, + { + "index": 0, + "frequency": 1200.0, + "voiced": true + } + ], + "confidence": [ + null, + null, + null, + null, + null, + null + ] + }, + "sandbox": {}, + "time": 0, + "duration": null + }, + { + "annotation_metadata": { + "curator": { + "name": "", + "email": "" + }, + "annotator": {}, + "version": "", + "corpus": "", + "annotation_tools": "", + "annotation_rules": "", + "validation": "", + "data_source": "synth" + }, + "namespace": "note_hz", + "data": [ + { + "time": 0.0, + "duration": 1.5, + "value": 50.0, + "confidence": null + }, + { + "time": 0.0, + "duration": 1.5, + "value": 100.0, + "confidence": null + }, + { + "time": 0.0, + "duration": 1.5, + "value": 400.0, + "confidence": null + }, + { + "time": 0.0, + "duration": 1.5, + "value": 800.0, + "confidence": null + }, + { + "time": 0.0, + "duration": 1.5, + "value": 1000.0, + "confidence": null + }, + { + "time": 0.0, + "duration": 1.5, + "value": 1200.0, + "confidence": null + } + ], + "sandbox": {}, + "time": 0, + "duration": null + }, + { + "annotation_metadata": { + "curator": { + "name": "", + "email": "" + }, + "annotator": {}, + "version": "", + "corpus": "", + "annotation_tools": "", + "annotation_rules": "", + "validation": "", + "data_source": "synth" + }, + "namespace": "note_midi", + "data": [ + { + "time": 0.0, + "duration": 1.5, + "value": 31.349957715000777, + "confidence": null + }, + { + "time": 0.0, + "duration": 1.5, + "value": 43.34995771500078, + "confidence": null + }, + { + "time": 0.0, + "duration": 1.5, + "value": 67.34995771500078, + "confidence": null + }, + { + "time": 0.0, + "duration": 1.5, + "value": 79.34995771500078, + "confidence": null + }, + { + "time": 0.0, + "duration": 1.5, + "value": 83.21309485364912, + "confidence": null + }, + { + "time": 0.0, + "duration": 1.5, + "value": 86.36950772365465, + "confidence": null + } + ], + "sandbox": {}, + "time": 0, + "duration": null + }, + { + "annotation_metadata": { + "curator": { + "name": "", + "email": "" + }, + "annotator": {}, + "version": "", + "corpus": "", + "annotation_tools": "", + "annotation_rules": "", + "validation": "", + "data_source": "synth" + }, + "namespace": "pitch_class", + "data": { + "time": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "duration": [ + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5 + ], + "value": [ + { + "tonic": "G", + "pitch": 1 + }, + { + "tonic": "G", + "pitch": 2 + }, + { + "tonic": "G", + "pitch": 4 + }, + { + "tonic": "G", + "pitch": 5 + }, + { + "tonic": "B", + "pitch": 5 + }, + { + "tonic": "D", + "pitch": 6 + } + ], + "confidence": [ + null, + null, + null, + null, + null, + null + ] + }, + "sandbox": {}, + "time": 0, + "duration": null + }, + { + "annotation_metadata": { + "curator": { + "name": "", + "email": "" + }, + "annotator": {}, + "version": "", + "corpus": "", + "annotation_tools": "", + "annotation_rules": "", + "validation": "", + "data_source": "synth" + }, + "namespace": "pitch_hz", + "data": { + "time": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "duration": [ + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5 + ], + "value": [ + 50.0, + 100.0, + 400.0, + 800.0, + 1000.0, + 1200.0 + ], + "confidence": [ + null, + null, + null, + null, + null, + null + ] + }, + "sandbox": {}, + "time": 0, + "duration": null + }, + { + "annotation_metadata": { + "curator": { + "name": "", + "email": "" + }, + "annotator": {}, + "version": "", + "corpus": "", + "annotation_tools": "", + "annotation_rules": "", + "validation": "", + "data_source": "synth" + }, + "namespace": "pitch_midi", + "data": { + "time": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "duration": [ + 1.5, + 1.5, + 1.5, + 1.5, + 1.5, + 1.5 + ], + "value": [ + 31.349957715000777, + 43.34995771500078, + 67.34995771500078, + 79.34995771500078, + 83.21309485364912, + 86.36950772365465 + ], + "confidence": [ + null, + null, + null, + null, + null, + null + ] + }, + "sandbox": {}, + "time": 0, + "duration": null + } + ], + "file_metadata": { + "title": "", + "artist": "", + "release": "", + "duration": 1.5, + "identifiers": {}, + "jams_version": "0.3.4" + }, + "sandbox": {} +} \ No newline at end of file diff --git a/tests/data/mixture.wav b/tests/data/mixture.wav new file mode 100644 index 0000000000000000000000000000000000000000..5e343b66975215b83b04bfe53a4fe65c941489bf GIT binary patch literal 66194 zcmeI*`%}$%9LMqRiKCM0I5ag~_H;WtsVzs=$ynJK-9%_8p`#0-9gH@n*j!qhk!3LJ zk}byxxvfh?X@^$U=-86l((LKtY?rBt<5W^Pl=Xk?bIz~l*YA8k-_QH;e!Zf?Lqc-Q zL_*Bm=-}i{X|57M5JaDU?$LrU|2IJ}6C}dggtUa@&;JpG2wCdvz02D-?AzA4!zaUL zt2SvcYF&`QH_)ZbHg23+v{ST2d~(85yE2*clp2L`Mqj{HWrY87pMCCk9cpZH#dk)s zhTPt6?v)t#zX^R)X()J|*Hhf(*%7B7Zr13`b>&S8eRkL7zL}#ZCcJanNbg8 zJue3R9P6@4zT?yGi@S=pf3vYF#(Vx$#VMD6tz~8g)4E{~)2dI#ak;iu4wGdMJ+{c3 zJY=$~_I@^5V{(Qa-{?CQwj6H!vega@3YSE_gWmzWu$HJAuUw#g3(6 z4`QB}>dxx3joQ&n>k7v<`D(v`>9>`gN~;-_)1LW0oZ|guoJWS6%C$@;mFZk^oQmuv z(hK9Si*5|9G32%fHOU)#YG2j*G%RZRwcXl~G8jKvG-io-znS#I6yt%H3DtAU`Y$dz zWpyZjzi{CE(bbx`lErl!dQaNk^eqTGr&_i7)Aq#lfz(^;tyeq^I7Q0G0-x&>&-P=0kZ3ca?Uh^`$wV=7- zpE)n4)df5ocn+?9A#{iZUc?WMbb-GfU=nhI&U-M7S^L4tX>$ZcgZ| zPG!>9H~sfdOH&yAzWZvc*KK#1Q|H8O=9wRB`<8X<^`6Z~baR?t=?A)!dnNDB3(exw z=2EeK~OexH8n&l8acR_qn_=zeND_I=@s@|R6wlg9qI|Jd-f*ug~Qx*y^T zmyZuwHhrbcV0GQp^E#uwq&2fu(bm{KyH8@WF>|-rZB=A-&LZE;-{jSs*!hQUY;Aev zyo$X0xn+%|&r1gHYVY*i_ASy}J9K%=g$|8c9i~pvBou~RHX@3!{pV717?Ge+y(fHAV_rbjtZPL2a<(Ai!d3}fLvmJlhnd5wN*Ofz$iuF8k zJaIg6JaN3^c*pUM<5bD1l2aw8O1|Uxj^jIyn-gwMxH;kGgu6=aD!Hp2;*=>YRM z=5fs9n8z^zX9CUy9CLy>!JJ@DP+ll6lozfNSBa~{RU(;@%t&T-2iP58cYtjjwsqLn zVOxj&IQHY%k7Fa1jZ`*L*+^vvoE>m>z)4*ob%E3ca!$xOA?Jjg6Ox5U79v@QEHARW z$nqk~i}XCw^GMGluadk<@+!%zBq5fBSQ28%WG0iDOlDHhNkJzCofLF>2k0H3cYvl3 znm%aypy`8d9lCYs)}hUcHY?h!=#Qg6j{Z3M<7jN8v603`I#TIKr6ZM&R9cB?C8m{_ z9&mcV=>ew)yeh_f{!|675?6_<#8u)dah14ATqUj&SBa~{RpKgfmAFb=C9V=ziL1m_ z;wo{KxJq0lt`b*?tHf2}Dsh##N?awb5?6_<#8u)dah14ATqUj&SDEa5R=UIjSBa~{ zRpKgfmAFb=C9V=ziL1m_;wo{KxJq0lt`b*?tHf2}Dsh##N?awb5?6_<#8u)dah14A zTqUj&SBa~{RpKgfmAFb=C9V=ziK|qr!_+AnTqUj&SBa~{RpKgfmAFb=C9V=ziL1m_ z;wo{KxJq0lt`b*?tHf2}Dsh##N?awb5?6_<#8u)dah14ATqUj&SBa~{RpKgfmAFb= UC9X0xS`}3niL1m_{vTZBfBq15b^rhX literal 0 HcmV?d00001 diff --git a/tests/test_deformers.py b/tests/test_deformers.py index a88ab7b..ff07a6f 100644 --- a/tests/test_deformers.py +++ b/tests/test_deformers.py @@ -11,10 +11,18 @@ import librosa import muda +from scipy import fft +from scipy import signal import pytest import scipy +from math import log2, pow +from contextlib import contextmanager + +@contextmanager +def does_not_raise(): + yield def ap_(a, b, msg=None, rtol=1e-5, atol=1e-5): """Shorthand for 'assert np.allclose(a, b, rtol, atol), "%r != %r" % (a, b) @@ -28,6 +36,34 @@ def jam_fixture(): return muda.load_jam_audio('tests/data/fixture.jams', 'tests/data/fixture.wav') +@pytest.fixture(scope='module') +def jam_mixture(): + return muda.load_jam_audio('tests/data/mixture.jams', + 'tests/data/mixture.wav') + + +@pytest.fixture(scope='module') +def jam_impulse(): + sr=22050 + + impulse = np.zeros(round(1.5*sr)) + impulse[len(impulse)//2]= 1.0 + + #make jam object for this audio - for testing purposes + freq_dict = { + 50.0: [(0.0,0.6),(0.8,1.2)], + 100.0: [(0.0,0.6),(1.0,1.1)], + 400.0: [(0.0,0.9),(1.0,1.1)], + 800.0: [(0.5,0.9),(1.2,1.5)], + 1200.0: [(1.2,1.5)] + } + + jam = make_jam(freq_dict,sr,1.5) + + if jam.file_metadata.duration is None: + jam.file_metadata.duration = librosa.get_duration(y=impulse, sr=sr) + + return muda.jam_pack(jam, _audio=dict(y=impulse, sr=sr)) @pytest.fixture(scope='module') def jam_raw(): @@ -40,6 +76,70 @@ def test_raw(jam_raw): D = muda.deformers.TimeStretch(rate=2.0) six.next(D.transform(jam_raw)) +def freq2midi(freq): + return 69 + 12 * np.log2(freq/440) + +def midi2freq(midi): + return 2**((midi-69)/12)*440 + +def pitch(freq): + A4 = 440 + C0 = A4*pow(2, -4.75) + name = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"] + h = round(12*log2(freq/C0)) + octave = h // 12 + n = h % 12 + return name[n] + str(octave) + +def make_jam(freq_dict,sr,track_duration): + """ + this function creates a jam according to a dictionary that specifies + each frequency's presence + + dict: keys are frequencies + values are list of tuples (start_time, duration) of that frequency + """ + jam = jams.JAMS() + + # Store the track duration + jam.file_metadata.duration = track_duration + + pitch_co = jams.Annotation(namespace='pitch_contour') + note_h = jams.Annotation(namespace='note_hz') + note_m = jams.Annotation(namespace='note_midi') + pitch_cl = jams.Annotation(namespace='pitch_class') + pitch_h = jams.Annotation(namespace='pitch_hz') + pitch_m = jams.Annotation(namespace='pitch_midi') + + pitch_co.annotation_metadata = jams.AnnotationMetadata(data_source='synth') + note_h.annotation_metadata = jams.AnnotationMetadata(data_source='synth') + note_m.annotation_metadata = jams.AnnotationMetadata(data_source='synth') + pitch_cl.annotation_metadata = jams.AnnotationMetadata(data_source='synth') + pitch_h.annotation_metadata = jams.AnnotationMetadata(data_source='synth') + pitch_m.annotation_metadata = jams.AnnotationMetadata(data_source='synth') + + + #assign frequencies to each start_time + freqs = freq_dict.keys() + for f in freqs: + time_dur = freq_dict[f] #list of tuples (start_time,duration) + for t, dur in time_dur: + pitch_co.append(time=t, duration=dur, value={"index":0,"frequency":f,"voiced":True}) + note_h.append(time=t, duration=dur,value=f) + note_m.append(time=t, duration=dur, value=69+12*np.log2(f/440.0)) + pclass = pitch(f) + pitch_cl.append(time=t, duration=dur,value={"tonic":pclass[:-1],"pitch":int(pclass[-1])}) + pitch_h.append(time=t, duration=dur,value=f) + pitch_m.append(time=t, duration=dur, value=69+12*np.log2(f/440.0)) + # Store the new annotation in the jam + jam.annotations.append(pitch_co) + jam.annotations.append(note_h) + jam.annotations.append(note_m) + jam.annotations.append(pitch_cl) + jam.annotations.append(pitch_h) + jam.annotations.append(pitch_m) + + return jam def __test_time(jam_orig, jam_new, rate): @@ -734,3 +834,467 @@ def test_base_transformer(): D = muda.BaseTransformer() six.next(D.transform(jam_fixture)) + + +"""Deformer: Filtering""" +# Helper function + +def __test_tonic_filter(ann_orig, ann_new, cutoff): +# raise error if original note now out of range is still included in annotation +#transform original, compare with new + j = 0 + for i,obs1 in enumerate(ann_orig): + if j >= len(ann_new.data): + break + v_orig = midi2freq(pstrip(obs1.value['tonic']))#convert tonic to midi + if cutoff[0] < v_orig and cutoff[1] > v_orig: + #in range, see if annotation is kept the same + v_new = midi2freq(pstrip(ann_new.data[j].value["tonic"])) + ap_(v_orig, v_new) + j+=1 + + + +def __test_contour_filter(ann_orig, ann_new, cutoff): + + for obs1,obs2 in zip(ann_orig,ann_new): + v_orig = obs1.value['frequency'] + v_new = obs2.value['frequency'] + if cutoff[0] < v_orig and cutoff[1] > v_orig: + ap_(v_orig,v_new) + else: + assert v_new == None + + + + + +def __test_hz_filter(ann_orig, ann_new, cutoff): + + j = 0 + for i,obs1 in enumerate(ann_orig): + if j >= len(ann_new.data): + break + v_orig = obs1.value + if cutoff[0] < v_orig and cutoff[1] > v_orig: + v_new = ann_new.data[j].value + ap_(v_orig,v_new) + j += 1 + + +def __test_midi_filter(ann_orig, ann_new, cutoff): + + j = 0 + for i,obs1 in enumerate(ann_orig): + if j >= len(ann_new.data): + break + v_orig = midi2freq(obs1.value) + if cutoff[0] < v_orig and cutoff[1] > v_orig: + assert v_orig > cutoff[0] and v_orig < cutoff[1] + v_new = midi2freq(ann_new.data[j].value) + ap_(v_orig,v_new) + j += 1 + + +def __test_pitch_filter(jam_orig, jam_new, cutoff): + + + # Test each annotation + for ann_orig, ann_new in zip(jam_orig.annotations, jam_new.annotations): + #assert len(ann_orig) == len(ann_new) + + + if ann_orig.namespace == 'pitch_class': + __test_tonic_filter(ann_orig, ann_new, cutoff) + elif ann_orig.namespace == 'pitch_contour': + assert len(ann_orig) == len(ann_new) + __test_contour_filter(ann_orig, ann_new, cutoff) + elif ann_orig.namespace in ['pitch_hz','note_hz']: + __test_hz_filter(ann_orig, ann_new, cutoff) + elif ann_orig.namespace in ['pitch_midi','note_midi']: + __test_midi_filter(ann_orig, ann_new, cutoff) + +def __testsound(attenuation,cutoff_freq,audio_new,audio_orig,sr,btype): + #this attenuation should be the ultimate one + N = len(audio_orig) + T = 1.0 / sr + if btype == "bandpass": + low,high = cutoff_freq + + elif btype == "low": + low = 0 + high = cutoff_freq + else: + low = cutoff_freq + high = sr/2 + + #bin number of cutoff frequencies + idx_low = round(low // (sr/N)) # bin number of the passband + idx_high = round(high // (sr/N)) + + yf_orig = fft(audio_orig) + yf_filt = fft(audio_new) + + #db of fft coefficients + db_orig = 20 * np.log10(2.0/N * np.abs(yf_orig)) + db_filt = 20 * np.log10(2.0/N * np.abs(yf_filt)) + + #check passband (if number of bins greater than threshold is equal) + + + if btype == "low": + stop_filt = db_filt[idx_high:N//2] + pass_filt = db_filt[:idx_low] + pass_orig = db_orig[:idx_low] + stop_orig = db_orig[idx_high:N//2] + elif btype == "high": + stop_filt = db_filt[:idx_low] + pass_filt = db_filt[idx_high:N//2] + pass_orig = db_orig[idx_high:N//2] + stop_orig = db_orig[:idx_low] + else: + stop_filt = np.array(list(db_filt[:idx_low]) + list(db_filt[idx_high:N//2])) + pass_filt = db_filt[idx_low:idx_high] + pass_orig = db_orig[idx_low:idx_high] + stop_orig = np.array(list(db_orig[:idx_low]) + list(db_orig[idx_high:N//2])) + + #check passband + assert sum(pass_orig > -attenuation) == sum(pass_filt > -attenuation) + + #check stopband + assert sum(stop_filt > -attenuation) == 0 + + + +#test filtering +@pytest.mark.parametrize('btype,cutoff', + [("high",20.0), + ("high",100.0), + ("high",500.0), + ("low",1000.0), + ("low",500.0), + ("low",[100.0,300.0,900.0]), + ("bandpass",[(25.0,45.0),(30.0,500.0),(200.0,1000.0),(900.0,2000)]), + ("bandpass",(1300,1500.0)), + + + pytest.mark.xfail(("bandpass", [[40,100],[100,200,300]]), raises=ValueError), + pytest.mark.xfail(("bandpass", [[100,40],[100,200]]), raises=ValueError), + pytest.mark.xfail(("high", -50), raises=ValueError), + pytest.mark.xfail(("low", 0.0), raises=ValueError), + pytest.mark.xfail(("low", (20,100)), raises=ValueError), + pytest.mark.xfail(("low", [(20,50),(40,100)]), raises=ValueError), + pytest.mark.xfail(("bandpass", 1.0), raises=ValueError), + pytest.mark.xfail(("bandpass", -30.0), raises=ValueError), + pytest.mark.xfail(("bandpass", [40, 100]), raises=ValueError) + ]) + + +@pytest.mark.parametrize('attenuation', #input is the ultimate one + [10.0,30.0,80.0, + + pytest.mark.xfail(-20.0, raises=ValueError) + ]) + + + +def test_filtering(btype, cutoff, jam_impulse,attenuation): + + D = muda.deformers.Filter(btype=btype, + order=4, + attenuation=attenuation, + cutoff=cutoff) + + + jam_orig = deepcopy(jam_impulse) + + + for jam_new in D.transform(jam_orig): + # Verify that the original jam reference hasn't changed + assert jam_new is not jam_orig + assert not np.allclose(jam_orig.sandbox.muda['_audio']['y'], + jam_new.sandbox.muda['_audio']['y']) + # Verify that the state and history objects are intact + __test_deformer_history(D, jam_new.sandbox.muda.history[-1]) + + d_state = jam_new.sandbox.muda.history[-1]['state'] + nyquist = d_state["nyquist"] + order = d_state['order'] + atten = d_state['attenuation'] #this is the halfed one for the filter parameter + + + if btype == "bandpass": + low,high = d_state['cut_off'] + elif btype == "low": + low = 0 + high = d_state['cut_off'] + else: + low = d_state['cut_off'] + high = nyquist + + + assert order > 0 + assert isinstance(order,int) + assert atten > 0 + + if btype == "bandpass": + assert 0 < low < high < nyquist + + else: + assert 0 <= low < high <= nyquist + + + __test_pitch_filter(jam_orig, jam_new, [low,high]) + + #test sound + __testsound(attenuation, #this is the ultimate one + d_state['cut_off'], + jam_new.sandbox.muda['_audio']['y'], + jam_orig.sandbox.muda['_audio']['y'], + jam_orig.sandbox.muda['_audio']['sr'], + btype) + + # Serialization test + D2 = muda.deserialize(muda.serialize(D)) + __test_params(D, D2) + + + +#test random lowpass +@pytest.mark.parametrize('cutoff', + [50.0,100.0,400.0,1000.0, + + pytest.mark.xfail(-50.0, raises=ValueError), + pytest.mark.xfail([0.0,-20], raises=ValueError), + pytest.mark.xfail([(50.0,1000.0),(1000.0,2000.0)], raises=ValueError) + ]) + + + +@pytest.mark.parametrize('attenuation', #input is the ultimate one + [10.0,30.0,80.0, + + pytest.mark.xfail(-20.0, raises=ValueError) + ]) + +@pytest.mark.parametrize('n_samples', #input is the ultimate one + [1,3,5, + pytest.mark.xfail(0, raises=ValueError), + pytest.mark.xfail(-1, raises=ValueError) + ]) + + +def test_randomlpfiltering(n_samples,cutoff, jam_impulse,attenuation): + + D = muda.deformers.RandomLPFilter(n_samples=n_samples, + order=4, + attenuation=attenuation, + cutoff=cutoff, + sigma=1.0, + rng=0) + + + jam_orig = deepcopy(jam_impulse) + orig_duration = librosa.get_duration(**jam_orig.sandbox.muda['_audio']) + + n_out = 0 + for jam_new in D.transform(jam_orig): + # Verify that the original jam reference hasn't changed + assert jam_new is not jam_orig + + # Verify that the state and history objects are intact + __test_deformer_history(D, jam_new.sandbox.muda.history[-1]) + + d_state = jam_new.sandbox.muda.history[-1]['state'] + nyquist = d_state["nyquist"] + low = 0 + high = d_state['cut_off'] + order = d_state['order'] + atten = d_state['attenuation'] + + assert order > 0 + assert isinstance(order,int) + assert atten > 0 + + + assert 0 <= high <= nyquist + + __test_pitch_filter(jam_orig, jam_new, [low,high]) + #test sound + __testsound(attenuation, + d_state['cut_off'], + jam_new.sandbox.muda['_audio']['y'], + jam_orig.sandbox.muda['_audio']['y'], + jam_orig.sandbox.muda['_audio']['sr'], + "low") + + n_out += 1 + + assert n_samples == n_out + + # Serialization test + D2 = muda.deserialize(muda.serialize(D)) + __test_params(D, D2) + + + +@pytest.mark.parametrize('cutoff', + [90.0,300.0,1000.0,1300.0, + + pytest.mark.xfail(-50, raises=ValueError), + pytest.mark.xfail([10.0,70.0,700.0], raises=ValueError), + pytest.mark.xfail([0.0,-20], raises=ValueError), + pytest.mark.xfail([(50.0,1000.0),(1000.0,2000.0)], raises=ValueError) + ]) + + + +@pytest.mark.parametrize('attenuation', #input is the ultimate one + [10.0,30.0,80.0, + + pytest.mark.xfail(-20.0, raises=ValueError) + ]) + +@pytest.mark.parametrize('n_samples', #input is the ultimate one + [1,3,5, + pytest.mark.xfail(0, raises=ValueError), + pytest.mark.xfail(-1, raises=ValueError) + ]) + + + +def test_randomhpfiltering(cutoff, n_samples,jam_impulse,attenuation): + + D = muda.deformers.RandomHPFilter(n_samples=n_samples, + order=4, + attenuation=attenuation, + cutoff=cutoff, + sigma=1.0, + rng=0) + + + jam_orig = deepcopy(jam_impulse) + orig_duration = librosa.get_duration(**jam_orig.sandbox.muda['_audio']) + + n_out = 0 + for jam_new in D.transform(jam_orig): + # Verify that the original jam reference hasn't changed + assert jam_new is not jam_orig + + # Verify that the state and history objects are intact + __test_deformer_history(D, jam_new.sandbox.muda.history[-1]) + + d_state = jam_new.sandbox.muda.history[-1]['state'] + nyquist = d_state["nyquist"] + low = d_state['cut_off'] + high = nyquist + + order = d_state['order'] + atten = d_state['attenuation'] + + assert order > 0 + assert isinstance(order,int) + assert atten > 0 + + + assert 0 < low < nyquist + + __test_pitch_filter(jam_orig, jam_new, [low,high]) + #test sound + __testsound(attenuation, + d_state['cut_off'], + jam_new.sandbox.muda['_audio']['y'], + jam_orig.sandbox.muda['_audio']['y'], + jam_orig.sandbox.muda['_audio']['sr'], + "high") + + n_out += 1 + + assert n_samples == n_out + + # Serialization test + D2 = muda.deserialize(muda.serialize(D)) + __test_params(D, D2) + + + + +@pytest.mark.parametrize('cutoff', + [(50.0,300.0),(900.0,1300.0), + + pytest.mark.xfail(-50, raises=ValueError), + pytest.mark.xfail([700.0,600.0], raises=ValueError), + pytest.mark.xfail([0.0,-20], raises=ValueError), + pytest.mark.xfail([(50.0,1000.0),(1000.0,2000.0)], raises=ValueError) + ]) + + + +@pytest.mark.parametrize('attenuation', #input is the ultimate one + [10.0,30.0,80.0, + + pytest.mark.xfail(-20.0, raises=ValueError) + ]) + +@pytest.mark.parametrize('n_samples', #input is the ultimate one + [1,3,5, + pytest.mark.xfail(0, raises=ValueError), + pytest.mark.xfail(-1, raises=ValueError) + ]) + + +def test_randombpfiltering(cutoff, n_samples, jam_impulse,attenuation): + if type(cutoff) != tuple: + raise ValueError("cut off frequency for random bandpass filter must be a tuple") + else: + low,high = cutoff + + D = muda.deformers.RandomBPFilter(n_samples=n_samples, + order=4, + attenuation=attenuation, + cutoff_low=low, + cutoff_high = high, + sigma=1.0, + rng=0) + + + jam_orig = deepcopy(jam_impulse) + orig_duration = librosa.get_duration(**jam_orig.sandbox.muda['_audio']) + + n_out = 0 + for jam_new in D.transform(jam_orig): + # Verify that the original jam reference hasn't changed + assert jam_new is not jam_orig + + # Verify that the state and history objects are intact + __test_deformer_history(D, jam_new.sandbox.muda.history[-1]) + + d_state = jam_new.sandbox.muda.history[-1]['state'] + low,high = d_state['cut_off'] + nyquist = d_state["nyquist"] + order = d_state['order'] + atten = d_state['attenuation'] + + assert order > 0 + assert isinstance(order,int) + assert atten > 0 + + assert 0 < low < high < nyquist + + __test_pitch_filter(jam_orig, jam_new, [low,high]) + #test sound + __testsound(attenuation, + d_state['cut_off'], + jam_new.sandbox.muda['_audio']['y'], + jam_orig.sandbox.muda['_audio']['y'], + jam_orig.sandbox.muda['_audio']['sr'], + "bandpass") + + n_out += 1 + + assert n_samples == n_out + + # Serialization test + D2 = muda.deserialize(muda.serialize(D)) + __test_params(D, D2) + From d6010846ac802e36e2d0b799d65ebd2909704925 Mon Sep 17 00:00:00 2001 From: Lily Han Date: Mon, 3 Aug 2020 14:44:26 -0700 Subject: [PATCH 2/5] revised testing function, corrected merge --- muda/deformers/filter.py | 16 +- tests/data/ir_file_delayed.wav | Bin 576044 -> 288044 bytes tests/test_deformers.py | 321 +++++++++++++++++---------------- 3 files changed, 168 insertions(+), 169 deletions(-) diff --git a/muda/deformers/filter.py b/muda/deformers/filter.py index 083ee6f..9a8aa86 100644 --- a/muda/deformers/filter.py +++ b/muda/deformers/filter.py @@ -7,6 +7,7 @@ from scipy import signal from copy import deepcopy import numpy as np +import librosa from ..base import BaseTransformer, _get_rng @@ -17,11 +18,11 @@ def checkfreqinband(freq,state,datatype): #check if frequency falls into the passband, frequency received in hertz #convert frequency to hertz if datatype == "midi": - frequency = 2**((freq-69)/12)*440 + frequency = librosa.midi_to_hz(freq) elif datatype == "hz": frequency = freq elif datatype == "pitchclass": - frequency = pitch2freq(freq) + frequency = librosa.note_to_hz(freq) #check if it falls into the passband if state["btype"] == "bandpass": low,high = state["cut_off"] @@ -32,6 +33,7 @@ def checkfreqinband(freq,state,datatype): high = state["nyquist"] low = state["cut_off"] + #if frequency out of passband do not create new annotations and designate frequency as None, voiced as False if frequency <=low: return None,False elif frequency >= high: @@ -39,16 +41,6 @@ def checkfreqinband(freq,state,datatype): else: return freq, True -def pitch2freq(pitchclass): - A4 = 440 - C0 = A4*pow(2, -4.75) - name = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"] - tonic = pitchclass[:-1] - pitch = int(pitchclass[-1]) - n = name.index(tonic) - h = pitch * 12 + n - freq = C0 * 2 **(h/12) - return freq class AbstractFilter(BaseTransformer): diff --git a/tests/data/ir_file_delayed.wav b/tests/data/ir_file_delayed.wav index 23d4706829a5f4243ea9d521919e8b6111a1e667..085f4162110bb27747bd838751cb3019df3a50ba 100644 GIT binary patch literal 288044 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 literal 576044 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

r3N7c3J>iwJnJ{fWnTvIWL}C zXTj7Sj0D4u{2(wN57a2 zS~V|JOU4x(l)$!jMT(X#vSGx=S%Sv)^k01L^ZWW!aHanoPA~8Sd1sP|_-Z@i9qaLaDQ9bXd|Bcb$t2h@$xpjt_zFzDVD}m

}RlD%B ziftLYG=k>LVMlPXWJ85YKu^#fMtbx-mC(HMq8fTbava(e=j8Pkw`_DY{?T(F2Ia1C z`Krw`O-`N`2X;y^R$CisD9&2`F$T79CF{5JRvQ6)W}ZT}@J2LRe`U1Am{8AVV}&q| z6Uw}J(eDq|1y+GEWTTsUwa5~sCw<3P+_6|@1SN=D=4mwxu<4Hjo|TaXm<`|J}k(iR)aXqZ%|L1<4f<4 z4{CMCcC>4a1ZffLeH-IyzqHy23oPVjA3@&a!aN>Fef1WIM>xlwxj$I4MZLDpI13ey z0N;vDI9}Cwny8>&!%dFxVU;$nwN?cm>4~3ESbsPq9IiAU#QIKOL_4f<(XJ>@_BR@n zhH9~fKbujfg%Eey16ksYMbzmC!1&;GI<|-$u9Ytdnzl<$5KUp?)H8)7% z8#s}hyQ>q}#mD^}*jL!M4Z6aoRXOc2tVbofZ45K{f6iwEGw=&&GccD=w!U@=?FJ*- z=CoRDPQ9AN(yXCa7If94D>mCW2>FPm`Z>uv5+91?U2Cfu+2n57lQ=1N`f(m!vnaBm zSL$py=YHjzH*@dl6J?QT#TIK4;mu)V^@OwOh#kZ9ee4fn*s{Jo zrQ93MrWJ0l=ud(j)b2)Ll1t;)= z(yu*{9he_WpCwI{8(qZKZ&puHxn~5iIF}`)+&j}p7A2d_qCIFl#d0=72E?!*{9bB`8+UnK0gt;A|-2(y*osBw~gaov;1ujB~FWZKAWq&d$YVN-0uE; z^tZDjnYZFBYuDs*@7)oqxF2=Uha6soS)xzT@~qYLb$EaWB+utZ>%CoXN68cMT;t&! zvaLFA|MI))s`ou*m%y(2`mkxUEkzD|EOkI%WIh92ps(~>(Ej3AsVOpE-qKc8Gwr*Zbo~$!J^knTXzSXR6Sex}z1g()IuyBa( zoJ2=Skk#gyCcW7p;(()UAb}X0O$-u=aN6Tps!t5h)@rt?a~U>Q=ZVsI1-7ytW>`fJ zgur7STO_|+-rwp0Vt^qj(ROE(Vm-)eFphReYq8{4XOQG0^e({WT{tgRl$X1+;$?xi zeeU0K!t_Q9MB7=MFrN6-KOz+La&dhP zx9|vEjlWXAxUbwCH?GHu59m4H6-Uf;ckcr&<#x`{KXL_y zk)7h-`ZCR$*my0zOi1Buz55o#VyDK2it{utk@%TW!mwbmlduwv6H9JyXoHS<^Y!H3 zVjjKVuG#QV~7eToc*r>W6Uw^uvgYBe{K#bO0h+ONpB$IuFES?%j=l#7Xz5bIaJh>7nu?A?FFL7wj->8%{j{&s8x@A5gH zCBHw5S`D91qlKG2Fss2?Fk0|Fs}*NFulG;1`U37^4*+*=!1`_cC(qeYR9DX7EjoTm zS&P=dO!E*O8Nk64jE)Yu&YK(N!Vr-&cObJLn@njhKwB?y9(9dr|F0Cz5W_P5XLy zn$?;`>d21XpV3C25Zm!w8wtSD$$Ht0t+709suk3H5ogLW*UWX$j##zhr}GuGK;>|w zhMds-7%DSsxeAu zCJ{e`OKEFLJTy*nv%1BCFiQ(}R#DMOr{I<5e zpPghn=vDGa%NrM|jpUT-hpf_*MFySGiav>hv(TH7VB2W-wwBS@XT8aj;sE;TY7aa$ z*LO81cH{26QzGBN!@F5Zy? zV+Y{AK81HUN}RQU{)b{lKJ;meOo-cK?J)JejaFohLwz4~ZK(6zzDlN9Z@xDdF zwNV^<&)1`5B1n=gDrtT5Z9E?Nb%%p?g>#31-e1#f{o?o=8)z>ncI$3r*nKFQ=LQcs z4@=~9G(MF zwMXv@%cGeJp@&xD?Dgm9sw6E!e_DmT3&L3lzQfTuoyPfl|8Tf03u?1oZEH@4)f$8_BtM*sgsVfpzrZ*x4xBk^E z|Em>24(8`wZ@Wz-&z?}`C#72Rw6DFTpDC74BhdM$2A7-i9f{j*Z#XqgM zq$#$$5rHH~zfv96`pDY6acwa%OAvXeJ!%o-NocSiT2U6wvNHCLW!d;y5hr3UV0p8_ zvgFW0{eEYT(-O)Yh!IkSG2p%aW}cigD6}B1?SS=xtzx86EJOQZSb7Dk3u|`q9dyzN z2l{~=X@fa7X8o)CRzYR;>f@(98>z~cY^6pKSv|m61lj`Z5T<<#lI2OPq>aN6w=kkb zyquWYII{JE*o?@NGh>a(E}CLYmXv9QTBI>Lb&kI04z)&J&1b`cDgNU8NTYL&N&6NF z?FnX0I{PF0!FNg!fAr(t=U_XrC*))wncEs7r{ZY#Uh#TuOr=u$K(^t&E03-D-EJq( zJ@uTYhpalUxw(bTy=xX;LgxAiiHj{DvEER&SRa6^f_X^Mh#+Vk!>Rz>ED~>!)0^`OmpGLW&=6PPo8nwSs&1)$snOZ@7qqDa(mf!vpnH)>z z%I(k1H*v%qD^KaQA8Dm}(+In^nd=nNWc{4IuiSk(TKq1Rn(~BJFCGqluRGr{ zqU6r3^AU}QG0UE{Hvi49yVVgi^6Dckm-Wa9E&2`mi7%jCoJB9oLE7%(u%o)ouVxOn z=r4b-PvyJfLW{~7mqYu$X+&|W?4N4^{T8HOU)^KP?ETG(TZ=ni&l%dpT&By{kIPEZ zD-;!wP4z&@=UbUKa-zJ$!>!ZHBB=jd@u3fp6~HL0yFKE=F{a8VEA<&`HTNW{SYA?p zeWiJB{F=Ovfs7qG8{A!Ch)ix*m>aLD7OfUX&WN`<8>shN6U}eVk9K3bDn8%fl|7jq zK>WWsI_gi+IWgJjxAFR=LEtsk`!KG0`KDvFR1^$oGNR!LN39Hr5ct$AUq^pEJJn5FGuPPAWb62(d-H z8Vh2nBzy804DLtEQnby_u>FUPq0r=}=q-0Hc8=z@=OeQ}oy|yO%H1!VzqvK{?A+^n z(e{3F-%idteD+@?l8}`Te}JV9C_{0qqL4Hc!{*1Tw3+ zbpUvM<}{1bNUM_S2tmCVYdUkMR&2xv%<)saO&q)|to4xgJdZ_*&`)v3F{s`TfK(d2 zH7fa@{h_V0IHN4;w|r3P!hVjF{*6@5Wk#Yzr$%y$L0=0uB&Cf)6Fp$pfIK7k**Qq# zvt9Ceh6Kuk9s@dg_nPZ%4ZN@6|NQ-iE8q5{HoFh4_VMKj>;`-;qnWZ=`DPnu4bPIh z<3ZQj1C`W#?Fr*=&D3_)z>Sl{Nnyw08?>F+(8#-*kmqenX{#$ic_O9}&YSn{MIiwN|!b%EtNfva?GNb z4l+Pnq*0<6`R17+FP3VIRs4LmjTTrojdlqv+gKn{puek5#%rdoyw4hrS+xipF^q}W zuYz@Vd#i#o!2ZK8OmsKl?UJ0A7AxNIaofF^-DTG_TD$4JrXb6c*#JhUH&d(Chg)H~ z_u_506l7x&DCI;>$iK=LHO@&qRDX)No^$CYmoekj5&2Ox#god;8UBmOji3-0Xf7E{ zAXayzR53SCH1o)jIFaK2_zO-j8rOO}?J&m_#$0gJbC#C1j9c`(oGll}ZBHP*uF-Tr5ehdSh1B1c+;NPRkUFxtY9oHKc4&bi!5*zn`9- zZS6<`ym(np|7RX`n7FZL{kG;SWb<9*tv{79qzt5vpDjyLT0~K+QF-=GERkv+w_r=f zV5_O^mjqe!aslOQX(C^GHCRYs3wHA5&Stj0Yefq52YKG~(jZH(j!}C2D!z*pXA58d zy}EjTQM@tRJ)@Ph^U-Gi#hT=$S0xkcm&CYXusMSSdSbF)QD57)7@_*bs4{li(7G{X zQA3ri=_s z0*qnA>`9B<=GaJ{iWXqkOm*qf@ACkQ+-`;1Vq@#{Pn(#Op2%&_(PyH5>B!-tKvAvu{#sN-0!0T)GtFHLtZ3mz9+56& zpk1ok;n-Qjt^o0!R%p9x6y{ITPT@;hCLR^b0=48uECWa4u>@LcvpK*pJsh?}Cnk8$2O8I@F$0DV1E_vnk zj8SA*SuNRDevv71h7t7TumGHQu2k0kS5rQD&eqQU4Vm%)8m;tbZQ_g7sL`?bMSu5> z`@jmtAZSH$ecIQSqpL-S!mR5@lWybbwJe+^KF?opRS-S`Xg}|w@nuIj$6>PAcueNI ze5T$F!{bEsclX(r&z7Y9R)^xzMxu@Ogvr$c6y;NWXw&A!F-x(%YG&J7#0ew6Xv6QsOnGK55gF5RW#C6B*o^6Md5`t{r2lY$-}= z59!-==WL@zEb?WOF6|w(QVVYL@{uV&_1GQx`Icv1;gt?0K`&iz8p+o0fBLNBW~?gP z4%?C#J02t@+%rx>lzJe zF6&}6#jG7I0QdB@WqMiFo^Nz_zJL+pH)0ak!{_oHp1#4eD4;9)|MLfu8UZ)*pfzvI z%aNXqlgNg0oa1I$B-#Y;ZyE5D2V+6;+WB)>33#3Qhs};JW=!p2bgeplRYp5`zxY4= z`n0nF(Pnr8f6OsUWEY*&Ytq66wUugq8G3dfGGAnp_C?CBJ)wqHi}+5ii%H{itqv_F zEVg2#arU?)U(cgf+PJL|N35zWfJF@Ijpntvm#G@tNUag7i=~SarEf)7Vk&K7wT{*q zN9faRw8*rIIpK5TSE!@5U2*F%=(YIqF+?S_?9)fgS6sBKSbI#dyz^|Th5l(6RQjU0 zHaxzWeCxXydOtX9(mSTz8w!l#BYMfuzUi{Pb@0htjap20N7tvy;EajSAE0gVMH+{y zcIGAPVG|55VRJrkvA793X%!UV$zo30_44SERy{pdyQ{*{@37?iru>rl-xIHv) z?N-vT`O`>*pYYles;gHgkv)C1ti|WiKDLCP9@3xLjf7S8(c`;PRqD(kM}TC}Wq*~VsW|E&i?(R$t(rt{nM0zq0*5ue52yglPw z+hd^hVwTNW)XiRQtc=#8oby6B6QONMf4yFwzO$TVyNI?$IOSw8|CwrdpV#ty`z2A$ z>%VAMAnn;P_-f6+u}7MN(~K$SyyMg4|D-LXQmpOCBDG;S;PLY+S74$LKu;v*aF$rM zF&43QZkFCK=Z^a)$j_|bGE`?T1f?L*0^>z(h+GvSd4k(P?{i@G?P5%w4< z7j;#R-JKlKh5{Rzjbwsw_wS+`m-1tb=E;+QfIFHV398krMY98+qX6u%OdW7emmbHwL}E?Udp*WJ!a%ox&Fw51(!jrkpA z1M~UFMe$Rs?fTHBYq03Qz|d2gGlyUhT)(KA6U& zvag2^ASmF~((y$0CG8qs!QQ%qNl z%+);bACMu~D<1WJ$MEhxN!$C(9VPTQ#D44vdj`MaS$})MIG-~@sKK7jy zYrXMZ#KT{%T?OWAGd21opIt^90}Lm|6_*LhCq0boWH?!*kzKfG95)0jx`lS5-+Zp- zgFo|k?BjX*?3~i9`a65V-DyC?EcfDS;4$yR`5%6H8@%P_W-*C zxDQG(CCANW&dY_?pYOGl7;?WG2N%OdZ~X|zwi^|v6=}2PH@T02BRqON+wrV-z{)|3 zlhHm#(X^C}p=b*)9&}OOXi|4`51-mu^t~JaOKP2Pb-yf4`_`Bht)B<>U;h%v|ME+d z+%cZWNu$x=(lDTyw+NY+tsN%DG|FdPDf@ge<@w1b`c}$)K8#+%@ZOQR+3!WVCy52|Yc;?qQy8@PR#GmTX7%)~iF-Xi&ylFfTz*PXw?+rEm97^s{GW8a ztpUriIN74=#C^4YjLlUC@3`Oe8?vU9QPw*j9LrE1aef$>j`h!{v63R{vp}@TmX`DHcsYExJpo`UaNId~&cB-vp$|ogihNwY*bK+& z3b)CfFemmtHQ?WPcXJLK-D+NBtp$?L$IK7FZ*iy1XSA)T8>`r!AAT_s*Lt>?S6@Pw z+4zWUK4iO|f-#A_P?=TK#@Fx}YN?%4ZAGB@OU1{G+2uQGUDPkG{bcpFpZ0%Yt#|&0 z-gCG!KN?RbTPt+`-TWs$KneX|t;I=6u{^6^ukDjx3hNg2j7MeC;*WQ|fc;K;l|Gec{aW3M-+-gr|M4IGiO)a&_H{P9t@XHiYK=%te&`v?BTLg;mMM(%Xi50i zBeG1Oyy$LRiWZ;GH+!G)d_SAZ*V?=gZwxY@Bc36T#nEY-F*-`)z2EM+npO*2 zJNw*y4V`%hEAe4AJ2UTG!)B`4N7NQ{Up=X#a}MK8{HeIB*%pljIvV)ofH6RG0N|#1 zY_`H|l6w||cn#SVp>5e(&JqONrV>`P4KmLkVXldhbbEQ?poFJT1$Dd*Y2jLzWbtqZ+j++CH- z!TAw*lp(DCO311wWNXtxjbzOy^|>2`tIcIO_|){Pw{^~Max}y5`A_~jp3)wuuijq! zclOI~aHLBNvxktf)`Z3KFywN5)|-@&7rCX8MN#f*R`Cg~E8~mg)xWD7>czgth|2Rg z*0UQ4(5HoywIT56@Yvi_e)yYra>qNg&(nMnfpQmdGX{vx#elYMC8ZA3C&pUDGha

34 zyK?Afzt*$%1!-8`;>^aIjC&wmMw#iyEUQm>Kqi!ri-6bC`Q#2upT%Pf$)dGv_(n|g z+o(|E4SM;?tM#!ij@KJQQ+tf(7$*U7wDqZBQ70oFaud9#94hZwL$fULf?#64;Yse! z;{hqhSMip|TGzNze{nQo6(%~`m7f3xf(7;vwcx%`HAXQSHRLRUPs`Nj$fv%6Gs9hh zr9Xq;(%VU~tI5?^kv-N}*KJ){)kueTDYNv0WfsFOGFTIPhx18Twx;%OJy0|~Ii)3Q zG20O|93B>TvCg8E(vg0yR!X5#j07XC*|phPMGDY!_l9Q-%()wP{Twq7^hb){P6Dg# zB5?GHa)pdh0{)>(mg5TO-EskXRSiiFa$ zjingsTeeU>r2M&2ncguDL-_{VB9(V1JV%9Yf5(s48lpvOz4VWx zaRW7gW=@7XKKZ1pYR7)#I{iiO)IZO(MR3Lvzz=-|@iVM_AGNVSmRRtj+|}CBo@`{N z>SI_>zWsaO{t{w>RGqIL!@F;2XW7Os^NVgo#+0)wFT?YsF&!~Ud+nA`gqrNk8x)!A zRm(Y6sI{K@F+5X8)f2S?Pdb@N(#gZ#O*+CwW03QM^NaMyzr{*pPFU97rO#&rIG2Q| zVR>;B2SUkvtiSBn`kWS|?H%99uF)z}`$5W(^ZNhj?vSr~Oh>hj(9-)+^Ju}fo)`~K z&|0>j+G6Zh{TDIEDbJeH3YUfC!I1YJZTX7;l_uPN_iq-Ho_{=lOKLeoraf;2MCnKp zmP$LIoNUp!H`Jn)#A17>o^wVvb_>>4_6~Z1u1!W- zdt%wwiWOUJSj(h%IMtbG6xN{&>7xE0HB0Z+ z_xE^+%#SZp%rqvbKG_|_+vdGYNAkU7MD?2TBduajm|2RoQY#gv_uALsXqf)Q%d9a{ zu!T3yHY<*vd|GhiT#qnb;eK296{Lbr{(skMZ2P2WVeGqSFhCSX-60bYEV06@%FWC`Prh)8!Psv)_j&UZ-w$* zp9_!6C>!HKtsr9T%KaViWzYi=^sO;t3s^S$M=da74G!qTk0-K=(~HX+#*DGULLRjo zBzvM6ZFTjAvW&OTR4JLjp9XJ$=XTb>_-#2;D5&R65<#eFuG>>R6n8&|n%pECm9P60;$Kj&ukoH6`s zzsHht5)3IG(u@1(Gv(>@Oh=ymWLVO=EN9xLK0iy$l>1~m8TD=HH_qSMQvDI?)yFp3 zh*^2y%`{u=-n;P(C3o`5-?xqOaI9}N&BCExvk8@Fy`Ie`bTsd#%M-;jwQ7{o@Fe}J z7RAbbjyM$=2Fc)zX+!KYt^~K5ZQ|-xXY9Fd*SU_gfont^(_h?3{%9Pd)m!fA%80r9 zy7oRw#|K0k^e~)9m&2?v&Ba3b9sJ+$K(=vrKp^?FOW-;bGB;8z+JdN0Y|evf zT)d-b-L3!~y(%*er$Ejy%Q5jd%lT*HRA+&$OyQr$TBMQgXIUzdM}Bkefn& z`MuKaiOtRK4r}pd*vjb|$LtZ%&d*r(o`J7m>d=1Pnq`vpSm_?G*oIq=U%rv`WaTU_NnEyuor~M74fFrXt zKm8GPEq_k^e}AI~Xn6KY77Hz=ucw|bF6fwWGlsySjYPY9&2!I_i@|Fl&%oY%jW)>%Jip1JmbHi>aBEP}fuLG#V@ILGeRRFBM7tJcpWcg$mx(QYZ?vOFa8 zd04Jq%gE_>R*b&njT|pthJIh%**U+Y1u+J>s54rL*m6c&u1(!}_TA@k+%b!qYqNH< zB{_zI+1ul{;(?*5rO$rXR$Yx&+G{~)KfjOqPM6a*%PUXmSvv9U@=%tzSRIEr8#W&` zzPj-}X7#csnxEdX=Pqgg>UYHN-~7$L{k;O{fBv-!h|mA@>+gU2dsiDGfv!JYv@tJq zv##Z#d3xFN`WN@V*Dr#kVjZdDzJcrI|y*LhgB0p`%cu!8QC1*v{ zno5NhNmh|ePS4WH`EB!&7E@$)imXJN6z4O7PE8wAcpiyxpj}zM+2dg8jcKHv%qce%SDLL)Iq?&+&ns^w0qvftiIuY1JDq&5Fb))h zr?|UlpZu(iIfe?U936B#=8422VB2`uac~;l)dMTWajT&PL;tZi#%a1W7#)%)K~R@qc9s+ z2v^hfjY2GvuXU0QgLJ${ahHi<_|ujxwVNthP+OmSQ0VMWP$6-1AH*XmnUT8$wn(^ExEq` zkgrLqtOD zQ(ub!7W0_&QHuRrzWGY@=CmYduUgw|%;E$7$%!`t_OK)tt4x`S2S$W^18?x81U>rUQ*j6k`l0v!V6W!djz% z+14KO<@6nD#jFI8OgR8q=Eri!wIu92EeVlcv;lGA=Ql2gOQI@#BSt=bWf2WDdwa5P zhR{EQCnt|ZRYQ947sMndWCw089b0d0S1Ps*_2?sx%Io`;Jgft$b8ZcL%Hw5^aO-;Q zwyG`9H}ZreU4MqZXS-P=TP=Id`;l2cJbj<3HEsLPl25a~m3lpCkI8D2nwY9uRD+^2 z^9u3>vXJ!#K7A5v&-0tbu@RV1IdlV!V~gipFIw7lM(()7sutIbv__>BBSoQPqRJPm z-LWMt|M$p`F}P$O;pyN2L zE4{-Sz~5hX9kd;n;9)D2FWa*H~CT9PcVz4&�%6;{{<5K!# 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%0DAIDtFqTdBv$JQ%&lps*Xy? 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 diff --git a/tests/test_deformers.py b/tests/test_deformers.py index 588acf1..581cae7 100644 --- a/tests/test_deformers.py +++ b/tests/test_deformers.py @@ -16,7 +16,6 @@ import pytest import scipy -from math import log2, pow from contextlib import contextmanager @@ -62,7 +61,7 @@ def jam_impulse(): jam = make_jam(freq_dict,sr,1.5) if jam.file_metadata.duration is None: - jam.file_metadata.duration = librosa.get_duration(y=impulse, sr=sr) + jam.file_metadata.duration = 1.5 return muda.jam_pack(jam, _audio=dict(y=impulse, sr=sr)) @@ -77,21 +76,6 @@ def test_raw(jam_raw): D = muda.deformers.TimeStretch(rate=2.0) six.next(D.transform(jam_raw)) -def freq2midi(freq): - return 69 + 12 * np.log2(freq/440) - -def midi2freq(midi): - return 2**((midi-69)/12)*440 - -def pitch(freq): - A4 = 440 - C0 = A4*pow(2, -4.75) - name = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"] - h = round(12*log2(freq/C0)) - octave = h // 12 - n = h % 12 - return name[n] + str(octave) - def make_jam(freq_dict,sr,track_duration): """ this function creates a jam according to a dictionary that specifies @@ -127,11 +111,11 @@ def make_jam(freq_dict,sr,track_duration): for t, dur in time_dur: pitch_co.append(time=t, duration=dur, value={"index":0,"frequency":f,"voiced":True}) note_h.append(time=t, duration=dur,value=f) - note_m.append(time=t, duration=dur, value=69+12*np.log2(f/440.0)) - pclass = pitch(f) + note_m.append(time=t, duration=dur, value=librosa.hz_to_midi(f)) + pclass = librosa.hz_to_note(f) pitch_cl.append(time=t, duration=dur,value={"tonic":pclass[:-1],"pitch":int(pclass[-1])}) pitch_h.append(time=t, duration=dur,value=f) - pitch_m.append(time=t, duration=dur, value=69+12*np.log2(f/440.0)) + pitch_m.append(time=t, duration=dur, value=librosa.hz_to_midi(f)) # Store the new annotation in the jam jam.annotations.append(pitch_co) jam.annotations.append(note_h) @@ -868,18 +852,16 @@ def test_base_transformer(): # Helper function def __test_tonic_filter(ann_orig, ann_new, cutoff): -# raise error if original note now out of range is still included in annotation -#transform original, compare with new - j = 0 - for i,obs1 in enumerate(ann_orig): - if j >= len(ann_new.data): - break - v_orig = midi2freq(pstrip(obs1.value['tonic']))#convert tonic to midi - if cutoff[0] < v_orig and cutoff[1] > v_orig: - #in range, see if annotation is kept the same - v_new = midi2freq(pstrip(ann_new.data[j].value["tonic"])) - ap_(v_orig, v_new) - j+=1 + # raise error if original note now out of range is still included in annotation + for obs in ann_new: + v_new = librosa.note_to_hz(obs.value["tonic"]+str(obs.value['pitch'])) + assert cutoff[0] < v_new < cutoff[1] + + # ensure number of new annotations is less than or equal to the original + assert len(ann_new) <= len(ann_orig) + + + @@ -899,29 +881,19 @@ def __test_contour_filter(ann_orig, ann_new, cutoff): def __test_hz_filter(ann_orig, ann_new, cutoff): - j = 0 - for i,obs1 in enumerate(ann_orig): - if j >= len(ann_new.data): - break - v_orig = obs1.value - if cutoff[0] < v_orig and cutoff[1] > v_orig: - v_new = ann_new.data[j].value - ap_(v_orig,v_new) - j += 1 + for obs in ann_new: + v_new = obs.value + assert cutoff[0] < v_new < cutoff[1] + assert len(ann_new) <= len(ann_orig) + def __test_midi_filter(ann_orig, ann_new, cutoff): - j = 0 - for i,obs1 in enumerate(ann_orig): - if j >= len(ann_new.data): - break - v_orig = midi2freq(obs1.value) - if cutoff[0] < v_orig and cutoff[1] > v_orig: - assert v_orig > cutoff[0] and v_orig < cutoff[1] - v_new = midi2freq(ann_new.data[j].value) - ap_(v_orig,v_new) - j += 1 + for obs in ann_new: + v_new = librosa.midi_to_hz(obs.value) + assert cutoff[0] < v_new < cutoff[1] + assert len(ann_new) <= len(ann_orig) def __test_pitch_filter(jam_orig, jam_new, cutoff): @@ -1043,47 +1015,6 @@ def test_filtering(btype, cutoff, jam_impulse,attenuation): assert not np.allclose(jam_orig.sandbox.muda['_audio']['y'], jam_new.sandbox.muda['_audio']['y']) -""" Deformer: Clipping """ -# Helper function -def __test_clipped_buffer(jam_orig, jam_new, clip_limit): - - # Get Audio Buffer - y_orig = jam_orig.sandbox.muda['_audio']['y'] - y_new = jam_new.sandbox.muda['_audio']['y'] - - assert min(y_orig)*clip_limit <= y_new.all() <= max(y_orig)*clip_limit - - -# Clipping -@pytest.mark.parametrize('clip_limit, expectation', [(0.4, does_not_raise()), (0.8, does_not_raise()), - ([0.3, 0.9], does_not_raise()), -# Old marker style - deprecated -# pytest.mark.xfail(-1, raises=ValueError), -# pytest.mark.xfail(-0.1, raises=ValueError), -# pytest.mark.xfail(0.0, raises=ValueError), -# pytest.mark.xfail(1.1, raises=ValueError), -# pytest.mark.xfail([0.2, 1.0], raises=ValueError)]) -# New marker style - pytest.param(-1, pytest.raises(ValueError), marks=pytest.mark.xfail), - pytest.param(-0.1, pytest.raises(ValueError), marks=pytest.mark.xfail), - pytest.param(0.0, pytest.raises(ValueError), marks=pytest.mark.xfail), - pytest.param(1.1, pytest.raises(ValueError), marks=pytest.mark.xfail), - pytest.param([0.2, 1.0], pytest.raises(ValueError), marks=pytest.mark.xfail)]) -def test_clipping(clip_limit, expectation, jam_fixture): - - with expectation: - D = muda.deformers.Clipping(clip_limit=clip_limit) - - jam_orig = deepcopy(jam_fixture) - - for jam_new in D.transform(jam_orig): - # Verify that the original jam reference hasn't changed - assert jam_new is not jam_fixture - __test_time(jam_orig, jam_fixture, 1.0) - - # Verify that the state and history objects are intact - __test_deformer_history(D, jam_new.sandbox.muda.history[-1]) - d_state = jam_new.sandbox.muda.history[-1]['state'] nyquist = d_state["nyquist"] order = d_state['order'] @@ -1120,19 +1051,12 @@ def test_clipping(clip_limit, expectation, jam_fixture): jam_orig.sandbox.muda['_audio']['y'], jam_orig.sandbox.muda['_audio']['sr'], btype) - d_clip_limit = d_state['clip_limit'] - if isinstance(clip_limit, list): - assert d_clip_limit in clip_limit - else: - assert d_clip_limit == clip_limit - - # Verify clipping outcome - __test_clipped_buffer(jam_orig, jam_new, d_clip_limit) # Serialization test D2 = muda.deserialize(muda.serialize(D)) __test_params(D, D2) + #test random lowpass @pytest.mark.parametrize('cutoff', [50.0,100.0,400.0,1000.0, @@ -1174,32 +1098,6 @@ def test_randomlpfiltering(n_samples,cutoff, jam_impulse,attenuation): for jam_new in D.transform(jam_orig): # Verify that the original jam reference hasn't changed assert jam_new is not jam_orig -# LinearClipping -@pytest.mark.parametrize('lower, upper', - [(0.3, 0.5), (0.1, 0.9), -# Old marker style - deprecated -# pytest.mark.xfail((-0.1, 0.2), raises=ValueError), -# pytest.mark.xfail((1.0, 1.2), raises=ValueError), -# pytest.mark.xfail((0.8, 0.6), raises=ValueError), -# pytest.mark.xfail((0.6, 1.0), raises=ValueError)]) -# New marker style - pytest.param(-0.1, 0.2, marks=pytest.mark.xfail), - pytest.param(1.0, 1.2, marks=pytest.mark.xfail), - pytest.param(0.8, 0.6, marks=pytest.mark.xfail), - pytest.param(0.6, 1.0, marks=pytest.mark.xfail)]) -def test_linear_clipping(n_samples, lower, upper, jam_fixture): - - D = muda.deformers.LinearClipping(n_samples=n_samples, - lower=lower, - upper=upper) - - jam_orig = deepcopy(jam_fixture) - - n_out = 0 - for jam_new in D.transform(jam_orig): - # Verify that the original jam reference hasn't changed - assert jam_new is not jam_fixture - __test_time(jam_orig, jam_fixture, 1.0) # Verify that the state and history objects are intact __test_deformer_history(D, jam_new.sandbox.muda.history[-1]) @@ -1226,12 +1124,6 @@ def test_linear_clipping(n_samples, lower, upper, jam_fixture): jam_orig.sandbox.muda['_audio']['y'], jam_orig.sandbox.muda['_audio']['sr'], "low") - - d_clip_limit = d_state['clip_limit'] - assert lower <= d_clip_limit <= upper - - # Verify clipping outcome - __test_clipped_buffer(jam_orig, jam_new, d_clip_limit) n_out += 1 assert n_samples == n_out @@ -1239,6 +1131,7 @@ def test_linear_clipping(n_samples, lower, upper, jam_fixture): # Serialization test D2 = muda.deserialize(muda.serialize(D)) __test_params(D, D2) + @pytest.mark.parametrize('cutoff', @@ -1277,33 +1170,12 @@ def test_randomhpfiltering(cutoff, n_samples,jam_impulse,attenuation): jam_orig = deepcopy(jam_impulse) orig_duration = librosa.get_duration(**jam_orig.sandbox.muda['_audio']) -======= -# RandomClipping -@pytest.mark.parametrize('a, b', - [(0.5, 0.5), (5.0, 1.0), (1.0, 3.0), -# Old marker style - deprecated -# pytest.mark.xfail((0.0,0.5), raises=ValueError), -# pytest.mark.xfail((0.5,0.0), raises=ValueError), -# pytest.mark.xfail((-0.1,1.0), raises=ValueError), -# pytest.mark.xfail((1.0,-0.1), raises=ValueError), -# pytest.mark.xfail((-0.5,-0.5), raises=ValueError)]) -# New marker style - pytest.param(0.0, 0.5, marks=pytest.mark.xfail), - pytest.param(0.5, 0.0, marks=pytest.mark.xfail), - pytest.param(-0.1, 1.0, marks=pytest.mark.xfail), - pytest.param(1.0, -0.1, marks=pytest.mark.xfail), - pytest.param(-0.5, -0.5, marks=pytest.mark.xfail)]) -def test_random_clipping(n_samples, a, b, jam_fixture): - - D = muda.deformers.RandomClipping(n_samples=n_samples, a=a, b=b, rng=0) - - jam_orig = deepcopy(jam_fixture) - - n_out = 0 + n_out = 0 for jam_new in D.transform(jam_orig): # Verify that the original jam reference hasn't changed assert jam_new is not jam_orig - + + # Verify that the state and history objects are intact __test_deformer_history(D, jam_new.sandbox.muda.history[-1]) @@ -1389,7 +1261,6 @@ def test_randombpfiltering(cutoff, n_samples, jam_impulse,attenuation): # Verify that the original jam reference hasn't changed assert jam_new is not jam_orig - __test_time(jam_orig, jam_fixture, 1.0) # Verify that the state and history objects are intact __test_deformer_history(D, jam_new.sandbox.muda.history[-1]) @@ -1423,6 +1294,140 @@ def test_randombpfiltering(cutoff, n_samples, jam_impulse,attenuation): D2 = muda.deserialize(muda.serialize(D)) __test_params(D, D2) + + + + + +""" Deformer: Clipping """ +# Helper function +def __test_clipped_buffer(jam_orig, jam_new, clip_limit): + + # Get Audio Buffer + y_orig = jam_orig.sandbox.muda['_audio']['y'] + y_new = jam_new.sandbox.muda['_audio']['y'] + + assert min(y_orig)*clip_limit <= y_new.all() <= max(y_orig)*clip_limit + + +# Clipping +@pytest.mark.parametrize('clip_limit, expectation', [(0.4, does_not_raise()), (0.8, does_not_raise()), + ([0.3, 0.9], does_not_raise()), +# Old marker style - deprecated +# pytest.mark.xfail(-1, raises=ValueError), +# pytest.mark.xfail(-0.1, raises=ValueError), +# pytest.mark.xfail(0.0, raises=ValueError), +# pytest.mark.xfail(1.1, raises=ValueError), +# pytest.mark.xfail([0.2, 1.0], raises=ValueError)]) +# New marker style + pytest.param(-1, pytest.raises(ValueError), marks=pytest.mark.xfail), + pytest.param(-0.1, pytest.raises(ValueError), marks=pytest.mark.xfail), + pytest.param(0.0, pytest.raises(ValueError), marks=pytest.mark.xfail), + pytest.param(1.1, pytest.raises(ValueError), marks=pytest.mark.xfail), + pytest.param([0.2, 1.0], pytest.raises(ValueError), marks=pytest.mark.xfail)]) +def test_clipping(clip_limit, expectation, jam_fixture): + + with expectation: + D = muda.deformers.Clipping(clip_limit=clip_limit) + + jam_orig = deepcopy(jam_fixture) + + for jam_new in D.transform(jam_orig): + # Verify that the original jam reference hasn't changed + assert jam_new is not jam_fixture + __test_time(jam_orig, jam_fixture, 1.0) + + # Verify that the state and history objects are intact + __test_deformer_history(D, jam_new.sandbox.muda.history[-1]) + + d_state = jam_new.sandbox.muda.history[-1]['state'] + d_clip_limit = d_state['clip_limit'] + if isinstance(clip_limit, list): + assert d_clip_limit in clip_limit + else: + assert d_clip_limit == clip_limit + + # Verify clipping outcome + __test_clipped_buffer(jam_orig, jam_new, d_clip_limit) + + # Serialization test + D2 = muda.deserialize(muda.serialize(D)) + __test_params(D, D2) + +# LinearClipping +@pytest.mark.parametrize('lower, upper', + [(0.3, 0.5), (0.1, 0.9), +# Old marker style - deprecated +# pytest.mark.xfail((-0.1, 0.2), raises=ValueError), +# pytest.mark.xfail((1.0, 1.2), raises=ValueError), +# pytest.mark.xfail((0.8, 0.6), raises=ValueError), +# pytest.mark.xfail((0.6, 1.0), raises=ValueError)]) +# New marker style + pytest.param(-0.1, 0.2, marks=pytest.mark.xfail), + pytest.param(1.0, 1.2, marks=pytest.mark.xfail), + pytest.param(0.8, 0.6, marks=pytest.mark.xfail), + pytest.param(0.6, 1.0, marks=pytest.mark.xfail)]) +def test_linear_clipping(n_samples, lower, upper, jam_fixture): + + D = muda.deformers.LinearClipping(n_samples=n_samples, + lower=lower, + upper=upper) + + jam_orig = deepcopy(jam_fixture) + + n_out = 0 + for jam_new in D.transform(jam_orig): + # Verify that the original jam reference hasn't changed + assert jam_new is not jam_fixture + __test_time(jam_orig, jam_fixture, 1.0) + + # Verify that the state and history objects are intact + __test_deformer_history(D, jam_new.sandbox.muda.history[-1]) + + d_state = jam_new.sandbox.muda.history[-1]['state'] + d_clip_limit = d_state['clip_limit'] + assert lower <= d_clip_limit <= upper + + # Verify clipping outcome + __test_clipped_buffer(jam_orig, jam_new, d_clip_limit) + n_out += 1 + + assert n_samples == n_out + + # Serialization test + D2 = muda.deserialize(muda.serialize(D)) + __test_params(D, D2) + +# RandomClipping +@pytest.mark.parametrize('a, b', + [(0.5, 0.5), (5.0, 1.0), (1.0, 3.0), +# Old marker style - deprecated +# pytest.mark.xfail((0.0,0.5), raises=ValueError), +# pytest.mark.xfail((0.5,0.0), raises=ValueError), +# pytest.mark.xfail((-0.1,1.0), raises=ValueError), +# pytest.mark.xfail((1.0,-0.1), raises=ValueError), +# pytest.mark.xfail((-0.5,-0.5), raises=ValueError)]) +# New marker style + pytest.param(0.0, 0.5, marks=pytest.mark.xfail), + pytest.param(0.5, 0.0, marks=pytest.mark.xfail), + pytest.param(-0.1, 1.0, marks=pytest.mark.xfail), + pytest.param(1.0, -0.1, marks=pytest.mark.xfail), + pytest.param(-0.5, -0.5, marks=pytest.mark.xfail)]) +def test_random_clipping(n_samples, a, b, jam_fixture): + + D = muda.deformers.RandomClipping(n_samples=n_samples, a=a, b=b, rng=0) + + jam_orig = deepcopy(jam_fixture) + + n_out = 0 + for jam_new in D.transform(jam_orig): + # Verify that the original jam reference hasn't changed + assert jam_new is not jam_orig + + # Verify that the state and history objects are intact + __test_deformer_history(D, jam_new.sandbox.muda.history[-1]) + + d_state = jam_new.sandbox.muda.history[-1]['state'] d_clip_limit = d_state['clip_limit'] # Verify clipping outcome @@ -1434,3 +1439,5 @@ def test_randombpfiltering(cutoff, n_samples, jam_impulse,attenuation): # Serialization test D2 = muda.deserialize(muda.serialize(D)) __test_params(D, D2) + + From 0a34574a777ebed4162a65ef49a7d9c31f2fd1c9 Mon Sep 17 00:00:00 2001 From: Lily Han Date: Thu, 13 Aug 2020 12:37:36 -0400 Subject: [PATCH 3/5] fixed bad styles --- muda/deformers/filter.py | 71 +++++++++++++++++++++++++++++----------- 1 file changed, 52 insertions(+), 19 deletions(-) diff --git a/muda/deformers/filter.py b/muda/deformers/filter.py index 9a8aa86..4b6e5f7 100644 --- a/muda/deformers/filter.py +++ b/muda/deformers/filter.py @@ -15,7 +15,28 @@ def checkfreqinband(freq,state,datatype): - #check if frequency falls into the passband, frequency received in hertz + """check if a given frequency falls into the passband + + + Parameters + ---------- + freq: int, float or string + If int, frequency is a midi number + If float, frequency is in hz + If string, frequency is the pitch class + + state: state of the current filter deformer + + datatype: "midi" or "hz" or "pitchclass", specifying unit of frequency, one of midi, + + Returns + ------- + Frequency: freq or None + frequency if it falls under passband, or None otherwise + Bool : + True if the frequency falls under passband, False otherwise + """ + #convert frequency to hertz if datatype == "midi": frequency = librosa.midi_to_hz(freq) @@ -23,6 +44,7 @@ def checkfreqinband(freq,state,datatype): frequency = freq elif datatype == "pitchclass": frequency = librosa.note_to_hz(freq) + #check if it falls into the passband if state["btype"] == "bandpass": low,high = state["cut_off"] @@ -186,7 +208,8 @@ class Filter(AbstractFilter): Examples -------- - >>> # Shift down by a quarter-tone + >>> # Filter the signal at the passband frequency with a + chebyshev type 2 filter of certain order and attenuation >>> D = muda.deformers.Filter(btype,order,attenuation,cutoff) """ @@ -196,12 +219,12 @@ def __init__(self,btype="low",order=4, attenuation=60.0, cutoff=4000): self.order = order self.attenuation = attenuation if self.btype == "bandpass": - if type(cutoff) == tuple: + if isinstance(cutoff,tuple): self.cutoff = [cutoff] - elif type(cutoff) == list: - if all(type(i) == tuple for i in cutoff): + elif isinstance(cutoff,list): + if all(isinstance(i,tuple) for i in cutoff): self.cutoff = cutoff - elif all(type(i) == list for i in cutoff): + elif all(isinstance(i,list) for i in cutoff): if all(len(i) == 2 for i in cutoff): # [[a,b],[c,d]] self.cutoff = [tuple(c) for c in cutoff] else: @@ -212,9 +235,9 @@ def __init__(self,btype="low",order=4, attenuation=60.0, cutoff=4000): raise ValueError("bandpass filter cutoff must be tuple or list of tuples") else: - if type(cutoff) == tuple: + if isinstance(cutoff,tuple): raise ValueError("low/high pass filter cutoff must be float or list of floats") - elif type(cutoff)==list and type(cutoff[0])==tuple: + elif isinstance(cutoff,list) and isinstance(cutoff[0],tuple): raise ValueError("low/high pass filter cutoff must be float or list of floats") else: @@ -297,7 +320,9 @@ class RandomLPFilter(AbstractFilter): Examples -------- - >>> # Shift down by a quarter-tone + >>> # Apply n_samples of low pass filtering, + where the cutoff frequency is randomly extracted + from a normal distribution >>> D = muda.deformers.RandomLPFilter(n_samples,order,attenuation,cutoff,sigma) """ @@ -309,10 +334,10 @@ def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff=8000,sigma=1.0 if n_samples <= 0: raise ValueError("n_samples must be None or positive") - if type(cutoff)==float and cutoff<=0: + if isinstance(cutoff,float) and cutoff<=0: raise ValueError("cutoff frequency must be None or positive") - if type(cutoff)==list and sum(np.array(cutoff)<=0)>0: + if isinstance(cutoff,list) and sum(np.array(cutoff)<=0)>0: raise ValueError("cutoff frequency must be None or positive") if order <= 0 or attenuation <= 0: @@ -388,8 +413,10 @@ class RandomHPFilter(AbstractFilter): Examples -------- - >>> # Shift down by a quarter-tone - >>> D = muda.deformers.RandomLPFilter(m_samples,order,attenuation,cutoff,sigma) + >>> # Apply n_samples of high pass filtering, + where the cutoff frequency is randomly extracted + from a normal distribution + >>> D = muda.deformers.RandomHPFilter(m_samples,order,attenuation,cutoff,sigma) """ def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff=8000,sigma=1.0,rng=0): @@ -403,7 +430,7 @@ def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff=8000,sigma=1.0 if order <= 0 or attenuation <= 0: raise ValueError("order and attenuation must be None or positive") - if type(cutoff)==list or cutoff<=0: + if isinstance(cutoff,list) or cutoff<=0: raise ValueError("high pass cutoff frequency must be strictly positive and lower than nyquist frequency") @@ -476,21 +503,27 @@ class RandomBPFilter(AbstractFilter): Examples -------- - >>> # Shift down by a quarter-tone + >>> # Apply n_samples of band pass filtering, where the + low and high cutoff frequencies are randomly selected from two + normal distributions centered around some specified lowerbound + and upperbound >>> D = muda.deformers.RandomBPFilter(n_samples,order,attenuation,cutoff_low,cutoff_high,sigma) """ def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff_low=4000, cutoff_high=8000,sigma=1.0,rng=0): AbstractFilter.__init__(self) - if sigma <= 0: + if sigma is not None and sigma <= 0: raise ValueError("sigma must be strictly positive") - if n_samples <= 0: + if n_samples is not None and n_samples <= 0: raise ValueError("n_samples must be None or positive") - if order <= 0 or attenuation <= 0: - raise ValueError("order and attenuation must be None or positive") + if order is not None and order <= 0: + raise ValueError("order must be None or positive") + if attenuation is not None and attenuation <= 0: + raise ValueError("attenuation must be None or positive") + if cutoff_low >= cutoff_high: raise ValueError("band pass higher cutoff frequency must be strictly greater than lower cutoff frequency") if cutoff_low<=0 or cutoff_high <=0: From 3b38525cfc34e2585c88277707bb280419c68835 Mon Sep 17 00:00:00 2001 From: Lily Han Date: Tue, 1 Sep 2020 11:42:48 -0400 Subject: [PATCH 4/5] cheb2ord --- muda/deformers/filter.py | 43 ++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/muda/deformers/filter.py b/muda/deformers/filter.py index 4b6e5f7..93ff190 100644 --- a/muda/deformers/filter.py +++ b/muda/deformers/filter.py @@ -213,10 +213,10 @@ class Filter(AbstractFilter): >>> D = muda.deformers.Filter(btype,order,attenuation,cutoff) """ - def __init__(self,btype="low",order=4, attenuation=60.0, cutoff=4000): + def __init__(self,btype="low", attenuation=60.0, cutoff=4000): AbstractFilter.__init__(self) self.btype = btype - self.order = order + #self.order = order self.attenuation = attenuation if self.btype == "bandpass": if isinstance(cutoff,tuple): @@ -245,6 +245,8 @@ def __init__(self,btype="low",order=4, attenuation=60.0, cutoff=4000): def states(self, jam): + mudabox = jam.sandbox.muda + fs = mudabox._audio["sr"] for state in AbstractFilter.states(self, jam): if self.btype == "bandpass": for low,high in self.cutoff: @@ -252,7 +254,7 @@ def states(self, jam): raise ValueError("cutoff_low must be smaller than cutoff_high") else: state["cut_off"] = (low,high) - state["order"] = self.order + state["order"] = signal.cheb2ord([low,high], [low-fs/10,high+fs/10], 3, self.attenuation, fs=fs) state["attenuation"] = self.attenuation state["btype"] = self.btype yield state @@ -262,7 +264,7 @@ def states(self, jam): raise ValueError("cutoff frequency for lowpass filter must be strictly positive") else: state["cut_off"] = freq - state["order"] = self.order + state["order"] = signal.cheb2ord(freq, freq+fs/10, 3, self.attenuation, fs=fs) state["attenuation"] = self.attenuation state["btype"] = self.btype yield state @@ -272,7 +274,7 @@ def states(self, jam): raise ValueError("cutoff frequency for high pass filter must be strictly positive and smaller than nyquist frequency") else: state["cut_off"] = freq - state["order"] = self.order + state["order"] = signal.cheb2ord(freq, freq-fs/10, 3, self.attenuation, fs=fs) state["attenuation"] = self.attenuation state["btype"] = self.btype yield state @@ -326,7 +328,7 @@ class RandomLPFilter(AbstractFilter): >>> D = muda.deformers.RandomLPFilter(n_samples,order,attenuation,cutoff,sigma) """ - def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff=8000,sigma=1.0,rng=0): + def __init__(self, n_samples=3, attenuation=60.0, cutoff=8000,sigma=1.0,rng=0): AbstractFilter.__init__(self) if sigma <= 0: raise ValueError("sigma must be strictly positive") @@ -340,13 +342,13 @@ def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff=8000,sigma=1.0 if isinstance(cutoff,list) and sum(np.array(cutoff)<=0)>0: raise ValueError("cutoff frequency must be None or positive") - if order <= 0 or attenuation <= 0: - raise ValueError("order and attenuation must be None or positive") + if attenuation <= 0: + raise ValueError("attenuation must be None or positive") self.n_samples = n_samples - self.order = order + #self.order = order self.attenuation = attenuation self.sigma = float(sigma) self.rng = rng @@ -357,10 +359,12 @@ def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff=8000,sigma=1.0 #specify and stores the type/parameters of the augmentation def states(self, jam): + mudabox = jam.sandbox.muda + fs = mudabox._audio["sr"] for state in AbstractFilter.states(self, jam): for _ in range(self.n_samples): state["btype"] = "low" - state["order"] = self.order + state["order"] = signal.cheb2ord(freq, freq+fs/10, 3, self.attenuation, fs=fs) state["attenuation"] = self.attenuation state["cut_off"] = self._rng.normal( loc=self.cutoff, scale=self.sigma, size=None @@ -419,7 +423,7 @@ class RandomHPFilter(AbstractFilter): >>> D = muda.deformers.RandomHPFilter(m_samples,order,attenuation,cutoff,sigma) """ - def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff=8000,sigma=1.0,rng=0): + def __init__(self, n_samples=3, attenuation=60.0, cutoff=8000,sigma=1.0,rng=0): AbstractFilter.__init__(self) if sigma <= 0: raise ValueError("sigma must be strictly positive") @@ -427,15 +431,15 @@ def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff=8000,sigma=1.0 if n_samples <= 0: raise ValueError("n_samples must be None or positive") - if order <= 0 or attenuation <= 0: - raise ValueError("order and attenuation must be None or positive") + if attenuation <= 0: + raise ValueError("attenuation must be None or positive") if isinstance(cutoff,list) or cutoff<=0: raise ValueError("high pass cutoff frequency must be strictly positive and lower than nyquist frequency") self.n_samples = n_samples - self.order = order + #self.order = order self.attenuation = attenuation self.sigma = float(sigma) self.rng = rng @@ -450,7 +454,7 @@ def states(self, jam): for state in AbstractFilter.states(self, jam): for _ in range(self.n_samples): state["btype"] = "high" - state["order"] = self.order + state["order"] = signal.cheb2ord(freq, freq-fs/10, 3, self.attenuation, fs=fs) state["attenuation"] = self.attenuation state["cut_off"] = self._rng.normal( loc=self.cutoff, scale=self.sigma, size=None @@ -510,7 +514,7 @@ class RandomBPFilter(AbstractFilter): >>> D = muda.deformers.RandomBPFilter(n_samples,order,attenuation,cutoff_low,cutoff_high,sigma) """ - def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff_low=4000, cutoff_high=8000,sigma=1.0,rng=0): + def __init__(self, n_samples=3, attenuation=60.0, cutoff_low=4000, cutoff_high=8000,sigma=1.0,rng=0): AbstractFilter.__init__(self) if sigma is not None and sigma <= 0: raise ValueError("sigma must be strictly positive") @@ -518,9 +522,6 @@ def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff_low=4000, cuto if n_samples is not None and n_samples <= 0: raise ValueError("n_samples must be None or positive") - if order is not None and order <= 0: - raise ValueError("order must be None or positive") - if attenuation is not None and attenuation <= 0: raise ValueError("attenuation must be None or positive") @@ -530,7 +531,7 @@ def __init__(self, n_samples=3, order=4, attenuation=60.0, cutoff_low=4000, cuto raise ValueError("band pass cutoff frequency must be strictly greater than zero") self.n_samples = n_samples - self.order = order + #self.order = order self.attenuation = attenuation self.sigma = float(sigma) self.rng = rng @@ -561,7 +562,7 @@ def states(self, jam): ) state["btype"] = "bandpass" state["cut_off"] = (low,high) - state["order"] = self.order + state["order"] = signal.cheb2ord([low,high], [low-fs/10,high+fs/10], 3, self.attenuation, fs=fs) state["attenuation"] = self.attenuation From e6fa64480ae84179888e4367a6eeca741814bee7 Mon Sep 17 00:00:00 2001 From: Lily Han Date: Tue, 1 Sep 2020 15:20:50 -0400 Subject: [PATCH 5/5] filter order --- muda/deformers/filter.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/muda/deformers/filter.py b/muda/deformers/filter.py index 93ff190..0e736ad 100644 --- a/muda/deformers/filter.py +++ b/muda/deformers/filter.py @@ -254,7 +254,7 @@ def states(self, jam): raise ValueError("cutoff_low must be smaller than cutoff_high") else: state["cut_off"] = (low,high) - state["order"] = signal.cheb2ord([low,high], [low-fs/10,high+fs/10], 3, self.attenuation, fs=fs) + state["order"] = signal.cheb2ord([low,high], [low-fs/10,high+fs/10], 3, self.attenuation, fs=fs)[0] state["attenuation"] = self.attenuation state["btype"] = self.btype yield state @@ -264,7 +264,7 @@ def states(self, jam): raise ValueError("cutoff frequency for lowpass filter must be strictly positive") else: state["cut_off"] = freq - state["order"] = signal.cheb2ord(freq, freq+fs/10, 3, self.attenuation, fs=fs) + state["order"] = signal.cheb2ord(freq, freq+fs/10, 3, self.attenuation, fs=fs)[0] state["attenuation"] = self.attenuation state["btype"] = self.btype yield state @@ -274,7 +274,7 @@ def states(self, jam): raise ValueError("cutoff frequency for high pass filter must be strictly positive and smaller than nyquist frequency") else: state["cut_off"] = freq - state["order"] = signal.cheb2ord(freq, freq-fs/10, 3, self.attenuation, fs=fs) + state["order"] = signal.cheb2ord(freq, freq-fs/10, 3, self.attenuation, fs=fs)[0] state["attenuation"] = self.attenuation state["btype"] = self.btype yield state @@ -364,7 +364,7 @@ def states(self, jam): for state in AbstractFilter.states(self, jam): for _ in range(self.n_samples): state["btype"] = "low" - state["order"] = signal.cheb2ord(freq, freq+fs/10, 3, self.attenuation, fs=fs) + state["order"] = signal.cheb2ord(freq, freq+fs/10, 3, self.attenuation, fs=fs)[0] state["attenuation"] = self.attenuation state["cut_off"] = self._rng.normal( loc=self.cutoff, scale=self.sigma, size=None @@ -454,7 +454,7 @@ def states(self, jam): for state in AbstractFilter.states(self, jam): for _ in range(self.n_samples): state["btype"] = "high" - state["order"] = signal.cheb2ord(freq, freq-fs/10, 3, self.attenuation, fs=fs) + state["order"] = signal.cheb2ord(freq, freq-fs/10, 3, self.attenuation, fs=fs)[0] state["attenuation"] = self.attenuation state["cut_off"] = self._rng.normal( loc=self.cutoff, scale=self.sigma, size=None @@ -562,7 +562,7 @@ def states(self, jam): ) state["btype"] = "bandpass" state["cut_off"] = (low,high) - state["order"] = signal.cheb2ord([low,high], [low-fs/10,high+fs/10], 3, self.attenuation, fs=fs) + state["order"] = signal.cheb2ord([low,high], [low-fs/10,high+fs/10], 3, self.attenuation, fs=fs)[0] state["attenuation"] = self.attenuation