yoyolicoris commited on
Commit
d737ecd
·
1 Parent(s): cd0e63d

manually copy part of the diffvox source code

Browse files
modules/functional.py ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import torch.nn.functional as F
3
+ from torchcomp import compexp_gain, db2amp
4
+ from torchlpc import sample_wise_lpc
5
+ from typing import List, Tuple, Union, Any, Optional
6
+ import math
7
+
8
+
9
+ def inv_22(a, b, c, d):
10
+ return torch.stack([d, -b, -c, a]).view(2, 2) / (a * d - b * c)
11
+
12
+
13
+ def eig_22(a, b, c, d):
14
+ # https://croninprojects.org/Vince/Geodesy/FindingEigenvectors.pdf
15
+ T = a + d
16
+ D = a * d - b * c
17
+ half_T = T * 0.5
18
+ root = torch.sqrt(half_T * half_T - D) # + 0j)
19
+ L = torch.stack([half_T + root, half_T - root])
20
+
21
+ y = (L - a) / b
22
+ # y = c / L
23
+ V = torch.stack([torch.ones_like(y), y])
24
+ return L, V / V.abs().square().sum(0).sqrt()
25
+
26
+
27
+ def fir(x, b):
28
+ padded = F.pad(x.reshape(-1, 1, x.size(-1)), (b.size(0) - 1, 0))
29
+ return F.conv1d(padded, b.flip(0).view(1, 1, -1)).view(*x.shape)
30
+
31
+
32
+ def allpole(x: torch.Tensor, a: torch.Tensor):
33
+ h = x.reshape(-1, x.shape[-1])
34
+ return sample_wise_lpc(
35
+ h,
36
+ a.broadcast_to(h.shape + a.shape),
37
+ ).reshape(*x.shape)
38
+
39
+
40
+ def biquad(x: torch.Tensor, b0, b1, b2, a0, a1, a2):
41
+ b0 = b0 / a0
42
+ b1 = b1 / a0
43
+ b2 = b2 / a0
44
+ a1 = a1 / a0
45
+ a2 = a2 / a0
46
+
47
+ beta1 = b1 - b0 * a1
48
+ beta2 = b2 - b0 * a2
49
+
50
+ tmp = a1.square() - 4 * a2
51
+ if tmp < 0:
52
+ pole = 0.5 * (-a1 + 1j * torch.sqrt(-tmp))
53
+ u = -1j * x[..., :-1]
54
+ h = sample_wise_lpc(
55
+ u.reshape(-1, u.shape[-1]),
56
+ -pole.broadcast_to(u.shape).reshape(-1, u.shape[-1], 1),
57
+ ).reshape(*u.shape)
58
+ h = (
59
+ h.real * (beta1 * pole.real / pole.imag + beta2 / pole.imag)
60
+ - beta1 * h.imag
61
+ )
62
+ else:
63
+ L, V = eig_22(-a1, -a2, torch.ones_like(a1), torch.zeros_like(a1))
64
+ inv_V = inv_22(*V.view(-1))
65
+
66
+ C = torch.stack([beta1, beta2]) @ V
67
+
68
+ # project input to eigen space
69
+ h = x[..., :-1].unsqueeze(-2) * inv_V[:, :1]
70
+ L = L.unsqueeze(-1).broadcast_to(h.shape)
71
+
72
+ h = (
73
+ sample_wise_lpc(h.reshape(-1, h.shape[-1]), -L.reshape(-1, L.shape[-1], 1))
74
+ .reshape(*h.shape)
75
+ .transpose(-2, -1)
76
+ ) @ C
77
+ tmp = b0 * x
78
+ y = torch.cat([tmp[..., :1], h + tmp[..., 1:]], -1)
79
+ return y
80
+
81
+
82
+ def highpass_biquad_coef(
83
+ sample_rate: int,
84
+ cutoff_freq: torch.Tensor,
85
+ Q: torch.Tensor,
86
+ ):
87
+ w0 = 2 * torch.pi * cutoff_freq / sample_rate
88
+ alpha = torch.sin(w0) / 2.0 / Q
89
+
90
+ b0 = (1 + torch.cos(w0)) / 2
91
+ b1 = -1 - torch.cos(w0)
92
+ b2 = b0
93
+ a0 = 1 + alpha
94
+ a1 = -2 * torch.cos(w0)
95
+ a2 = 1 - alpha
96
+ return b0, b1, b2, a0, a1, a2
97
+
98
+
99
+ def apply_biquad(bq):
100
+ return lambda waveform, *args, **kwargs: biquad(waveform, *bq(*args, **kwargs))
101
+
102
+
103
+ highpass_biquad = apply_biquad(highpass_biquad_coef)
104
+
105
+
106
+ def lowpass_biquad_coef(
107
+ sample_rate: int,
108
+ cutoff_freq: torch.Tensor,
109
+ Q: torch.Tensor,
110
+ ):
111
+ w0 = 2 * torch.pi * cutoff_freq / sample_rate
112
+ alpha = torch.sin(w0) / 2 / Q
113
+
114
+ b0 = (1 - torch.cos(w0)) / 2
115
+ b1 = 1 - torch.cos(w0)
116
+ b2 = b0
117
+ a0 = 1 + alpha
118
+ a1 = -2 * torch.cos(w0)
119
+ a2 = 1 - alpha
120
+ return b0, b1, b2, a0, a1, a2
121
+
122
+
123
+ def equalizer_biquad_coef(
124
+ sample_rate: int,
125
+ center_freq: torch.Tensor,
126
+ gain: torch.Tensor,
127
+ Q: torch.Tensor,
128
+ ):
129
+
130
+ w0 = 2 * torch.pi * center_freq / sample_rate
131
+ A = torch.exp(gain / 40.0 * math.log(10))
132
+ alpha = torch.sin(w0) / 2 / Q
133
+
134
+ b0 = 1 + alpha * A
135
+ b1 = -2 * torch.cos(w0)
136
+ b2 = 1 - alpha * A
137
+
138
+ a0 = 1 + alpha / A
139
+ a1 = -2 * torch.cos(w0)
140
+ a2 = 1 - alpha / A
141
+ return b0, b1, b2, a0, a1, a2
142
+
143
+
144
+ def lowshelf_biquad_coef(
145
+ sample_rate: int,
146
+ cutoff_freq: torch.Tensor,
147
+ gain: torch.Tensor,
148
+ Q: torch.Tensor,
149
+ ):
150
+
151
+ w0 = 2 * torch.pi * cutoff_freq / sample_rate
152
+ A = torch.exp(gain / 40.0 * math.log(10))
153
+ alpha = torch.sin(w0) / 2 / Q
154
+ cosw0 = torch.cos(w0)
155
+ sqrtA = torch.sqrt(A)
156
+
157
+ b0 = A * (A + 1 - (A - 1) * cosw0 + 2 * alpha * sqrtA)
158
+ b1 = 2 * A * (A - 1 - (A + 1) * cosw0)
159
+ b2 = A * (A + 1 - (A - 1) * cosw0 - 2 * alpha * sqrtA)
160
+
161
+ a0 = A + 1 + (A - 1) * cosw0 + 2 * alpha * sqrtA
162
+ a1 = -2 * (A - 1 + (A + 1) * cosw0)
163
+ a2 = A + 1 + (A - 1) * cosw0 - 2 * alpha * sqrtA
164
+
165
+ return b0, b1, b2, a0, a1, a2
166
+
167
+
168
+ def highshelf_biquad_coef(
169
+ sample_rate: int,
170
+ cutoff_freq: torch.Tensor,
171
+ gain: torch.Tensor,
172
+ Q: torch.Tensor,
173
+ ):
174
+
175
+ w0 = 2 * torch.pi * cutoff_freq / sample_rate
176
+ A = torch.exp(gain / 40.0 * math.log(10))
177
+ alpha = torch.sin(w0) / 2 / Q
178
+ cosw0 = torch.cos(w0)
179
+ sqrtA = torch.sqrt(A)
180
+
181
+ b0 = A * (A + 1 + (A - 1) * cosw0 + 2 * alpha * sqrtA)
182
+ b1 = -2 * A * (A - 1 + (A + 1) * cosw0)
183
+ b2 = A * (A + 1 + (A - 1) * cosw0 - 2 * alpha * sqrtA)
184
+
185
+ a0 = A + 1 - (A - 1) * cosw0 + 2 * alpha * sqrtA
186
+ a1 = 2 * (A - 1 - (A + 1) * cosw0)
187
+ a2 = A + 1 - (A - 1) * cosw0 - 2 * alpha * sqrtA
188
+
189
+ return b0, b1, b2, a0, a1, a2
190
+
191
+
192
+ highpass_biquad = apply_biquad(highpass_biquad_coef)
193
+ lowpass_biquad = apply_biquad(lowpass_biquad_coef)
194
+ highshelf_biquad = apply_biquad(highshelf_biquad_coef)
195
+ lowshelf_biquad = apply_biquad(lowshelf_biquad_coef)
196
+ equalizer_biquad = apply_biquad(equalizer_biquad_coef)
197
+
198
+
199
+ def avg(rms: torch.Tensor, avg_coef: torch.Tensor):
200
+ assert torch.all(avg_coef > 0) and torch.all(avg_coef <= 1)
201
+
202
+ h = rms * avg_coef
203
+
204
+ return sample_wise_lpc(
205
+ h,
206
+ (avg_coef - 1).broadcast_to(h.shape).unsqueeze(-1),
207
+ )
208
+
209
+
210
+ def avg_rms(audio: torch.Tensor, avg_coef) -> torch.Tensor:
211
+ return avg(audio.square().clamp_min(1e-8), avg_coef).sqrt()
212
+
213
+
214
+ def compressor_expander(
215
+ x: torch.Tensor,
216
+ avg_coef: Union[torch.Tensor, float],
217
+ cmp_th: Union[torch.Tensor, float],
218
+ cmp_ratio: Union[torch.Tensor, float],
219
+ exp_th: Union[torch.Tensor, float],
220
+ exp_ratio: Union[torch.Tensor, float],
221
+ at: Union[torch.Tensor, float],
222
+ rt: Union[torch.Tensor, float],
223
+ make_up: torch.Tensor,
224
+ lookahead_func=lambda x: x,
225
+ ):
226
+ rms = avg_rms(x, avg_coef=avg_coef)
227
+ gain = compexp_gain(rms, cmp_th, cmp_ratio, exp_th, exp_ratio, at, rt)
228
+ gain = lookahead_func(gain)
229
+ return x * gain * db2amp(make_up).broadcast_to(x.shape[0], 1)
modules/fx.py ADDED
@@ -0,0 +1,994 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from torch import nn
3
+ import torch.nn.functional as F
4
+ from torch.nn.utils.parametrize import register_parametrization
5
+ from torchcomp import ms2coef, coef2ms, db2amp
6
+ from torchaudio.transforms import Spectrogram, InverseSpectrogram
7
+
8
+ from typing import List, Tuple, Union, Any, Optional, Callable
9
+ import math
10
+ from torch_fftconv import fft_conv1d
11
+ from functools import reduce
12
+
13
+ from .functional import (
14
+ compressor_expander,
15
+ lowpass_biquad,
16
+ highpass_biquad,
17
+ equalizer_biquad,
18
+ lowshelf_biquad,
19
+ highshelf_biquad,
20
+ lowpass_biquad_coef,
21
+ highpass_biquad_coef,
22
+ highshelf_biquad_coef,
23
+ lowshelf_biquad_coef,
24
+ equalizer_biquad_coef,
25
+ )
26
+ from .utils import chain_functions
27
+
28
+
29
+ class Clip(nn.Module):
30
+ def __init__(self, max: Optional[float] = None, min: Optional[float] = None):
31
+ super().__init__()
32
+ self.min = min
33
+ self.max = max
34
+
35
+ def forward(self, x):
36
+ if self.min is not None:
37
+ x = torch.clip(x, min=self.min)
38
+ if self.max is not None:
39
+ x = torch.clip(x, max=self.max)
40
+ return x
41
+
42
+
43
+ def clip_delay_eq_Q(m: nn.Module, Q: float):
44
+ if isinstance(m, Delay) and isinstance(m.eq, LowPass):
45
+ register_parametrization(m.eq.params, "Q", Clip(max=Q))
46
+ return m
47
+
48
+
49
+ float2param = lambda x: nn.Parameter(
50
+ torch.tensor(x, dtype=torch.float32) if not isinstance(x, torch.Tensor) else x
51
+ )
52
+
53
+ STEREO_NORM = math.sqrt(2)
54
+
55
+
56
+ def broadcast2stereo(m, args):
57
+ x, *_ = args
58
+ return x.expand(-1, 2, -1) if x.shape[1] == 1 else x
59
+
60
+
61
+ hadamard = lambda x: torch.stack([x.sum(1), x[:, 0] - x[:, 1]], 1) / STEREO_NORM
62
+
63
+
64
+ class Hadamard(nn.Module):
65
+ def forward(self, x):
66
+ return hadamard(x)
67
+
68
+
69
+ class FX(nn.Module):
70
+ def __init__(self, **kwargs) -> None:
71
+ super().__init__()
72
+
73
+ self.params = nn.ParameterDict({k: float2param(v) for k, v in kwargs.items()})
74
+
75
+
76
+ class SmoothingCoef(nn.Module):
77
+ def forward(self, x):
78
+ return x.sigmoid()
79
+
80
+ def right_inverse(self, y):
81
+ return (y / (1 - y)).log()
82
+
83
+
84
+ class CompRatio(nn.Module):
85
+ def forward(self, x):
86
+ return x.exp() + 1
87
+
88
+ def right_inverse(self, y):
89
+ return torch.log(y - 1)
90
+
91
+
92
+ class MinMax(nn.Module):
93
+ def __init__(self, min=0.0, max: Union[float, torch.Tensor] = 1.0):
94
+ super().__init__()
95
+ if isinstance(min, torch.Tensor):
96
+ self.register_buffer("min", min, persistent=False)
97
+ else:
98
+ self.min = min
99
+
100
+ if isinstance(max, torch.Tensor):
101
+ self.register_buffer("max", max, persistent=False)
102
+ else:
103
+ self.max = max
104
+
105
+ self._m = SmoothingCoef()
106
+
107
+ def forward(self, x):
108
+ return self._m(x) * (self.max - self.min) + self.min
109
+
110
+ def right_inverse(self, y):
111
+ return self._m.right_inverse((y - self.min) / (self.max - self.min))
112
+
113
+
114
+ class WrappedPositive(nn.Module):
115
+ def __init__(self, period):
116
+ super().__init__()
117
+ self.period = period
118
+
119
+ def forward(self, x):
120
+ return x.abs() % self.period
121
+
122
+ def right_inverse(self, y):
123
+ return y
124
+
125
+
126
+ class CompressorExpander(FX):
127
+ cmp_ratio_min: float = 1
128
+ cmp_ratio_max: float = 20
129
+
130
+ def __init__(
131
+ self,
132
+ sr: int,
133
+ cmp_ratio: float = 2.0,
134
+ exp_ratio: float = 0.5,
135
+ at_ms: float = 50.0,
136
+ rt_ms: float = 50.0,
137
+ avg_coef: float = 0.3,
138
+ cmp_th: float = -18.0,
139
+ exp_th: float = -54.0,
140
+ make_up: float = 0.0,
141
+ delay: int = 0,
142
+ lookahead: bool = False,
143
+ max_lookahead: float = 15.0,
144
+ ):
145
+ super().__init__(
146
+ cmp_th=cmp_th,
147
+ exp_th=exp_th,
148
+ make_up=make_up,
149
+ avg_coef=avg_coef,
150
+ cmp_ratio=cmp_ratio,
151
+ exp_ratio=exp_ratio,
152
+ )
153
+ # deprecated, please use lookahead instead
154
+ self.delay = delay
155
+ self.sr = sr
156
+
157
+ self.params["at"] = nn.Parameter(ms2coef(torch.tensor(at_ms), sr))
158
+ self.params["rt"] = nn.Parameter(ms2coef(torch.tensor(rt_ms), sr))
159
+
160
+ if lookahead:
161
+ self.params["lookahead"] = nn.Parameter(torch.ones(1) / sr * 1000)
162
+ register_parametrization(
163
+ self.params, "lookahead", WrappedPositive(max_lookahead)
164
+ )
165
+ sinc_length = int(sr * (max_lookahead + 1) * 0.001) + 1
166
+ left_pad_size = int(sr * 0.001)
167
+ self._pad_size = (left_pad_size, sinc_length - left_pad_size - 1)
168
+ self.register_buffer(
169
+ "_arange",
170
+ torch.arange(sinc_length) - left_pad_size,
171
+ persistent=False,
172
+ )
173
+ self.lookahead = lookahead
174
+
175
+ register_parametrization(self.params, "at", SmoothingCoef())
176
+ register_parametrization(self.params, "rt", SmoothingCoef())
177
+ register_parametrization(self.params, "avg_coef", SmoothingCoef())
178
+ register_parametrization(
179
+ self.params, "cmp_ratio", MinMax(self.cmp_ratio_min, self.cmp_ratio_max)
180
+ )
181
+ register_parametrization(self.params, "exp_ratio", SmoothingCoef())
182
+
183
+ def extra_repr(self) -> str:
184
+ with torch.no_grad():
185
+ s = (
186
+ f"attack: {coef2ms(self.params.at, self.sr).item()} (ms)\n"
187
+ f"release: {coef2ms(self.params.rt, self.sr).item()} (ms)\n"
188
+ f"avg_coef: {self.params.avg_coef.item()}\n"
189
+ f"compressor_ratio: {self.params.cmp_ratio.item()}\n"
190
+ f"expander_ratio: {self.params.exp_ratio.item()}\n"
191
+ f"compressor_threshold: {self.params.cmp_th.item()} (dB)\n"
192
+ f"expander_threshold: {self.params.exp_th.item()} (dB)\n"
193
+ f"make_up: {self.params.make_up.item()} (dB)"
194
+ )
195
+ if self.lookahead:
196
+ s += f"\nlookahead: {self.params.lookahead.item()} (ms)"
197
+ return s
198
+
199
+ def forward(self, x):
200
+ if self.lookahead:
201
+ lookahead_in_samples = self.params.lookahead * 0.001 * self.sr
202
+ sinc_filter = torch.sinc(self._arange - lookahead_in_samples)
203
+ lookahead_func = lambda gain: F.conv1d(
204
+ F.pad(
205
+ gain.view(-1, 1, gain.size(-1)), self._pad_size, mode="replicate"
206
+ ),
207
+ sinc_filter[None, None, :],
208
+ ).view(*gain.shape)
209
+ else:
210
+ lookahead_func = lambda x: x
211
+
212
+ return compressor_expander(
213
+ x.reshape(-1, x.shape[-1]),
214
+ lookahead_func=lookahead_func,
215
+ **{k: v for k, v in self.params.items() if k != "lookahead"},
216
+ ).view(*x.shape)
217
+
218
+
219
+ class Panning(FX):
220
+ def __init__(self, pan: float = 0.0):
221
+ assert pan <= 100 and pan >= -100
222
+ super().__init__(pan=(pan + 100) / 200)
223
+
224
+ register_parametrization(self.params, "pan", SmoothingCoef())
225
+
226
+ self.register_forward_pre_hook(broadcast2stereo)
227
+
228
+ def extra_repr(self) -> str:
229
+ with torch.no_grad():
230
+ s = f"pan: {self.params.pan.item() * 200 - 100}"
231
+ return s
232
+
233
+ def forward(self, x: torch.Tensor):
234
+ angle = self.params.pan.view(1) * torch.pi * 0.5
235
+ amp = torch.concat([angle.cos(), angle.sin()]).view(2, 1) * STEREO_NORM
236
+ return x * amp
237
+
238
+
239
+ class StereoWidth(Panning):
240
+ def forward(self, x: torch.Tensor):
241
+ return chain_functions(hadamard, super().forward, hadamard)(x)
242
+
243
+
244
+ class ImpulseResponse(nn.Module):
245
+ def forward(self, h):
246
+ return torch.cat([torch.ones_like(h[..., :1]), h], dim=-1)
247
+
248
+
249
+ class FIR(FX):
250
+ def __init__(
251
+ self,
252
+ length: int,
253
+ channels: int = 2,
254
+ conv_method: str = "direct",
255
+ ):
256
+ super().__init__(kernel=torch.zeros(channels, length - 1))
257
+ self._padding = length - 1
258
+ self.channels = channels
259
+
260
+ match conv_method:
261
+ case "direct":
262
+ self.conv_func = F.conv1d
263
+ case "fft":
264
+ self.conv_func = fft_conv1d
265
+ case _:
266
+ raise ValueError(f"Unknown conv_method: {conv_method}")
267
+
268
+ if channels == 2:
269
+ self.register_forward_pre_hook(broadcast2stereo)
270
+
271
+ def forward(self, x: torch.Tensor):
272
+ zero_padded = F.pad(x[..., :-1], (self._padding, 0), "constant", 0)
273
+ return x + self.conv_func(
274
+ zero_padded, self.params.kernel.flip(1).unsqueeze(1), groups=self.channels
275
+ )
276
+
277
+
278
+ class QFactor(nn.Module):
279
+ def forward(self, x):
280
+ return x.exp()
281
+
282
+ def right_inverse(self, y):
283
+ return y.log()
284
+
285
+
286
+ class LowPass(FX):
287
+ def __init__(
288
+ self,
289
+ sr: int,
290
+ freq: float = 17500.0,
291
+ Q: float = 0.707,
292
+ min_freq: float = 200.0,
293
+ max_freq: float = 18000,
294
+ min_Q: float = 0.5,
295
+ max_Q: float = 10.0,
296
+ ):
297
+ super().__init__(freq=freq, Q=Q)
298
+
299
+ self.sr = sr
300
+ register_parametrization(self.params, "freq", MinMax(min_freq, max_freq))
301
+ register_parametrization(self.params, "Q", MinMax(min_Q, max_Q))
302
+
303
+ def forward(self, x):
304
+ return lowpass_biquad(
305
+ x, sample_rate=self.sr, cutoff_freq=self.params.freq, Q=self.params.Q
306
+ )
307
+
308
+ def extra_repr(self) -> str:
309
+ with torch.no_grad():
310
+ s = f"freq: {self.params.freq.item():.4f}, Q: {self.params.Q.item():.4f}"
311
+ return s
312
+
313
+
314
+ class HighPass(LowPass):
315
+ def __init__(
316
+ self,
317
+ *args,
318
+ freq: float = 200.0,
319
+ min_freq: float = 16.0,
320
+ max_freq: float = 5300.0,
321
+ **kwargs,
322
+ ):
323
+ super().__init__(
324
+ *args, freq=freq, min_freq=min_freq, max_freq=max_freq, **kwargs
325
+ )
326
+
327
+ def forward(self, x):
328
+ return highpass_biquad(
329
+ x, sample_rate=self.sr, cutoff_freq=self.params.freq, Q=self.params.Q
330
+ )
331
+
332
+
333
+ class Peak(FX):
334
+ def __init__(
335
+ self,
336
+ sr: int,
337
+ gain: float = 0.0,
338
+ freq: float = 2000.0,
339
+ Q: float = 0.707,
340
+ min_freq: float = 33.0,
341
+ max_freq: float = 17500.0,
342
+ min_Q: float = 0.2,
343
+ max_Q: float = 20,
344
+ ):
345
+ super().__init__(freq=freq, Q=Q, gain=gain)
346
+
347
+ self.sr = sr
348
+
349
+ register_parametrization(self.params, "freq", MinMax(min_freq, max_freq))
350
+ register_parametrization(self.params, "Q", MinMax(min_Q, max_Q))
351
+
352
+ def forward(self, x):
353
+ return equalizer_biquad(
354
+ x,
355
+ sample_rate=self.sr,
356
+ center_freq=self.params.freq,
357
+ Q=self.params.Q,
358
+ gain=self.params.gain,
359
+ )
360
+
361
+ def extra_repr(self) -> str:
362
+ with torch.no_grad():
363
+ s = f"freq: {self.params.freq.item():.4f}, gain: {self.params.gain.item():.4f}, Q: {self.params.Q.item():.4f}"
364
+ return s
365
+
366
+
367
+ class LowShelf(FX):
368
+ def __init__(
369
+ self,
370
+ sr: int,
371
+ gain: float = 0.0,
372
+ freq: float = 115.0,
373
+ min_freq: float = 30,
374
+ max_freq: float = 200,
375
+ ):
376
+ super().__init__(freq=freq, gain=gain)
377
+
378
+ self.sr = sr
379
+ register_parametrization(self.params, "freq", MinMax(min_freq, max_freq))
380
+
381
+ self.register_buffer("Q", torch.tensor(0.707), persistent=False)
382
+
383
+ def forward(self, x):
384
+ return lowshelf_biquad(
385
+ x,
386
+ sample_rate=self.sr,
387
+ cutoff_freq=self.params.freq,
388
+ gain=self.params.gain,
389
+ Q=self.Q,
390
+ )
391
+
392
+ def extra_repr(self) -> str:
393
+ with torch.no_grad():
394
+ s = f"freq: {self.params.freq.item():.4f}, gain: {self.params.gain.item():.4f}"
395
+ return s
396
+
397
+
398
+ class HighShelf(LowShelf):
399
+ def __init__(
400
+ self,
401
+ *args,
402
+ freq: float = 4525,
403
+ min_freq: float = 750,
404
+ max_freq: float = 8300,
405
+ **kwargs,
406
+ ):
407
+ super().__init__(
408
+ *args, freq=freq, min_freq=min_freq, max_freq=max_freq, **kwargs
409
+ )
410
+
411
+ def forward(self, x):
412
+ return highshelf_biquad(
413
+ x,
414
+ sample_rate=self.sr,
415
+ cutoff_freq=self.params.freq,
416
+ gain=self.params.gain,
417
+ Q=self.Q,
418
+ )
419
+
420
+
421
+ def module2coeffs(
422
+ m: Union[LowPass, HighPass, Peak, LowShelf, HighShelf],
423
+ ) -> Tuple[
424
+ torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor
425
+ ]:
426
+ match m:
427
+ case LowPass():
428
+ return lowpass_biquad_coef(m.sr, m.params.freq, m.params.Q)
429
+ case HighPass():
430
+ return highpass_biquad_coef(m.sr, m.params.freq, m.params.Q)
431
+ case Peak():
432
+ return equalizer_biquad_coef(m.sr, m.params.freq, m.params.Q, m.params.gain)
433
+ case LowShelf():
434
+ return lowshelf_biquad_coef(m.sr, m.params.freq, m.params.gain, m.Q)
435
+ case HighShelf():
436
+ return highshelf_biquad_coef(m.sr, m.params.freq, m.params.gain, m.Q)
437
+ case _:
438
+ raise ValueError(f"Unknown module: {m}")
439
+
440
+
441
+ class AlwaysNegative(nn.Module):
442
+ def forward(self, x):
443
+ return -F.softplus(x)
444
+
445
+ def right_inverse(self, y):
446
+ return torch.log(y.neg().exp() - 1)
447
+
448
+
449
+ class Reverb(FX):
450
+ def __init__(self, ir_len=60000, n_fft=384, hop_length=192, downsample_factor=1):
451
+ super().__init__(
452
+ log_mag=torch.full((2, n_fft // downsample_factor // 2 + 1), -1.0),
453
+ log_mag_delta=torch.full((2, n_fft // downsample_factor // 2 + 1), -5.0),
454
+ )
455
+
456
+ self.steps = (ir_len - n_fft + hop_length - 1) // hop_length
457
+ self.n_fft = n_fft
458
+ self.hop_length = hop_length
459
+ self.downsample_factor = downsample_factor
460
+
461
+ self._noise_angle = nn.Parameter(
462
+ torch.rand(2, n_fft // 2 + 1, self.steps) * 2 * torch.pi
463
+ )
464
+
465
+ self.register_buffer(
466
+ "_arange", torch.arange(self.steps, dtype=torch.float32), persistent=False
467
+ )
468
+ self.spec_forward = Spectrogram(n_fft, hop_length=hop_length, power=None)
469
+ self.spec_inverse = InverseSpectrogram(
470
+ n_fft,
471
+ hop_length=hop_length,
472
+ )
473
+
474
+ register_parametrization(self.params, "log_mag", AlwaysNegative())
475
+ register_parametrization(self.params, "log_mag_delta", AlwaysNegative())
476
+
477
+ self.register_forward_pre_hook(broadcast2stereo)
478
+
479
+ def forward(self, x):
480
+ h = x
481
+ H = self.spec_forward(h)
482
+
483
+ log_mag = self.params.log_mag
484
+ log_mag_delta = self.params.log_mag_delta
485
+
486
+ if self.downsample_factor > 1:
487
+ log_mag = F.interpolate(
488
+ log_mag.unsqueeze(0),
489
+ size=self._noise_angle.size(1),
490
+ align_corners=True,
491
+ mode="linear",
492
+ ).squeeze(0)
493
+ log_mag_delta = F.interpolate(
494
+ log_mag_delta.unsqueeze(0),
495
+ size=self._noise_angle.size(1),
496
+ align_corners=True,
497
+ mode="linear",
498
+ ).squeeze(0)
499
+
500
+ ir_2d = torch.exp(
501
+ log_mag.unsqueeze(-1)
502
+ + log_mag_delta.unsqueeze(-1) * self._arange
503
+ + self._noise_angle * 1j
504
+ )
505
+
506
+ padded_H = F.pad(H.flatten(1, 2), (ir_2d.shape[-1] - 1, 0))
507
+
508
+ H = F.conv1d(
509
+ padded_H,
510
+ hadamard(ir_2d.unsqueeze(0)).flatten(1, 2).flip(-1).transpose(0, 1),
511
+ groups=H.shape[2] * 2,
512
+ ).view(*H.shape)
513
+
514
+ h = self.spec_inverse(H)
515
+ return h
516
+
517
+
518
+ class Delay(FX):
519
+ min_delay: float = 100
520
+ max_delay: float = 1000
521
+
522
+ def __init__(
523
+ self,
524
+ sr: int,
525
+ delay=200.0,
526
+ feedback=0.1,
527
+ gain=0.1,
528
+ ir_duration: float = 2,
529
+ eq: Optional[nn.Module] = None,
530
+ recursive_eq=False,
531
+ ):
532
+ super().__init__(
533
+ delay=delay,
534
+ feedback=feedback,
535
+ gain=gain,
536
+ )
537
+ self.sr = sr
538
+ self.ir_length = int(sr * max(ir_duration, self.max_delay * 0.002))
539
+
540
+ register_parametrization(
541
+ self.params, "delay", MinMax(self.min_delay, self.max_delay)
542
+ )
543
+ register_parametrization(self.params, "feedback", SmoothingCoef())
544
+ register_parametrization(self.params, "gain", SmoothingCoef())
545
+
546
+ self.eq = eq
547
+ self.recursive_eq = recursive_eq
548
+
549
+ self.register_buffer(
550
+ "_arange", torch.arange(self.ir_length, dtype=torch.float32)
551
+ )
552
+
553
+ self.odd_pan = Panning(0)
554
+ self.even_pan = Panning(0)
555
+
556
+ def forward(self, x):
557
+ assert x.size(1) == 1, x.size()
558
+ delay_in_samples = self.sr * self.params.delay * 0.001
559
+ num_delays = self.ir_length // int(delay_in_samples.item() + 1)
560
+ series = torch.arange(1, num_delays + 1, device=x.device)
561
+ decays = self.params.feedback ** (series - 1)
562
+
563
+ if self.recursive_eq and self.eq is not None:
564
+ sinc_index = self._arange - delay_in_samples
565
+ single_sinc_filter = torch.sinc(sinc_index)
566
+ eq_sinc_filter = self.eq(single_sinc_filter)
567
+ H = torch.fft.rfft(eq_sinc_filter)
568
+ H_powered = torch.polar(
569
+ H.abs() ** series.unsqueeze(-1), H.angle() * series.unsqueeze(-1)
570
+ )
571
+ sinc_filters = torch.fft.irfft(H_powered, n=self.ir_length)
572
+ else:
573
+ delays_in_samples = delay_in_samples * series
574
+ sinc_indexes = self._arange - delays_in_samples.unsqueeze(-1)
575
+ sinc_filters = torch.sinc(sinc_indexes)
576
+
577
+ decayed_sinc_filters = sinc_filters * decays.unsqueeze(-1)
578
+ return self._filter(x, decayed_sinc_filters)
579
+
580
+ def _filter(self, x: torch.Tensor, decayed_sinc_filters: torch.Tensor):
581
+ odd_delay_filters = torch.sum(decayed_sinc_filters[::2], 0)
582
+ even_delay_filters = torch.sum(decayed_sinc_filters[1::2], 0)
583
+ stacked_filters = torch.stack([odd_delay_filters, even_delay_filters])
584
+
585
+ if self.eq is not None and not self.recursive_eq:
586
+ stacked_filters = self.eq(stacked_filters)
587
+
588
+ gained_odd_even_filters = stacked_filters * self.params.gain
589
+ padded_x = F.pad(x, (gained_odd_even_filters.size(-1) - 1, 0))
590
+ conv1d = F.conv1d if x.size(-1) > 44100 * 20 else fft_conv1d
591
+ return sum(
592
+ [
593
+ panner(s)
594
+ for panner, s in zip(
595
+ [self.odd_pan, self.even_pan],
596
+ # fft_conv1d(
597
+ conv1d(
598
+ padded_x,
599
+ gained_odd_even_filters.flip(-1).unsqueeze(1),
600
+ ).chunk(2, 1),
601
+ )
602
+ ]
603
+ )
604
+
605
+ def extra_repr(self) -> str:
606
+ with torch.no_grad():
607
+ s = (
608
+ f"delay: {self.sr * self.params.delay.item() * 0.001} (samples)\n"
609
+ f"feedback: {self.params.feedback.item()}\n"
610
+ f"gain: {self.params.gain.item()}"
611
+ )
612
+ return s
613
+
614
+
615
+ class SurrogateDelay(Delay):
616
+ def __init__(self, *args, dropout=0.5, straight_through=False, **kwargs):
617
+ super().__init__(*args, **kwargs)
618
+
619
+ self.dropout = dropout
620
+ self.straight_through = straight_through
621
+ self.log_damp = nn.Parameter(torch.ones(1) * -0.01)
622
+ register_parametrization(self, "log_damp", AlwaysNegative())
623
+
624
+ def forward(self, x):
625
+ assert x.size(1) == 1, x.size()
626
+ if not self.training:
627
+ return super().forward(x)
628
+
629
+ log_damp = self.log_damp
630
+ delay_in_samples = self.sr * self.params.delay * 0.001
631
+ num_delays = self.ir_length // int(delay_in_samples.item() + 1)
632
+ series = torch.arange(1, num_delays + 1, device=x.device)
633
+ decays = self.params.feedback ** (series - 1)
634
+
635
+ if self.recursive_eq and self.eq is not None:
636
+ exp_factor = self._arange[: self.ir_length // 2 + 1]
637
+ damped_exp = torch.exp(
638
+ log_damp * exp_factor
639
+ - 1j * delay_in_samples / self.ir_length * 2 * torch.pi * exp_factor
640
+ )
641
+ sinc_filter = torch.fft.irfft(damped_exp, n=self.ir_length)
642
+ if self.straight_through:
643
+ sinc_index = self._arange - delay_in_samples
644
+ hard_sinc_filter = torch.sinc(sinc_index)
645
+ sinc_filter = sinc_filter + (hard_sinc_filter - sinc_filter).detach()
646
+
647
+ eq_sinc_filter = self.eq(sinc_filter)
648
+ H = torch.fft.rfft(eq_sinc_filter)
649
+
650
+ # use polar form to avoid NaN
651
+ H_powered = torch.polar(
652
+ H.abs() ** series.unsqueeze(-1), H.angle() * series.unsqueeze(-1)
653
+ )
654
+ sinc_filters = torch.fft.irfft(H_powered, n=self.ir_length)
655
+ else:
656
+ exp_factors = series.unsqueeze(-1) * self._arange[: self.ir_length // 2 + 1]
657
+ damped_exps = torch.exp(
658
+ log_damp * exp_factors
659
+ - 1j * delay_in_samples / self.ir_length * 2 * torch.pi * exp_factors
660
+ )
661
+ sinc_filters = torch.fft.irfft(damped_exps, n=self.ir_length)
662
+ if self.straight_through:
663
+ delays_in_samples = delay_in_samples * series
664
+ sinc_indexes = self._arange - delays_in_samples.unsqueeze(-1)
665
+ hard_sinc_filters = torch.sinc(sinc_indexes)
666
+ sinc_filters = (
667
+ sinc_filters + (hard_sinc_filters - sinc_filters).detach()
668
+ )
669
+
670
+ decayed_sinc_filters = sinc_filters * decays.unsqueeze(-1)
671
+
672
+ dropout_mask = torch.rand(x.size(0), device=x.device) < self.dropout
673
+ if not torch.any(dropout_mask):
674
+ return self._filter(x, decayed_sinc_filters)
675
+ elif torch.all(dropout_mask):
676
+ return super().forward(x)
677
+
678
+ out = torch.zeros((x.size(0), 2, x.size(2)), device=x.device)
679
+ out[~dropout_mask] = self._filter(x[~dropout_mask], decayed_sinc_filters)
680
+ out[dropout_mask] = super().forward(x[dropout_mask])
681
+ return out
682
+
683
+ def extra_repr(self) -> str:
684
+ with torch.no_grad():
685
+ return super().extra_repr() + f"\ndamp: {self.log_damp.exp().item()}"
686
+
687
+
688
+ class FSDelay(FX):
689
+ def __init__(
690
+ self,
691
+ sr: int,
692
+ delay=200.0,
693
+ feedback=0.1,
694
+ gain=0.1,
695
+ ir_duration: float = 6,
696
+ eq: Optional[LowPass] = None,
697
+ recursive_eq=False,
698
+ ):
699
+ super().__init__(
700
+ delay=delay,
701
+ feedback=feedback,
702
+ gain=gain,
703
+ )
704
+ self.sr = sr
705
+ self.ir_length = int(sr * max(ir_duration, Delay.max_delay * 0.002))
706
+
707
+ register_parametrization(
708
+ self.params, "delay", MinMax(Delay.min_delay, Delay.max_delay)
709
+ )
710
+ register_parametrization(self.params, "gain", SmoothingCoef())
711
+
712
+ T_60 = ir_duration * 0.75
713
+ max_delay_in_samples = sr * Delay.max_delay * 0.001
714
+ maximum_decay = db2amp(torch.tensor(-60 / sr / T_60 * max_delay_in_samples))
715
+ register_parametrization(self.params, "feedback", MinMax(0, maximum_decay))
716
+
717
+ self.eq = eq
718
+ self.recursive_eq = recursive_eq
719
+
720
+ self.odd_pan = Panning(0)
721
+ self.even_pan = Panning(0)
722
+
723
+ self.register_buffer(
724
+ "_arange", torch.arange(self.ir_length, dtype=torch.float32)
725
+ )
726
+
727
+ def _get_h(self):
728
+ freqs = self._arange[: self.ir_length // 2 + 1] / self.ir_length * 2 * torch.pi
729
+ delay_in_samples = self.sr * self.params.delay * 0.001
730
+
731
+ # construct it like a fdn
732
+ Dinv = torch.exp(1j * freqs * delay_in_samples)
733
+ Dinv2 = torch.exp(2j * freqs * delay_in_samples)
734
+ if self.recursive_eq and self.eq is not None:
735
+ b0, b1, b2, a0, a1, a2 = module2coeffs(self.eq)
736
+ z_inv = torch.exp(-1j * freqs)
737
+ z_inv2 = torch.exp(-2j * freqs)
738
+ eq_H = (b0 + b1 * z_inv + b2 * z_inv2) / (a0 + a1 * z_inv + a2 * z_inv2)
739
+ damp = eq_H * self.params.feedback
740
+ det = Dinv2 - damp * damp
741
+ else:
742
+ damp = torch.full_like(Dinv, self.params.feedback) + 0j
743
+ det = Dinv2 - self.params.feedback.square()
744
+ inv_Dinv_m_A = torch.stack([Dinv, damp], 0) / det
745
+ h = torch.fft.irfft(inv_Dinv_m_A, n=self.ir_length) * self.params.gain
746
+
747
+ if self.eq is not None and not self.recursive_eq:
748
+ h = self.eq(h)
749
+ return h
750
+
751
+ def forward(self, x):
752
+ assert x.size(1) == 1, x.size()
753
+ h = self._get_h()
754
+
755
+ padded_x = F.pad(x, (h.size(-1) - 1, 0))
756
+ conv1d = F.conv1d if x.size(-1) > 44100 * 20 else fft_conv1d
757
+ return sum(
758
+ [
759
+ panner(s)
760
+ for panner, s in zip(
761
+ [self.odd_pan, self.even_pan],
762
+ conv1d(
763
+ padded_x,
764
+ h.flip(-1).unsqueeze(1),
765
+ ).chunk(2, 1),
766
+ )
767
+ ]
768
+ )
769
+
770
+ def extra_repr(self) -> str:
771
+ with torch.no_grad():
772
+ s = (
773
+ f"delay: {self.sr * self.params.delay.item() * 0.001} (samples)\n"
774
+ f"feedback: {self.params.feedback.item()}\n"
775
+ f"gain: {self.params.gain.item()}"
776
+ )
777
+ return s
778
+
779
+
780
+ class FSSurrogateDelay(FSDelay):
781
+ def __init__(self, *args, straight_through=False, **kwargs):
782
+ super().__init__(*args, **kwargs)
783
+
784
+ self.straight_through = straight_through
785
+ self.log_damp = nn.Parameter(torch.ones(1) * -0.0001)
786
+ register_parametrization(self, "log_damp", AlwaysNegative())
787
+
788
+ def _get_h(self):
789
+ if not self.training:
790
+ return super()._get_h()
791
+
792
+ log_damp = self.log_damp
793
+ delay_in_samples = self.sr * self.params.delay * 0.001
794
+
795
+ exp_factor = self._arange[: self.ir_length // 2 + 1]
796
+ freqs = exp_factor / self.ir_length * 2 * torch.pi
797
+ D = torch.exp(log_damp * exp_factor - 1j * delay_in_samples * freqs)
798
+ D2 = torch.exp(log_damp * exp_factor * 2 - 2j * delay_in_samples * freqs)
799
+
800
+ if self.straight_through:
801
+ D_orig = torch.exp(-1j * delay_in_samples * freqs)
802
+ D2_orig = torch.exp(-2j * delay_in_samples * freqs)
803
+ D = torch.stack([D, D_orig], 0)
804
+ D2 = torch.stack([D2, D2_orig], 0)
805
+
806
+ if self.recursive_eq and self.eq is not None:
807
+ b0, b1, b2, a0, a1, a2 = module2coeffs(self.eq)
808
+ z_inv = torch.exp(-1j * freqs)
809
+ z_inv2 = torch.exp(-2j * freqs)
810
+ eq_H = (b0 + b1 * z_inv + b2 * z_inv2) / (a0 + a1 * z_inv + a2 * z_inv2)
811
+ damp = eq_H * self.params.feedback
812
+ odd_H = D / (1 - damp * damp * D2)
813
+ even_H = odd_H * D * damp
814
+ else:
815
+ damp = torch.full_like(D, self.params.feedback) + 0j
816
+ odd_H = D / (1 - self.params.feedback.square() * D2)
817
+ even_H = odd_H * D * self.params.feedback
818
+
819
+ inv_Dinv_m_A = torch.stack([odd_H, even_H], 0)
820
+ h = torch.fft.irfft(inv_Dinv_m_A, n=self.ir_length)
821
+
822
+ if self.straight_through:
823
+ damped_h, orig_h = h.unbind(1)
824
+ h = damped_h + (orig_h - damped_h).detach()
825
+
826
+ if self.eq is not None and not self.recursive_eq:
827
+ h = self.eq(h)
828
+ return h * self.params.gain
829
+
830
+ def extra_repr(self) -> str:
831
+ with torch.no_grad():
832
+ return super().extra_repr() + f"\ndamp: {self.log_damp.exp().item()}"
833
+
834
+
835
+ class SendFXsAndSum(FX):
836
+ def __init__(self, *args, cross_send=True, pan_direct=False):
837
+ super().__init__(
838
+ **(
839
+ {
840
+ f"sends_{i}": torch.full([len(args) - i - 1], 0.01)
841
+ for i in range(len(args) - 1)
842
+ }
843
+ if cross_send
844
+ else {}
845
+ )
846
+ )
847
+ self.effects = nn.ModuleList(args)
848
+ if pan_direct:
849
+ self.pan = Panning()
850
+
851
+ if cross_send:
852
+ for i in range(len(args) - 1):
853
+ register_parametrization(self.params, f"sends_{i}", SmoothingCoef())
854
+
855
+ def forward(self, x):
856
+ if hasattr(self, "pan"):
857
+ di = self.pan(x)
858
+ else:
859
+ di = x
860
+
861
+ if len(self.params) == 0:
862
+ return reduce(
863
+ lambda x, y: x[..., : y.shape[-1]] + y[..., : x.shape[-1]],
864
+ map(lambda f: f(x), self.effects),
865
+ di,
866
+ )
867
+
868
+ def f(states, ps):
869
+ x, cum_sends = states
870
+ m, send_gains = ps
871
+ h = m(cum_sends[0])
872
+ return (
873
+ x[..., : h.shape[-1]] + h[..., : x.shape[-1]],
874
+ (
875
+ None
876
+ if cum_sends.size(0) == 1
877
+ else cum_sends[1:, ..., : h.shape[-1]]
878
+ + send_gains[:, None, None, None] * h[..., : cum_sends.shape[-1]]
879
+ ),
880
+ )
881
+
882
+ return reduce(
883
+ f,
884
+ zip(
885
+ self.effects,
886
+ [self.params[f"sends_{i}"] for i in range(len(self.effects) - 1)]
887
+ + [None],
888
+ ),
889
+ (di, x.unsqueeze(0).expand(len(self.effects), -1, -1, -1)),
890
+ )[0]
891
+
892
+
893
+ class UniLossLess(nn.Module):
894
+ def forward(self, x):
895
+ tri = x.triu(1)
896
+ return torch.linalg.matrix_exp(tri - tri.T)
897
+
898
+
899
+ class FDN(FX):
900
+ max_delay = 100
901
+
902
+ def __init__(
903
+ self,
904
+ sr: int,
905
+ ir_duration: float = 1.0,
906
+ delays=(997, 1153, 1327, 1559, 1801, 2099),
907
+ trainable_delay=False,
908
+ num_decay_freq=1,
909
+ delay_independent_decay=False,
910
+ eq: Optional[nn.Module] = None,
911
+ ):
912
+ # beta = torch.distributions.Beta(1.1, 6)
913
+ num_delays = len(delays)
914
+ super().__init__(
915
+ b=torch.ones(num_delays, 2) / num_delays,
916
+ c=torch.zeros(2, num_delays),
917
+ U=torch.randn(num_delays, num_delays) / num_delays**0.5,
918
+ gamma=torch.rand(
919
+ num_decay_freq, num_delays if not delay_independent_decay else 1
920
+ )
921
+ * 0.2
922
+ + 0.4,
923
+ # delays=beta.sample((num_delays,)) * 64,
924
+ )
925
+
926
+ self.sr = sr
927
+ self.ir_length = int(sr * ir_duration)
928
+
929
+ # ir_duration = T_60
930
+ T_60 = ir_duration * 0.75
931
+ delays = torch.tensor(delays)
932
+ if delay_independent_decay:
933
+ gamma_max = db2amp(-60 / sr / T_60 * delays.min())
934
+ else:
935
+ gamma_max = db2amp(-60 / sr / T_60 * delays)
936
+
937
+ register_parametrization(self.params, "gamma", MinMax(0, gamma_max))
938
+ register_parametrization(self.params, "U", UniLossLess())
939
+
940
+ if not trainable_delay:
941
+ self.register_buffer(
942
+ "delays",
943
+ delays,
944
+ )
945
+ else:
946
+ self.params["delays"] = nn.Parameter(delays / sr * 1000)
947
+ register_parametrization(self.params, "delays", MinMax(0, self.max_delay))
948
+
949
+ self.register_forward_pre_hook(broadcast2stereo)
950
+
951
+ self.eq = eq
952
+
953
+ def forward(self, x):
954
+ conv1d = F.conv1d if x.size(-1) > 44100 * 20 else fft_conv1d
955
+
956
+ c = self.params.c + 0j
957
+ b = self.params.b + 0j
958
+
959
+ gamma = self.params.gamma
960
+ delays = self.delays if hasattr(self, "delays") else self.params.delays
961
+
962
+ if gamma.size(0) > 1:
963
+ gamma = F.interpolate(
964
+ gamma.T.unsqueeze(1),
965
+ size=self.ir_length // 2 + 1,
966
+ align_corners=True,
967
+ mode="linear",
968
+ ).transpose(0, 2)
969
+
970
+ if gamma.size(2) == 1:
971
+ gamma = gamma ** (delays / delays.min())
972
+
973
+ A = self.params.U * gamma
974
+
975
+ freqs = (
976
+ torch.arange(self.ir_length // 2 + 1, device=x.device)
977
+ / self.ir_length
978
+ * 2
979
+ * torch.pi
980
+ )
981
+ invD = torch.exp(1j * freqs[:, None] * delays)
982
+ # H = c @ torch.linalg.inv(torch.diag_embed(invD) - A) @ b
983
+ H = c @ torch.linalg.solve(torch.diag_embed(invD) - A, b)
984
+
985
+ h = torch.fft.irfft(H.permute(1, 2, 0), n=self.ir_length)
986
+
987
+ if self.eq is not None:
988
+ h = self.eq(h)
989
+
990
+ # return fft_conv1d(
991
+ return conv1d(
992
+ F.pad(x, (self.ir_length - 1, 0)),
993
+ h.flip(-1),
994
+ )
modules/rt.py ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ from numba import njit, prange
3
+ from scipy.signal import firwin2
4
+ import torch
5
+
6
+ from .fx import Delay, FDN, module2coeffs
7
+
8
+
9
+ @njit
10
+ def rt_fdn(
11
+ x: np.ndarray,
12
+ delay_steps: np.ndarray,
13
+ firs: np.ndarray,
14
+ U: np.ndarray,
15
+ ):
16
+ _, T = x.shape
17
+ M = delay_steps.shape[0]
18
+ order = firs.shape[1]
19
+ y = np.zeros_like(x)
20
+ buf_size = delay_steps.max() + order
21
+ delay_buf = np.zeros((M, buf_size), dtype=x.dtype)
22
+ read_pointer = 0
23
+
24
+ for t in range(T):
25
+ # out = delay_buf[(range(M), read_pointers)]
26
+ # for i in prange(M):
27
+ # out[i] = delay_buf[i, read_pointers[i]]
28
+ out = delay_buf[:, read_pointer]
29
+ y[:, t] = out
30
+
31
+ s = out * firs[:, 0]
32
+ # indexes = (read_pointers[:, None] - np.arange(1, order)) % buf_sizes[:, None]
33
+ # reg = np.take_along_axis(delay_buf, indexes, axis=1)
34
+ # s += firs[:, 1:] @ reg.T
35
+ # for j in prange(M):
36
+ # s[j] += firs[j, 1:] @ delay_buf[j, indexes[j]]
37
+ for i in prange(M):
38
+ for j in prange(1, order):
39
+ s[i] += firs[i, j] * delay_buf[i, (read_pointer - j) % buf_size]
40
+ # for i in prange(1, order):
41
+ # s += firs[:, i] * delay_buf[:, (read_pointer - i) % buf_size]
42
+
43
+ feedback = U @ s + x[:, t]
44
+ w_pointers = (read_pointer + delay_steps) % buf_size
45
+ # delay_buf[(range(M), w_pointers)] = s + B @ x[:, t]
46
+ for i in prange(M):
47
+ delay_buf[i, w_pointers[i]] = feedback[i]
48
+ read_pointer = (read_pointer + 1) % buf_size
49
+
50
+ return y
51
+
52
+
53
+ @njit
54
+ def rt_delay(
55
+ x: np.ndarray,
56
+ delay_step: int,
57
+ b0: float,
58
+ b1: float,
59
+ b2: float,
60
+ a1: float,
61
+ a2: float,
62
+ ):
63
+ T = x.shape[0]
64
+ y = np.zeros((2, T), dtype=x.dtype)
65
+ buf_size = delay_step + 1
66
+ read_pointer = 0
67
+ delay_buf = np.zeros((2, buf_size), dtype=x.dtype)
68
+ bq_buf = np.zeros((2, 2), dtype=x.dtype)
69
+
70
+ for t in range(T):
71
+ out = delay_buf[:, read_pointer]
72
+ y[:, t] = out
73
+
74
+ s = bq_buf[:, 0] + b0 * out
75
+ bq_buf[:, 0] = bq_buf[:, 1] + b1 * out - a1 * s
76
+ bq_buf[:, 1] = b2 * out - a2 * s
77
+
78
+ w_pointer = (read_pointer + delay_step) % buf_size
79
+ # cross feeding because of ping-pong delay
80
+ delay_buf[0, w_pointer] = s[1] + x[t]
81
+ delay_buf[1, w_pointer] = s[0]
82
+
83
+ read_pointer = (read_pointer + 1) % buf_size
84
+
85
+ return y
86
+
87
+
88
+ class RealTimeDelay(Delay):
89
+ def forward(self, x):
90
+ assert x.size(1) == 1, x.size()
91
+ assert x.size(0) == 1, x.size()
92
+ with torch.no_grad():
93
+ delay_in_samples = round(self.sr * self.params.delay.item() * 0.001)
94
+ feedback = self.params.feedback.item()
95
+
96
+ if self.recursive_eq and self.eq is not None:
97
+ b0, b1, b2, a0, a1, a2 = [p.item() for p in module2coeffs(self.eq)]
98
+ b0, b1, b2, a1, a2 = b0 / a0, b1 / a0, b2 / a0, a1 / a0, a2 / a0
99
+ else:
100
+ b0, b1, b2, a1, a2 = 1.0, 0.0, 0.0, 0.0, 0.0
101
+
102
+ b0 = b0 * feedback
103
+ b1 = b1 * feedback
104
+ b2 = b2 * feedback
105
+ x_numpy = x.squeeze().cpu().numpy()
106
+ y_numpy = rt_delay(x_numpy, delay_in_samples, b0, b1, b2, a1, a2)
107
+ y = torch.from_numpy(y_numpy).unsqueeze(0).to(x.device) * self.params.gain
108
+ return self.odd_pan(y[:, :1]) + self.even_pan(y[:, 1:])
109
+
110
+
111
+ class RealTimeFDN(FDN):
112
+ def forward(self, x):
113
+ assert x.size(1) == 2, x.size()
114
+ assert x.size(0) == 1, x.size()
115
+ with torch.no_grad():
116
+ delays = self.delays if hasattr(self, "delays") else self.params.delays
117
+
118
+ c = self.params.c
119
+ b = self.params.b
120
+ gamma = self.params.gamma.clone()
121
+
122
+ if gamma.size(1) == 1:
123
+ gamma = gamma ** (delays / delays.min())
124
+
125
+ freqs = np.linspace(0, 1, gamma.size(0))
126
+ firs = np.apply_along_axis(
127
+ lambda x: firwin2(gamma.size(0) * 2 - 1, freqs, x, fs=2),
128
+ 1,
129
+ gamma.cpu().numpy().T,
130
+ ).astype(np.float32)
131
+ shifted_delays = delays - firs.shape[1] // 2
132
+
133
+ U = self.params.U
134
+
135
+ x = b @ x.squeeze()
136
+
137
+ y_numpy = rt_fdn(
138
+ x.cpu().numpy(),
139
+ # delays.cpu().numpy(),
140
+ shifted_delays.cpu().numpy(),
141
+ # firs.cpu().numpy(),
142
+ firs,
143
+ U.cpu().numpy(),
144
+ )
145
+ y = c @ torch.from_numpy(y_numpy).to(x.device)
146
+ y = y.unsqueeze(0)
147
+
148
+ if self.eq is not None:
149
+ y = self.eq(y)
150
+ return y
modules/utils.py ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import numpy as np
3
+ from functools import reduce, partial
4
+ from operator import mul
5
+ from torch.nn.utils.parametrize import is_parametrized, remove_parametrizations
6
+
7
+
8
+ def chain_functions(*functions):
9
+ return lambda initial: reduce(lambda x, f: f(x), functions, initial)
10
+
11
+
12
+ def remove_fx_parametrisation(fx):
13
+ def remover(m):
14
+ if not is_parametrized(m):
15
+ return
16
+ for k in list(m.parametrizations.keys()):
17
+ remove_parametrizations(m, k)
18
+
19
+ fx.apply(remover)
20
+ return fx
21
+
22
+
23
+ def get_chunks(keys, original_shapes):
24
+ (position, _), *_ = filter(lambda i_k: "U.original" in i_k[1], enumerate(keys))
25
+ original_chunks = list(map(partial(reduce, mul), original_shapes))
26
+ U_matrix_shape = original_shapes[position]
27
+
28
+ dimensions_not_need = np.ravel_multi_index(
29
+ np.tril_indices(**dict(zip(("n", "m"), U_matrix_shape))), U_matrix_shape
30
+ ) + sum(original_chunks[:position])
31
+
32
+ selected_chunks = (
33
+ original_chunks[:position]
34
+ + [original_chunks[position] - dimensions_not_need.size]
35
+ + original_chunks[position + 1 :]
36
+ )
37
+ return selected_chunks, position, U_matrix_shape, dimensions_not_need
38
+
39
+
40
+ def vec2statedict(
41
+ x: torch.Tensor,
42
+ keys,
43
+ original_shapes,
44
+ selected_chunks,
45
+ position,
46
+ U_matrix_shape,
47
+ ):
48
+ chunks = list(torch.split(x, selected_chunks))
49
+ U = x.new_zeros(reduce(mul, U_matrix_shape))
50
+ U[
51
+ np.ravel_multi_index(
52
+ np.triu_indices(n=U_matrix_shape[0], k=1, m=U_matrix_shape[1]),
53
+ U_matrix_shape,
54
+ )
55
+ ] = chunks[position]
56
+ chunks[position] = U
57
+
58
+ state_dict = dict(
59
+ zip(
60
+ keys,
61
+ map(lambda x, shape: x.reshape(*shape), chunks, original_shapes),
62
+ )
63
+ )
64
+ return state_dict
presets/fx_config.yaml ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ epochs: 2000
2
+ data_dir: null
3
+ log_dir: null
4
+ lufs: -18
5
+ sr: 44100
6
+ chunk_duration: 12
7
+ chunk_overlap: 5
8
+ device: cuda
9
+ batch_size: 35
10
+ dataset: medley_vocal
11
+ regularise_delay: true
12
+ model:
13
+ _target_: torch.nn.Sequential
14
+ _args_:
15
+ - _target_: modules.fx.Peak
16
+ sr: 44100
17
+ freq: 800
18
+ min_freq: 33
19
+ max_freq: 5400
20
+ - _target_: modules.fx.Peak
21
+ sr: 44100
22
+ freq: 4000
23
+ min_freq: 200
24
+ max_freq: 17500
25
+ - _target_: modules.fx.LowShelf
26
+ sr: 44100
27
+ freq: 115
28
+ min_freq: 30
29
+ max_freq: 200
30
+ - _target_: modules.fx.HighShelf
31
+ sr: 44100
32
+ freq: 6000
33
+ min_freq: 750
34
+ max_freq: 8300
35
+ - _target_: modules.fx.LowPass
36
+ sr: 44100
37
+ freq: 17500
38
+ min_freq: 200
39
+ max_freq: 18000
40
+ - _target_: modules.fx.HighPass
41
+ sr: 44100
42
+ freq: 200
43
+ min_freq: 16
44
+ max_freq: 5300
45
+ - _target_: modules.fx.CompressorExpander
46
+ sr: 44100
47
+ cmp_ratio: 2.0
48
+ exp_ratio: 0.5
49
+ at_ms: 50.0
50
+ rt_ms: 50.0
51
+ avg_coef: 0.3
52
+ cmp_th: -18.0
53
+ exp_th: -48.0
54
+ make_up: 0.0
55
+ lookahead: true
56
+ max_lookahead: 15
57
+ - _target_: modules.fx.SendFXsAndSum
58
+ _args_:
59
+ - _target_: modules.fx.SurrogateDelay
60
+ sr: 44100
61
+ delay: 400
62
+ dropout: 0
63
+ straight_through: true
64
+ recursive_eq: true
65
+ ir_duration: 4
66
+ eq:
67
+ _target_: modules.fx.LowPass
68
+ sr: 44100
69
+ freq: 8000
70
+ min_freq: 200
71
+ max_freq: 16000
72
+ min_Q: 0.5
73
+ max_Q: 2
74
+ - _target_: modules.fx.FDN
75
+ sr: 44100
76
+ delays:
77
+ - 997
78
+ - 1153
79
+ - 1327
80
+ - 1559
81
+ - 1801
82
+ - 2099
83
+ num_decay_freq: 49
84
+ delay_independent_decay: true
85
+ ir_duration: 12
86
+ eq:
87
+ _target_: torch.nn.Sequential
88
+ _args_:
89
+ - _target_: modules.fx.Peak
90
+ sr: 44100
91
+ freq: 800
92
+ min_freq: 200
93
+ max_freq: 2500
94
+ min_Q: 0.1
95
+ max_Q: 3
96
+ - _target_: modules.fx.Peak
97
+ sr: 44100
98
+ freq: 4000
99
+ min_freq: 600
100
+ max_freq: 7000
101
+ min_Q: 0.1
102
+ max_Q: 3
103
+ - _target_: modules.fx.LowShelf
104
+ sr: 44100
105
+ freq: 115
106
+ min_freq: 30
107
+ max_freq: 450
108
+ - _target_: modules.fx.HighShelf
109
+ sr: 44100
110
+ freq: 8000
111
+ min_freq: 1500
112
+ max_freq: 16000
113
+ cross_send: true
114
+ pan_direct: true
115
+ optimiser:
116
+ _target_: torch.optim.Adam
117
+ lr: 0.01
118
+ mss:
119
+ fft_sizes:
120
+ - 128
121
+ - 512
122
+ - 2048
123
+ hop_sizes:
124
+ - 32
125
+ - 128
126
+ - 512
127
+ mldr:
128
+ s_taus:
129
+ - 50
130
+ - 100
131
+ l_taus:
132
+ - 1000
133
+ - 2000
134
+ loss_fn:
135
+ _target_: loss.SumLosses
136
+ weights:
137
+ - 1.0
138
+ - 0.5
139
+ - 0.5
140
+ - 0.25
141
+ loss_fns:
142
+ - _target_: auraloss.freq.MultiResolutionSTFTLoss
143
+ fft_sizes:
144
+ - 128
145
+ - 512
146
+ - 2048
147
+ hop_sizes:
148
+ - 32
149
+ - 128
150
+ - 512
151
+ win_lengths:
152
+ - 128
153
+ - 512
154
+ - 2048
155
+ sample_rate: 44100
156
+ perceptual_weighting: true
157
+ - _target_: auraloss.freq.SumAndDifferenceSTFTLoss
158
+ fft_sizes:
159
+ - 128
160
+ - 512
161
+ - 2048
162
+ hop_sizes:
163
+ - 32
164
+ - 128
165
+ - 512
166
+ win_lengths:
167
+ - 128
168
+ - 512
169
+ - 2048
170
+ sample_rate: 44100
171
+ perceptual_weighting: true
172
+ - _target_: loss.ldr.MLDRLoss
173
+ sr: 44100
174
+ s_taus:
175
+ - 50
176
+ - 100
177
+ l_taus:
178
+ - 1000
179
+ - 2000
180
+ - _target_: loss.ldr.MLDRLoss
181
+ sr: 44100
182
+ mid_side: true
183
+ s_taus:
184
+ - 50
185
+ - 100
186
+ l_taus:
187
+ - 1000
188
+ - 2000
presets/internal/info.json ADDED
@@ -0,0 +1,1695 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "runs": [
3
+ "~/processed/anon_tokyo/run_1",
4
+ "~/processed/anon_tokyo/run_1",
5
+ "~/processed/anon_tokyo/run_1",
6
+ "~/processed/anon_tokyo/run_1",
7
+ "~/processed/anon_tokyo/run_1",
8
+ "~/processed/anon_tokyo/run_1",
9
+ "~/processed/anon_tokyo/run_1",
10
+ "~/processed/anon_tokyo/run_1",
11
+ "~/processed/anon_tokyo/run_1",
12
+ "~/processed/anon_tokyo/run_1",
13
+ "~/processed/anon_tokyo/run_1",
14
+ "~/processed/anon_tokyo/run_1",
15
+ "~/processed/anon_tokyo/run_1",
16
+ "~/processed/anon_tokyo/run_1",
17
+ "~/processed/anon_tokyo/run_1",
18
+ "~/processed/anon_tokyo/run_1",
19
+ "~/processed/anon_tokyo/run_1",
20
+ "~/processed/anon_tokyo/run_1",
21
+ "~/processed/anon_tokyo/run_1",
22
+ "~/processed/anon_tokyo/run_1",
23
+ "~/processed/anon_tokyo/run_1",
24
+ "~/processed/anon_tokyo/run_1",
25
+ "~/processed/anon_tokyo/run_1",
26
+ "~/processed/anon_tokyo/run_1",
27
+ "~/processed/anon_tokyo/run_1",
28
+ "~/processed/anon_tokyo/run_1",
29
+ "~/processed/anon_tokyo/run_1",
30
+ "~/processed/anon_tokyo/run_1",
31
+ "~/processed/anon_tokyo/run_1",
32
+ "~/processed/anon_tokyo/run_1",
33
+ "~/processed/anon_tokyo/run_1",
34
+ "~/processed/anon_tokyo/run_1",
35
+ "~/processed/anon_tokyo/run_1",
36
+ "~/processed/anon_tokyo/run_1",
37
+ "~/processed/anon_tokyo/run_1",
38
+ "~/processed/anon_tokyo/run_1",
39
+ "~/processed/anon_tokyo/run_1",
40
+ "~/processed/anon_tokyo/run_1",
41
+ "~/processed/anon_tokyo/run_1",
42
+ "~/processed/anon_tokyo/run_1",
43
+ "~/processed/anon_tokyo/run_1",
44
+ "~/processed/anon_tokyo/run_1",
45
+ "~/processed/anon_tokyo/run_1",
46
+ "~/processed/anon_tokyo/run_1",
47
+ "~/processed/anon_tokyo/run_1",
48
+ "~/processed/anon_tokyo/run_1",
49
+ "~/processed/anon_tokyo/run_1",
50
+ "~/processed/anon_tokyo/run_1",
51
+ "~/processed/anon_tokyo/run_1",
52
+ "~/processed/anon_tokyo/run_1",
53
+ "~/processed/anon_tokyo/run_1",
54
+ "~/processed/anon_tokyo/run_1",
55
+ "~/processed/anon_tokyo/run_1",
56
+ "~/processed/anon_tokyo/run_1",
57
+ "~/processed/anon_tokyo/run_1",
58
+ "~/processed/anon_tokyo/run_1",
59
+ "~/processed/anon_tokyo/run_1",
60
+ "~/processed/anon_tokyo/run_1",
61
+ "~/processed/anon_tokyo/run_1",
62
+ "~/processed/anon_tokyo/run_1",
63
+ "~/processed/anon_tokyo/run_1",
64
+ "~/processed/anon_tokyo/run_1",
65
+ "~/processed/anon_tokyo/run_1",
66
+ "~/processed/anon_tokyo/run_1",
67
+ "~/processed/anon_tokyo/run_1",
68
+ "~/processed/anon_tokyo/run_1",
69
+ "~/processed/anon_tokyo/run_1",
70
+ "~/processed/anon_tokyo/run_1",
71
+ "~/processed/anon_tokyo/run_1",
72
+ "~/processed/anon_tokyo/run_1",
73
+ "~/processed/anon_tokyo/run_1",
74
+ "~/processed/anon_tokyo/run_1",
75
+ "~/processed/anon_tokyo/run_1",
76
+ "~/processed/anon_tokyo/run_1",
77
+ "~/processed/anon_tokyo/run_1",
78
+ "~/processed/anon_tokyo/run_1",
79
+ "~/processed/anon_tokyo/run_1",
80
+ "~/processed/anon_tokyo/run_1",
81
+ "~/processed/anon_tokyo/run_1",
82
+ "~/processed/anon_tokyo/run_1",
83
+ "~/processed/anon_tokyo/run_1",
84
+ "~/processed/anon_tokyo/run_1",
85
+ "~/processed/anon_tokyo/run_1",
86
+ "~/processed/anon_tokyo/run_1",
87
+ "~/processed/anon_tokyo/run_1",
88
+ "~/processed/anon_tokyo/run_1",
89
+ "~/processed/anon_tokyo/run_1",
90
+ "~/processed/anon_tokyo/run_1",
91
+ "~/processed/anon_tokyo/run_1",
92
+ "~/processed/anon_tokyo/run_1",
93
+ "~/processed/anon_tokyo/run_1",
94
+ "~/processed/anon_tokyo/run_1",
95
+ "~/processed/anon_tokyo/run_1",
96
+ "~/processed/anon_tokyo/run_1",
97
+ "~/processed/anon_tokyo/run_1",
98
+ "~/processed/anon_tokyo/run_1",
99
+ "~/processed/anon_tokyo/run_1",
100
+ "~/processed/anon_tokyo/run_1",
101
+ "~/processed/anon_tokyo/run_1",
102
+ "~/processed/anon_tokyo/run_1",
103
+ "~/processed/anon_tokyo/run_1",
104
+ "~/processed/anon_tokyo/run_1",
105
+ "~/processed/anon_tokyo/run_1",
106
+ "~/processed/anon_tokyo/run_1",
107
+ "~/processed/anon_tokyo/run_1",
108
+ "~/processed/anon_tokyo/run_1",
109
+ "~/processed/anon_tokyo/run_1",
110
+ "~/processed/anon_tokyo/run_1",
111
+ "~/processed/anon_tokyo/run_1",
112
+ "~/processed/anon_tokyo/run_1",
113
+ "~/processed/anon_tokyo/run_1",
114
+ "~/processed/anon_tokyo/run_1",
115
+ "~/processed/anon_tokyo/run_1",
116
+ "~/processed/anon_tokyo/run_1",
117
+ "~/processed/anon_tokyo/run_1",
118
+ "~/processed/anon_tokyo/run_1",
119
+ "~/processed/anon_tokyo/run_1",
120
+ "~/processed/anon_tokyo/run_1",
121
+ "~/processed/anon_tokyo/run_1",
122
+ "~/processed/anon_tokyo/run_1",
123
+ "~/processed/anon_tokyo/run_1",
124
+ "~/processed/anon_tokyo/run_1",
125
+ "~/processed/anon_tokyo/run_1",
126
+ "~/processed/anon_tokyo/run_1",
127
+ "~/processed/anon_tokyo/run_1",
128
+ "~/processed/anon_tokyo/run_1",
129
+ "~/processed/anon_tokyo/run_1",
130
+ "~/processed/anon_tokyo/run_1",
131
+ "~/processed/anon_tokyo/run_1",
132
+ "~/processed/anon_tokyo/run_1",
133
+ "~/processed/anon_tokyo/run_1",
134
+ "~/processed/anon_tokyo/run_1",
135
+ "~/processed/anon_tokyo/run_1",
136
+ "~/processed/anon_tokyo/run_1",
137
+ "~/processed/anon_tokyo/run_1",
138
+ "~/processed/anon_tokyo/run_1",
139
+ "~/processed/anon_tokyo/run_1",
140
+ "~/processed/anon_tokyo/run_1",
141
+ "~/processed/anon_tokyo/run_1",
142
+ "~/processed/anon_tokyo/run_1",
143
+ "~/processed/anon_tokyo/run_1",
144
+ "~/processed/anon_tokyo/run_1",
145
+ "~/processed/anon_tokyo/run_1",
146
+ "~/processed/anon_tokyo/run_1",
147
+ "~/processed/anon_tokyo/run_1",
148
+ "~/processed/anon_tokyo/run_1",
149
+ "~/processed/anon_tokyo/run_1",
150
+ "~/processed/anon_tokyo/run_1",
151
+ "~/processed/anon_tokyo/run_1",
152
+ "~/processed/anon_tokyo/run_1",
153
+ "~/processed/anon_tokyo/run_1",
154
+ "~/processed/anon_tokyo/run_1",
155
+ "~/processed/anon_tokyo/run_1",
156
+ "~/processed/anon_tokyo/run_1",
157
+ "~/processed/anon_tokyo/run_1",
158
+ "~/processed/anon_tokyo/run_1",
159
+ "~/processed/anon_tokyo/run_1",
160
+ "~/processed/anon_tokyo/run_1",
161
+ "~/processed/anon_tokyo/run_1",
162
+ "~/processed/anon_tokyo/run_1",
163
+ "~/processed/anon_tokyo/run_1",
164
+ "~/processed/anon_tokyo/run_1",
165
+ "~/processed/anon_tokyo/run_1",
166
+ "~/processed/anon_tokyo/run_1",
167
+ "~/processed/anon_tokyo/run_1",
168
+ "~/processed/anon_tokyo/run_1",
169
+ "~/processed/anon_tokyo/run_1",
170
+ "~/processed/anon_tokyo/run_1",
171
+ "~/processed/anon_tokyo/run_1",
172
+ "~/processed/anon_tokyo/run_1",
173
+ "~/processed/anon_tokyo/run_1",
174
+ "~/processed/anon_tokyo/run_1",
175
+ "~/processed/anon_tokyo/run_1",
176
+ "~/processed/anon_tokyo/run_1",
177
+ "~/processed/anon_tokyo/run_1",
178
+ "~/processed/anon_tokyo/run_1",
179
+ "~/processed/anon_tokyo/run_1",
180
+ "~/processed/anon_tokyo/run_1",
181
+ "~/processed/anon_tokyo/run_1",
182
+ "~/processed/anon_tokyo/run_1",
183
+ "~/processed/anon_tokyo/run_1",
184
+ "~/processed/anon_tokyo/run_1",
185
+ "~/processed/anon_tokyo/run_1",
186
+ "~/processed/anon_tokyo/run_1",
187
+ "~/processed/anon_tokyo/run_1",
188
+ "~/processed/anon_tokyo/run_1",
189
+ "~/processed/anon_tokyo/run_1",
190
+ "~/processed/anon_tokyo/run_1",
191
+ "~/processed/anon_tokyo/run_1",
192
+ "~/processed/anon_tokyo/run_1",
193
+ "~/processed/anon_tokyo/run_1",
194
+ "~/processed/anon_tokyo/run_1",
195
+ "~/processed/anon_tokyo/run_1",
196
+ "~/processed/anon_tokyo/run_1",
197
+ "~/processed/anon_tokyo/run_1",
198
+ "~/processed/anon_tokyo/run_1",
199
+ "~/processed/anon_tokyo/run_1",
200
+ "~/processed/anon_tokyo/run_1",
201
+ "~/processed/anon_tokyo/run_1",
202
+ "~/processed/anon_tokyo/run_1",
203
+ "~/processed/anon_tokyo/run_1",
204
+ "~/processed/anon_tokyo/run_1",
205
+ "~/processed/anon_tokyo/run_1",
206
+ "~/processed/anon_tokyo/run_1",
207
+ "~/processed/anon_tokyo/run_1",
208
+ "~/processed/anon_tokyo/run_1",
209
+ "~/processed/anon_tokyo/run_1",
210
+ "~/processed/anon_tokyo/run_1",
211
+ "~/processed/anon_tokyo/run_1",
212
+ "~/processed/anon_tokyo/run_1",
213
+ "~/processed/anon_tokyo/run_1",
214
+ "~/processed/anon_tokyo/run_1",
215
+ "~/processed/anon_tokyo/run_1",
216
+ "~/processed/anon_tokyo/run_1",
217
+ "~/processed/anon_tokyo/run_1",
218
+ "~/processed/anon_tokyo/run_1",
219
+ "~/processed/anon_tokyo/run_1",
220
+ "~/processed/anon_tokyo/run_1",
221
+ "~/processed/anon_tokyo/run_1",
222
+ "~/processed/anon_tokyo/run_1",
223
+ "~/processed/anon_tokyo/run_1",
224
+ "~/processed/anon_tokyo/run_1",
225
+ "~/processed/anon_tokyo/run_1",
226
+ "~/processed/anon_tokyo/run_1",
227
+ "~/processed/anon_tokyo/run_1",
228
+ "~/processed/anon_tokyo/run_1",
229
+ "~/processed/anon_tokyo/run_1",
230
+ "~/processed/anon_tokyo/run_1",
231
+ "~/processed/anon_tokyo/run_1",
232
+ "~/processed/anon_tokyo/run_1",
233
+ "~/processed/anon_tokyo/run_1",
234
+ "~/processed/anon_tokyo/run_1",
235
+ "~/processed/anon_tokyo/run_1",
236
+ "~/processed/anon_tokyo/run_1",
237
+ "~/processed/anon_tokyo/run_1",
238
+ "~/processed/anon_tokyo/run_1",
239
+ "~/processed/anon_tokyo/run_1",
240
+ "~/processed/anon_tokyo/run_1",
241
+ "~/processed/anon_tokyo/run_1",
242
+ "~/processed/anon_tokyo/run_1",
243
+ "~/processed/anon_tokyo/run_1",
244
+ "~/processed/anon_tokyo/run_1",
245
+ "~/processed/anon_tokyo/run_1",
246
+ "~/processed/anon_tokyo/run_1",
247
+ "~/processed/anon_tokyo/run_1",
248
+ "~/processed/anon_tokyo/run_1",
249
+ "~/processed/anon_tokyo/run_1",
250
+ "~/processed/anon_tokyo/run_1",
251
+ "~/processed/anon_tokyo/run_1",
252
+ "~/processed/anon_tokyo/run_1",
253
+ "~/processed/anon_tokyo/run_1",
254
+ "~/processed/anon_tokyo/run_1",
255
+ "~/processed/anon_tokyo/run_1",
256
+ "~/processed/anon_tokyo/run_1",
257
+ "~/processed/anon_tokyo/run_1",
258
+ "~/processed/anon_tokyo/run_1",
259
+ "~/processed/anon_tokyo/run_1",
260
+ "~/processed/anon_tokyo/run_1",
261
+ "~/processed/anon_tokyo/run_1",
262
+ "~/processed/anon_tokyo/run_1",
263
+ "~/processed/anon_tokyo/run_1",
264
+ "~/processed/anon_tokyo/run_1",
265
+ "~/processed/anon_tokyo/run_1",
266
+ "~/processed/anon_tokyo/run_1",
267
+ "~/processed/anon_tokyo/run_1",
268
+ "~/processed/anon_tokyo/run_1",
269
+ "~/processed/anon_tokyo/run_1",
270
+ "~/processed/anon_tokyo/run_1",
271
+ "~/processed/anon_tokyo/run_1",
272
+ "~/processed/anon_tokyo/run_1",
273
+ "~/processed/anon_tokyo/run_1",
274
+ "~/processed/anon_tokyo/run_1",
275
+ "~/processed/anon_tokyo/run_1",
276
+ "~/processed/anon_tokyo/run_1",
277
+ "~/processed/anon_tokyo/run_1",
278
+ "~/processed/anon_tokyo/run_1",
279
+ "~/processed/anon_tokyo/run_1",
280
+ "~/processed/anon_tokyo/run_1",
281
+ "~/processed/anon_tokyo/run_1",
282
+ "~/processed/anon_tokyo/run_1",
283
+ "~/processed/anon_tokyo/run_1",
284
+ "~/processed/anon_tokyo/run_1",
285
+ "~/processed/anon_tokyo/run_1",
286
+ "~/processed/anon_tokyo/run_1",
287
+ "~/processed/anon_tokyo/run_1",
288
+ "~/processed/anon_tokyo/run_1",
289
+ "~/processed/anon_tokyo/run_1",
290
+ "~/processed/anon_tokyo/run_1",
291
+ "~/processed/anon_tokyo/run_1",
292
+ "~/processed/anon_tokyo/run_1",
293
+ "~/processed/anon_tokyo/run_1",
294
+ "~/processed/anon_tokyo/run_1",
295
+ "~/processed/anon_tokyo/run_1",
296
+ "~/processed/anon_tokyo/run_1",
297
+ "~/processed/anon_tokyo/run_1",
298
+ "~/processed/anon_tokyo/run_1",
299
+ "~/processed/anon_tokyo/run_1",
300
+ "~/processed/anon_tokyo/run_1",
301
+ "~/processed/anon_tokyo/run_1",
302
+ "~/processed/anon_tokyo/run_1",
303
+ "~/processed/anon_tokyo/run_1",
304
+ "~/processed/anon_tokyo/run_1",
305
+ "~/processed/anon_tokyo/run_1",
306
+ "~/processed/anon_tokyo/run_1",
307
+ "~/processed/anon_tokyo/run_1",
308
+ "~/processed/anon_tokyo/run_1",
309
+ "~/processed/anon_tokyo/run_1",
310
+ "~/processed/anon_tokyo/run_1",
311
+ "~/processed/anon_tokyo/run_1",
312
+ "~/processed/anon_tokyo/run_1",
313
+ "~/processed/anon_tokyo/run_1",
314
+ "~/processed/anon_tokyo/run_1",
315
+ "~/processed/anon_tokyo/run_1",
316
+ "~/processed/anon_tokyo/run_1",
317
+ "~/processed/anon_tokyo/run_1",
318
+ "~/processed/anon_tokyo/run_1",
319
+ "~/processed/anon_tokyo/run_1",
320
+ "~/processed/anon_tokyo/run_1",
321
+ "~/processed/anon_tokyo/run_1",
322
+ "~/processed/anon_tokyo/run_1",
323
+ "~/processed/anon_tokyo/run_1",
324
+ "~/processed/anon_tokyo/run_1",
325
+ "~/processed/anon_tokyo/run_1",
326
+ "~/processed/anon_tokyo/run_1",
327
+ "~/processed/anon_tokyo/run_1",
328
+ "~/processed/anon_tokyo/run_1",
329
+ "~/processed/anon_tokyo/run_1",
330
+ "~/processed/anon_tokyo/run_1",
331
+ "~/processed/anon_tokyo/run_1",
332
+ "~/processed/anon_tokyo/run_1",
333
+ "~/processed/anon_tokyo/run_1",
334
+ "~/processed/anon_tokyo/run_1",
335
+ "~/processed/anon_tokyo/run_1",
336
+ "~/processed/anon_tokyo/run_1",
337
+ "~/processed/anon_tokyo/run_1",
338
+ "~/processed/anon_tokyo/run_1",
339
+ "~/processed/anon_tokyo/run_1",
340
+ "~/processed/anon_tokyo/run_1",
341
+ "~/processed/anon_tokyo/run_1",
342
+ "~/processed/anon_tokyo/run_1",
343
+ "~/processed/anon_tokyo/run_1",
344
+ "~/processed/anon_tokyo/run_1",
345
+ "~/processed/anon_tokyo/run_1",
346
+ "~/processed/anon_tokyo/run_1",
347
+ "~/processed/anon_tokyo/run_1",
348
+ "~/processed/anon_tokyo/run_1",
349
+ "~/processed/anon_tokyo/run_1",
350
+ "~/processed/anon_tokyo/run_1",
351
+ "~/processed/anon_tokyo/run_1",
352
+ "~/processed/anon_tokyo/run_1",
353
+ "~/processed/anon_tokyo/run_1",
354
+ "~/processed/anon_tokyo/run_1",
355
+ "~/processed/anon_tokyo/run_1",
356
+ "~/processed/anon_tokyo/run_1",
357
+ "~/processed/anon_tokyo/run_1",
358
+ "~/processed/anon_tokyo/run_1",
359
+ "~/processed/anon_tokyo/run_1",
360
+ "~/processed/anon_tokyo/run_1",
361
+ "~/processed/anon_tokyo/run_1",
362
+ "~/processed/anon_tokyo/run_1",
363
+ "~/processed/anon_tokyo/run_1",
364
+ "~/processed/anon_tokyo/run_1",
365
+ "~/processed/anon_tokyo/run_1",
366
+ "~/processed/anon_tokyo/run_1",
367
+ "~/processed/anon_tokyo/run_1",
368
+ "~/processed/anon_tokyo/run_1",
369
+ "~/processed/anon_tokyo/run_1",
370
+ "~/processed/anon_tokyo/run_1",
371
+ "~/processed/anon_tokyo/run_1",
372
+ "~/processed/anon_tokyo/run_1",
373
+ "~/processed/anon_tokyo/run_1",
374
+ "~/processed/anon_tokyo/run_1",
375
+ "~/processed/anon_tokyo/run_1",
376
+ "~/processed/anon_tokyo/run_1",
377
+ "~/processed/anon_tokyo/run_1",
378
+ "~/processed/anon_tokyo/run_1",
379
+ "~/processed/anon_tokyo/run_1",
380
+ "~/processed/anon_tokyo/run_1",
381
+ "~/processed/anon_tokyo/run_1",
382
+ "~/processed/anon_tokyo/run_1",
383
+ "~/processed/anon_tokyo/run_1",
384
+ "~/processed/anon_tokyo/run_1",
385
+ "~/processed/anon_tokyo/run_1",
386
+ "~/processed/anon_tokyo/run_1",
387
+ "~/processed/anon_tokyo/run_1",
388
+ "~/processed/anon_tokyo/run_1",
389
+ "~/processed/anon_tokyo/run_1",
390
+ "~/processed/anon_tokyo/run_1",
391
+ "~/processed/anon_tokyo/run_1",
392
+ "~/processed/anon_tokyo/run_1"
393
+ ],
394
+ "dry_files": [
395
+ "/data/internal/anon_tokyo/togawa_group.wav",
396
+ "/data/internal/anon_tokyo/togawa_group.wav",
397
+ "/data/internal/anon_tokyo/togawa_group.wav",
398
+ "/data/internal/anon_tokyo/togawa_group.wav",
399
+ "/data/internal/anon_tokyo/togawa_group.wav",
400
+ "/data/internal/anon_tokyo/togawa_group.wav",
401
+ "/data/internal/anon_tokyo/togawa_group.wav",
402
+ "/data/internal/anon_tokyo/togawa_group.wav",
403
+ "/data/internal/anon_tokyo/togawa_group.wav",
404
+ "/data/internal/anon_tokyo/togawa_group.wav",
405
+ "/data/internal/anon_tokyo/togawa_group.wav",
406
+ "/data/internal/anon_tokyo/togawa_group.wav",
407
+ "/data/internal/anon_tokyo/togawa_group.wav",
408
+ "/data/internal/anon_tokyo/togawa_group.wav",
409
+ "/data/internal/anon_tokyo/togawa_group.wav",
410
+ "/data/internal/anon_tokyo/togawa_group.wav",
411
+ "/data/internal/anon_tokyo/togawa_group.wav",
412
+ "/data/internal/anon_tokyo/togawa_group.wav",
413
+ "/data/internal/anon_tokyo/togawa_group.wav",
414
+ "/data/internal/anon_tokyo/togawa_group.wav",
415
+ "/data/internal/anon_tokyo/togawa_group.wav",
416
+ "/data/internal/anon_tokyo/togawa_group.wav",
417
+ "/data/internal/anon_tokyo/togawa_group.wav",
418
+ "/data/internal/anon_tokyo/togawa_group.wav",
419
+ "/data/internal/anon_tokyo/togawa_group.wav",
420
+ "/data/internal/anon_tokyo/togawa_group.wav",
421
+ "/data/internal/anon_tokyo/togawa_group.wav",
422
+ "/data/internal/anon_tokyo/togawa_group.wav",
423
+ "/data/internal/anon_tokyo/togawa_group.wav",
424
+ "/data/internal/anon_tokyo/togawa_group.wav",
425
+ "/data/internal/anon_tokyo/togawa_group.wav",
426
+ "/data/internal/anon_tokyo/togawa_group.wav",
427
+ "/data/internal/anon_tokyo/togawa_group.wav",
428
+ "/data/internal/anon_tokyo/togawa_group.wav",
429
+ "/data/internal/anon_tokyo/togawa_group.wav",
430
+ "/data/internal/anon_tokyo/togawa_group.wav",
431
+ "/data/internal/anon_tokyo/togawa_group.wav",
432
+ "/data/internal/anon_tokyo/togawa_group.wav",
433
+ "/data/internal/anon_tokyo/togawa_group.wav",
434
+ "/data/internal/anon_tokyo/togawa_group.wav",
435
+ "/data/internal/anon_tokyo/togawa_group.wav",
436
+ "/data/internal/anon_tokyo/togawa_group.wav",
437
+ "/data/internal/anon_tokyo/togawa_group.wav",
438
+ "/data/internal/anon_tokyo/togawa_group.wav",
439
+ "/data/internal/anon_tokyo/togawa_group.wav",
440
+ "/data/internal/anon_tokyo/togawa_group.wav",
441
+ "/data/internal/anon_tokyo/togawa_group.wav",
442
+ "/data/internal/anon_tokyo/togawa_group.wav",
443
+ "/data/internal/anon_tokyo/togawa_group.wav",
444
+ "/data/internal/anon_tokyo/togawa_group.wav",
445
+ "/data/internal/anon_tokyo/togawa_group.wav",
446
+ "/data/internal/anon_tokyo/togawa_group.wav",
447
+ "/data/internal/anon_tokyo/togawa_group.wav",
448
+ "/data/internal/anon_tokyo/togawa_group.wav",
449
+ "/data/internal/anon_tokyo/togawa_group.wav",
450
+ "/data/internal/anon_tokyo/togawa_group.wav",
451
+ "/data/internal/anon_tokyo/togawa_group.wav",
452
+ "/data/internal/anon_tokyo/togawa_group.wav",
453
+ "/data/internal/anon_tokyo/togawa_group.wav",
454
+ "/data/internal/anon_tokyo/togawa_group.wav",
455
+ "/data/internal/anon_tokyo/togawa_group.wav",
456
+ "/data/internal/anon_tokyo/togawa_group.wav",
457
+ "/data/internal/anon_tokyo/togawa_group.wav",
458
+ "/data/internal/anon_tokyo/togawa_group.wav",
459
+ "/data/internal/anon_tokyo/togawa_group.wav",
460
+ "/data/internal/anon_tokyo/togawa_group.wav",
461
+ "/data/internal/anon_tokyo/togawa_group.wav",
462
+ "/data/internal/anon_tokyo/togawa_group.wav",
463
+ "/data/internal/anon_tokyo/togawa_group.wav",
464
+ "/data/internal/anon_tokyo/togawa_group.wav",
465
+ "/data/internal/anon_tokyo/togawa_group.wav",
466
+ "/data/internal/anon_tokyo/togawa_group.wav",
467
+ "/data/internal/anon_tokyo/togawa_group.wav",
468
+ "/data/internal/anon_tokyo/togawa_group.wav",
469
+ "/data/internal/anon_tokyo/togawa_group.wav",
470
+ "/data/internal/anon_tokyo/togawa_group.wav",
471
+ "/data/internal/anon_tokyo/togawa_group.wav",
472
+ "/data/internal/anon_tokyo/togawa_group.wav",
473
+ "/data/internal/anon_tokyo/togawa_group.wav",
474
+ "/data/internal/anon_tokyo/togawa_group.wav",
475
+ "/data/internal/anon_tokyo/togawa_group.wav",
476
+ "/data/internal/anon_tokyo/togawa_group.wav",
477
+ "/data/internal/anon_tokyo/togawa_group.wav",
478
+ "/data/internal/anon_tokyo/togawa_group.wav",
479
+ "/data/internal/anon_tokyo/togawa_group.wav",
480
+ "/data/internal/anon_tokyo/togawa_group.wav",
481
+ "/data/internal/anon_tokyo/togawa_group.wav",
482
+ "/data/internal/anon_tokyo/togawa_group.wav",
483
+ "/data/internal/anon_tokyo/togawa_group.wav",
484
+ "/data/internal/anon_tokyo/togawa_group.wav",
485
+ "/data/internal/anon_tokyo/togawa_group.wav",
486
+ "/data/internal/anon_tokyo/togawa_group.wav",
487
+ "/data/internal/anon_tokyo/togawa_group.wav",
488
+ "/data/internal/anon_tokyo/togawa_group.wav",
489
+ "/data/internal/anon_tokyo/togawa_group.wav",
490
+ "/data/internal/anon_tokyo/togawa_group.wav",
491
+ "/data/internal/anon_tokyo/togawa_group.wav",
492
+ "/data/internal/anon_tokyo/togawa_group.wav",
493
+ "/data/internal/anon_tokyo/togawa_group.wav",
494
+ "/data/internal/anon_tokyo/togawa_group.wav",
495
+ "/data/internal/anon_tokyo/togawa_group.wav",
496
+ "/data/internal/anon_tokyo/togawa_group.wav",
497
+ "/data/internal/anon_tokyo/togawa_group.wav",
498
+ "/data/internal/anon_tokyo/togawa_group.wav",
499
+ "/data/internal/anon_tokyo/togawa_group.wav",
500
+ "/data/internal/anon_tokyo/togawa_group.wav",
501
+ "/data/internal/anon_tokyo/togawa_group.wav",
502
+ "/data/internal/anon_tokyo/togawa_group.wav",
503
+ "/data/internal/anon_tokyo/togawa_group.wav",
504
+ "/data/internal/anon_tokyo/togawa_group.wav",
505
+ "/data/internal/anon_tokyo/togawa_group.wav",
506
+ "/data/internal/anon_tokyo/togawa_group.wav",
507
+ "/data/internal/anon_tokyo/togawa_group.wav",
508
+ "/data/internal/anon_tokyo/togawa_group.wav",
509
+ "/data/internal/anon_tokyo/togawa_group.wav",
510
+ "/data/internal/anon_tokyo/togawa_group.wav",
511
+ "/data/internal/anon_tokyo/togawa_group.wav",
512
+ "/data/internal/anon_tokyo/togawa_group.wav",
513
+ "/data/internal/anon_tokyo/togawa_group.wav",
514
+ "/data/internal/anon_tokyo/togawa_group.wav",
515
+ "/data/internal/anon_tokyo/togawa_group.wav",
516
+ "/data/internal/anon_tokyo/togawa_group.wav",
517
+ "/data/internal/anon_tokyo/togawa_group.wav",
518
+ "/data/internal/anon_tokyo/togawa_group.wav",
519
+ "/data/internal/anon_tokyo/togawa_group.wav",
520
+ "/data/internal/anon_tokyo/togawa_group.wav",
521
+ "/data/internal/anon_tokyo/togawa_group.wav",
522
+ "/data/internal/anon_tokyo/togawa_group.wav",
523
+ "/data/internal/anon_tokyo/togawa_group.wav",
524
+ "/data/internal/anon_tokyo/togawa_group.wav",
525
+ "/data/internal/anon_tokyo/togawa_group.wav",
526
+ "/data/internal/anon_tokyo/togawa_group.wav",
527
+ "/data/internal/anon_tokyo/togawa_group.wav",
528
+ "/data/internal/anon_tokyo/togawa_group.wav",
529
+ "/data/internal/anon_tokyo/togawa_group.wav",
530
+ "/data/internal/anon_tokyo/togawa_group.wav",
531
+ "/data/internal/anon_tokyo/togawa_group.wav",
532
+ "/data/internal/anon_tokyo/togawa_group.wav",
533
+ "/data/internal/anon_tokyo/togawa_group.wav",
534
+ "/data/internal/anon_tokyo/togawa_group.wav",
535
+ "/data/internal/anon_tokyo/togawa_group.wav",
536
+ "/data/internal/anon_tokyo/togawa_group.wav",
537
+ "/data/internal/anon_tokyo/togawa_group.wav",
538
+ "/data/internal/anon_tokyo/togawa_group.wav",
539
+ "/data/internal/anon_tokyo/togawa_group.wav",
540
+ "/data/internal/anon_tokyo/togawa_group.wav",
541
+ "/data/internal/anon_tokyo/togawa_group.wav",
542
+ "/data/internal/anon_tokyo/togawa_group.wav",
543
+ "/data/internal/anon_tokyo/togawa_group.wav",
544
+ "/data/internal/anon_tokyo/togawa_group.wav",
545
+ "/data/internal/anon_tokyo/togawa_group.wav",
546
+ "/data/internal/anon_tokyo/togawa_group.wav",
547
+ "/data/internal/anon_tokyo/togawa_group.wav",
548
+ "/data/internal/anon_tokyo/togawa_group.wav",
549
+ "/data/internal/anon_tokyo/togawa_group.wav",
550
+ "/data/internal/anon_tokyo/togawa_group.wav",
551
+ "/data/internal/anon_tokyo/togawa_group.wav",
552
+ "/data/internal/anon_tokyo/togawa_group.wav",
553
+ "/data/internal/anon_tokyo/togawa_group.wav",
554
+ "/data/internal/anon_tokyo/togawa_group.wav",
555
+ "/data/internal/anon_tokyo/togawa_group.wav",
556
+ "/data/internal/anon_tokyo/togawa_group.wav",
557
+ "/data/internal/anon_tokyo/togawa_group.wav",
558
+ "/data/internal/anon_tokyo/togawa_group.wav",
559
+ "/data/internal/anon_tokyo/togawa_group.wav",
560
+ "/data/internal/anon_tokyo/togawa_group.wav",
561
+ "/data/internal/anon_tokyo/togawa_group.wav",
562
+ "/data/internal/anon_tokyo/togawa_group.wav",
563
+ "/data/internal/anon_tokyo/togawa_group.wav",
564
+ "/data/internal/anon_tokyo/togawa_group.wav",
565
+ "/data/internal/anon_tokyo/togawa_group.wav",
566
+ "/data/internal/anon_tokyo/togawa_group.wav",
567
+ "/data/internal/anon_tokyo/togawa_group.wav",
568
+ "/data/internal/anon_tokyo/togawa_group.wav",
569
+ "/data/internal/anon_tokyo/togawa_group.wav",
570
+ "/data/internal/anon_tokyo/togawa_group.wav",
571
+ "/data/internal/anon_tokyo/togawa_group.wav",
572
+ "/data/internal/anon_tokyo/togawa_group.wav",
573
+ "/data/internal/anon_tokyo/togawa_group.wav",
574
+ "/data/internal/anon_tokyo/togawa_group.wav",
575
+ "/data/internal/anon_tokyo/togawa_group.wav",
576
+ "/data/internal/anon_tokyo/togawa_group.wav",
577
+ "/data/internal/anon_tokyo/togawa_group.wav",
578
+ "/data/internal/anon_tokyo/togawa_group.wav",
579
+ "/data/internal/anon_tokyo/togawa_group.wav",
580
+ "/data/internal/anon_tokyo/togawa_group.wav",
581
+ "/data/internal/anon_tokyo/togawa_group.wav",
582
+ "/data/internal/anon_tokyo/togawa_group.wav",
583
+ "/data/internal/anon_tokyo/togawa_group.wav",
584
+ "/data/internal/anon_tokyo/togawa_group.wav",
585
+ "/data/internal/anon_tokyo/togawa_group.wav",
586
+ "/data/internal/anon_tokyo/togawa_group.wav",
587
+ "/data/internal/anon_tokyo/togawa_group.wav",
588
+ "/data/internal/anon_tokyo/togawa_group.wav",
589
+ "/data/internal/anon_tokyo/togawa_group.wav",
590
+ "/data/internal/anon_tokyo/togawa_group.wav",
591
+ "/data/internal/anon_tokyo/togawa_group.wav",
592
+ "/data/internal/anon_tokyo/togawa_group.wav",
593
+ "/data/internal/anon_tokyo/togawa_group.wav",
594
+ "/data/internal/anon_tokyo/togawa_group.wav",
595
+ "/data/internal/anon_tokyo/togawa_group.wav",
596
+ "/data/internal/anon_tokyo/togawa_group.wav",
597
+ "/data/internal/anon_tokyo/togawa_group.wav",
598
+ "/data/internal/anon_tokyo/togawa_group.wav",
599
+ "/data/internal/anon_tokyo/togawa_group.wav",
600
+ "/data/internal/anon_tokyo/togawa_group.wav",
601
+ "/data/internal/anon_tokyo/togawa_group.wav",
602
+ "/data/internal/anon_tokyo/togawa_group.wav",
603
+ "/data/internal/anon_tokyo/togawa_group.wav",
604
+ "/data/internal/anon_tokyo/togawa_group.wav",
605
+ "/data/internal/anon_tokyo/togawa_group.wav",
606
+ "/data/internal/anon_tokyo/togawa_group.wav",
607
+ "/data/internal/anon_tokyo/togawa_group.wav",
608
+ "/data/internal/anon_tokyo/togawa_group.wav",
609
+ "/data/internal/anon_tokyo/togawa_group.wav",
610
+ "/data/internal/anon_tokyo/togawa_group.wav",
611
+ "/data/internal/anon_tokyo/togawa_group.wav",
612
+ "/data/internal/anon_tokyo/togawa_group.wav",
613
+ "/data/internal/anon_tokyo/togawa_group.wav",
614
+ "/data/internal/anon_tokyo/togawa_group.wav",
615
+ "/data/internal/anon_tokyo/togawa_group.wav",
616
+ "/data/internal/anon_tokyo/togawa_group.wav",
617
+ "/data/internal/anon_tokyo/togawa_group.wav",
618
+ "/data/internal/anon_tokyo/togawa_group.wav",
619
+ "/data/internal/anon_tokyo/togawa_group.wav",
620
+ "/data/internal/anon_tokyo/togawa_group.wav",
621
+ "/data/internal/anon_tokyo/togawa_group.wav",
622
+ "/data/internal/anon_tokyo/togawa_group.wav",
623
+ "/data/internal/anon_tokyo/togawa_group.wav",
624
+ "/data/internal/anon_tokyo/togawa_group.wav",
625
+ "/data/internal/anon_tokyo/togawa_group.wav",
626
+ "/data/internal/anon_tokyo/togawa_group.wav",
627
+ "/data/internal/anon_tokyo/togawa_group.wav",
628
+ "/data/internal/anon_tokyo/togawa_group.wav",
629
+ "/data/internal/anon_tokyo/togawa_group.wav",
630
+ "/data/internal/anon_tokyo/togawa_group.wav",
631
+ "/data/internal/anon_tokyo/togawa_group.wav",
632
+ "/data/internal/anon_tokyo/togawa_group.wav",
633
+ "/data/internal/anon_tokyo/togawa_group.wav",
634
+ "/data/internal/anon_tokyo/togawa_group.wav",
635
+ "/data/internal/anon_tokyo/togawa_group.wav",
636
+ "/data/internal/anon_tokyo/togawa_group.wav",
637
+ "/data/internal/anon_tokyo/togawa_group.wav",
638
+ "/data/internal/anon_tokyo/togawa_group.wav",
639
+ "/data/internal/anon_tokyo/togawa_group.wav",
640
+ "/data/internal/anon_tokyo/togawa_group.wav",
641
+ "/data/internal/anon_tokyo/togawa_group.wav",
642
+ "/data/internal/anon_tokyo/togawa_group.wav",
643
+ "/data/internal/anon_tokyo/togawa_group.wav",
644
+ "/data/internal/anon_tokyo/togawa_group.wav",
645
+ "/data/internal/anon_tokyo/togawa_group.wav",
646
+ "/data/internal/anon_tokyo/togawa_group.wav",
647
+ "/data/internal/anon_tokyo/togawa_group.wav",
648
+ "/data/internal/anon_tokyo/togawa_group.wav",
649
+ "/data/internal/anon_tokyo/togawa_group.wav",
650
+ "/data/internal/anon_tokyo/togawa_group.wav",
651
+ "/data/internal/anon_tokyo/togawa_group.wav",
652
+ "/data/internal/anon_tokyo/togawa_group.wav",
653
+ "/data/internal/anon_tokyo/togawa_group.wav",
654
+ "/data/internal/anon_tokyo/togawa_group.wav",
655
+ "/data/internal/anon_tokyo/togawa_group.wav",
656
+ "/data/internal/anon_tokyo/togawa_group.wav",
657
+ "/data/internal/anon_tokyo/togawa_group.wav",
658
+ "/data/internal/anon_tokyo/togawa_group.wav",
659
+ "/data/internal/anon_tokyo/togawa_group.wav",
660
+ "/data/internal/anon_tokyo/togawa_group.wav",
661
+ "/data/internal/anon_tokyo/togawa_group.wav",
662
+ "/data/internal/anon_tokyo/togawa_group.wav",
663
+ "/data/internal/anon_tokyo/togawa_group.wav",
664
+ "/data/internal/anon_tokyo/togawa_group.wav",
665
+ "/data/internal/anon_tokyo/togawa_group.wav",
666
+ "/data/internal/anon_tokyo/togawa_group.wav",
667
+ "/data/internal/anon_tokyo/togawa_group.wav",
668
+ "/data/internal/anon_tokyo/togawa_group.wav",
669
+ "/data/internal/anon_tokyo/togawa_group.wav",
670
+ "/data/internal/anon_tokyo/togawa_group.wav",
671
+ "/data/internal/anon_tokyo/togawa_group.wav",
672
+ "/data/internal/anon_tokyo/togawa_group.wav",
673
+ "/data/internal/anon_tokyo/togawa_group.wav",
674
+ "/data/internal/anon_tokyo/togawa_group.wav",
675
+ "/data/internal/anon_tokyo/togawa_group.wav",
676
+ "/data/internal/anon_tokyo/togawa_group.wav",
677
+ "/data/internal/anon_tokyo/togawa_group.wav",
678
+ "/data/internal/anon_tokyo/togawa_group.wav",
679
+ "/data/internal/anon_tokyo/togawa_group.wav",
680
+ "/data/internal/anon_tokyo/togawa_group.wav",
681
+ "/data/internal/anon_tokyo/togawa_group.wav",
682
+ "/data/internal/anon_tokyo/togawa_group.wav",
683
+ "/data/internal/anon_tokyo/togawa_group.wav",
684
+ "/data/internal/anon_tokyo/togawa_group.wav",
685
+ "/data/internal/anon_tokyo/togawa_group.wav",
686
+ "/data/internal/anon_tokyo/togawa_group.wav",
687
+ "/data/internal/anon_tokyo/togawa_group.wav",
688
+ "/data/internal/anon_tokyo/togawa_group.wav",
689
+ "/data/internal/anon_tokyo/togawa_group.wav",
690
+ "/data/internal/anon_tokyo/togawa_group.wav",
691
+ "/data/internal/anon_tokyo/togawa_group.wav",
692
+ "/data/internal/anon_tokyo/togawa_group.wav",
693
+ "/data/internal/anon_tokyo/togawa_group.wav",
694
+ "/data/internal/anon_tokyo/togawa_group.wav",
695
+ "/data/internal/anon_tokyo/togawa_group.wav",
696
+ "/data/internal/anon_tokyo/togawa_group.wav",
697
+ "/data/internal/anon_tokyo/togawa_group.wav",
698
+ "/data/internal/anon_tokyo/togawa_group.wav",
699
+ "/data/internal/anon_tokyo/togawa_group.wav",
700
+ "/data/internal/anon_tokyo/togawa_group.wav",
701
+ "/data/internal/anon_tokyo/togawa_group.wav",
702
+ "/data/internal/anon_tokyo/togawa_group.wav",
703
+ "/data/internal/anon_tokyo/togawa_group.wav",
704
+ "/data/internal/anon_tokyo/togawa_group.wav",
705
+ "/data/internal/anon_tokyo/togawa_group.wav",
706
+ "/data/internal/anon_tokyo/togawa_group.wav",
707
+ "/data/internal/anon_tokyo/togawa_group.wav",
708
+ "/data/internal/anon_tokyo/togawa_group.wav",
709
+ "/data/internal/anon_tokyo/togawa_group.wav",
710
+ "/data/internal/anon_tokyo/togawa_group.wav",
711
+ "/data/internal/anon_tokyo/togawa_group.wav",
712
+ "/data/internal/anon_tokyo/togawa_group.wav",
713
+ "/data/internal/anon_tokyo/togawa_group.wav",
714
+ "/data/internal/anon_tokyo/togawa_group.wav",
715
+ "/data/internal/anon_tokyo/togawa_group.wav",
716
+ "/data/internal/anon_tokyo/togawa_group.wav",
717
+ "/data/internal/anon_tokyo/togawa_group.wav",
718
+ "/data/internal/anon_tokyo/togawa_group.wav",
719
+ "/data/internal/anon_tokyo/togawa_group.wav",
720
+ "/data/internal/anon_tokyo/togawa_group.wav",
721
+ "/data/internal/anon_tokyo/togawa_group.wav",
722
+ "/data/internal/anon_tokyo/togawa_group.wav",
723
+ "/data/internal/anon_tokyo/togawa_group.wav",
724
+ "/data/internal/anon_tokyo/togawa_group.wav",
725
+ "/data/internal/anon_tokyo/togawa_group.wav",
726
+ "/data/internal/anon_tokyo/togawa_group.wav",
727
+ "/data/internal/anon_tokyo/togawa_group.wav",
728
+ "/data/internal/anon_tokyo/togawa_group.wav",
729
+ "/data/internal/anon_tokyo/togawa_group.wav",
730
+ "/data/internal/anon_tokyo/togawa_group.wav",
731
+ "/data/internal/anon_tokyo/togawa_group.wav",
732
+ "/data/internal/anon_tokyo/togawa_group.wav",
733
+ "/data/internal/anon_tokyo/togawa_group.wav",
734
+ "/data/internal/anon_tokyo/togawa_group.wav",
735
+ "/data/internal/anon_tokyo/togawa_group.wav",
736
+ "/data/internal/anon_tokyo/togawa_group.wav",
737
+ "/data/internal/anon_tokyo/togawa_group.wav",
738
+ "/data/internal/anon_tokyo/togawa_group.wav",
739
+ "/data/internal/anon_tokyo/togawa_group.wav",
740
+ "/data/internal/anon_tokyo/togawa_group.wav",
741
+ "/data/internal/anon_tokyo/togawa_group.wav",
742
+ "/data/internal/anon_tokyo/togawa_group.wav",
743
+ "/data/internal/anon_tokyo/togawa_group.wav",
744
+ "/data/internal/anon_tokyo/togawa_group.wav",
745
+ "/data/internal/anon_tokyo/togawa_group.wav",
746
+ "/data/internal/anon_tokyo/togawa_group.wav",
747
+ "/data/internal/anon_tokyo/togawa_group.wav",
748
+ "/data/internal/anon_tokyo/togawa_group.wav",
749
+ "/data/internal/anon_tokyo/togawa_group.wav",
750
+ "/data/internal/anon_tokyo/togawa_group.wav",
751
+ "/data/internal/anon_tokyo/togawa_group.wav",
752
+ "/data/internal/anon_tokyo/togawa_group.wav",
753
+ "/data/internal/anon_tokyo/togawa_group.wav",
754
+ "/data/internal/anon_tokyo/togawa_group.wav",
755
+ "/data/internal/anon_tokyo/togawa_group.wav",
756
+ "/data/internal/anon_tokyo/togawa_group.wav",
757
+ "/data/internal/anon_tokyo/togawa_group.wav",
758
+ "/data/internal/anon_tokyo/togawa_group.wav",
759
+ "/data/internal/anon_tokyo/togawa_group.wav",
760
+ "/data/internal/anon_tokyo/togawa_group.wav",
761
+ "/data/internal/anon_tokyo/togawa_group.wav",
762
+ "/data/internal/anon_tokyo/togawa_group.wav",
763
+ "/data/internal/anon_tokyo/togawa_group.wav",
764
+ "/data/internal/anon_tokyo/togawa_group.wav",
765
+ "/data/internal/anon_tokyo/togawa_group.wav",
766
+ "/data/internal/anon_tokyo/togawa_group.wav",
767
+ "/data/internal/anon_tokyo/togawa_group.wav",
768
+ "/data/internal/anon_tokyo/togawa_group.wav",
769
+ "/data/internal/anon_tokyo/togawa_group.wav",
770
+ "/data/internal/anon_tokyo/togawa_group.wav",
771
+ "/data/internal/anon_tokyo/togawa_group.wav",
772
+ "/data/internal/anon_tokyo/togawa_group.wav",
773
+ "/data/internal/anon_tokyo/togawa_group.wav",
774
+ "/data/internal/anon_tokyo/togawa_group.wav",
775
+ "/data/internal/anon_tokyo/togawa_group.wav",
776
+ "/data/internal/anon_tokyo/togawa_group.wav",
777
+ "/data/internal/anon_tokyo/togawa_group.wav",
778
+ "/data/internal/anon_tokyo/togawa_group.wav",
779
+ "/data/internal/anon_tokyo/togawa_group.wav"
780
+ ],
781
+ "wet_files": [
782
+ "/data/internal/anon_tokyo/togawa_group.wav",
783
+ "/data/internal/anon_tokyo/togawa_group.wav",
784
+ "/data/internal/anon_tokyo/togawa_group.wav",
785
+ "/data/internal/anon_tokyo/togawa_group.wav",
786
+ "/data/internal/anon_tokyo/togawa_group.wav",
787
+ "/data/internal/anon_tokyo/togawa_group.wav",
788
+ "/data/internal/anon_tokyo/togawa_group.wav",
789
+ "/data/internal/anon_tokyo/togawa_group.wav",
790
+ "/data/internal/anon_tokyo/togawa_group.wav",
791
+ "/data/internal/anon_tokyo/togawa_group.wav",
792
+ "/data/internal/anon_tokyo/togawa_group.wav",
793
+ "/data/internal/anon_tokyo/togawa_group.wav",
794
+ "/data/internal/anon_tokyo/togawa_group.wav",
795
+ "/data/internal/anon_tokyo/togawa_group.wav",
796
+ "/data/internal/anon_tokyo/togawa_group.wav",
797
+ "/data/internal/anon_tokyo/togawa_group.wav",
798
+ "/data/internal/anon_tokyo/togawa_group.wav",
799
+ "/data/internal/anon_tokyo/togawa_group.wav",
800
+ "/data/internal/anon_tokyo/togawa_group.wav",
801
+ "/data/internal/anon_tokyo/togawa_group.wav",
802
+ "/data/internal/anon_tokyo/togawa_group.wav",
803
+ "/data/internal/anon_tokyo/togawa_group.wav",
804
+ "/data/internal/anon_tokyo/togawa_group.wav",
805
+ "/data/internal/anon_tokyo/togawa_group.wav",
806
+ "/data/internal/anon_tokyo/togawa_group.wav",
807
+ "/data/internal/anon_tokyo/togawa_group.wav",
808
+ "/data/internal/anon_tokyo/togawa_group.wav",
809
+ "/data/internal/anon_tokyo/togawa_group.wav",
810
+ "/data/internal/anon_tokyo/togawa_group.wav",
811
+ "/data/internal/anon_tokyo/togawa_group.wav",
812
+ "/data/internal/anon_tokyo/togawa_group.wav",
813
+ "/data/internal/anon_tokyo/togawa_group.wav",
814
+ "/data/internal/anon_tokyo/togawa_group.wav",
815
+ "/data/internal/anon_tokyo/togawa_group.wav",
816
+ "/data/internal/anon_tokyo/togawa_group.wav",
817
+ "/data/internal/anon_tokyo/togawa_group.wav",
818
+ "/data/internal/anon_tokyo/togawa_group.wav",
819
+ "/data/internal/anon_tokyo/togawa_group.wav",
820
+ "/data/internal/anon_tokyo/togawa_group.wav",
821
+ "/data/internal/anon_tokyo/togawa_group.wav",
822
+ "/data/internal/anon_tokyo/togawa_group.wav",
823
+ "/data/internal/anon_tokyo/togawa_group.wav",
824
+ "/data/internal/anon_tokyo/togawa_group.wav",
825
+ "/data/internal/anon_tokyo/togawa_group.wav",
826
+ "/data/internal/anon_tokyo/togawa_group.wav",
827
+ "/data/internal/anon_tokyo/togawa_group.wav",
828
+ "/data/internal/anon_tokyo/togawa_group.wav",
829
+ "/data/internal/anon_tokyo/togawa_group.wav",
830
+ "/data/internal/anon_tokyo/togawa_group.wav",
831
+ "/data/internal/anon_tokyo/togawa_group.wav",
832
+ "/data/internal/anon_tokyo/togawa_group.wav",
833
+ "/data/internal/anon_tokyo/togawa_group.wav",
834
+ "/data/internal/anon_tokyo/togawa_group.wav",
835
+ "/data/internal/anon_tokyo/togawa_group.wav",
836
+ "/data/internal/anon_tokyo/togawa_group.wav",
837
+ "/data/internal/anon_tokyo/togawa_group.wav",
838
+ "/data/internal/anon_tokyo/togawa_group.wav",
839
+ "/data/internal/anon_tokyo/togawa_group.wav",
840
+ "/data/internal/anon_tokyo/togawa_group.wav",
841
+ "/data/internal/anon_tokyo/togawa_group.wav",
842
+ "/data/internal/anon_tokyo/togawa_group.wav",
843
+ "/data/internal/anon_tokyo/togawa_group.wav",
844
+ "/data/internal/anon_tokyo/togawa_group.wav",
845
+ "/data/internal/anon_tokyo/togawa_group.wav",
846
+ "/data/internal/anon_tokyo/togawa_group.wav",
847
+ "/data/internal/anon_tokyo/togawa_group.wav",
848
+ "/data/internal/anon_tokyo/togawa_group.wav",
849
+ "/data/internal/anon_tokyo/togawa_group.wav",
850
+ "/data/internal/anon_tokyo/togawa_group.wav",
851
+ "/data/internal/anon_tokyo/togawa_group.wav",
852
+ "/data/internal/anon_tokyo/togawa_group.wav",
853
+ "/data/internal/anon_tokyo/togawa_group.wav",
854
+ "/data/internal/anon_tokyo/togawa_group.wav",
855
+ "/data/internal/anon_tokyo/togawa_group.wav",
856
+ "/data/internal/anon_tokyo/togawa_group.wav",
857
+ "/data/internal/anon_tokyo/togawa_group.wav",
858
+ "/data/internal/anon_tokyo/togawa_group.wav",
859
+ "/data/internal/anon_tokyo/togawa_group.wav",
860
+ "/data/internal/anon_tokyo/togawa_group.wav",
861
+ "/data/internal/anon_tokyo/togawa_group.wav",
862
+ "/data/internal/anon_tokyo/togawa_group.wav",
863
+ "/data/internal/anon_tokyo/togawa_group.wav",
864
+ "/data/internal/anon_tokyo/togawa_group.wav",
865
+ "/data/internal/anon_tokyo/togawa_group.wav",
866
+ "/data/internal/anon_tokyo/togawa_group.wav",
867
+ "/data/internal/anon_tokyo/togawa_group.wav",
868
+ "/data/internal/anon_tokyo/togawa_group.wav",
869
+ "/data/internal/anon_tokyo/togawa_group.wav",
870
+ "/data/internal/anon_tokyo/togawa_group.wav",
871
+ "/data/internal/anon_tokyo/togawa_group.wav",
872
+ "/data/internal/anon_tokyo/togawa_group.wav",
873
+ "/data/internal/anon_tokyo/togawa_group.wav",
874
+ "/data/internal/anon_tokyo/togawa_group.wav",
875
+ "/data/internal/anon_tokyo/togawa_group.wav",
876
+ "/data/internal/anon_tokyo/togawa_group.wav",
877
+ "/data/internal/anon_tokyo/togawa_group.wav",
878
+ "/data/internal/anon_tokyo/togawa_group.wav",
879
+ "/data/internal/anon_tokyo/togawa_group.wav",
880
+ "/data/internal/anon_tokyo/togawa_group.wav",
881
+ "/data/internal/anon_tokyo/togawa_group.wav",
882
+ "/data/internal/anon_tokyo/togawa_group.wav",
883
+ "/data/internal/anon_tokyo/togawa_group.wav",
884
+ "/data/internal/anon_tokyo/togawa_group.wav",
885
+ "/data/internal/anon_tokyo/togawa_group.wav",
886
+ "/data/internal/anon_tokyo/togawa_group.wav",
887
+ "/data/internal/anon_tokyo/togawa_group.wav",
888
+ "/data/internal/anon_tokyo/togawa_group.wav",
889
+ "/data/internal/anon_tokyo/togawa_group.wav",
890
+ "/data/internal/anon_tokyo/togawa_group.wav",
891
+ "/data/internal/anon_tokyo/togawa_group.wav",
892
+ "/data/internal/anon_tokyo/togawa_group.wav",
893
+ "/data/internal/anon_tokyo/togawa_group.wav",
894
+ "/data/internal/anon_tokyo/togawa_group.wav",
895
+ "/data/internal/anon_tokyo/togawa_group.wav",
896
+ "/data/internal/anon_tokyo/togawa_group.wav",
897
+ "/data/internal/anon_tokyo/togawa_group.wav",
898
+ "/data/internal/anon_tokyo/togawa_group.wav",
899
+ "/data/internal/anon_tokyo/togawa_group.wav",
900
+ "/data/internal/anon_tokyo/togawa_group.wav",
901
+ "/data/internal/anon_tokyo/togawa_group.wav",
902
+ "/data/internal/anon_tokyo/togawa_group.wav",
903
+ "/data/internal/anon_tokyo/togawa_group.wav",
904
+ "/data/internal/anon_tokyo/togawa_group.wav",
905
+ "/data/internal/anon_tokyo/togawa_group.wav",
906
+ "/data/internal/anon_tokyo/togawa_group.wav",
907
+ "/data/internal/anon_tokyo/togawa_group.wav",
908
+ "/data/internal/anon_tokyo/togawa_group.wav",
909
+ "/data/internal/anon_tokyo/togawa_group.wav",
910
+ "/data/internal/anon_tokyo/togawa_group.wav",
911
+ "/data/internal/anon_tokyo/togawa_group.wav",
912
+ "/data/internal/anon_tokyo/togawa_group.wav",
913
+ "/data/internal/anon_tokyo/togawa_group.wav",
914
+ "/data/internal/anon_tokyo/togawa_group.wav",
915
+ "/data/internal/anon_tokyo/togawa_group.wav",
916
+ "/data/internal/anon_tokyo/togawa_group.wav",
917
+ "/data/internal/anon_tokyo/togawa_group.wav",
918
+ "/data/internal/anon_tokyo/togawa_group.wav",
919
+ "/data/internal/anon_tokyo/togawa_group.wav",
920
+ "/data/internal/anon_tokyo/togawa_group.wav",
921
+ "/data/internal/anon_tokyo/togawa_group.wav",
922
+ "/data/internal/anon_tokyo/togawa_group.wav",
923
+ "/data/internal/anon_tokyo/togawa_group.wav",
924
+ "/data/internal/anon_tokyo/togawa_group.wav",
925
+ "/data/internal/anon_tokyo/togawa_group.wav",
926
+ "/data/internal/anon_tokyo/togawa_group.wav",
927
+ "/data/internal/anon_tokyo/togawa_group.wav",
928
+ "/data/internal/anon_tokyo/togawa_group.wav",
929
+ "/data/internal/anon_tokyo/togawa_group.wav",
930
+ "/data/internal/anon_tokyo/togawa_group.wav",
931
+ "/data/internal/anon_tokyo/togawa_group.wav",
932
+ "/data/internal/anon_tokyo/togawa_group.wav",
933
+ "/data/internal/anon_tokyo/togawa_group.wav",
934
+ "/data/internal/anon_tokyo/togawa_group.wav",
935
+ "/data/internal/anon_tokyo/togawa_group.wav",
936
+ "/data/internal/anon_tokyo/togawa_group.wav",
937
+ "/data/internal/anon_tokyo/togawa_group.wav",
938
+ "/data/internal/anon_tokyo/togawa_group.wav",
939
+ "/data/internal/anon_tokyo/togawa_group.wav",
940
+ "/data/internal/anon_tokyo/togawa_group.wav",
941
+ "/data/internal/anon_tokyo/togawa_group.wav",
942
+ "/data/internal/anon_tokyo/togawa_group.wav",
943
+ "/data/internal/anon_tokyo/togawa_group.wav",
944
+ "/data/internal/anon_tokyo/togawa_group.wav",
945
+ "/data/internal/anon_tokyo/togawa_group.wav",
946
+ "/data/internal/anon_tokyo/togawa_group.wav",
947
+ "/data/internal/anon_tokyo/togawa_group.wav",
948
+ "/data/internal/anon_tokyo/togawa_group.wav",
949
+ "/data/internal/anon_tokyo/togawa_group.wav",
950
+ "/data/internal/anon_tokyo/togawa_group.wav",
951
+ "/data/internal/anon_tokyo/togawa_group.wav",
952
+ "/data/internal/anon_tokyo/togawa_group.wav",
953
+ "/data/internal/anon_tokyo/togawa_group.wav",
954
+ "/data/internal/anon_tokyo/togawa_group.wav",
955
+ "/data/internal/anon_tokyo/togawa_group.wav",
956
+ "/data/internal/anon_tokyo/togawa_group.wav",
957
+ "/data/internal/anon_tokyo/togawa_group.wav",
958
+ "/data/internal/anon_tokyo/togawa_group.wav",
959
+ "/data/internal/anon_tokyo/togawa_group.wav",
960
+ "/data/internal/anon_tokyo/togawa_group.wav",
961
+ "/data/internal/anon_tokyo/togawa_group.wav",
962
+ "/data/internal/anon_tokyo/togawa_group.wav",
963
+ "/data/internal/anon_tokyo/togawa_group.wav",
964
+ "/data/internal/anon_tokyo/togawa_group.wav",
965
+ "/data/internal/anon_tokyo/togawa_group.wav",
966
+ "/data/internal/anon_tokyo/togawa_group.wav",
967
+ "/data/internal/anon_tokyo/togawa_group.wav",
968
+ "/data/internal/anon_tokyo/togawa_group.wav",
969
+ "/data/internal/anon_tokyo/togawa_group.wav",
970
+ "/data/internal/anon_tokyo/togawa_group.wav",
971
+ "/data/internal/anon_tokyo/togawa_group.wav",
972
+ "/data/internal/anon_tokyo/togawa_group.wav",
973
+ "/data/internal/anon_tokyo/togawa_group.wav",
974
+ "/data/internal/anon_tokyo/togawa_group.wav",
975
+ "/data/internal/anon_tokyo/togawa_group.wav",
976
+ "/data/internal/anon_tokyo/togawa_group.wav",
977
+ "/data/internal/anon_tokyo/togawa_group.wav",
978
+ "/data/internal/anon_tokyo/togawa_group.wav",
979
+ "/data/internal/anon_tokyo/togawa_group.wav",
980
+ "/data/internal/anon_tokyo/togawa_group.wav",
981
+ "/data/internal/anon_tokyo/togawa_group.wav",
982
+ "/data/internal/anon_tokyo/togawa_group.wav",
983
+ "/data/internal/anon_tokyo/togawa_group.wav",
984
+ "/data/internal/anon_tokyo/togawa_group.wav",
985
+ "/data/internal/anon_tokyo/togawa_group.wav",
986
+ "/data/internal/anon_tokyo/togawa_group.wav",
987
+ "/data/internal/anon_tokyo/togawa_group.wav",
988
+ "/data/internal/anon_tokyo/togawa_group.wav",
989
+ "/data/internal/anon_tokyo/togawa_group.wav",
990
+ "/data/internal/anon_tokyo/togawa_group.wav",
991
+ "/data/internal/anon_tokyo/togawa_group.wav",
992
+ "/data/internal/anon_tokyo/togawa_group.wav",
993
+ "/data/internal/anon_tokyo/togawa_group.wav",
994
+ "/data/internal/anon_tokyo/togawa_group.wav",
995
+ "/data/internal/anon_tokyo/togawa_group.wav",
996
+ "/data/internal/anon_tokyo/togawa_group.wav",
997
+ "/data/internal/anon_tokyo/togawa_group.wav",
998
+ "/data/internal/anon_tokyo/togawa_group.wav",
999
+ "/data/internal/anon_tokyo/togawa_group.wav",
1000
+ "/data/internal/anon_tokyo/togawa_group.wav",
1001
+ "/data/internal/anon_tokyo/togawa_group.wav",
1002
+ "/data/internal/anon_tokyo/togawa_group.wav",
1003
+ "/data/internal/anon_tokyo/togawa_group.wav",
1004
+ "/data/internal/anon_tokyo/togawa_group.wav",
1005
+ "/data/internal/anon_tokyo/togawa_group.wav",
1006
+ "/data/internal/anon_tokyo/togawa_group.wav",
1007
+ "/data/internal/anon_tokyo/togawa_group.wav",
1008
+ "/data/internal/anon_tokyo/togawa_group.wav",
1009
+ "/data/internal/anon_tokyo/togawa_group.wav",
1010
+ "/data/internal/anon_tokyo/togawa_group.wav",
1011
+ "/data/internal/anon_tokyo/togawa_group.wav",
1012
+ "/data/internal/anon_tokyo/togawa_group.wav",
1013
+ "/data/internal/anon_tokyo/togawa_group.wav",
1014
+ "/data/internal/anon_tokyo/togawa_group.wav",
1015
+ "/data/internal/anon_tokyo/togawa_group.wav",
1016
+ "/data/internal/anon_tokyo/togawa_group.wav",
1017
+ "/data/internal/anon_tokyo/togawa_group.wav",
1018
+ "/data/internal/anon_tokyo/togawa_group.wav",
1019
+ "/data/internal/anon_tokyo/togawa_group.wav",
1020
+ "/data/internal/anon_tokyo/togawa_group.wav",
1021
+ "/data/internal/anon_tokyo/togawa_group.wav",
1022
+ "/data/internal/anon_tokyo/togawa_group.wav",
1023
+ "/data/internal/anon_tokyo/togawa_group.wav",
1024
+ "/data/internal/anon_tokyo/togawa_group.wav",
1025
+ "/data/internal/anon_tokyo/togawa_group.wav",
1026
+ "/data/internal/anon_tokyo/togawa_group.wav",
1027
+ "/data/internal/anon_tokyo/togawa_group.wav",
1028
+ "/data/internal/anon_tokyo/togawa_group.wav",
1029
+ "/data/internal/anon_tokyo/togawa_group.wav",
1030
+ "/data/internal/anon_tokyo/togawa_group.wav",
1031
+ "/data/internal/anon_tokyo/togawa_group.wav",
1032
+ "/data/internal/anon_tokyo/togawa_group.wav",
1033
+ "/data/internal/anon_tokyo/togawa_group.wav",
1034
+ "/data/internal/anon_tokyo/togawa_group.wav",
1035
+ "/data/internal/anon_tokyo/togawa_group.wav",
1036
+ "/data/internal/anon_tokyo/togawa_group.wav",
1037
+ "/data/internal/anon_tokyo/togawa_group.wav",
1038
+ "/data/internal/anon_tokyo/togawa_group.wav",
1039
+ "/data/internal/anon_tokyo/togawa_group.wav",
1040
+ "/data/internal/anon_tokyo/togawa_group.wav",
1041
+ "/data/internal/anon_tokyo/togawa_group.wav",
1042
+ "/data/internal/anon_tokyo/togawa_group.wav",
1043
+ "/data/internal/anon_tokyo/togawa_group.wav",
1044
+ "/data/internal/anon_tokyo/togawa_group.wav",
1045
+ "/data/internal/anon_tokyo/togawa_group.wav",
1046
+ "/data/internal/anon_tokyo/togawa_group.wav",
1047
+ "/data/internal/anon_tokyo/togawa_group.wav",
1048
+ "/data/internal/anon_tokyo/togawa_group.wav",
1049
+ "/data/internal/anon_tokyo/togawa_group.wav",
1050
+ "/data/internal/anon_tokyo/togawa_group.wav",
1051
+ "/data/internal/anon_tokyo/togawa_group.wav",
1052
+ "/data/internal/anon_tokyo/togawa_group.wav",
1053
+ "/data/internal/anon_tokyo/togawa_group.wav",
1054
+ "/data/internal/anon_tokyo/togawa_group.wav",
1055
+ "/data/internal/anon_tokyo/togawa_group.wav",
1056
+ "/data/internal/anon_tokyo/togawa_group.wav",
1057
+ "/data/internal/anon_tokyo/togawa_group.wav",
1058
+ "/data/internal/anon_tokyo/togawa_group.wav",
1059
+ "/data/internal/anon_tokyo/togawa_group.wav",
1060
+ "/data/internal/anon_tokyo/togawa_group.wav",
1061
+ "/data/internal/anon_tokyo/togawa_group.wav",
1062
+ "/data/internal/anon_tokyo/togawa_group.wav",
1063
+ "/data/internal/anon_tokyo/togawa_group.wav",
1064
+ "/data/internal/anon_tokyo/togawa_group.wav",
1065
+ "/data/internal/anon_tokyo/togawa_group.wav",
1066
+ "/data/internal/anon_tokyo/togawa_group.wav",
1067
+ "/data/internal/anon_tokyo/togawa_group.wav",
1068
+ "/data/internal/anon_tokyo/togawa_group.wav",
1069
+ "/data/internal/anon_tokyo/togawa_group.wav",
1070
+ "/data/internal/anon_tokyo/togawa_group.wav",
1071
+ "/data/internal/anon_tokyo/togawa_group.wav",
1072
+ "/data/internal/anon_tokyo/togawa_group.wav",
1073
+ "/data/internal/anon_tokyo/togawa_group.wav",
1074
+ "/data/internal/anon_tokyo/togawa_group.wav",
1075
+ "/data/internal/anon_tokyo/togawa_group.wav",
1076
+ "/data/internal/anon_tokyo/togawa_group.wav",
1077
+ "/data/internal/anon_tokyo/togawa_group.wav",
1078
+ "/data/internal/anon_tokyo/togawa_group.wav",
1079
+ "/data/internal/anon_tokyo/togawa_group.wav",
1080
+ "/data/internal/anon_tokyo/togawa_group.wav",
1081
+ "/data/internal/anon_tokyo/togawa_group.wav",
1082
+ "/data/internal/anon_tokyo/togawa_group.wav",
1083
+ "/data/internal/anon_tokyo/togawa_group.wav",
1084
+ "/data/internal/anon_tokyo/togawa_group.wav",
1085
+ "/data/internal/anon_tokyo/togawa_group.wav",
1086
+ "/data/internal/anon_tokyo/togawa_group.wav",
1087
+ "/data/internal/anon_tokyo/togawa_group.wav",
1088
+ "/data/internal/anon_tokyo/togawa_group.wav",
1089
+ "/data/internal/anon_tokyo/togawa_group.wav",
1090
+ "/data/internal/anon_tokyo/togawa_group.wav",
1091
+ "/data/internal/anon_tokyo/togawa_group.wav",
1092
+ "/data/internal/anon_tokyo/togawa_group.wav",
1093
+ "/data/internal/anon_tokyo/togawa_group.wav",
1094
+ "/data/internal/anon_tokyo/togawa_group.wav",
1095
+ "/data/internal/anon_tokyo/togawa_group.wav",
1096
+ "/data/internal/anon_tokyo/togawa_group.wav",
1097
+ "/data/internal/anon_tokyo/togawa_group.wav",
1098
+ "/data/internal/anon_tokyo/togawa_group.wav",
1099
+ "/data/internal/anon_tokyo/togawa_group.wav",
1100
+ "/data/internal/anon_tokyo/togawa_group.wav",
1101
+ "/data/internal/anon_tokyo/togawa_group.wav",
1102
+ "/data/internal/anon_tokyo/togawa_group.wav",
1103
+ "/data/internal/anon_tokyo/togawa_group.wav",
1104
+ "/data/internal/anon_tokyo/togawa_group.wav",
1105
+ "/data/internal/anon_tokyo/togawa_group.wav",
1106
+ "/data/internal/anon_tokyo/togawa_group.wav",
1107
+ "/data/internal/anon_tokyo/togawa_group.wav",
1108
+ "/data/internal/anon_tokyo/togawa_group.wav",
1109
+ "/data/internal/anon_tokyo/togawa_group.wav",
1110
+ "/data/internal/anon_tokyo/togawa_group.wav",
1111
+ "/data/internal/anon_tokyo/togawa_group.wav",
1112
+ "/data/internal/anon_tokyo/togawa_group.wav",
1113
+ "/data/internal/anon_tokyo/togawa_group.wav",
1114
+ "/data/internal/anon_tokyo/togawa_group.wav",
1115
+ "/data/internal/anon_tokyo/togawa_group.wav",
1116
+ "/data/internal/anon_tokyo/togawa_group.wav",
1117
+ "/data/internal/anon_tokyo/togawa_group.wav",
1118
+ "/data/internal/anon_tokyo/togawa_group.wav",
1119
+ "/data/internal/anon_tokyo/togawa_group.wav",
1120
+ "/data/internal/anon_tokyo/togawa_group.wav",
1121
+ "/data/internal/anon_tokyo/togawa_group.wav",
1122
+ "/data/internal/anon_tokyo/togawa_group.wav",
1123
+ "/data/internal/anon_tokyo/togawa_group.wav",
1124
+ "/data/internal/anon_tokyo/togawa_group.wav",
1125
+ "/data/internal/anon_tokyo/togawa_group.wav",
1126
+ "/data/internal/anon_tokyo/togawa_group.wav",
1127
+ "/data/internal/anon_tokyo/togawa_group.wav",
1128
+ "/data/internal/anon_tokyo/togawa_group.wav",
1129
+ "/data/internal/anon_tokyo/togawa_group.wav",
1130
+ "/data/internal/anon_tokyo/togawa_group.wav",
1131
+ "/data/internal/anon_tokyo/togawa_group.wav",
1132
+ "/data/internal/anon_tokyo/togawa_group.wav",
1133
+ "/data/internal/anon_tokyo/togawa_group.wav",
1134
+ "/data/internal/anon_tokyo/togawa_group.wav",
1135
+ "/data/internal/anon_tokyo/togawa_group.wav",
1136
+ "/data/internal/anon_tokyo/togawa_group.wav",
1137
+ "/data/internal/anon_tokyo/togawa_group.wav",
1138
+ "/data/internal/anon_tokyo/togawa_group.wav",
1139
+ "/data/internal/anon_tokyo/togawa_group.wav",
1140
+ "/data/internal/anon_tokyo/togawa_group.wav",
1141
+ "/data/internal/anon_tokyo/togawa_group.wav",
1142
+ "/data/internal/anon_tokyo/togawa_group.wav",
1143
+ "/data/internal/anon_tokyo/togawa_group.wav",
1144
+ "/data/internal/anon_tokyo/togawa_group.wav",
1145
+ "/data/internal/anon_tokyo/togawa_group.wav",
1146
+ "/data/internal/anon_tokyo/togawa_group.wav",
1147
+ "/data/internal/anon_tokyo/togawa_group.wav",
1148
+ "/data/internal/anon_tokyo/togawa_group.wav",
1149
+ "/data/internal/anon_tokyo/togawa_group.wav",
1150
+ "/data/internal/anon_tokyo/togawa_group.wav",
1151
+ "/data/internal/anon_tokyo/togawa_group.wav",
1152
+ "/data/internal/anon_tokyo/togawa_group.wav",
1153
+ "/data/internal/anon_tokyo/togawa_group.wav",
1154
+ "/data/internal/anon_tokyo/togawa_group.wav",
1155
+ "/data/internal/anon_tokyo/togawa_group.wav",
1156
+ "/data/internal/anon_tokyo/togawa_group.wav",
1157
+ "/data/internal/anon_tokyo/togawa_group.wav",
1158
+ "/data/internal/anon_tokyo/togawa_group.wav",
1159
+ "/data/internal/anon_tokyo/togawa_group.wav",
1160
+ "/data/internal/anon_tokyo/togawa_group.wav",
1161
+ "/data/internal/anon_tokyo/togawa_group.wav",
1162
+ "/data/internal/anon_tokyo/togawa_group.wav",
1163
+ "/data/internal/anon_tokyo/togawa_group.wav",
1164
+ "/data/internal/anon_tokyo/togawa_group.wav",
1165
+ "/data/internal/anon_tokyo/togawa_group.wav",
1166
+ "/data/internal/anon_tokyo/togawa_group.wav"
1167
+ ],
1168
+ "alignment_shifts": [
1169
+ -4,
1170
+ 68,
1171
+ -44040,
1172
+ 0,
1173
+ 5730,
1174
+ -287164,
1175
+ 24,
1176
+ 78,
1177
+ 15432,
1178
+ 402,
1179
+ -2,
1180
+ 0,
1181
+ 63,
1182
+ 9542,
1183
+ -3,
1184
+ -2,
1185
+ 76,
1186
+ 3072,
1187
+ -59,
1188
+ 0,
1189
+ 64,
1190
+ -3,
1191
+ -17,
1192
+ 37,
1193
+ 79,
1194
+ 121,
1195
+ 124,
1196
+ 28,
1197
+ -14,
1198
+ 2,
1199
+ 9668,
1200
+ 8820,
1201
+ 30,
1202
+ -104,
1203
+ 67,
1204
+ -18,
1205
+ 15066,
1206
+ -3,
1207
+ 138,
1208
+ -21,
1209
+ -2,
1210
+ 36,
1211
+ 439,
1212
+ -3,
1213
+ 141,
1214
+ 77,
1215
+ -32,
1216
+ 3608,
1217
+ 321,
1218
+ 1,
1219
+ -4,
1220
+ 0,
1221
+ -28,
1222
+ -133515,
1223
+ -6,
1224
+ -11,
1225
+ -260006,
1226
+ 60,
1227
+ -33,
1228
+ -44,
1229
+ -45,
1230
+ 7,
1231
+ -7,
1232
+ 219,
1233
+ -316,
1234
+ 0,
1235
+ -35,
1236
+ -98742,
1237
+ -6,
1238
+ -5,
1239
+ 78,
1240
+ 0,
1241
+ -6,
1242
+ 0,
1243
+ 0,
1244
+ 67,
1245
+ -12,
1246
+ 15495,
1247
+ 69,
1248
+ 15429,
1249
+ -28645,
1250
+ -108,
1251
+ -4,
1252
+ 95,
1253
+ 2991,
1254
+ 19,
1255
+ -4,
1256
+ -2,
1257
+ 113,
1258
+ -3,
1259
+ 1,
1260
+ 61,
1261
+ 5292,
1262
+ 34,
1263
+ 71,
1264
+ 67,
1265
+ 530,
1266
+ 165,
1267
+ 2,
1268
+ 46,
1269
+ -3,
1270
+ -6,
1271
+ 69,
1272
+ 75,
1273
+ 66,
1274
+ 0,
1275
+ 0,
1276
+ 2872,
1277
+ 35,
1278
+ 35,
1279
+ -3,
1280
+ 35,
1281
+ 37,
1282
+ 0,
1283
+ -2,
1284
+ 43,
1285
+ -4,
1286
+ -2,
1287
+ 67,
1288
+ -6,
1289
+ 728,
1290
+ 22091,
1291
+ 0,
1292
+ 1,
1293
+ -7,
1294
+ 15432,
1295
+ 0,
1296
+ 59,
1297
+ 0,
1298
+ -4,
1299
+ 52,
1300
+ 30,
1301
+ -7,
1302
+ 0,
1303
+ -24,
1304
+ -167543,
1305
+ 67,
1306
+ 73,
1307
+ -2,
1308
+ -220,
1309
+ 60,
1310
+ -70562,
1311
+ 36,
1312
+ 2,
1313
+ 123,
1314
+ 145,
1315
+ -1450,
1316
+ -16962,
1317
+ 609,
1318
+ 36,
1319
+ 69,
1320
+ -801,
1321
+ -2,
1322
+ 4,
1323
+ 6,
1324
+ -2,
1325
+ 75,
1326
+ 70,
1327
+ -4,
1328
+ -2,
1329
+ 82,
1330
+ 53,
1331
+ 32,
1332
+ 128,
1333
+ -222,
1334
+ -28226,
1335
+ 3557,
1336
+ 15432,
1337
+ -6,
1338
+ -52666,
1339
+ 70,
1340
+ -7,
1341
+ 40,
1342
+ 65,
1343
+ -3,
1344
+ 8,
1345
+ 74,
1346
+ 11,
1347
+ 5,
1348
+ -1093343,
1349
+ -129130,
1350
+ -30,
1351
+ 34,
1352
+ -36,
1353
+ 15563,
1354
+ 53,
1355
+ -3,
1356
+ 67,
1357
+ 36,
1358
+ 116,
1359
+ 32,
1360
+ 21,
1361
+ -3,
1362
+ 5,
1363
+ 389,
1364
+ 4410,
1365
+ 82,
1366
+ 15525,
1367
+ -6,
1368
+ 100,
1369
+ 37,
1370
+ 15512,
1371
+ -2,
1372
+ -6,
1373
+ 34,
1374
+ 34,
1375
+ 99,
1376
+ -80,
1377
+ 4,
1378
+ -2,
1379
+ -2,
1380
+ -22,
1381
+ 269,
1382
+ 4471,
1383
+ 15543,
1384
+ 3,
1385
+ 1,
1386
+ 593,
1387
+ 35,
1388
+ 37,
1389
+ 87,
1390
+ 120,
1391
+ -7,
1392
+ -8,
1393
+ 8897,
1394
+ -6,
1395
+ -361965,
1396
+ 394,
1397
+ 430,
1398
+ -154363,
1399
+ -13172,
1400
+ 40,
1401
+ 135,
1402
+ -2,
1403
+ -9,
1404
+ 69,
1405
+ -2,
1406
+ 3593,
1407
+ 473,
1408
+ -2181,
1409
+ -11364,
1410
+ -70,
1411
+ -4,
1412
+ -76,
1413
+ -2,
1414
+ -16,
1415
+ 62,
1416
+ -6,
1417
+ -12239,
1418
+ 34,
1419
+ 8818,
1420
+ -77,
1421
+ -2,
1422
+ 15,
1423
+ -2,
1424
+ -2,
1425
+ 29,
1426
+ 2883,
1427
+ -2,
1428
+ 6613,
1429
+ -269138,
1430
+ 6614,
1431
+ -7067,
1432
+ 340,
1433
+ -160580,
1434
+ 137,
1435
+ 37,
1436
+ -99,
1437
+ 35,
1438
+ -114544,
1439
+ -113888,
1440
+ -33,
1441
+ -176504,
1442
+ 15500,
1443
+ 15437,
1444
+ 49,
1445
+ -42,
1446
+ -176364,
1447
+ 28,
1448
+ -4,
1449
+ 0,
1450
+ 63,
1451
+ -6,
1452
+ -3,
1453
+ -7,
1454
+ 68,
1455
+ 52,
1456
+ 59,
1457
+ 47,
1458
+ 70,
1459
+ 395,
1460
+ -2,
1461
+ 164,
1462
+ 38,
1463
+ -17,
1464
+ 137,
1465
+ 40,
1466
+ 6,
1467
+ 2,
1468
+ 140,
1469
+ 40,
1470
+ -40,
1471
+ 376,
1472
+ -3,
1473
+ 61,
1474
+ 458,
1475
+ -182879,
1476
+ -110896,
1477
+ 3,
1478
+ 34,
1479
+ -16,
1480
+ 80,
1481
+ 68,
1482
+ -2,
1483
+ 0,
1484
+ 28,
1485
+ 129,
1486
+ 166,
1487
+ 1449,
1488
+ 1,
1489
+ -161984,
1490
+ 363,
1491
+ 34,
1492
+ 135,
1493
+ 34,
1494
+ -124,
1495
+ 36,
1496
+ 38,
1497
+ 72,
1498
+ -123590,
1499
+ -45411,
1500
+ 67,
1501
+ -96332,
1502
+ -96333,
1503
+ 63,
1504
+ -2,
1505
+ 39,
1506
+ -20,
1507
+ 399,
1508
+ 34,
1509
+ 37,
1510
+ -7,
1511
+ 69,
1512
+ -6,
1513
+ 0,
1514
+ 3,
1515
+ 2933,
1516
+ -153040,
1517
+ -153041,
1518
+ -3,
1519
+ -2,
1520
+ 66,
1521
+ -72452,
1522
+ -3,
1523
+ -2,
1524
+ -6,
1525
+ -7,
1526
+ 1,
1527
+ -147889,
1528
+ 37,
1529
+ 0,
1530
+ 0,
1531
+ -2,
1532
+ 40,
1533
+ -3,
1534
+ 44,
1535
+ 76,
1536
+ -14,
1537
+ 49,
1538
+ 81,
1539
+ 34,
1540
+ 70,
1541
+ 63,
1542
+ 68,
1543
+ 0,
1544
+ 61,
1545
+ 0,
1546
+ 0,
1547
+ 62,
1548
+ 48,
1549
+ 58,
1550
+ 63,
1551
+ -23,
1552
+ -23,
1553
+ -2
1554
+ ],
1555
+ "params_original_shapes": [
1556
+ [],
1557
+ [],
1558
+ [],
1559
+ [],
1560
+ [],
1561
+ [],
1562
+ [],
1563
+ [],
1564
+ [],
1565
+ [],
1566
+ [],
1567
+ [],
1568
+ [],
1569
+ [],
1570
+ [],
1571
+ [],
1572
+ [],
1573
+ [
1574
+ 1
1575
+ ],
1576
+ [],
1577
+ [],
1578
+ [],
1579
+ [],
1580
+ [],
1581
+ [
1582
+ 1
1583
+ ],
1584
+ [],
1585
+ [],
1586
+ [],
1587
+ [],
1588
+ [],
1589
+ [],
1590
+ [],
1591
+ [
1592
+ 6,
1593
+ 2
1594
+ ],
1595
+ [
1596
+ 2,
1597
+ 6
1598
+ ],
1599
+ [
1600
+ 49,
1601
+ 1
1602
+ ],
1603
+ [
1604
+ 6,
1605
+ 6
1606
+ ],
1607
+ [],
1608
+ [],
1609
+ [],
1610
+ [],
1611
+ [],
1612
+ [],
1613
+ [],
1614
+ [],
1615
+ [],
1616
+ [],
1617
+ []
1618
+ ],
1619
+ "params_keys": [
1620
+ "0.params.gain",
1621
+ "0.params.parametrizations.freq.original",
1622
+ "0.params.parametrizations.Q.original",
1623
+ "1.params.gain",
1624
+ "1.params.parametrizations.freq.original",
1625
+ "1.params.parametrizations.Q.original",
1626
+ "2.params.gain",
1627
+ "2.params.parametrizations.freq.original",
1628
+ "3.params.gain",
1629
+ "3.params.parametrizations.freq.original",
1630
+ "4.params.parametrizations.freq.original",
1631
+ "4.params.parametrizations.Q.original",
1632
+ "5.params.parametrizations.freq.original",
1633
+ "5.params.parametrizations.Q.original",
1634
+ "6.params.cmp_th",
1635
+ "6.params.exp_th",
1636
+ "6.params.make_up",
1637
+ "6.params.parametrizations.lookahead.original",
1638
+ "6.params.parametrizations.at.original",
1639
+ "6.params.parametrizations.rt.original",
1640
+ "6.params.parametrizations.avg_coef.original",
1641
+ "6.params.parametrizations.cmp_ratio.original",
1642
+ "6.params.parametrizations.exp_ratio.original",
1643
+ "7.params.parametrizations.sends_0.original",
1644
+ "7.effects.0.params.parametrizations.delay.original",
1645
+ "7.effects.0.params.parametrizations.feedback.original",
1646
+ "7.effects.0.params.parametrizations.gain.original",
1647
+ "7.effects.0.eq.params.parametrizations.freq.original",
1648
+ "7.effects.0.eq.params.parametrizations.Q.original",
1649
+ "7.effects.0.odd_pan.params.parametrizations.pan.original",
1650
+ "7.effects.0.even_pan.params.parametrizations.pan.original",
1651
+ "7.effects.1.params.b",
1652
+ "7.effects.1.params.c",
1653
+ "7.effects.1.params.parametrizations.gamma.original",
1654
+ "7.effects.1.params.parametrizations.U.original",
1655
+ "7.effects.1.eq.0.params.gain",
1656
+ "7.effects.1.eq.0.params.parametrizations.freq.original",
1657
+ "7.effects.1.eq.0.params.parametrizations.Q.original",
1658
+ "7.effects.1.eq.1.params.gain",
1659
+ "7.effects.1.eq.1.params.parametrizations.freq.original",
1660
+ "7.effects.1.eq.1.params.parametrizations.Q.original",
1661
+ "7.effects.1.eq.2.params.gain",
1662
+ "7.effects.1.eq.2.params.parametrizations.freq.original",
1663
+ "7.effects.1.eq.3.params.gain",
1664
+ "7.effects.1.eq.3.params.parametrizations.freq.original",
1665
+ "7.pan.params.parametrizations.pan.original"
1666
+ ],
1667
+ "problematic_runs": {
1668
+ "terminated": [],
1669
+ "loss_above_4.0": [
1670
+ [
1671
+ "anon_tokyo/run_1",
1672
+ 6.585290908813477
1673
+ ],
1674
+ [
1675
+ "anon_tokyo/run_1",
1676
+ 4.723783016204834
1677
+ ]
1678
+ ],
1679
+ "not_converged": [],
1680
+ "fluctuated_above_0.2": [
1681
+ [
1682
+ "anon_tokyo/run_1",
1683
+ 0.49335169792175293
1684
+ ],
1685
+ [
1686
+ "anon_tokyo/run_1",
1687
+ 0.41164231300354004
1688
+ ],
1689
+ [
1690
+ "anon_tokyo/run_1",
1691
+ 0.5299015045166016
1692
+ ]
1693
+ ]
1694
+ }
1695
+ }
presets/medleydb/info.json ADDED
@@ -0,0 +1,441 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "runs": [
3
+ "~/processed/AClassicEducation_NightOwl/AClassicEducation_NightOwl_STEM_08/run_0",
4
+ "~/processed/AlexanderRoss_GoodbyeBolero/AlexanderRoss_GoodbyeBolero_STEM_06/run_0",
5
+ "~/processed/AlexanderRoss_VelvetCurtain/AlexanderRoss_VelvetCurtain_STEM_06/run_0",
6
+ "~/processed/Auctioneer_OurFutureFaces/Auctioneer_OurFutureFaces_STEM_08/run_0",
7
+ "~/processed/AvaLuna_Waterduct/AvaLuna_Waterduct_STEM_08/run_0",
8
+ "~/processed/BigTroubles_Phantom/BigTroubles_Phantom_STEM_04/run_0",
9
+ "~/processed/BrandonWebster_DontHearAThing/BrandonWebster_DontHearAThing_STEM_02/run_0",
10
+ "~/processed/BrandonWebster_DontHearAThing/BrandonWebster_DontHearAThing_STEM_01/run_0",
11
+ "~/processed/BrandonWebster_YesSirICanFly/BrandonWebster_YesSirICanFly_STEM_02/run_0",
12
+ "~/processed/CatMartino_IPromise/CatMartino_IPromise_STEM_06/run_0",
13
+ "~/processed/ClaraBerryAndWooldog_AirTraffic/ClaraBerryAndWooldog_AirTraffic_STEM_07/run_0",
14
+ "~/processed/ClaraBerryAndWooldog_AirTraffic/ClaraBerryAndWooldog_AirTraffic_STEM_08/run_0",
15
+ "~/processed/ClaraBerryAndWooldog_Boys/ClaraBerryAndWooldog_Boys_STEM_06/run_0",
16
+ "~/processed/ClaraBerryAndWooldog_Stella/ClaraBerryAndWooldog_Stella_STEM_07/run_0",
17
+ "~/processed/ClaraBerryAndWooldog_WaltzForMyVictims/ClaraBerryAndWooldog_WaltzForMyVictims_STEM_05/run_0",
18
+ "~/processed/DeadMilkmen_PrisonersCinema/DeadMilkmen_PrisonersCinema_STEM_12/run_0",
19
+ "~/processed/Debussy_LenfantProdigue/Debussy_LenfantProdigue_STEM_01/run_0",
20
+ "~/processed/DreamersOfTheGhetto_HeavyLove/DreamersOfTheGhetto_HeavyLove_STEM_08/run_0",
21
+ "~/processed/FacesOnFilm_WaitingForGa/FacesOnFilm_WaitingForGa_STEM_03/run_0",
22
+ "~/processed/FamilyBand_Again/FamilyBand_Again_STEM_09/run_0",
23
+ "~/processed/Handel_TornamiAVagheggiar/Handel_TornamiAVagheggiar_STEM_01/run_0",
24
+ "~/processed/HeladoNegro_MitadDelMundo/HeladoNegro_MitadDelMundo_STEM_08/run_0",
25
+ "~/processed/HeladoNegro_MitadDelMundo/HeladoNegro_MitadDelMundo_STEM_03/run_0",
26
+ "~/processed/HopAlong_SisterCities/HopAlong_SisterCities_STEM_07/run_0",
27
+ "~/processed/LizNelson_Coldwar/LizNelson_Coldwar_STEM_02/run_0",
28
+ "~/processed/LizNelson_ImComingHome/LizNelson_ImComingHome_STEM_02/run_0",
29
+ "~/processed/LizNelson_ImComingHome/LizNelson_ImComingHome_STEM_03/run_0",
30
+ "~/processed/LizNelson_ImComingHome/LizNelson_ImComingHome_STEM_04/run_0",
31
+ "~/processed/LizNelson_ImComingHome/LizNelson_ImComingHome_STEM_01/run_0",
32
+ "~/processed/LizNelson_Rainfall/LizNelson_Rainfall_STEM_01/run_0",
33
+ "~/processed/LizNelson_Rainfall/LizNelson_Rainfall_STEM_03/run_0",
34
+ "~/processed/LizNelson_Rainfall/LizNelson_Rainfall_STEM_02/run_0",
35
+ "~/processed/MatthewEntwistle_DontYouEver/MatthewEntwistle_DontYouEver_STEM_07/run_0",
36
+ "~/processed/MatthewEntwistle_Lontano/MatthewEntwistle_Lontano_STEM_02/run_0",
37
+ "~/processed/Meaxic_TakeAStep/Meaxic_TakeAStep_STEM_08/run_0",
38
+ "~/processed/Meaxic_TakeAStep/Meaxic_TakeAStep_STEM_04/run_0",
39
+ "~/processed/MidnightBlue_HuntingSeason/MidnightBlue_HuntingSeason_STEM_01/run_0",
40
+ "~/processed/MidnightBlue_HuntingSeason/MidnightBlue_HuntingSeason_STEM_02/run_0",
41
+ "~/processed/MidnightBlue_StarsAreScreaming/MidnightBlue_StarsAreScreaming_STEM_06/run_0",
42
+ "~/processed/MidnightBlue_StarsAreScreaming/MidnightBlue_StarsAreScreaming_STEM_07/run_0",
43
+ "~/processed/Mozart_BesterJungling/Mozart_BesterJungling_STEM_01/run_0",
44
+ "~/processed/Mozart_DiesBildnis/Mozart_DiesBildnis_STEM_01/run_0",
45
+ "~/processed/MusicDelta_80sRock/MusicDelta_80sRock_STEM_04/run_0",
46
+ "~/processed/MusicDelta_Beatles/MusicDelta_Beatles_STEM_08/run_0",
47
+ "~/processed/MusicDelta_Beatles/MusicDelta_Beatles_STEM_07/run_0",
48
+ "~/processed/MusicDelta_Britpop/MusicDelta_Britpop_STEM_07/run_0",
49
+ "~/processed/MusicDelta_Britpop/MusicDelta_Britpop_STEM_08/run_0",
50
+ "~/processed/MusicDelta_Country1/MusicDelta_Country1_STEM_05/run_1",
51
+ "~/processed/MusicDelta_Country2/MusicDelta_Country2_STEM_05/run_0",
52
+ "~/processed/MusicDelta_Disco/MusicDelta_Disco_STEM_04/run_0",
53
+ "~/processed/MusicDelta_Gospel/MusicDelta_Gospel_STEM_06/run_0",
54
+ "~/processed/MusicDelta_Grunge/MusicDelta_Grunge_STEM_05/run_0",
55
+ "~/processed/MusicDelta_Hendrix/MusicDelta_Hendrix_STEM_04/run_0",
56
+ "~/processed/MusicDelta_Punk/MusicDelta_Punk_STEM_04/run_0",
57
+ "~/processed/MusicDelta_Reggae/MusicDelta_Reggae_STEM_04/run_0",
58
+ "~/processed/MusicDelta_Rock/MusicDelta_Rock_STEM_05/run_0",
59
+ "~/processed/MusicDelta_Rockabilly/MusicDelta_Rockabilly_STEM_05/run_0",
60
+ "~/processed/MutualBenefit_NotForNothing/MutualBenefit_NotForNothing_STEM_06/run_0",
61
+ "~/processed/PortStWillow_StayEven/PortStWillow_StayEven_STEM_08/run_0",
62
+ "~/processed/Schubert_Erstarrung/Schubert_Erstarrung_STEM_01/run_0",
63
+ "~/processed/Schumann_Mignon/Schumann_Mignon_STEM_02/run_0",
64
+ "~/processed/Snowmine_Curfews/Snowmine_Curfews_STEM_03/run_0",
65
+ "~/processed/SongYiJeon_TwoMoons/SongYiJeon_TwoMoons_STEM_01/run_0",
66
+ "~/processed/StevenClark_Bounty/StevenClark_Bounty_STEM_08/run_0",
67
+ "~/processed/StrandOfOaks_Spacestation/StrandOfOaks_Spacestation_STEM_04/run_0",
68
+ "~/processed/TheKitchenettes_Alive/TheKitchenettes_Alive_STEM_01/run_0",
69
+ "~/processed/TheScarletBrand_LesFleursDuMal/TheScarletBrand_LesFleursDuMal_STEM_08/run_0",
70
+ "~/processed/TleilaxEnsemble_Late/TleilaxEnsemble_Late_STEM_04/run_0",
71
+ "~/processed/TleilaxEnsemble_Late/TleilaxEnsemble_Late_STEM_05/run_0",
72
+ "~/processed/TleilaxEnsemble_MelancholyFlowers/TleilaxEnsemble_MelancholyFlowers_STEM_04/run_0",
73
+ "~/processed/TleilaxEnsemble_MelancholyFlowers/TleilaxEnsemble_MelancholyFlowers_STEM_05/run_0",
74
+ "~/processed/Torres_NewSkin/Torres_NewSkin_STEM_02/run_0",
75
+ "~/processed/Torres_NewSkin/Torres_NewSkin_STEM_05/run_0",
76
+ "~/processed/Torres_NewSkin/Torres_NewSkin_STEM_10/run_0",
77
+ "~/processed/Torres_NewSkin/Torres_NewSkin_STEM_03/run_0",
78
+ "~/processed/Wolf_DieBekherte/Wolf_DieBekherte_STEM_01/run_0"
79
+ ],
80
+ "dry_files": [
81
+ "/data/medley1/v1/Audio/AClassicEducation_NightOwl/AClassicEducation_NightOwl_RAW/AClassicEducation_NightOwl_RAW_08_01.wav",
82
+ "/data/medley1/v1/Audio/Auctioneer_OurFutureFaces/Auctioneer_OurFutureFaces_RAW/Auctioneer_OurFutureFaces_RAW_08_01.wav",
83
+ "/data/medley1/v1/Audio/AvaLuna_Waterduct/AvaLuna_Waterduct_RAW/AvaLuna_Waterduct_RAW_08_01.wav",
84
+ "/data/medley1/v1/Audio/BigTroubles_Phantom/BigTroubles_Phantom_RAW/BigTroubles_Phantom_RAW_04_01.wav",
85
+ "/data/medley1/v1/Audio/BrandonWebster_DontHearAThing/BrandonWebster_DontHearAThing_RAW/BrandonWebster_DontHearAThing_RAW_02_01.wav",
86
+ "/data/medley1/v1/Audio/BrandonWebster_DontHearAThing/BrandonWebster_DontHearAThing_RAW/BrandonWebster_DontHearAThing_RAW_01_01.wav",
87
+ "/data/medley1/v1/Audio/BrandonWebster_YesSirICanFly/BrandonWebster_YesSirICanFly_RAW/BrandonWebster_YesSirICanFly_RAW_02_01.wav",
88
+ "/data/medley1/v2/Audio/CatMartino_IPromise/CatMartino_IPromise_RAW/CatMartino_IPromise_RAW_06_01.wav",
89
+ "/data/medley1/v1/Audio/ClaraBerryAndWooldog_AirTraffic/ClaraBerryAndWooldog_AirTraffic_RAW/ClaraBerryAndWooldog_AirTraffic_RAW_07_01.wav",
90
+ "/data/medley1/v1/Audio/ClaraBerryAndWooldog_AirTraffic/ClaraBerryAndWooldog_AirTraffic_RAW/ClaraBerryAndWooldog_AirTraffic_RAW_08_01.wav",
91
+ "/data/medley1/v1/Audio/ClaraBerryAndWooldog_Boys/ClaraBerryAndWooldog_Boys_RAW/ClaraBerryAndWooldog_Boys_RAW_06_01.wav",
92
+ "/data/medley1/v1/Audio/ClaraBerryAndWooldog_Stella/ClaraBerryAndWooldog_Stella_RAW/ClaraBerryAndWooldog_Stella_RAW_07_01.wav",
93
+ "/data/medley1/v1/Audio/ClaraBerryAndWooldog_WaltzForMyVictims/ClaraBerryAndWooldog_WaltzForMyVictims_RAW/ClaraBerryAndWooldog_WaltzForMyVictims_RAW_05_01.wav",
94
+ "/data/medley1/v2/Audio/DeadMilkmen_PrisonersCinema/DeadMilkmen_PrisonersCinema_RAW/DeadMilkmen_PrisonersCinema_RAW_12_01.wav",
95
+ "/data/medley1/v1/Audio/DreamersOfTheGhetto_HeavyLove/DreamersOfTheGhetto_HeavyLove_RAW/DreamersOfTheGhetto_HeavyLove_RAW_08_01.wav",
96
+ "/data/medley1/v1/Audio/FacesOnFilm_WaitingForGa/FacesOnFilm_WaitingForGa_RAW/FacesOnFilm_WaitingForGa_RAW_03_01.wav",
97
+ "/data/medley1/v1/Audio/FamilyBand_Again/FamilyBand_Again_RAW/FamilyBand_Again_RAW_09_01.wav",
98
+ "/data/medley1/v1/Audio/Handel_TornamiAVagheggiar/Handel_TornamiAVagheggiar_RAW/Handel_TornamiAVagheggiar_RAW_01_01.wav",
99
+ "/data/medley1/v1/Audio/HeladoNegro_MitadDelMundo/HeladoNegro_MitadDelMundo_RAW/HeladoNegro_MitadDelMundo_RAW_08_01.wav",
100
+ "/data/medley1/v1/Audio/HeladoNegro_MitadDelMundo/HeladoNegro_MitadDelMundo_RAW/HeladoNegro_MitadDelMundo_RAW_03_01.wav",
101
+ "/data/medley1/v1/Audio/HopAlong_SisterCities/HopAlong_SisterCities_RAW/HopAlong_SisterCities_RAW_07_01.wav",
102
+ "/data/medley1/v1/Audio/LizNelson_Coldwar/LizNelson_Coldwar_RAW/LizNelson_Coldwar_RAW_02_01.wav",
103
+ "/data/medley1/v1/Audio/LizNelson_ImComingHome/LizNelson_ImComingHome_RAW/LizNelson_ImComingHome_RAW_02_01.wav",
104
+ "/data/medley1/v1/Audio/LizNelson_ImComingHome/LizNelson_ImComingHome_RAW/LizNelson_ImComingHome_RAW_03_01.wav",
105
+ "/data/medley1/v1/Audio/LizNelson_ImComingHome/LizNelson_ImComingHome_RAW/LizNelson_ImComingHome_RAW_04_01.wav",
106
+ "/data/medley1/v1/Audio/LizNelson_ImComingHome/LizNelson_ImComingHome_RAW/LizNelson_ImComingHome_RAW_01_01.wav",
107
+ "/data/medley1/v1/Audio/LizNelson_Rainfall/LizNelson_Rainfall_RAW/LizNelson_Rainfall_RAW_01_01.wav",
108
+ "/data/medley1/v1/Audio/LizNelson_Rainfall/LizNelson_Rainfall_RAW/LizNelson_Rainfall_RAW_03_01.wav",
109
+ "/data/medley1/v1/Audio/LizNelson_Rainfall/LizNelson_Rainfall_RAW/LizNelson_Rainfall_RAW_02_01.wav",
110
+ "/data/medley1/v1/Audio/MatthewEntwistle_DontYouEver/MatthewEntwistle_DontYouEver_RAW/MatthewEntwistle_DontYouEver_RAW_07_01.wav",
111
+ "/data/medley1/v1/Audio/MatthewEntwistle_Lontano/MatthewEntwistle_Lontano_RAW/MatthewEntwistle_Lontano_RAW_02_01.wav",
112
+ "/data/medley1/v1/Audio/Meaxic_TakeAStep/Meaxic_TakeAStep_RAW/Meaxic_TakeAStep_RAW_08_01.wav",
113
+ "/data/medley1/v1/Audio/Meaxic_TakeAStep/Meaxic_TakeAStep_RAW/Meaxic_TakeAStep_RAW_04_01.wav",
114
+ "/data/medley1/v2/Audio/MidnightBlue_HuntingSeason/MidnightBlue_HuntingSeason_RAW/MidnightBlue_HuntingSeason_RAW_01_01.wav",
115
+ "/data/medley1/v2/Audio/MidnightBlue_HuntingSeason/MidnightBlue_HuntingSeason_RAW/MidnightBlue_HuntingSeason_RAW_02_01.wav",
116
+ "/data/medley1/v2/Audio/MidnightBlue_StarsAreScreaming/MidnightBlue_StarsAreScreaming_RAW/MidnightBlue_StarsAreScreaming_RAW_06_01.wav",
117
+ "/data/medley1/v2/Audio/MidnightBlue_StarsAreScreaming/MidnightBlue_StarsAreScreaming_RAW/MidnightBlue_StarsAreScreaming_RAW_07_01.wav",
118
+ "/data/medley1/v1/Audio/Mozart_BesterJungling/Mozart_BesterJungling_RAW/Mozart_BesterJungling_RAW_01_01.wav",
119
+ "/data/medley1/v1/Audio/MusicDelta_80sRock/MusicDelta_80sRock_RAW/MusicDelta_80sRock_RAW_04_01.wav",
120
+ "/data/medley1/v1/Audio/MusicDelta_Beatles/MusicDelta_Beatles_RAW/MusicDelta_Beatles_RAW_08_01.wav",
121
+ "/data/medley1/v1/Audio/MusicDelta_Beatles/MusicDelta_Beatles_RAW/MusicDelta_Beatles_RAW_07_01.wav",
122
+ "/data/medley1/v1/Audio/MusicDelta_Britpop/MusicDelta_Britpop_RAW/MusicDelta_Britpop_RAW_07_01.wav",
123
+ "/data/medley1/v1/Audio/MusicDelta_Britpop/MusicDelta_Britpop_RAW/MusicDelta_Britpop_RAW_08_01.wav",
124
+ "/data/medley1/v1/Audio/MusicDelta_Country1/MusicDelta_Country1_RAW/MusicDelta_Country1_RAW_05_01.wav",
125
+ "/data/medley1/v1/Audio/MusicDelta_Country2/MusicDelta_Country2_RAW/MusicDelta_Country2_RAW_05_01.wav",
126
+ "/data/medley1/v1/Audio/MusicDelta_Disco/MusicDelta_Disco_RAW/MusicDelta_Disco_RAW_04_01.wav",
127
+ "/data/medley1/v1/Audio/MusicDelta_Gospel/MusicDelta_Gospel_RAW/MusicDelta_Gospel_RAW_06_01.wav",
128
+ "/data/medley1/v1/Audio/MusicDelta_Grunge/MusicDelta_Grunge_RAW/MusicDelta_Grunge_RAW_05_01.wav",
129
+ "/data/medley1/v1/Audio/MusicDelta_Hendrix/MusicDelta_Hendrix_RAW/MusicDelta_Hendrix_RAW_04_01.wav",
130
+ "/data/medley1/v1/Audio/MusicDelta_Punk/MusicDelta_Punk_RAW/MusicDelta_Punk_RAW_04_01.wav",
131
+ "/data/medley1/v1/Audio/MusicDelta_Reggae/MusicDelta_Reggae_RAW/MusicDelta_Reggae_RAW_04_01.wav",
132
+ "/data/medley1/v1/Audio/MusicDelta_Rock/MusicDelta_Rock_RAW/MusicDelta_Rock_RAW_05_01.wav",
133
+ "/data/medley1/v1/Audio/MusicDelta_Rockabilly/MusicDelta_Rockabilly_RAW/MusicDelta_Rockabilly_RAW_05_01.wav",
134
+ "/data/medley1/v2/Audio/MutualBenefit_NotForNothing/MutualBenefit_NotForNothing_RAW/MutualBenefit_NotForNothing_RAW_06_01.wav",
135
+ "/data/medley1/v1/Audio/PortStWillow_StayEven/PortStWillow_StayEven_RAW/PortStWillow_StayEven_RAW_08_01.wav",
136
+ "/data/medley1/v1/Audio/Snowmine_Curfews/Snowmine_Curfews_RAW/Snowmine_Curfews_RAW_03_01.wav",
137
+ "/data/medley1/v2/Audio/SongYiJeon_TwoMoons/SongYiJeon_TwoMoons_RAW/SongYiJeon_TwoMoons_RAW_01_01.wav",
138
+ "/data/medley1/v1/Audio/StevenClark_Bounty/StevenClark_Bounty_RAW/StevenClark_Bounty_RAW_08_01.wav",
139
+ "/data/medley1/v1/Audio/StrandOfOaks_Spacestation/StrandOfOaks_Spacestation_RAW/StrandOfOaks_Spacestation_RAW_04_01.wav",
140
+ "/data/medley1/v2/Audio/TheKitchenettes_Alive/TheKitchenettes_Alive_RAW/TheKitchenettes_Alive_RAW_01_01.wav",
141
+ "/data/medley1/v1/Audio/TheScarletBrand_LesFleursDuMal/TheScarletBrand_LesFleursDuMal_RAW/TheScarletBrand_LesFleursDuMal_RAW_08_01.wav",
142
+ "/data/medley1/v2/Audio/TleilaxEnsemble_Late/TleilaxEnsemble_Late_RAW/TleilaxEnsemble_Late_RAW_04_01.wav",
143
+ "/data/medley1/v2/Audio/TleilaxEnsemble_Late/TleilaxEnsemble_Late_RAW/TleilaxEnsemble_Late_RAW_05_01.wav",
144
+ "/data/medley1/v2/Audio/TleilaxEnsemble_MelancholyFlowers/TleilaxEnsemble_MelancholyFlowers_RAW/TleilaxEnsemble_MelancholyFlowers_RAW_04_01.wav",
145
+ "/data/medley1/v2/Audio/TleilaxEnsemble_MelancholyFlowers/TleilaxEnsemble_MelancholyFlowers_RAW/TleilaxEnsemble_MelancholyFlowers_RAW_05_01.wav",
146
+ "/data/medley1/v2/Audio/Torres_NewSkin/Torres_NewSkin_RAW/Torres_NewSkin_RAW_02_01.wav",
147
+ "/data/medley1/v2/Audio/Torres_NewSkin/Torres_NewSkin_RAW/Torres_NewSkin_RAW_05_01.wav",
148
+ "/data/medley1/v2/Audio/Torres_NewSkin/Torres_NewSkin_RAW/Torres_NewSkin_RAW_10_01.wav",
149
+ "/data/medley1/v2/Audio/Torres_NewSkin/Torres_NewSkin_RAW/Torres_NewSkin_RAW_03_01.wav",
150
+ "/data/medley1/v1/Audio/Wolf_DieBekherte/Wolf_DieBekherte_RAW/Wolf_DieBekherte_RAW_01_01.wav"
151
+ ],
152
+ "wet_files": [
153
+ "/data/medley1/v1/Audio/AClassicEducation_NightOwl/AClassicEducation_NightOwl_STEMS/AClassicEducation_NightOwl_STEM_08.wav",
154
+ "/data/medley1/v1/Audio/Auctioneer_OurFutureFaces/Auctioneer_OurFutureFaces_STEMS/Auctioneer_OurFutureFaces_STEM_08.wav",
155
+ "/data/medley1/v1/Audio/AvaLuna_Waterduct/AvaLuna_Waterduct_STEMS/AvaLuna_Waterduct_STEM_08.wav",
156
+ "/data/medley1/v1/Audio/BigTroubles_Phantom/BigTroubles_Phantom_STEMS/BigTroubles_Phantom_STEM_04.wav",
157
+ "/data/medley1/v1/Audio/BrandonWebster_DontHearAThing/BrandonWebster_DontHearAThing_STEMS/BrandonWebster_DontHearAThing_STEM_02.wav",
158
+ "/data/medley1/v1/Audio/BrandonWebster_DontHearAThing/BrandonWebster_DontHearAThing_STEMS/BrandonWebster_DontHearAThing_STEM_01.wav",
159
+ "/data/medley1/v1/Audio/BrandonWebster_YesSirICanFly/BrandonWebster_YesSirICanFly_STEMS/BrandonWebster_YesSirICanFly_STEM_02.wav",
160
+ "/data/medley1/v2/Audio/CatMartino_IPromise/CatMartino_IPromise_STEMS/CatMartino_IPromise_STEM_06.wav",
161
+ "/data/medley1/v1/Audio/ClaraBerryAndWooldog_AirTraffic/ClaraBerryAndWooldog_AirTraffic_STEMS/ClaraBerryAndWooldog_AirTraffic_STEM_07.wav",
162
+ "/data/medley1/v1/Audio/ClaraBerryAndWooldog_AirTraffic/ClaraBerryAndWooldog_AirTraffic_STEMS/ClaraBerryAndWooldog_AirTraffic_STEM_08.wav",
163
+ "/data/medley1/v1/Audio/ClaraBerryAndWooldog_Boys/ClaraBerryAndWooldog_Boys_STEMS/ClaraBerryAndWooldog_Boys_STEM_06.wav",
164
+ "/data/medley1/v1/Audio/ClaraBerryAndWooldog_Stella/ClaraBerryAndWooldog_Stella_STEMS/ClaraBerryAndWooldog_Stella_STEM_07.wav",
165
+ "/data/medley1/v1/Audio/ClaraBerryAndWooldog_WaltzForMyVictims/ClaraBerryAndWooldog_WaltzForMyVictims_STEMS/ClaraBerryAndWooldog_WaltzForMyVictims_STEM_05.wav",
166
+ "/data/medley1/v2/Audio/DeadMilkmen_PrisonersCinema/DeadMilkmen_PrisonersCinema_STEMS/DeadMilkmen_PrisonersCinema_STEM_12.wav",
167
+ "/data/medley1/v1/Audio/DreamersOfTheGhetto_HeavyLove/DreamersOfTheGhetto_HeavyLove_STEMS/DreamersOfTheGhetto_HeavyLove_STEM_08.wav",
168
+ "/data/medley1/v1/Audio/FacesOnFilm_WaitingForGa/FacesOnFilm_WaitingForGa_STEMS/FacesOnFilm_WaitingForGa_STEM_03.wav",
169
+ "/data/medley1/v1/Audio/FamilyBand_Again/FamilyBand_Again_STEMS/FamilyBand_Again_STEM_09.wav",
170
+ "/data/medley1/v1/Audio/Handel_TornamiAVagheggiar/Handel_TornamiAVagheggiar_STEMS/Handel_TornamiAVagheggiar_STEM_01.wav",
171
+ "/data/medley1/v1/Audio/HeladoNegro_MitadDelMundo/HeladoNegro_MitadDelMundo_STEMS/HeladoNegro_MitadDelMundo_STEM_08.wav",
172
+ "/data/medley1/v1/Audio/HeladoNegro_MitadDelMundo/HeladoNegro_MitadDelMundo_STEMS/HeladoNegro_MitadDelMundo_STEM_03.wav",
173
+ "/data/medley1/v1/Audio/HopAlong_SisterCities/HopAlong_SisterCities_STEMS/HopAlong_SisterCities_STEM_07.wav",
174
+ "/data/medley1/v1/Audio/LizNelson_Coldwar/LizNelson_Coldwar_STEMS/LizNelson_Coldwar_STEM_02.wav",
175
+ "/data/medley1/v1/Audio/LizNelson_ImComingHome/LizNelson_ImComingHome_STEMS/LizNelson_ImComingHome_STEM_02.wav",
176
+ "/data/medley1/v1/Audio/LizNelson_ImComingHome/LizNelson_ImComingHome_STEMS/LizNelson_ImComingHome_STEM_03.wav",
177
+ "/data/medley1/v1/Audio/LizNelson_ImComingHome/LizNelson_ImComingHome_STEMS/LizNelson_ImComingHome_STEM_04.wav",
178
+ "/data/medley1/v1/Audio/LizNelson_ImComingHome/LizNelson_ImComingHome_STEMS/LizNelson_ImComingHome_STEM_01.wav",
179
+ "/data/medley1/v1/Audio/LizNelson_Rainfall/LizNelson_Rainfall_STEMS/LizNelson_Rainfall_STEM_01.wav",
180
+ "/data/medley1/v1/Audio/LizNelson_Rainfall/LizNelson_Rainfall_STEMS/LizNelson_Rainfall_STEM_03.wav",
181
+ "/data/medley1/v1/Audio/LizNelson_Rainfall/LizNelson_Rainfall_STEMS/LizNelson_Rainfall_STEM_02.wav",
182
+ "/data/medley1/v1/Audio/MatthewEntwistle_DontYouEver/MatthewEntwistle_DontYouEver_STEMS/MatthewEntwistle_DontYouEver_STEM_07.wav",
183
+ "/data/medley1/v1/Audio/MatthewEntwistle_Lontano/MatthewEntwistle_Lontano_STEMS/MatthewEntwistle_Lontano_STEM_02.wav",
184
+ "/data/medley1/v1/Audio/Meaxic_TakeAStep/Meaxic_TakeAStep_STEMS/Meaxic_TakeAStep_STEM_08.wav",
185
+ "/data/medley1/v1/Audio/Meaxic_TakeAStep/Meaxic_TakeAStep_STEMS/Meaxic_TakeAStep_STEM_04.wav",
186
+ "/data/medley1/v2/Audio/MidnightBlue_HuntingSeason/MidnightBlue_HuntingSeason_STEMS/MidnightBlue_HuntingSeason_STEM_01.wav",
187
+ "/data/medley1/v2/Audio/MidnightBlue_HuntingSeason/MidnightBlue_HuntingSeason_STEMS/MidnightBlue_HuntingSeason_STEM_02.wav",
188
+ "/data/medley1/v2/Audio/MidnightBlue_StarsAreScreaming/MidnightBlue_StarsAreScreaming_STEMS/MidnightBlue_StarsAreScreaming_STEM_06.wav",
189
+ "/data/medley1/v2/Audio/MidnightBlue_StarsAreScreaming/MidnightBlue_StarsAreScreaming_STEMS/MidnightBlue_StarsAreScreaming_STEM_07.wav",
190
+ "/data/medley1/v1/Audio/Mozart_BesterJungling/Mozart_BesterJungling_STEMS/Mozart_BesterJungling_STEM_01.wav",
191
+ "/data/medley1/v1/Audio/MusicDelta_80sRock/MusicDelta_80sRock_STEMS/MusicDelta_80sRock_STEM_04.wav",
192
+ "/data/medley1/v1/Audio/MusicDelta_Beatles/MusicDelta_Beatles_STEMS/MusicDelta_Beatles_STEM_08.wav",
193
+ "/data/medley1/v1/Audio/MusicDelta_Beatles/MusicDelta_Beatles_STEMS/MusicDelta_Beatles_STEM_07.wav",
194
+ "/data/medley1/v1/Audio/MusicDelta_Britpop/MusicDelta_Britpop_STEMS/MusicDelta_Britpop_STEM_07.wav",
195
+ "/data/medley1/v1/Audio/MusicDelta_Britpop/MusicDelta_Britpop_STEMS/MusicDelta_Britpop_STEM_08.wav",
196
+ "/data/medley1/v1/Audio/MusicDelta_Country1/MusicDelta_Country1_STEMS/MusicDelta_Country1_STEM_05.wav",
197
+ "/data/medley1/v1/Audio/MusicDelta_Country2/MusicDelta_Country2_STEMS/MusicDelta_Country2_STEM_05.wav",
198
+ "/data/medley1/v1/Audio/MusicDelta_Disco/MusicDelta_Disco_STEMS/MusicDelta_Disco_STEM_04.wav",
199
+ "/data/medley1/v1/Audio/MusicDelta_Gospel/MusicDelta_Gospel_STEMS/MusicDelta_Gospel_STEM_06.wav",
200
+ "/data/medley1/v1/Audio/MusicDelta_Grunge/MusicDelta_Grunge_STEMS/MusicDelta_Grunge_STEM_05.wav",
201
+ "/data/medley1/v1/Audio/MusicDelta_Hendrix/MusicDelta_Hendrix_STEMS/MusicDelta_Hendrix_STEM_04.wav",
202
+ "/data/medley1/v1/Audio/MusicDelta_Punk/MusicDelta_Punk_STEMS/MusicDelta_Punk_STEM_04.wav",
203
+ "/data/medley1/v1/Audio/MusicDelta_Reggae/MusicDelta_Reggae_STEMS/MusicDelta_Reggae_STEM_04.wav",
204
+ "/data/medley1/v1/Audio/MusicDelta_Rock/MusicDelta_Rock_STEMS/MusicDelta_Rock_STEM_05.wav",
205
+ "/data/medley1/v1/Audio/MusicDelta_Rockabilly/MusicDelta_Rockabilly_STEMS/MusicDelta_Rockabilly_STEM_05.wav",
206
+ "/data/medley1/v2/Audio/MutualBenefit_NotForNothing/MutualBenefit_NotForNothing_STEMS/MutualBenefit_NotForNothing_STEM_06.wav",
207
+ "/data/medley1/v1/Audio/PortStWillow_StayEven/PortStWillow_StayEven_STEMS/PortStWillow_StayEven_STEM_08.wav",
208
+ "/data/medley1/v1/Audio/Snowmine_Curfews/Snowmine_Curfews_STEMS/Snowmine_Curfews_STEM_03.wav",
209
+ "/data/medley1/v2/Audio/SongYiJeon_TwoMoons/SongYiJeon_TwoMoons_STEMS/SongYiJeon_TwoMoons_STEM_01.wav",
210
+ "/data/medley1/v1/Audio/StevenClark_Bounty/StevenClark_Bounty_STEMS/StevenClark_Bounty_STEM_08.wav",
211
+ "/data/medley1/v1/Audio/StrandOfOaks_Spacestation/StrandOfOaks_Spacestation_STEMS/StrandOfOaks_Spacestation_STEM_04.wav",
212
+ "/data/medley1/v2/Audio/TheKitchenettes_Alive/TheKitchenettes_Alive_STEMS/TheKitchenettes_Alive_STEM_01.wav",
213
+ "/data/medley1/v1/Audio/TheScarletBrand_LesFleursDuMal/TheScarletBrand_LesFleursDuMal_STEMS/TheScarletBrand_LesFleursDuMal_STEM_08.wav",
214
+ "/data/medley1/v2/Audio/TleilaxEnsemble_Late/TleilaxEnsemble_Late_STEMS/TleilaxEnsemble_Late_STEM_04.wav",
215
+ "/data/medley1/v2/Audio/TleilaxEnsemble_Late/TleilaxEnsemble_Late_STEMS/TleilaxEnsemble_Late_STEM_05.wav",
216
+ "/data/medley1/v2/Audio/TleilaxEnsemble_MelancholyFlowers/TleilaxEnsemble_MelancholyFlowers_STEMS/TleilaxEnsemble_MelancholyFlowers_STEM_04.wav",
217
+ "/data/medley1/v2/Audio/TleilaxEnsemble_MelancholyFlowers/TleilaxEnsemble_MelancholyFlowers_STEMS/TleilaxEnsemble_MelancholyFlowers_STEM_05.wav",
218
+ "/data/medley1/v2/Audio/Torres_NewSkin/Torres_NewSkin_STEMS/Torres_NewSkin_STEM_02.wav",
219
+ "/data/medley1/v2/Audio/Torres_NewSkin/Torres_NewSkin_STEMS/Torres_NewSkin_STEM_05.wav",
220
+ "/data/medley1/v2/Audio/Torres_NewSkin/Torres_NewSkin_STEMS/Torres_NewSkin_STEM_10.wav",
221
+ "/data/medley1/v2/Audio/Torres_NewSkin/Torres_NewSkin_STEMS/Torres_NewSkin_STEM_03.wav",
222
+ "/data/medley1/v1/Audio/Wolf_DieBekherte/Wolf_DieBekherte_STEMS/Wolf_DieBekherte_STEM_01.wav"
223
+ ],
224
+ "alignment_shifts": [
225
+ 20,
226
+ -675,
227
+ -2130,
228
+ -1644,
229
+ 3,
230
+ 3,
231
+ -98,
232
+ -3,
233
+ 0,
234
+ 0,
235
+ 63,
236
+ 63,
237
+ 0,
238
+ -2,
239
+ 4,
240
+ -657,
241
+ -25414,
242
+ -2,
243
+ -1967,
244
+ -1996,
245
+ -761,
246
+ 6475,
247
+ 5091,
248
+ 1238,
249
+ 5689,
250
+ 7158,
251
+ 2265,
252
+ 1260,
253
+ 1144,
254
+ 0,
255
+ -5,
256
+ 0,
257
+ 841,
258
+ 0,
259
+ 0,
260
+ -2,
261
+ 0,
262
+ -2,
263
+ -490,
264
+ -47,
265
+ -3,
266
+ -185,
267
+ -20,
268
+ -46,
269
+ -43,
270
+ -47,
271
+ -175,
272
+ -46,
273
+ 366,
274
+ -46,
275
+ -48,
276
+ -50,
277
+ -47,
278
+ -5,
279
+ 289,
280
+ 4298,
281
+ 0,
282
+ -235,
283
+ -351,
284
+ 0,
285
+ 1,
286
+ 0,
287
+ 0,
288
+ 0,
289
+ 0,
290
+ -2,
291
+ -5,
292
+ -4,
293
+ -2,
294
+ 2
295
+ ],
296
+ "params_original_shapes": [
297
+ [],
298
+ [],
299
+ [],
300
+ [],
301
+ [],
302
+ [],
303
+ [],
304
+ [],
305
+ [],
306
+ [],
307
+ [],
308
+ [],
309
+ [],
310
+ [],
311
+ [],
312
+ [],
313
+ [],
314
+ [
315
+ 1
316
+ ],
317
+ [],
318
+ [],
319
+ [],
320
+ [],
321
+ [],
322
+ [
323
+ 1
324
+ ],
325
+ [],
326
+ [],
327
+ [],
328
+ [],
329
+ [],
330
+ [],
331
+ [],
332
+ [
333
+ 6,
334
+ 2
335
+ ],
336
+ [
337
+ 2,
338
+ 6
339
+ ],
340
+ [
341
+ 49,
342
+ 1
343
+ ],
344
+ [
345
+ 6,
346
+ 6
347
+ ],
348
+ [],
349
+ [],
350
+ [],
351
+ [],
352
+ [],
353
+ [],
354
+ [],
355
+ [],
356
+ [],
357
+ [],
358
+ []
359
+ ],
360
+ "params_keys": [
361
+ "0.params.gain",
362
+ "0.params.parametrizations.freq.original",
363
+ "0.params.parametrizations.Q.original",
364
+ "1.params.gain",
365
+ "1.params.parametrizations.freq.original",
366
+ "1.params.parametrizations.Q.original",
367
+ "2.params.gain",
368
+ "2.params.parametrizations.freq.original",
369
+ "3.params.gain",
370
+ "3.params.parametrizations.freq.original",
371
+ "4.params.parametrizations.freq.original",
372
+ "4.params.parametrizations.Q.original",
373
+ "5.params.parametrizations.freq.original",
374
+ "5.params.parametrizations.Q.original",
375
+ "6.params.cmp_th",
376
+ "6.params.exp_th",
377
+ "6.params.make_up",
378
+ "6.params.parametrizations.lookahead.original",
379
+ "6.params.parametrizations.at.original",
380
+ "6.params.parametrizations.rt.original",
381
+ "6.params.parametrizations.avg_coef.original",
382
+ "6.params.parametrizations.cmp_ratio.original",
383
+ "6.params.parametrizations.exp_ratio.original",
384
+ "7.params.parametrizations.sends_0.original",
385
+ "7.effects.0.params.parametrizations.delay.original",
386
+ "7.effects.0.params.parametrizations.feedback.original",
387
+ "7.effects.0.params.parametrizations.gain.original",
388
+ "7.effects.0.eq.params.parametrizations.freq.original",
389
+ "7.effects.0.eq.params.parametrizations.Q.original",
390
+ "7.effects.0.odd_pan.params.parametrizations.pan.original",
391
+ "7.effects.0.even_pan.params.parametrizations.pan.original",
392
+ "7.effects.1.params.b",
393
+ "7.effects.1.params.c",
394
+ "7.effects.1.params.parametrizations.gamma.original",
395
+ "7.effects.1.params.parametrizations.U.original",
396
+ "7.effects.1.eq.0.params.gain",
397
+ "7.effects.1.eq.0.params.parametrizations.freq.original",
398
+ "7.effects.1.eq.0.params.parametrizations.Q.original",
399
+ "7.effects.1.eq.1.params.gain",
400
+ "7.effects.1.eq.1.params.parametrizations.freq.original",
401
+ "7.effects.1.eq.1.params.parametrizations.Q.original",
402
+ "7.effects.1.eq.2.params.gain",
403
+ "7.effects.1.eq.2.params.parametrizations.freq.original",
404
+ "7.effects.1.eq.3.params.gain",
405
+ "7.effects.1.eq.3.params.parametrizations.freq.original",
406
+ "7.pan.params.parametrizations.pan.original"
407
+ ],
408
+ "problematic_runs": {
409
+ "terminated": [],
410
+ "loss_above_4.0": [],
411
+ "not_converged": [
412
+ [
413
+ "Debussy_LenfantProdigue/Debussy_LenfantProdigue_STEM_01/run_0",
414
+ 1.0083130598068237,
415
+ 1.673229455947876
416
+ ]
417
+ ],
418
+ "fluctuated_above_0.2": [
419
+ [
420
+ "AlexanderRoss_GoodbyeBolero/AlexanderRoss_GoodbyeBolero_STEM_06/run_0",
421
+ 0.5641272068023682
422
+ ],
423
+ [
424
+ "AlexanderRoss_VelvetCurtain/AlexanderRoss_VelvetCurtain_STEM_06/run_0",
425
+ 0.6348648071289062
426
+ ],
427
+ [
428
+ "Mozart_DiesBildnis/Mozart_DiesBildnis_STEM_01/run_0",
429
+ 0.2333838939666748
430
+ ],
431
+ [
432
+ "Schubert_Erstarrung/Schubert_Erstarrung_STEM_01/run_0",
433
+ 0.24937140941619873
434
+ ],
435
+ [
436
+ "Schumann_Mignon/Schumann_Mignon_STEM_02/run_0",
437
+ 0.6572010517120361
438
+ ]
439
+ ]
440
+ }
441
+ }
presets/rt_config.yaml ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ epochs: 2000
2
+ data_dir: null
3
+ log_dir: null
4
+ lufs: -18
5
+ sr: 44100
6
+ chunk_duration: 12
7
+ chunk_overlap: 5
8
+ device: cuda
9
+ batch_size: 35
10
+ dataset: medley_vocal
11
+ regularise_delay: true
12
+ model:
13
+ _target_: torch.nn.Sequential
14
+ _args_:
15
+ - _target_: modules.fx.Peak
16
+ sr: 44100
17
+ freq: 800
18
+ min_freq: 33
19
+ max_freq: 5400
20
+ - _target_: modules.fx.Peak
21
+ sr: 44100
22
+ freq: 4000
23
+ min_freq: 200
24
+ max_freq: 17500
25
+ - _target_: modules.fx.LowShelf
26
+ sr: 44100
27
+ freq: 115
28
+ min_freq: 30
29
+ max_freq: 200
30
+ - _target_: modules.fx.HighShelf
31
+ sr: 44100
32
+ freq: 6000
33
+ min_freq: 750
34
+ max_freq: 8300
35
+ - _target_: modules.fx.LowPass
36
+ sr: 44100
37
+ freq: 17500
38
+ min_freq: 200
39
+ max_freq: 18000
40
+ - _target_: modules.fx.HighPass
41
+ sr: 44100
42
+ freq: 200
43
+ min_freq: 16
44
+ max_freq: 5300
45
+ - _target_: modules.fx.CompressorExpander
46
+ sr: 44100
47
+ cmp_ratio: 2.0
48
+ exp_ratio: 0.5
49
+ at_ms: 50.0
50
+ rt_ms: 50.0
51
+ avg_coef: 0.3
52
+ cmp_th: -18.0
53
+ exp_th: -48.0
54
+ make_up: 0.0
55
+ lookahead: true
56
+ max_lookahead: 15
57
+ - _target_: modules.fx.SendFXsAndSum
58
+ _args_:
59
+ # - _target_: modules.fx.SurrogateDelay
60
+ - _target_: modules.rt.RealTimeDelay
61
+ sr: 44100
62
+ delay: 400
63
+ # dropout: 0
64
+ # straight_through: true
65
+ recursive_eq: true
66
+ ir_duration: 4
67
+ eq:
68
+ _target_: modules.fx.LowPass
69
+ sr: 44100
70
+ freq: 8000
71
+ min_freq: 200
72
+ max_freq: 16000
73
+ min_Q: 0.5
74
+ max_Q: 2
75
+ # - _target_: modules.fx.FDN
76
+ - _target_: modules.rt.RealTimeFDN
77
+ sr: 44100
78
+ delays:
79
+ - 997
80
+ - 1153
81
+ - 1327
82
+ - 1559
83
+ - 1801
84
+ - 2099
85
+ num_decay_freq: 49
86
+ delay_independent_decay: true
87
+ ir_duration: 12
88
+ eq:
89
+ _target_: torch.nn.Sequential
90
+ _args_:
91
+ - _target_: modules.fx.Peak
92
+ sr: 44100
93
+ freq: 800
94
+ min_freq: 200
95
+ max_freq: 2500
96
+ min_Q: 0.1
97
+ max_Q: 3
98
+ - _target_: modules.fx.Peak
99
+ sr: 44100
100
+ freq: 4000
101
+ min_freq: 600
102
+ max_freq: 7000
103
+ min_Q: 0.1
104
+ max_Q: 3
105
+ - _target_: modules.fx.LowShelf
106
+ sr: 44100
107
+ freq: 115
108
+ min_freq: 30
109
+ max_freq: 450
110
+ - _target_: modules.fx.HighShelf
111
+ sr: 44100
112
+ freq: 8000
113
+ min_freq: 1500
114
+ max_freq: 16000
115
+ cross_send: true
116
+ pan_direct: true
117
+ optimiser:
118
+ _target_: torch.optim.Adam
119
+ lr: 0.01
120
+ mss:
121
+ fft_sizes:
122
+ - 128
123
+ - 512
124
+ - 2048
125
+ hop_sizes:
126
+ - 32
127
+ - 128
128
+ - 512
129
+ mldr:
130
+ s_taus:
131
+ - 50
132
+ - 100
133
+ l_taus:
134
+ - 1000
135
+ - 2000
136
+ loss_fn:
137
+ _target_: loss.SumLosses
138
+ weights:
139
+ - 1.0
140
+ - 0.5
141
+ - 0.5
142
+ - 0.25
143
+ loss_fns:
144
+ - _target_: auraloss.freq.MultiResolutionSTFTLoss
145
+ fft_sizes:
146
+ - 128
147
+ - 512
148
+ - 2048
149
+ hop_sizes:
150
+ - 32
151
+ - 128
152
+ - 512
153
+ win_lengths:
154
+ - 128
155
+ - 512
156
+ - 2048
157
+ sample_rate: 44100
158
+ perceptual_weighting: true
159
+ - _target_: auraloss.freq.SumAndDifferenceSTFTLoss
160
+ fft_sizes:
161
+ - 128
162
+ - 512
163
+ - 2048
164
+ hop_sizes:
165
+ - 32
166
+ - 128
167
+ - 512
168
+ win_lengths:
169
+ - 128
170
+ - 512
171
+ - 2048
172
+ sample_rate: 44100
173
+ perceptual_weighting: true
174
+ - _target_: loss.ldr.MLDRLoss
175
+ sr: 44100
176
+ s_taus:
177
+ - 50
178
+ - 100
179
+ l_taus:
180
+ - 1000
181
+ - 2000
182
+ - _target_: loss.ldr.MLDRLoss
183
+ sr: 44100
184
+ mid_side: true
185
+ s_taus:
186
+ - 50
187
+ - 100
188
+ l_taus:
189
+ - 1000
190
+ - 2000