際際滷

際際滷Share a Scribd company logo
E N G A G I N G T H E W O R L D
Automatic Tuning of The OP-1 Synthesizer
Using a Multi-objective Genetic Algorithm
Matthieu Macret
M.Sc. candidate
OP-1
2
OP-1
2
Keys
OP-1
2
Type	
 parameters
OP-1
2
Knob	
 parameters
OP-1
2
OP-1 - Control
3
OP-1 - Control
3
Type Key Knob	
 parameters
4
4
4
Engine
5
Engine
5
Engine
6
Engine
6
Engine
6
Engine
FX
6
Engine
FX
6
Engine
FX
ADSR
6
Engine
FX
ADSR
Sound	
 output
6
Engine
FX
ADSR
LFO
Sound	
 output
6
Engine
FX
ADSR
LFO
Sound	
 output
OP-足1	
 preset
OP-1 - Complexity
Nb.	
 	
 of	
 
Engines
Nb.	
 of	
 LFOs Nb.	
 of	
 FXs Nb.	
 of	
 keys Knob	
 range
7 3 4 120 [0,32767]
OP-1 - Complexity
Nb.	
 	
 of	
 
Engines
Nb.	
 of	
 LFOs Nb.	
 of	
 FXs Nb.	
 of	
 keys Knob	
 range
7 3 4 120 [0,32767]
Nb.	
 disJnct	
 presets:
OP-1 - Complexity
Nb.	
 	
 of	
 
Engines
Nb.	
 of	
 LFOs Nb.	
 of	
 FXs Nb.	
 of	
 keys Knob	
 range
7 3 4 120 [0,32767]
Nb.	
 disJnct	
 presets:
OP-1 - Complexity
Nb.	
 	
 of	
 
Engines
Nb.	
 of	
 LFOs Nb.	
 of	
 FXs Nb.	
 of	
 keys Knob	
 range
7 3 4 120 [0,32767]
Nb.	
 disJnct	
 presets:
Problem
 Dif鍖cult to control for a practitioner without
expert knowledge about the synthesis
techniques used.
 Musician or composer have to tune
parameters instead of making music.
 Time-consuming and unproductive.
8
Scope of this research
 Make the OP-1 control more accessible and
natural for the user.
 Give me a sound, I would give you OP-1
presets to replicate/approximate it!
9
Research question
 Can evolutionary algorithms be created
and employed to locate multiple distinct
OP-1 presets to replicate a given target
sound?
10
Problem dif鍖culties
 Large search space
 Discontinuities
 Non-determinism
11
Methodology
12
Pb.	
 Id
EngineEngine FXFX Key LFOLFO ADSR
Pb.	
 Id
Type Knobs Type Knobs Type Knobs Knobs
1 X
2 X X
3 X X X
4 X X X X
5 X X X X X X X X
Project History
13
Canonical	
 GeneJc	
 Algorithm
Crowding	
 GeneJc	
 Algorithm
MulJ-足objecJve	
 GeneJc	
 Algorithm
Project History
13
Canonical	
 GeneJc	
 Algorithm
Crowding	
 GeneJc	
 Algorithm
MulJ-足objecJve	
 GeneJc	
 Algorithm
Representation
14
111000101001010101000011001010011010010011010110110110
Representation
14
111000101001010101000011001010011010010011010110110110
Gray	
 code	
 encoding/decoding
EngineEngine FXFX
Key
Octave
LFOLFO ADSR
Type Knobs Type Knobs Type Knobs Knobs
Evaluation
 Three objectives:
 Temporal envelope
 Fast Fourier Transform (FFT)
 Short Term Fourier Transform (STFT)
15
1 0 0 1 0 1 0 1 1 1
Envelope
16
Envelope
16
FFT
17
STFT
18
NSGA-II
 Non-dominated Sorting Genetic Algorithm-II
 Standard approach to solve multi-objective
problems
 Embeds:
 Non-dominated sorting
 Diversity preservation
 Elitism
19
Pareto Dominance
20
Obj.	
 1
Obj.	
 2
Obj.	
 1
Pareto Dominance
20
Obj.	
 1
Obj.	
 2
