mattricesound commited on
Commit
fe64756
1 Parent(s): c7866f1

Add ability to remove all effects

Browse files
Files changed (1) hide show
  1. remfx/datasets.py +9 -6
remfx/datasets.py CHANGED
@@ -43,9 +43,9 @@ class VocalSet(Dataset):
43
  self.files = sorted(list(mode_path.glob("./**/*.wav")))
44
  self.normalize = effects.LoudnessNormalize(sample_rate, target_lufs_db=-20)
45
  self.applied_effects = applied_effects
46
- self.effect_to_remove_name = list(effect_to_remove.keys())[0]
47
 
48
- effect_str = "_".join([e for e in self.applied_effects])
49
  effect_str += f"_{self.effect_to_remove_name}"
50
  self.proc_root = self.render_root / "processed" / effect_str / self.mode
51
 
@@ -108,7 +108,8 @@ class VocalSet(Dataset):
108
  if self.max_effects_per_file > 1:
109
  num_effects = torch.randint(self.max_effects_per_file - 1, (1,)).item()
110
  # Remove effect to remove from applied effects if present
111
- self.applied_effects.pop(self.effect_to_remove_name, None)
 
112
 
113
  # Choose random effects to apply
114
  effect_indices = torch.randperm(len(self.applied_effects.keys()))[
@@ -124,9 +125,11 @@ class VocalSet(Dataset):
124
  labels.append(ALL_EFFECTS.index(type(effect)))
125
 
126
  # Apply effect_to_remove
127
- effect = self.effect_to_remove[self.effect_to_remove_name]
128
- wet = effect(torch.clone(dry))
129
- labels.append(ALL_EFFECTS.index(type(effect)))
 
 
130
 
131
  # Convert labels to one-hot
132
  one_hot = F.one_hot(torch.tensor(labels), num_classes=len(ALL_EFFECTS))
 
43
  self.files = sorted(list(mode_path.glob("./**/*.wav")))
44
  self.normalize = effects.LoudnessNormalize(sample_rate, target_lufs_db=-20)
45
  self.applied_effects = applied_effects
46
+ self.effect_to_remove_name = "_".join([e for e in self.effect_to_remove])
47
 
48
+ effect_str = "__".join([e for e in self.applied_effects])
49
  effect_str += f"_{self.effect_to_remove_name}"
50
  self.proc_root = self.render_root / "processed" / effect_str / self.mode
51
 
 
108
  if self.max_effects_per_file > 1:
109
  num_effects = torch.randint(self.max_effects_per_file - 1, (1,)).item()
110
  # Remove effect to remove from applied effects if present
111
+ for effect in self.effect_to_remove:
112
+ self.applied_effects.pop(effect, None)
113
 
114
  # Choose random effects to apply
115
  effect_indices = torch.randperm(len(self.applied_effects.keys()))[
 
125
  labels.append(ALL_EFFECTS.index(type(effect)))
126
 
127
  # Apply effect_to_remove
128
+ wet = torch.clone(dry)
129
+ for effect_name in self.effect_to_remove:
130
+ effect = self.effect_to_remove[effect_name]
131
+ wet = effect(dry)
132
+ labels.append(ALL_EFFECTS.index(type(effect)))
133
 
134
  # Convert labels to one-hot
135
  one_hot = F.one_hot(torch.tensor(labels), num_classes=len(ALL_EFFECTS))