yoyolicoris commited on
Commit
15fe46b
·
1 Parent(s): eebf84c

Add detailed documentation for Random Vocal Effects Generator

Browse files
Files changed (1) hide show
  1. app.py +29 -6
app.py CHANGED
@@ -12,6 +12,32 @@ from functools import partial
12
  from modules.utils import chain_functions, vec2statedict, get_chunks
13
  from modules.fx import clip_delay_eq_Q
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  SLIDER_MAX = 3
16
  SLIDER_MIN = -3
17
  NUMBER_OF_PCS = 10
@@ -116,14 +142,11 @@ def get_important_pcs(n=10, **kwargs):
116
 
117
 
118
  with gr.Blocks() as demo:
119
- gr.Markdown(
120
- """
121
- # Hadamard Transform
122
- This is a demo of the Hadamard transform.
123
- """
124
- )
125
  with gr.Row():
126
  with gr.Column():
 
 
 
127
  audio_input = gr.Audio(type="numpy", sources="upload", label="Input Audio")
128
  with gr.Row():
129
  random_button = gr.Button(
 
12
  from modules.utils import chain_functions, vec2statedict, get_chunks
13
  from modules.fx import clip_delay_eq_Q
14
 
15
+
16
+ space_md = """
17
+ # Random Vocal Effects Generator
18
+
19
+ This is a demo of the paper [DiffVox: A Differentiable Model for Capturing and Analysing Professional Effects Distributions](https://arxiv.org/abs/2504.14735), accepted at DAFx 2025.
20
+ In this demo, you can upload a raw vocal audio file and apply random effects to make it sound better!
21
+
22
+ The effects consist of series of EQ, compressor, delay, and reverb.
23
+ The generator is a PCA model derived from 365 vocal effects presets fitted with the same effects chain.
24
+ This interface allows you to control the first 10 principal components (PCs) of the generator, randomise them, and render the audio.
25
+ For the rest of the PCs, you can choose to randomise them or set them to zero.
26
+
27
+ To give you some idea, we emperically found that the first PC controls the amount of reverb and the second PC controls the amount of brightness.
28
+ Note that adding these PCs together does not necessarily mean that their effects are additive in the final audio.
29
+ We found sometimes the effects of least important PCs are more perceptible.
30
+ Try to play around with the sliders and buttons and see what you can come up with!
31
+
32
+ Currently only a portion of PCs are tweakable, but in the future we will add more controls and visualisation tools.
33
+ For example:
34
+ - Exposing all the PCs
35
+ - Directly controlling the parameters of the effects
36
+ - Visualising the PCA space
37
+ - Visualising the frequency responses/dynamic curves of the effects
38
+ - Exporting the effects settings as JSON files
39
+ """
40
+
41
  SLIDER_MAX = 3
42
  SLIDER_MIN = -3
43
  NUMBER_OF_PCS = 10
 
142
 
143
 
144
  with gr.Blocks() as demo:
 
 
 
 
 
 
145
  with gr.Row():
146
  with gr.Column():
147
+ gr.Markdown(
148
+ space_md,
149
+ )
150
  audio_input = gr.Audio(type="numpy", sources="upload", label="Input Audio")
151
  with gr.Row():
152
  random_button = gr.Button(