Obj.	
 1
Pareto Dominance
20
Obj.	
 1
Obj.	
 2
Obj.	
 1
Pareto Dominance
21
Obj.	
 1
Obj.	
 2
Obj.	
 1
Pareto Dominance
21
Obj.	
 1
Obj.	
 2
Obj.	
 1
Pareto Dominance
21
Obj.	
 1
Obj.	
 2
Obj.	
 1
Pareto Dominance
21
Obj.	
 1
Obj.	
 2
Obj.	
 1
Crowding distance
22
Obj.	
 1
Obj.	
 2
Obj.	
 1
Crowding distance
22
Obj.	
 1
Obj.	
 2
Obj.	
 1
Crowding distance
22
Obj.	
 1
Obj.	
 2
Obj.	
 1
Initialization
23
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
Initialization
24
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
Pareto dominance
25
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
1
3
22
1
Crowding distance
26
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
1
3
22
1
1
2
4
8
5
Binary tournament Selection - Case 1
27
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
1
2
23
1
1
2
4
8
5
Binary tournament Selection - Case 1
27
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
1
2
23
1
1
2
4
8
5
Binary tournament Selection - Case 2
28
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
1
2
23
1
1
2
4
8
5
Binary tournament Selection - Case 2
28
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
1
2
23
1
1
2
4
8
5
Crossover + mutation
29
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
2-points Crossover - Case 1
30
1 0 0 1 0 1 0 1 1 1
0 0 1 1 1 0 0 0 0 0
1 0 1 1 1 1 0 1 1 1
0 0 0 1 0 0 0 0 0 0
Parent 1
Parent 2
Offspring 1
Offspring 2
2-points Crossover - Case 2
31
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
Parent 1
Parent 2
Offspring 1
Offspring 2
2-points Crossover - Case 2
31
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
Parent 1
Parent 2
Offspring 1
Offspring 2 0 1 1 1 0 0 1 0 0 1
Bit鍖ip mutation
32
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
Offspring 1
Offspring 2 0 1 1 1 0 0 1 0 0 1
Bit鍖ip mutation
32
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
Offspring 1
Offspring 2 0 1 1 1 0 0 1 0 0 1
0
0
Bit鍖ip mutation
32
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
Offspring 1
Offspring 2 0 1 1 1 0 0 1 0 0 1
01
01
Crossover + mutation
33
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
Crossover + mutation
34
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
Crossover + mutation
35
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
Evaluation
36
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
Pareto dominance
37
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
1
1
2
1
4
3
3
4
3
4
Crowding distance
38
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
STFTFFT Env
1
1
2
1
4
3
3
4
3
4
5
8
2
4
2
3 1
6
3
9
Sorting
39
Sorting
39
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
1 5
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
1 8
FFT
1 0 0 1 0 1 0 1 1 1
STFTEnv
1
4
Sorting
39
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
1 5
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
1 8
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
2 2
FFT
1 0 0 1 0 1 0 1 1 1
STFTEnv
1
4
Sorting
39
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
1 5
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
1 8
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
2 2
FFT
1 0 0 1 0 1 0 1 1 1
STFTEnv
1
4
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
3
6
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
3
3
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
3
9
Sorting
39
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
1 5
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
1 8
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
2 2
FFT
1 0 0 1 0 1 0 1 1 1
STFTEnv
1
4
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
3
6
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
3
3
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
3
9
Sorting
39
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
1 5
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
1 8
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
2 2
FFT
1 0 0 1 0 1 0 1 1 1
STFTEnv
1
4
1 0 0 1 0 1 0 1 1 1
STFTFFT Env
3
9
New generation
40
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 1
Stopping criteria
41
Stopping criteria
41
Implementation
 Algorithm bottlenecks:
 Sorting
 Evaluation
