From c19a580c74ab4efa8d8cfadf1453d6cd7215ad3c Mon Sep 17 00:00:00 2001 From: jajaxdlol Date: Wed, 22 Jan 2020 14:39:38 +0100 Subject: [PATCH 01/10] added frequency_multiply --- pyrubberband/pyrb.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/pyrubberband/pyrb.py b/pyrubberband/pyrb.py index 52696a8..ac09bd3 100644 --- a/pyrubberband/pyrb.py +++ b/pyrubberband/pyrb.py @@ -255,3 +255,38 @@ def pitch_shift(y, sr, n_steps, rbargs=None): rbargs.setdefault('--pitch', n_steps) return __rubberband(y, sr, **rbargs) + + +def frequency_multiply(y, sr, X, rbargs=None): + '''Multiply the frequencies inside an audio time series. The equivalent of the -f option. + Parameters + ---------- + y : np.ndarray [shape=(n,) or (n, c)] + Audio time series, either single or multichannel + + sr : int > 0 + Sampling rate of `y` + + X : float + Shift by `n_steps` semitones. + + rbargs + Additional keyword parameters for rubberband + + See `rubberband -h` for details. + + Returns + ------- + y_shift : np.ndarray + frequency-multiplied audio + ''' + + if X == 0: + return y + + if rbargs is None: + rbargs = dict() + + rbargs.setdefault('--frequency', X) + + return __rubberband(y, sr, **rbargs) \ No newline at end of file From e0a8e894af7822e0761e195561cd10c923a9ad53 Mon Sep 17 00:00:00 2001 From: miguel Date: Wed, 22 Jan 2020 21:43:40 +0100 Subject: [PATCH 02/10] tempo shifting audio added --- pyrubberband/pyrb.py | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/pyrubberband/pyrb.py b/pyrubberband/pyrb.py index ac09bd3..2d248a6 100644 --- a/pyrubberband/pyrb.py +++ b/pyrubberband/pyrb.py @@ -268,7 +268,7 @@ def frequency_multiply(y, sr, X, rbargs=None): Sampling rate of `y` X : float - Shift by `n_steps` semitones. + Shift magnitudes in spectrum by X rbargs Additional keyword parameters for rubberband @@ -289,4 +289,42 @@ def frequency_multiply(y, sr, X, rbargs=None): rbargs.setdefault('--frequency', X) + return __rubberband(y, sr, **rbargs) + + +def change_tempo(y, sr, X, Y, rbargs=None): + '''Multiply the frequencies inside an audio time series. The equivalent of the -f option. + Parameters + ---------- + y : np.ndarray [shape=(n,) or (n, c)] + Audio time series, either single or multichannel + + sr : int > 0 + Sampling rate of `y` + + X : float + Base tempo + + Y : float + Final tempo + + rbargs + Additional keyword parameters for rubberband + + See `rubberband -h` for details. + + Returns + ------- + y_shift : np.ndarray + tempo-shifted audio + ''' + + if X == 0: + return y + + if rbargs is None: + rbargs = dict() + + rbargs.setdefault('--tempo', '%s:%s' % (X, Y)) + return __rubberband(y, sr, **rbargs) \ No newline at end of file From 1d7c63a5b30a391598761b90ddac7f07053338cf Mon Sep 17 00:00:00 2001 From: miguel Date: Sat, 25 Jan 2020 11:48:03 +0100 Subject: [PATCH 03/10] Added empty line at the end of pyrb.py --- pyrubberband/pyrb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyrubberband/pyrb.py b/pyrubberband/pyrb.py index 2d248a6..f6c4413 100644 --- a/pyrubberband/pyrb.py +++ b/pyrubberband/pyrb.py @@ -327,4 +327,4 @@ def change_tempo(y, sr, X, Y, rbargs=None): rbargs.setdefault('--tempo', '%s:%s' % (X, Y)) - return __rubberband(y, sr, **rbargs) \ No newline at end of file + return __rubberband(y, sr, **rbargs) From 39b4789eded1740773755536662d45defa35f6f7 Mon Sep 17 00:00:00 2001 From: miguel Date: Sat, 25 Jan 2020 11:50:01 +0100 Subject: [PATCH 04/10] Extended comments to multiple lines --- pyrubberband/pyrb.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pyrubberband/pyrb.py b/pyrubberband/pyrb.py index f6c4413..ad182bc 100644 --- a/pyrubberband/pyrb.py +++ b/pyrubberband/pyrb.py @@ -258,7 +258,8 @@ def pitch_shift(y, sr, n_steps, rbargs=None): def frequency_multiply(y, sr, X, rbargs=None): - '''Multiply the frequencies inside an audio time series. The equivalent of the -f option. + '''Multiply the frequencies inside an audio time series. + The equivalent of the -f option. Parameters ---------- y : np.ndarray [shape=(n,) or (n, c)] @@ -293,7 +294,8 @@ def frequency_multiply(y, sr, X, rbargs=None): def change_tempo(y, sr, X, Y, rbargs=None): - '''Multiply the frequencies inside an audio time series. The equivalent of the -f option. + '''Multiply the frequencies inside an audio time series. + The equivalent of the -f option. Parameters ---------- y : np.ndarray [shape=(n,) or (n, c)] From f2f555b10b01554a00b16236ac933751eb59298b Mon Sep 17 00:00:00 2001 From: jajaxdlol Date: Wed, 22 Jan 2020 14:39:38 +0100 Subject: [PATCH 05/10] added frequency_multiply --- pyrubberband/pyrb.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/pyrubberband/pyrb.py b/pyrubberband/pyrb.py index 52696a8..ac09bd3 100644 --- a/pyrubberband/pyrb.py +++ b/pyrubberband/pyrb.py @@ -255,3 +255,38 @@ def pitch_shift(y, sr, n_steps, rbargs=None): rbargs.setdefault('--pitch', n_steps) return __rubberband(y, sr, **rbargs) + + +def frequency_multiply(y, sr, X, rbargs=None): + '''Multiply the frequencies inside an audio time series. The equivalent of the -f option. + Parameters + ---------- + y : np.ndarray [shape=(n,) or (n, c)] + Audio time series, either single or multichannel + + sr : int > 0 + Sampling rate of `y` + + X : float + Shift by `n_steps` semitones. + + rbargs + Additional keyword parameters for rubberband + + See `rubberband -h` for details. + + Returns + ------- + y_shift : np.ndarray + frequency-multiplied audio + ''' + + if X == 0: + return y + + if rbargs is None: + rbargs = dict() + + rbargs.setdefault('--frequency', X) + + return __rubberband(y, sr, **rbargs) \ No newline at end of file From 1db66d36fb5a23984da6fd2278e741392993be04 Mon Sep 17 00:00:00 2001 From: miguel Date: Wed, 22 Jan 2020 21:43:40 +0100 Subject: [PATCH 06/10] tempo shifting audio added --- pyrubberband/pyrb.py | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/pyrubberband/pyrb.py b/pyrubberband/pyrb.py index ac09bd3..2d248a6 100644 --- a/pyrubberband/pyrb.py +++ b/pyrubberband/pyrb.py @@ -268,7 +268,7 @@ def frequency_multiply(y, sr, X, rbargs=None): Sampling rate of `y` X : float - Shift by `n_steps` semitones. + Shift magnitudes in spectrum by X rbargs Additional keyword parameters for rubberband @@ -289,4 +289,42 @@ def frequency_multiply(y, sr, X, rbargs=None): rbargs.setdefault('--frequency', X) + return __rubberband(y, sr, **rbargs) + + +def change_tempo(y, sr, X, Y, rbargs=None): + '''Multiply the frequencies inside an audio time series. The equivalent of the -f option. + Parameters + ---------- + y : np.ndarray [shape=(n,) or (n, c)] + Audio time series, either single or multichannel + + sr : int > 0 + Sampling rate of `y` + + X : float + Base tempo + + Y : float + Final tempo + + rbargs + Additional keyword parameters for rubberband + + See `rubberband -h` for details. + + Returns + ------- + y_shift : np.ndarray + tempo-shifted audio + ''' + + if X == 0: + return y + + if rbargs is None: + rbargs = dict() + + rbargs.setdefault('--tempo', '%s:%s' % (X, Y)) + return __rubberband(y, sr, **rbargs) \ No newline at end of file From c162fd6b665bc12a7ba646409ddde9f05f9cb9cb Mon Sep 17 00:00:00 2001 From: miguel Date: Sat, 25 Jan 2020 11:48:03 +0100 Subject: [PATCH 07/10] Added empty line at the end of pyrb.py --- pyrubberband/pyrb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyrubberband/pyrb.py b/pyrubberband/pyrb.py index 2d248a6..f6c4413 100644 --- a/pyrubberband/pyrb.py +++ b/pyrubberband/pyrb.py @@ -327,4 +327,4 @@ def change_tempo(y, sr, X, Y, rbargs=None): rbargs.setdefault('--tempo', '%s:%s' % (X, Y)) - return __rubberband(y, sr, **rbargs) \ No newline at end of file + return __rubberband(y, sr, **rbargs) From 4c3967e6bf37edc1b4847496fc3046f6bebd7233 Mon Sep 17 00:00:00 2001 From: miguel Date: Sat, 25 Jan 2020 11:50:01 +0100 Subject: [PATCH 08/10] Extended comments to multiple lines --- pyrubberband/pyrb.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pyrubberband/pyrb.py b/pyrubberband/pyrb.py index f6c4413..ad182bc 100644 --- a/pyrubberband/pyrb.py +++ b/pyrubberband/pyrb.py @@ -258,7 +258,8 @@ def pitch_shift(y, sr, n_steps, rbargs=None): def frequency_multiply(y, sr, X, rbargs=None): - '''Multiply the frequencies inside an audio time series. The equivalent of the -f option. + '''Multiply the frequencies inside an audio time series. + The equivalent of the -f option. Parameters ---------- y : np.ndarray [shape=(n,) or (n, c)] @@ -293,7 +294,8 @@ def frequency_multiply(y, sr, X, rbargs=None): def change_tempo(y, sr, X, Y, rbargs=None): - '''Multiply the frequencies inside an audio time series. The equivalent of the -f option. + '''Multiply the frequencies inside an audio time series. + The equivalent of the -f option. Parameters ---------- y : np.ndarray [shape=(n,) or (n, c)] From 65c14100fc1dfe622c207330c34093fe3d0053de Mon Sep 17 00:00:00 2001 From: migperfer Date: Mon, 27 Jan 2020 22:50:38 +0100 Subject: [PATCH 09/10] small typo on func description --- pyrubberband/pyrb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyrubberband/pyrb.py b/pyrubberband/pyrb.py index ad182bc..aae6314 100644 --- a/pyrubberband/pyrb.py +++ b/pyrubberband/pyrb.py @@ -295,7 +295,7 @@ def frequency_multiply(y, sr, X, rbargs=None): def change_tempo(y, sr, X, Y, rbargs=None): '''Multiply the frequencies inside an audio time series. - The equivalent of the -f option. + The equivalent of the --tempo : option. Parameters ---------- y : np.ndarray [shape=(n,) or (n, c)] From 60c7152737115416cb7496d8bae03b4bcedf11b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20P=C3=A9rez?= Date: Thu, 23 Apr 2020 10:38:22 +0200 Subject: [PATCH 10/10] functions added to __all__ Added functions were not in global import --- pyrubberband/pyrb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyrubberband/pyrb.py b/pyrubberband/pyrb.py index aae6314..e93bb70 100644 --- a/pyrubberband/pyrb.py +++ b/pyrubberband/pyrb.py @@ -19,7 +19,7 @@ import soundfile as sf -__all__ = ['time_stretch', 'pitch_shift', 'timemap_stretch'] +__all__ = ['time_stretch', 'pitch_shift', 'timemap_stretch', 'frequency_multiply', 'change_tempo'] __RUBBERBAND_UTIL = 'rubberband'