flamo 0.1.13__py3-none-any.whl → 0.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- flamo/auxiliary/config/config.py +3 -1
- flamo/auxiliary/eq.py +22 -18
- flamo/auxiliary/reverb.py +28 -17
- flamo/auxiliary/scattering.py +21 -21
- flamo/functional.py +74 -52
- flamo/optimize/dataset.py +7 -5
- flamo/optimize/surface.py +15 -12
- flamo/processor/dsp.py +158 -99
- flamo/processor/system.py +15 -10
- flamo/utils.py +2 -2
- {flamo-0.1.13.dist-info → flamo-0.2.0.dist-info}/METADATA +1 -1
- flamo-0.2.0.dist-info/RECORD +24 -0
- flamo-0.1.13.dist-info/RECORD +0 -24
- {flamo-0.1.13.dist-info → flamo-0.2.0.dist-info}/WHEEL +0 -0
- {flamo-0.1.13.dist-info → flamo-0.2.0.dist-info}/licenses/LICENSE +0 -0
flamo/processor/system.py
CHANGED
|
@@ -26,7 +26,7 @@ class Series(nn.Sequential):
|
|
|
26
26
|
# Check nfft and alpha values
|
|
27
27
|
self.nfft = self.__check_attribute("nfft")
|
|
28
28
|
self.alias_decay_db = self.__check_attribute("alias_decay_db")
|
|
29
|
-
|
|
29
|
+
self.dtype = self.__check_attribute("dtype")
|
|
30
30
|
# Check I/O compatibility
|
|
31
31
|
self.input_channels, self.output_channels = self.__check_io()
|
|
32
32
|
|
|
@@ -65,6 +65,7 @@ class Series(nn.Sequential):
|
|
|
65
65
|
# Check nfft and alpha values
|
|
66
66
|
self.nfft = self.__check_attribute("nfft")
|
|
67
67
|
self.alias_decay_db = self.__check_attribute("alias_decay_db")
|
|
68
|
+
self.dtype = self.__check_attribute("dtype")
|
|
68
69
|
|
|
69
70
|
# Check I/O compatibility
|
|
70
71
|
self.input_channels, self.output_channels = self.__check_io()
|
|
@@ -116,6 +117,7 @@ class Series(nn.Sequential):
|
|
|
116
117
|
# Check nfft and alpha values
|
|
117
118
|
self.nfft = self.__check_attribute("nfft")
|
|
118
119
|
self.alias_decay_db = self.__check_attribute("alias_decay_db")
|
|
120
|
+
self.dtype = self.__check_attribute("dtype")
|
|
119
121
|
|
|
120
122
|
# Check I/O compatibility
|
|
121
123
|
self.input_channels, self.output_channels = self.__check_io()
|
|
@@ -357,7 +359,7 @@ class Recursion(nn.Module):
|
|
|
357
359
|
# Check nfft and time anti-aliasing decay-envelope parameter values
|
|
358
360
|
self.nfft = self.__check_attribute("nfft")
|
|
359
361
|
self.alias_decay_db = self.__check_attribute("alias_decay_db")
|
|
360
|
-
|
|
362
|
+
self.dtype = self.__check_attribute("dtype")
|
|
361
363
|
# Check I/O compatibility
|
|
362
364
|
self.input_channels, self.output_channels = self.__check_io()
|
|
363
365
|
|
|
@@ -402,7 +404,7 @@ class Recursion(nn.Module):
|
|
|
402
404
|
torch.Tensor: The identity matrix.
|
|
403
405
|
"""
|
|
404
406
|
size = (self.nfft // 2 + 1, self.output_channels, self.output_channels)
|
|
405
|
-
I = torch.complex(torch.zeros(*size), torch.zeros(*size))
|
|
407
|
+
I = torch.complex(torch.zeros(*size, dtype=self.dtype), torch.zeros(*size, dtype=self.dtype))
|
|
406
408
|
for i in range(self.output_channels):
|
|
407
409
|
I[:, i, i] = 1
|
|
408
410
|
return I
|
|
@@ -544,6 +546,7 @@ class Parallel(nn.Module):
|
|
|
544
546
|
# Check nfft and time anti-aliasing decay-envelope parameter values
|
|
545
547
|
self.nfft = self.__check_attribute("nfft")
|
|
546
548
|
self.alias_decay_db = self.__check_attribute("alias_decay_db")
|
|
549
|
+
self.dtype = self.__check_attribute("dtype")
|
|
547
550
|
|
|
548
551
|
# Check I/O compatibility
|
|
549
552
|
self.input_channels, self.output_channels = self.__check_io()
|
|
@@ -719,7 +722,7 @@ class Shell(nn.Module):
|
|
|
719
722
|
# Check model nfft and time anti-aliasing decay-envelope parameter values
|
|
720
723
|
self.nfft = self.__check_attribute("nfft")
|
|
721
724
|
self.alias_decay_db = self.__check_attribute("alias_decay_db")
|
|
722
|
-
|
|
725
|
+
self.dtype = self.__check_attribute("dtype")
|
|
723
726
|
# Check I/O compatibility
|
|
724
727
|
self.input_channels, self.output_channels = self.__check_io()
|
|
725
728
|
|
|
@@ -895,15 +898,15 @@ class Shell(nn.Module):
|
|
|
895
898
|
.view(1, -1, 1)
|
|
896
899
|
.expand(1, -1, self.output_channels)
|
|
897
900
|
)
|
|
898
|
-
|
|
901
|
+
self.alias_envelope = self.alias_envelope.to(dtype=self.dtype)
|
|
899
902
|
# save input/output layers
|
|
900
903
|
input_save = self.get_inputLayer()
|
|
901
904
|
output_save = self.get_outputLayer()
|
|
902
905
|
|
|
903
906
|
# update input/output layers
|
|
904
|
-
self.set_inputLayer(FFT(self.nfft))
|
|
907
|
+
self.set_inputLayer(FFT(self.nfft, dtype=self.dtype))
|
|
905
908
|
self.set_outputLayer(
|
|
906
|
-
nn.Sequential(iFFT(self.nfft), Transform(lambda x: x * self.alias_envelope))
|
|
909
|
+
nn.Sequential(iFFT(self.nfft, dtype=self.dtype), Transform(lambda x: x * self.alias_envelope))
|
|
907
910
|
)
|
|
908
911
|
|
|
909
912
|
# generate input signal
|
|
@@ -914,6 +917,7 @@ class Shell(nn.Module):
|
|
|
914
917
|
signal_type="impulse",
|
|
915
918
|
fs=fs,
|
|
916
919
|
device=gamma.device,
|
|
920
|
+
dtype=self.dtype
|
|
917
921
|
)
|
|
918
922
|
if identity and self.input_channels > 1:
|
|
919
923
|
self.alias_envelope = self.alias_envelope.unsqueeze(-1).expand(
|
|
@@ -963,7 +967,7 @@ class Shell(nn.Module):
|
|
|
963
967
|
.view(1, -1, 1)
|
|
964
968
|
.expand(1, -1, self.output_channels)
|
|
965
969
|
)
|
|
966
|
-
|
|
970
|
+
self.alias_envelope_exp = self.alias_envelope_exp.to(dtype=self.dtype)
|
|
967
971
|
# save input/output layers
|
|
968
972
|
input_save = self.get_inputLayer()
|
|
969
973
|
output_save = self.get_outputLayer()
|
|
@@ -972,13 +976,13 @@ class Shell(nn.Module):
|
|
|
972
976
|
self.set_inputLayer(FFT(self.nfft))
|
|
973
977
|
self.set_outputLayer(
|
|
974
978
|
nn.Sequential(
|
|
975
|
-
iFFT(self.nfft),
|
|
979
|
+
iFFT(self.nfft, dtype=self.dtype),
|
|
976
980
|
Transform(
|
|
977
981
|
lambda x: torch.einsum(
|
|
978
982
|
"bfm..., bfm... -> bfm...", x, self.alias_envelope_exp
|
|
979
983
|
)
|
|
980
984
|
),
|
|
981
|
-
FFT(self.nfft),
|
|
985
|
+
FFT(self.nfft, dtype=self.dtype),
|
|
982
986
|
)
|
|
983
987
|
) # TODO, this is a very suboptimal way to do this, we need to find a better way
|
|
984
988
|
|
|
@@ -990,6 +994,7 @@ class Shell(nn.Module):
|
|
|
990
994
|
signal_type="impulse",
|
|
991
995
|
fs=fs,
|
|
992
996
|
device=gamma.device,
|
|
997
|
+
dtype=self.dtype
|
|
993
998
|
)
|
|
994
999
|
if identity and self.input_channels > 1:
|
|
995
1000
|
x = x.diag_embed()
|
flamo/utils.py
CHANGED
|
@@ -22,12 +22,12 @@ def to_complex(x):
|
|
|
22
22
|
return torch.complex(x, torch.zeros_like(x))
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
def save_audio(filepath, x, fs=48000):
|
|
25
|
+
def save_audio(filepath, x, fs=48000, subtype='PCM_24'):
|
|
26
26
|
# check if the folder exists
|
|
27
27
|
folder = os.path.dirname(filepath)
|
|
28
28
|
if not os.path.exists(folder):
|
|
29
29
|
os.makedirs(folder)
|
|
30
|
-
sf.write(filepath, x.cpu().numpy(), fs)
|
|
30
|
+
sf.write(filepath, x.cpu().numpy(), fs, subtype=subtype)
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
class RegularGridInterpolator:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flamo
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: An Open-Source Library for Frequency-Domain Differentiable Audio Processing
|
|
5
5
|
Project-URL: Homepage, https://github.com/gdalsanto/flamo
|
|
6
6
|
Project-URL: Issues, https://github.com/gdalsanto/flamo/issues
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
flamo/__init__.py,sha256=ujezWOJfD7DUoj4q1meeMUnB97rOEtNR7mYw_PE9LMg,49
|
|
2
|
+
flamo/functional.py,sha256=3vO5IHAO0kD0icNZw-EX5pecsmSUza-GmuY3WjHxN1M,38846
|
|
3
|
+
flamo/utils.py,sha256=Gn0aVa32lKeDcN0buyDGErq_uT7dUBmkEXweXpz-3Zw,3385
|
|
4
|
+
flamo/auxiliary/__init__.py,sha256=7lVNh8OxHloZ4KPmp-iTUJnUbi8XbuRzGaQ3Z-NKXio,42
|
|
5
|
+
flamo/auxiliary/eq.py,sha256=aI0og6x82r_o3Q7xGu36scdf51e2ARhYmFyJqnEIzQc,7364
|
|
6
|
+
flamo/auxiliary/filterbank.py,sha256=02w8dI8HoNDtKpdVhSJkIkd-h-KNXvZtivf3l4_ozzU,9866
|
|
7
|
+
flamo/auxiliary/minimize.py,sha256=fMTAAAk9yD7Y4luKS4XA1-HTq44xo2opq_dRPRrhlIY,2474
|
|
8
|
+
flamo/auxiliary/reverb.py,sha256=jrNsNUH5B0S-1U-DfPnNVGqpbKCZHfeiFmoCGeiX1QU,34915
|
|
9
|
+
flamo/auxiliary/scattering.py,sha256=IV9ZgkMfgEWtQo3IeLJviAXAdjrYI_Tob-H_8Zv8oBA,9729
|
|
10
|
+
flamo/auxiliary/velvet.py,sha256=B4pYEnhaQPkh02pxqiGdAhLRX2g-eWtHezphi0_h4Qs,4201
|
|
11
|
+
flamo/auxiliary/config/config.py,sha256=sZ3XvqwV6KiIc2n8HRtg7YJE3zhc7Vqblbqs-Z0bsKg,2978
|
|
12
|
+
flamo/optimize/__init__.py,sha256=grgxLmQ7m-c9MvRdIejmEAaaajfBwgeaZAv2qjHIvPw,65
|
|
13
|
+
flamo/optimize/dataset.py,sha256=cdedwSZRASIfk21zSlflerpKF1TmVy0JWDw8dhSA4z4,5976
|
|
14
|
+
flamo/optimize/loss.py,sha256=h6EeqjdX5P1SqDBKBavSxV25VBgnYK8tuX91wk6lw_g,33466
|
|
15
|
+
flamo/optimize/surface.py,sha256=aYWXg2ZNJzFjHRILcgrTfNkQ2VSoaMfMSnu9IPM8O-8,26475
|
|
16
|
+
flamo/optimize/trainer.py,sha256=he4nUjLC-3RTlxxBIw33r5k8mQfgAGvN1wpPBAWCjVo,12045
|
|
17
|
+
flamo/optimize/utils.py,sha256=R5-KoZagRho3eykY88pC3UB2mc5SsE4Yv9X-ogskXdA,1610
|
|
18
|
+
flamo/processor/__init__.py,sha256=paGdxGVZgA2VAs0tBwRd0bobzGxeyK79DS7ZGO8drkI,41
|
|
19
|
+
flamo/processor/dsp.py,sha256=a5etio4qfJWwAsHpAk3CXDgEd3LMet-r_956216SO6M,128874
|
|
20
|
+
flamo/processor/system.py,sha256=Hct-o6IgF5NQ2xYbX-1j3st94hMoM8dOgAzle2gjDqU,43145
|
|
21
|
+
flamo-0.2.0.dist-info/METADATA,sha256=cGqrN7snqzo-GWh2jLQyEXqQHCuPa0BNPRW5Y0IgwTA,7825
|
|
22
|
+
flamo-0.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
23
|
+
flamo-0.2.0.dist-info/licenses/LICENSE,sha256=smMocRH7xdPT5RvFNqSLtbSNzohXJM5G_rX1Qaej6vg,1120
|
|
24
|
+
flamo-0.2.0.dist-info/RECORD,,
|
flamo-0.1.13.dist-info/RECORD
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
flamo/__init__.py,sha256=ujezWOJfD7DUoj4q1meeMUnB97rOEtNR7mYw_PE9LMg,49
|
|
2
|
-
flamo/functional.py,sha256=8cKYzR5GDzH4ph4ja7x1znNFL-8ufWoxa666QHaZR1A,36917
|
|
3
|
-
flamo/utils.py,sha256=ypGKSABZMphgIrjCKgCH-zgR7BaupRbyzuUhsZFqAAM,3350
|
|
4
|
-
flamo/auxiliary/__init__.py,sha256=7lVNh8OxHloZ4KPmp-iTUJnUbi8XbuRzGaQ3Z-NKXio,42
|
|
5
|
-
flamo/auxiliary/eq.py,sha256=eIWMIq0ggizXLhTdeWWbgBXWUFXCJyoEbkBH7Gzasao,6779
|
|
6
|
-
flamo/auxiliary/filterbank.py,sha256=02w8dI8HoNDtKpdVhSJkIkd-h-KNXvZtivf3l4_ozzU,9866
|
|
7
|
-
flamo/auxiliary/minimize.py,sha256=fMTAAAk9yD7Y4luKS4XA1-HTq44xo2opq_dRPRrhlIY,2474
|
|
8
|
-
flamo/auxiliary/reverb.py,sha256=fAJgTGq_yaQguBrrnifJNl4ySIkPb0NdrcFKNCNL4xc,34769
|
|
9
|
-
flamo/auxiliary/scattering.py,sha256=qlK8cynrpde56yLlbPuScC0Y1VmsPb0SFXl6Xisv6hA,9420
|
|
10
|
-
flamo/auxiliary/velvet.py,sha256=B4pYEnhaQPkh02pxqiGdAhLRX2g-eWtHezphi0_h4Qs,4201
|
|
11
|
-
flamo/auxiliary/config/config.py,sha256=CxXj-8sLq0_m9KyLg1a6NwLoK1UvTz3i0jZOLraq14I,2893
|
|
12
|
-
flamo/optimize/__init__.py,sha256=grgxLmQ7m-c9MvRdIejmEAaaajfBwgeaZAv2qjHIvPw,65
|
|
13
|
-
flamo/optimize/dataset.py,sha256=2mfzsnyX_bzavXouII9ee_pd6ti4lv215ieGJHscceI,5829
|
|
14
|
-
flamo/optimize/loss.py,sha256=h6EeqjdX5P1SqDBKBavSxV25VBgnYK8tuX91wk6lw_g,33466
|
|
15
|
-
flamo/optimize/surface.py,sha256=2RuY-QTE39GQwC14vCWJOtN38136emeMn0ETaBHpYHw,26117
|
|
16
|
-
flamo/optimize/trainer.py,sha256=he4nUjLC-3RTlxxBIw33r5k8mQfgAGvN1wpPBAWCjVo,12045
|
|
17
|
-
flamo/optimize/utils.py,sha256=R5-KoZagRho3eykY88pC3UB2mc5SsE4Yv9X-ogskXdA,1610
|
|
18
|
-
flamo/processor/__init__.py,sha256=paGdxGVZgA2VAs0tBwRd0bobzGxeyK79DS7ZGO8drkI,41
|
|
19
|
-
flamo/processor/dsp.py,sha256=n92YJPrES-ydwHgXmZ9RkFevIC3n-Wh4X8I1QNZqcV0,126378
|
|
20
|
-
flamo/processor/system.py,sha256=9XwLtaGEVs9glVOFvyiPnQpsnR_Wjrv6k1i1qCs8D1Q,42516
|
|
21
|
-
flamo-0.1.13.dist-info/METADATA,sha256=ZljWVx1rx5BPv986C5vrFb4d7mUGF47CprS1HEPzAx8,7826
|
|
22
|
-
flamo-0.1.13.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
23
|
-
flamo-0.1.13.dist-info/licenses/LICENSE,sha256=smMocRH7xdPT5RvFNqSLtbSNzohXJM5G_rX1Qaej6vg,1120
|
|
24
|
-
flamo-0.1.13.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|