42
Distribution of the Evaluation
43
Master
Slave Slave Slave Slave...
Distribution - Speedup
44
Post processing
45
Evaluation
1. Contrived sounds
2. Non-contrived sounds
46
47
Contrived sounds - Types
48
Contrived sounds - Knobs
Contrived sound - Example
49
Contrived sound - Example
49
Engine FX LFO Key Octave
Cluster InacJve InacJve 12 0
Contrived sound - Example
49
Engine FX LFO Key Octave
Cluster InacJve InacJve 12 0
Contrived sound - Example
49
Engine FX LFO Key Octave
Cluster InacJve InacJve 12 0
Engine FX LFO Key Octave
Cluster Punch InacJve 0 1
Contrived sound - Example
49
Engine FX LFO Key Octave
Cluster InacJve InacJve 12 0
Engine FX LFO Key Octave
Cluster Punch InacJve 0 1
Contrived sound - Example
49
Engine FX LFO Key Octave
Cluster InacJve InacJve 12 0
Engine FX LFO Key Octave
Cluster Punch InacJve 0 1
Engine FX LFO Key Octave
FM Grid Element 0 1
Contrived sound - Example
49
Engine FX LFO Key Octave
Cluster InacJve InacJve 12 0
Engine FX LFO Key Octave
Cluster Punch InacJve 0 1
Engine FX LFO Key Octave
FM Grid Element 0 1
Contrived sound - Example
49
Engine FX LFO Key Octave
Cluster InacJve InacJve 12 0
Engine FX LFO Key Octave
Cluster Punch InacJve 0 1
Engine FX LFO Key Octave
FM Grid Element 0 1
Contrived sound - Example
49
Engine FX LFO Key Octave
Cluster InacJve InacJve 12 0
Engine FX LFO Key Octave
Cluster Punch InacJve 0 1
Engine FX LFO Key Octave
FM Grid Element 0 1
Engine FX LFO Key Octave
FM Grid Element 0 1
Contrived sound - Example
49
Engine FX LFO Key Octave
Cluster InacJve InacJve 12 0
Engine FX LFO Key Octave
Cluster Punch InacJve 0 1
Engine FX LFO Key Octave
FM Grid Element 0 1
Engine FX LFO Key Octave
FM Grid Element 0 1
Contrived sound - Example
49
Engine FX LFO Key Octave
Cluster InacJve InacJve 12 0
Engine FX LFO Key Octave
Cluster Punch InacJve 0 1
Engine FX LFO Key Octave
FM Grid Element 0 1
Engine FX LFO Key Octave
FM Grid Element 0 1
Contrived sound - Example
49
Engine FX LFO Key Octave
Cluster InacJve InacJve 12 0
Engine FX LFO Key Octave
Cluster Punch InacJve 0 1
Engine FX LFO Key Octave
FM Grid Element 0 1
Engine FX LFO Key Octave
FM Grid Element 0 1
Eng.	
 1 Eng.	
 2 Eng.	
 3 Eng.	
 4 FX	
 1	
  FX	
 2 FX	
 3 FX	
 4 LFO	
 1 LFO	
 2 LFO	
 3 LFO	
 4
2463 29131 17408 1636 8267 9206 8099 13372 7168 24410 5739 15360
Eng.	
 1 Eng.	
 2 Eng.	
 3 Eng.	
 4 FX	
 1	
  FX	
 2 FX	
 3 FX	
 4 LFO	
 1 LFO	
 2 LFO	
 3 LFO	
 4
2463 29131 17408 1735 8267 9206 8099 14140 7168 16551 7168 15360
Non-contrived sounds
 Instruments
 Synthesized sounds (dx-7, moog, etc)
 Sounds with effect (Delay, distortion)
 Voice
 Misc. (explosions, cat meow etc)
50
Instruments - Clarinet
51
Instruments - Clarinet
51
Instruments - Clarinet
51
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Instruments - Clarinet
51
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Instruments - Clarinet
51
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Instruments - Clarinet
51
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Instruments - Clarinet
51
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Instruments - Clarinet
51
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Instruments - Clarinet
51
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Instruments - Clarinet
51
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Instruments - Clarinet
51
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
Engine FX LFO Key Octave
Digital Delay Tremolo 9 1
ADSR	
 1 ADSR	
 2 ADSR	
 3 ADSR	
 4
8533 14940 21515 16320
ADSR	
 1 ADSR	
 2 ADSR	
 3 ADSR	
 4
8533 14940 21515 4471
Synthesized sound - Moog 1
52
Synthesized sound - Moog 1
52
Synthesized sound - Moog 1
52
Engine FX LFO Key Octave
FM Delay Element 0 1
Synthesized sound - Moog 1
52
Engine FX LFO Key Octave
FM Delay Element 0 1
Synthesized sound - Moog 1
52
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Synthesized sound - Moog 1
52
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Synthesized sound - Moog 1
52
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Synthesized sound - Moog 1
52
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Synthesized sound - Moog 1
52
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Synthesized sound - Moog 1
52
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Synthesized sound - Moog 1
52
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Synthesized sound - Moog 1
52
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Synthesized sound - Moog 1
52
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Synthesized sound - Moog 2
53
Synthesized sound - Moog 2
53
Synthesized sound - Moog 2
53
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Synthesized sound - Moog 2
53
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Synthesized sound - Moog 2
53
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Synthesized sound - Moog 2
53
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Synthesized sound - Moog 2
53
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Synthesized sound - Moog 2
53
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Punch Element 0 1
Synthesized sound - Moog 2
53
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Punch Element 0 1
Synthesized sound - Moog 2
53
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Punch Element 0 1
Synthesized sound - Moog 2
53
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Punch Element 0 1
Engine FX LFO Key Octave
FM Delay Tremolo 11 0
Synthesized sound - Moog 2
53
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Punch Element 0 1
Engine FX LFO Key Octave
FM Delay Tremolo 11 0
Synthesized sound - Moog 2
53
Engine FX LFO Key Octave
FM Spring Tremolo 11 0
Engine FX LFO Key Octave
FM Delay Element 0 1
Engine FX LFO Key Octave
FM Punch Element 0 1
Engine FX LFO Key Octave
FM Delay Tremolo 11 0
54
Sounds with effects - Delay 1
54
Sounds with effects - Delay 1
54
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 1
54
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 1
54
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 1
54
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 1
54
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 1
54
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 1
54
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 1
54
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 1
54
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 1
54
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 1
54
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 1
55
Sounds with effects - Delay 2
55
Sounds with effects - Delay 2
55
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 2
55
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 2
55
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 2
55
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 2
55
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 2
55
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
FM Delay InacJve 7 0
Sounds with effects - Delay 2
55
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
FM Delay InacJve 7 0
Sounds with effects - Delay 2
55
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
FM Delay InacJve 7 0
Sounds with effects - Delay 2
55
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
FM Delay InacJve 7 0
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 2
55
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
FM Delay InacJve 7 0
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 2
55
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
FM Delay InacJve 7 0
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 2
56
Sounds with effects - Delay 3
56
Sounds with effects - Delay 3
56
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 3
56
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 3
56
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 3
56
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 3
56
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Engine FX LFO Key Octave
Pulse Grid Tremolo 9 -足2
Sounds with effects - Delay 3
57
Misc. - Cat Meow 1
57
Misc. - Cat Meow 1
57
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 1
57
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 1
57
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 1
57
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 1
57
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 1
57
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 1
57
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 1
57
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 1
57
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 1
57
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 1
57
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 1
58
Misc. - Cat Meow 2
58
Misc. - Cat Meow 2
58
Engine FX LFO Key Octave
FM Punch Element 8 3
Misc. - Cat Meow 2
58
Engine FX LFO Key Octave
FM Punch Element 8 3
Misc. - Cat Meow 2
58
Engine FX LFO Key Octave
FM Punch Element 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 2
58
Engine FX LFO Key Octave
FM Punch Element 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 2
58
Engine FX LFO Key Octave
FM Punch Element 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 2
58
Engine FX LFO Key Octave
FM Punch Element 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 2
58
Engine FX LFO Key Octave
FM Punch Element 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 2
58
Engine FX LFO Key Octave
FM Punch Element 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Engine FX LFO Key Octave
FM Punch Tremolo 8 3
Misc. - Cat Meow 2
Conclusions
 NSGA-II with multi-objective 鍖tness function, Gray
encoding and a modi鍖ed crossover operator to preserve
population diversity.
 3-objectives 鍖tness function (FFT, Envelope, STFT) to
address the dif鍖culties associated with the OP-1 search
space.
 A clustering method to better analyze and explore the
鍖nal set of solutions.
 An evaluation using contrived and non-contrived sounds.
59
Future works
 Improvements to the system
 Improvements to the evaluation
 Potential applications
60
Potential application
61
Future works
 Move to more complex problems...
62

More Related Content

Automatic Tuning of the OP-1 Synthesizer Using a Multi-objective Genetic Algorithm

  • 1. E N G A G I N G T H E W O R L D Automatic Tuning of The OP-1 Synthesizer Using a Multi-objective Genetic Algorithm Matthieu Macret M.Sc. candidate
  • 8. OP-1 - Control 3 Type Key Knob parameters
  • 9. 4
  • 10. 4
  • 22. OP-1 - Complexity Nb. of Engines Nb. of LFOs Nb. of FXs Nb. of keys Knob range 7 3 4 120 [0,32767]
  • 23. OP-1 - Complexity Nb. of Engines Nb. of LFOs Nb. of FXs Nb. of keys Knob range 7 3 4 120 [0,32767] Nb. disJnct presets:
  • 24. OP-1 - Complexity Nb. of Engines Nb. of LFOs Nb. of FXs Nb. of keys Knob range 7 3 4 120 [0,32767] Nb. disJnct presets:
  • 25. OP-1 - Complexity Nb. of Engines Nb. of LFOs Nb. of FXs Nb. of keys Knob range 7 3 4 120 [0,32767] Nb. disJnct presets:
  • 26. Problem Dif鍖cult to control for a practitioner without expert knowledge about the synthesis techniques used. Musician or composer have to tune parameters instead of making music. Time-consuming and unproductive. 8
  • 27. Scope of this research Make the OP-1 control more accessible and natural for the user. Give me a sound, I would give you OP-1 presets to replicate/approximate it! 9
  • 28. Research question Can evolutionary algorithms be created and employed to locate multiple distinct OP-1 presets to replicate a given target sound? 10
  • 29. Problem dif鍖culties Large search space Discontinuities Non-determinism 11
  • 30. Methodology 12 Pb. Id EngineEngine FXFX Key LFOLFO ADSR Pb. Id Type Knobs Type Knobs Type Knobs Knobs 1 X 2 X X 3 X X X 4 X X X X 5 X X X X X X X X
  • 31. Project History 13 Canonical GeneJc Algorithm Crowding GeneJc Algorithm MulJ-足objecJve GeneJc Algorithm
  • 32. Project History 13 Canonical GeneJc Algorithm Crowding GeneJc Algorithm MulJ-足objecJve GeneJc Algorithm
  • 35. Evaluation Three objectives: Temporal envelope Fast Fourier Transform (FFT) Short Term Fourier Transform (STFT) 15 1 0 0 1 0 1 0 1 1 1
  • 40. NSGA-II Non-dominated Sorting Genetic Algorithm-II Standard approach to solve multi-objective problems Embeds: Non-dominated sorting Diversity preservation Elitism 19
  • 51. Initialization 23 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1
  • 52. Initialization 24 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env
  • 53. Pareto dominance 25 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env 1 3 22 1
  • 54. Crowding distance 26 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env 1 3 22 1 1 2 4 8 5
  • 55. Binary tournament Selection - Case 1 27 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env 1 2 23 1 1 2 4 8 5
  • 56. Binary tournament Selection - Case 1 27 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env 1 2 23 1 1 2 4 8 5
  • 57. Binary tournament Selection - Case 2 28 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env 1 2 23 1 1 2 4 8 5
  • 58. Binary tournament Selection - Case 2 28 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env 1 2 23 1 1 2 4 8 5
  • 59. Crossover + mutation 29 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1
  • 60. 2-points Crossover - Case 1 30 1 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 0 0 0 0 0 Parent 1 Parent 2 Offspring 1 Offspring 2
  • 61. 2-points Crossover - Case 2 31 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 Parent 1 Parent 2 Offspring 1 Offspring 2
  • 62. 2-points Crossover - Case 2 31 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 Parent 1 Parent 2 Offspring 1 Offspring 2 0 1 1 1 0 0 1 0 0 1
  • 63. Bit鍖ip mutation 32 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 Offspring 1 Offspring 2 0 1 1 1 0 0 1 0 0 1
  • 64. Bit鍖ip mutation 32 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 Offspring 1 Offspring 2 0 1 1 1 0 0 1 0 0 1 0 0
  • 65. Bit鍖ip mutation 32 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 Offspring 1 Offspring 2 0 1 1 1 0 0 1 0 0 1 01 01
  • 66. Crossover + mutation 33 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1
  • 67. Crossover + mutation 34 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1
  • 68. Crossover + mutation 35 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1
  • 69. Evaluation 36 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env
  • 70. Pareto dominance 37 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env 1 1 2 1 4 3 3 4 3 4
  • 71. Crowding distance 38 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env STFTFFT Env 1 1 2 1 4 3 3 4 3 4 5 8 2 4 2 3 1 6 3 9
  • 73. Sorting 39 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 1 5 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 1 8 FFT 1 0 0 1 0 1 0 1 1 1 STFTEnv 1 4
  • 74. Sorting 39 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 1 5 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 1 8 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 2 2 FFT 1 0 0 1 0 1 0 1 1 1 STFTEnv 1 4
  • 75. Sorting 39 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 1 5 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 1 8 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 2 2 FFT 1 0 0 1 0 1 0 1 1 1 STFTEnv 1 4 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 3 6 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 3 3 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 3 9
  • 76. Sorting 39 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 1 5 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 1 8 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 2 2 FFT 1 0 0 1 0 1 0 1 1 1 STFTEnv 1 4 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 3 6 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 3 3 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 3 9
  • 77. Sorting 39 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 1 5 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 1 8 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 2 2 FFT 1 0 0 1 0 1 0 1 1 1 STFTEnv 1 4 1 0 0 1 0 1 0 1 1 1 STFTFFT Env 3 9
  • 78. New generation 40 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 1
  • 81. Implementation Algorithm bottlenecks: Sorting Evaluation 42
  • 82. Distribution of the Evaluation 43 Master Slave Slave Slave Slave...
  • 85. Evaluation 1. Contrived sounds 2. Non-contrived sounds 46
  • 88. Contrived sound - Example 49
  • 89. Contrived sound - Example 49 Engine FX LFO Key Octave Cluster InacJve InacJve 12 0
  • 90. Contrived sound - Example 49 Engine FX LFO Key Octave Cluster InacJve InacJve 12 0
  • 91. Contrived sound - Example 49 Engine FX LFO Key Octave Cluster InacJve InacJve 12 0 Engine FX LFO Key Octave Cluster Punch InacJve 0 1
  • 92. Contrived sound - Example 49 Engine FX LFO Key Octave Cluster InacJve InacJve 12 0 Engine FX LFO Key Octave Cluster Punch InacJve 0 1
  • 93. Contrived sound - Example 49 Engine FX LFO Key Octave Cluster InacJve InacJve 12 0 Engine FX LFO Key Octave Cluster Punch InacJve 0 1 Engine FX LFO Key Octave FM Grid Element 0 1
  • 94. Contrived sound - Example 49 Engine FX LFO Key Octave Cluster InacJve InacJve 12 0 Engine FX LFO Key Octave Cluster Punch InacJve 0 1 Engine FX LFO Key Octave FM Grid Element 0 1
  • 95. Contrived sound - Example 49 Engine FX LFO Key Octave Cluster InacJve InacJve 12 0 Engine FX LFO Key Octave Cluster Punch InacJve 0 1 Engine FX LFO Key Octave FM Grid Element 0 1
  • 96. Contrived sound - Example 49 Engine FX LFO Key Octave Cluster InacJve InacJve 12 0 Engine FX LFO Key Octave Cluster Punch InacJve 0 1 Engine FX LFO Key Octave FM Grid Element 0 1 Engine FX LFO Key Octave FM Grid Element 0 1
  • 97. Contrived sound - Example 49 Engine FX LFO Key Octave Cluster InacJve InacJve 12 0 Engine FX LFO Key Octave Cluster Punch InacJve 0 1 Engine FX LFO Key Octave FM Grid Element 0 1 Engine FX LFO Key Octave FM Grid Element 0 1
  • 98. Contrived sound - Example 49 Engine FX LFO Key Octave Cluster InacJve InacJve 12 0 Engine FX LFO Key Octave Cluster Punch InacJve 0 1 Engine FX LFO Key Octave FM Grid Element 0 1 Engine FX LFO Key Octave FM Grid Element 0 1
  • 99. Contrived sound - Example 49 Engine FX LFO Key Octave Cluster InacJve InacJve 12 0 Engine FX LFO Key Octave Cluster Punch InacJve 0 1 Engine FX LFO Key Octave FM Grid Element 0 1 Engine FX LFO Key Octave FM Grid Element 0 1 Eng. 1 Eng. 2 Eng. 3 Eng. 4 FX 1 FX 2 FX 3 FX 4 LFO 1 LFO 2 LFO 3 LFO 4 2463 29131 17408 1636 8267 9206 8099 13372 7168 24410 5739 15360 Eng. 1 Eng. 2 Eng. 3 Eng. 4 FX 1 FX 2 FX 3 FX 4 LFO 1 LFO 2 LFO 3 LFO 4 2463 29131 17408 1735 8267 9206 8099 14140 7168 16551 7168 15360
  • 100. Non-contrived sounds Instruments Synthesized sounds (dx-7, moog, etc) Sounds with effect (Delay, distortion) Voice Misc. (explosions, cat meow etc) 50
  • 103. Instruments - Clarinet 51 Engine FX LFO Key Octave Digital Delay Tremolo 9 1
  • 104. Instruments - Clarinet 51 Engine FX LFO Key Octave Digital Delay Tremolo 9 1
  • 105. Instruments - Clarinet 51 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 Engine FX LFO Key Octave Digital Delay Tremolo 9 1
  • 106. Instruments - Clarinet 51 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 Engine FX LFO Key Octave Digital Delay Tremolo 9 1
  • 107. Instruments - Clarinet 51 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 Engine FX LFO Key Octave Digital Delay Tremolo 9 1
  • 108. Instruments - Clarinet 51 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 Engine FX LFO Key Octave Digital Delay Tremolo 9 1
  • 109. Instruments - Clarinet 51 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 Engine FX LFO Key Octave Digital Delay Tremolo 9 1
  • 110. Instruments - Clarinet 51 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 Engine FX LFO Key Octave Digital Delay Tremolo 9 1
  • 111. Instruments - Clarinet 51 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 Engine FX LFO Key Octave Digital Delay Tremolo 9 1 ADSR 1 ADSR 2 ADSR 3 ADSR 4 8533 14940 21515 16320 ADSR 1 ADSR 2 ADSR 3 ADSR 4 8533 14940 21515 4471
  • 112. Synthesized sound - Moog 1 52
  • 113. Synthesized sound - Moog 1 52
  • 114. Synthesized sound - Moog 1 52 Engine FX LFO Key Octave FM Delay Element 0 1
  • 115. Synthesized sound - Moog 1 52 Engine FX LFO Key Octave FM Delay Element 0 1
  • 116. Synthesized sound - Moog 1 52 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0
  • 117. Synthesized sound - Moog 1 52 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0
  • 118. Synthesized sound - Moog 1 52 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0
  • 119. Synthesized sound - Moog 1 52 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1
  • 120. Synthesized sound - Moog 1 52 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1
  • 121. Synthesized sound - Moog 1 52 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1
  • 122. Synthesized sound - Moog 1 52 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0
  • 123. Synthesized sound - Moog 1 52 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0
  • 124. Synthesized sound - Moog 1 52 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Spring Tremolo 11 0
  • 125. Synthesized sound - Moog 2 53
  • 126. Synthesized sound - Moog 2 53
  • 127. Synthesized sound - Moog 2 53 Engine FX LFO Key Octave FM Spring Tremolo 11 0
  • 128. Synthesized sound - Moog 2 53 Engine FX LFO Key Octave FM Spring Tremolo 11 0
  • 129. Synthesized sound - Moog 2 53 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1
  • 130. Synthesized sound - Moog 2 53 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1
  • 131. Synthesized sound - Moog 2 53 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1
  • 132. Synthesized sound - Moog 2 53 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Punch Element 0 1
  • 133. Synthesized sound - Moog 2 53 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Punch Element 0 1
  • 134. Synthesized sound - Moog 2 53 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Punch Element 0 1
  • 135. Synthesized sound - Moog 2 53 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Punch Element 0 1 Engine FX LFO Key Octave FM Delay Tremolo 11 0
  • 136. Synthesized sound - Moog 2 53 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Punch Element 0 1 Engine FX LFO Key Octave FM Delay Tremolo 11 0
  • 137. Synthesized sound - Moog 2 53 Engine FX LFO Key Octave FM Spring Tremolo 11 0 Engine FX LFO Key Octave FM Delay Element 0 1 Engine FX LFO Key Octave FM Punch Element 0 1 Engine FX LFO Key Octave FM Delay Tremolo 11 0
  • 140. 54 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 1
  • 141. 54 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 1
  • 142. 54 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 1
  • 143. 54 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 1
  • 144. 54 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 1
  • 145. 54 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 1
  • 146. 54 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 1
  • 147. 54 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 1
  • 148. 54 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 1
  • 149. 54 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 1
  • 150. 54 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 1
  • 153. 55 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 2
  • 154. 55 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 2
  • 155. 55 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 2
  • 156. 55 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 2
  • 157. 55 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 2
  • 158. 55 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave FM Delay InacJve 7 0 Sounds with effects - Delay 2
  • 159. 55 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave FM Delay InacJve 7 0 Sounds with effects - Delay 2
  • 160. 55 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave FM Delay InacJve 7 0 Sounds with effects - Delay 2
  • 161. 55 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave FM Delay InacJve 7 0 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 2
  • 162. 55 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave FM Delay InacJve 7 0 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 2
  • 163. 55 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave FM Delay InacJve 7 0 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 2
  • 166. 56 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 3
  • 167. 56 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 3
  • 168. 56 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 3
  • 169. 56 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 3
  • 170. 56 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Engine FX LFO Key Octave Pulse Grid Tremolo 9 -足2 Sounds with effects - Delay 3
  • 171. 57 Misc. - Cat Meow 1
  • 172. 57 Misc. - Cat Meow 1
  • 173. 57 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 1
  • 174. 57 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 1
  • 175. 57 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 1
  • 176. 57 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 1
  • 177. 57 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 1
  • 178. 57 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 1
  • 179. 57 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 1
  • 180. 57 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 1
  • 181. 57 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 1
  • 182. 57 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 1
  • 183. 57 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 1
  • 184. 58 Misc. - Cat Meow 2
  • 185. 58 Misc. - Cat Meow 2
  • 186. 58 Engine FX LFO Key Octave FM Punch Element 8 3 Misc. - Cat Meow 2
  • 187. 58 Engine FX LFO Key Octave FM Punch Element 8 3 Misc. - Cat Meow 2
  • 188. 58 Engine FX LFO Key Octave FM Punch Element 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 2
  • 189. 58 Engine FX LFO Key Octave FM Punch Element 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 2
  • 190. 58 Engine FX LFO Key Octave FM Punch Element 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 2
  • 191. 58 Engine FX LFO Key Octave FM Punch Element 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 2
  • 192. 58 Engine FX LFO Key Octave FM Punch Element 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 2
  • 193. 58 Engine FX LFO Key Octave FM Punch Element 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Engine FX LFO Key Octave FM Punch Tremolo 8 3 Misc. - Cat Meow 2
  • 194. Conclusions NSGA-II with multi-objective 鍖tness function, Gray encoding and a modi鍖ed crossover operator to preserve population diversity. 3-objectives 鍖tness function (FFT, Envelope, STFT) to address the dif鍖culties associated with the OP-1 search space. A clustering method to better analyze and explore the 鍖nal set of solutions. An evaluation using contrived and non-contrived sounds. 59
  • 195. Future works Improvements to the system Improvements to the evaluation Potential applications 60
  • 197. Future works Move to more complex problems... 62