Yoshimi User Manual

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 282

DownloadYoshimi-user-manual
Open PDF In BrowserView PDF
Yoshimi Advanced User Manual, v 1.5.10
Chris Ahlstrom (ahlstromcj@gmail.com) with Will J. Godfrey
December 29, 2018

1

Yoshimi Software Synthesizer

User Manual

Contents
1 Introduction
1.1 Yoshimi And ZynAddSubFX .
1.2 New Features . . . . . . . . . .
1.2.1 MIDI Learn . . . . . . .
1.2.2 LV2 Plugin . . . . . . .
1.2.3 Control Automation . .
1.2.4 MIDI CC . . . . . . . .
1.2.5 Vectors . . . . . . . . .
1.2.6 Bank Support . . . . . .
1.2.7 Accessibility . . . . . . .
1.2.8 Command Line . . . . .
1.2.9 Audio Support . . . . .
1.2.10 Miscellany . . . . . . . .
1.3 Document Structure . . . . . .
1.4 Yoshimi Mailing List . . . . . .
1.5 Yoshimi Licensing . . . . . . .
1.6 Let’s Get Started with Yoshimi!

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

13
13
13
13
14
14
14
15
15
15
16
17
17
18
18
19
19

.
.
.
.
.
.
.
.
.
.
.
.
.

22
24
24
25
26
26
26
26
26
27
28
28
28
29

3 Banks and Roots
3.1 Roots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Bank Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29
30
31
31

4 Menu
4.1 Menu
4.1.1
4.1.2
4.1.3

31
31
32
33
34
34
39
40

2 Configuration Files
2.1 Configuration Files
2.2 Configuration Files
2.3 Configuration Files
2.4 Configuration Files
2.5 Configuration Files
2.6 Configuration Files
2.7 Configuration Files
2.8 Configuration Files
2.9 Configuration Files
2.10 Configuration Files
2.11 Configuration Files
2.12 Configuration Files
2.13 Configuration Files

/
/
/
/
/
/
/
/
/
/
/
/
/

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Patch Set .
Config . . .
State . . .
Instrument
Scale . . .
Presets . .
Instance . .
History . .
Banks . . .
.bankdir . .
Windows .
Format . .
MIDI Learn

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

/ Yoshimi . . . . . . . . . . . . . . . . . . . . . . . .
Menu / Yoshimi / About... . . . . . . . . . . . . . .
Menu / Yoshimi / New instance . . . . . . . . . . .
Menu / Yoshimi / Settings... . . . . . . . . . . . . .
4.1.3.1 Menu / Yoshimi / Settings / Main Settings
4.1.3.2 Menu / Yoshimi / Settings / Switches . . .
4.1.3.3 Menu / Yoshimi / Settings / Jack . . . . .

2

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

Yoshimi Software Synthesizer

4.2

4.3

4.4
4.5
4.6

4.1.4
4.1.5
4.1.6
Menu
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5
4.2.6
Menu
4.3.1
4.3.2
4.3.3
4.3.4
4.3.5
Menu
Menu
Menu

5 Scales
5.1 Scales
5.2 Scales
5.2.1
5.2.2
5.3 Scales
5.4 Scales
5.5 Scales
5.6 Scales

User Manual

4.1.3.4 Menu / Yoshimi / Settings / Alsa .
4.1.3.5 Menu / Yoshimi / Settings / MIDI
Menu / Yoshimi / MIDI Learn... . . . . . . .
Menu / Yoshimi / View Manual... . . . . . .
Menu / Yoshimi / Exit . . . . . . . . . . . .
/ Instruments . . . . . . . . . . . . . . . . . .
Menu / Instrument / Show Stored... . . . . .
Menu / Instrument / Load External... . . . .
Menu / Instrument / Save External... . . . .
Menu / Instrument / Recent Instruments... .
Menu / Instrument / Clear . . . . . . . . . .
Menu / Instrument / Misc Notes . . . . . . .
/ Patch Sets . . . . . . . . . . . . . . . . . . .
Menu / Patch Sets / Show Patch Banks... . .
Menu / Patch Sets / Load External... . . . .
Menu / Patch Sets / Save External... . . . . .
Menu / Patch Sets / Recent Sets . . . . . . .
Menu / Patch Sets / Patch Bank Roots . . .
/ Paths . . . . . . . . . . . . . . . . . . . . . .
/ Scales . . . . . . . . . . . . . . . . . . . . . .
/ State . . . . . . . . . . . . . . . . . . . . . .

/ Command Line . .
/ Show Settings . . .
Scales Basic Settings
Keyboard Mapping .
/ Load . . . . . . . .
/ Save . . . . . . . .
/ Recent Scales... . .
/ Clear . . . . . . . .

6 Stock Settings Elements
6.1 Settings Features . . . .
6.1.1 Mouse Features .
6.1.2 Tooltips . . . . .
6.1.3 Title Bars . . . .
6.1.4 Color Coding . .
6.1.5 Rotary Knobs . .
6.1.6 Sliders . . . . . .
6.1.7 Presets . . . . .
6.1.8 Automation . . .
6.2 Filter Settings . . . . . .
6.2.1 Filter Type . . .
6.2.2 Filter Cutoff . .
6.2.3 Filter Resonance
6.2.4 Filter Stages . .
6.2.5 Filter Parameters

.
.
.
.
.
.
.
.

. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
User

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Interface

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

3

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

42
44
46
46
46
47
48
52
55
56
56
56
57
57
59
59
60
60
62
63
64

.
.
.
.
.
.
.
.

65
65
67
67
70
71
71
71
72

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

72
72
72
72
73
73
73
73
74
74
75
75
76
76
77
78

Yoshimi Software Synthesizer

6.3
6.4

6.5

6.6

User Manual

Stock Resonance Settings . . . . . . . . . . . .
LFO Settings . . . . . . . . . . . . . . . . . . .
6.4.1 LFO Basic Parameters . . . . . . . . . .
6.4.2 LFO Function . . . . . . . . . . . . . . .
6.4.3 LFO Randomness . . . . . . . . . . . .
6.4.4 LFO, More Settings . . . . . . . . . . .
6.4.5 LFO User Interface Panels . . . . . . . .
6.4.6 Filter LFO Sub-panel . . . . . . . . . .
6.4.7 Frequency LFO Sub-panel . . . . . . . .
Envelope Settings . . . . . . . . . . . . . . . . .
6.5.1 Amplitude Envelope Sub-Panel . . . . .
6.5.2 Envelope Settings . . . . . . . . . . . .
6.5.3 Freemode Envelope Settings . . . . . . .
6.5.4 Envelope Settings, Frequency . . . . . .
6.5.5 Envelope Settings for Filter . . . . . . .
6.5.6 Formant Filter Settings . . . . . . . . .
6.5.6.1 Formant Parameters . . . . . .
6.5.6.2 Formant Vowel Parameters . .
6.5.6.3 Formant Sequence Parameters
Clipboard Presets . . . . . . . . . . . . . . . . .
6.6.1 Clipboard/Preset Copy . . . . . . . . .
6.6.2 Clipboard/Preset Paste . . . . . . . . .

7 Top Panel
7.1 Mixer Panel Window . . . . . . . . . . . .
7.2 Virtual Keyboard . . . . . . . . . . . . . .
7.2.1 Virtual Keyboard, Basics . . . . .
7.2.2 Virtual Keyboard, ASCII Mapping
7.2.3 Virtual Keyboard, Controllers . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

80
83
84
84
85
85
85
87
88
88
89
90
91
93
94
95
96
97
97
98
98
99

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

100
101
104
105
106
106

8 Effects
8.1 Effects / Panel Types . . . . . . . . . . . .
8.1.1 Effects / Panel Types / System . .
8.1.2 Effects / Panel Types / Insertion .
8.1.3 Effects / Panel Types / Instrument
8.2 Effects / None . . . . . . . . . . . . . . . .
8.3 Effects / DynFilter . . . . . . . . . . . . . .
8.3.1 Effects / DynFilter / Circuit . . . .
8.3.2 Effects / DynFilter / User Interface
8.3.3 Effects / DynFilter / NRPN Values
8.4 Effects / AlienWah . . . . . . . . . . . . . .
8.4.1 Effects / AlienWah / Circuit . . . .
8.4.2 Effects / AlienWah / User Interface
8.4.3 Effects / AlienWah / NRPN Values
8.5 Effects / Chorus . . . . . . . . . . . . . . .
8.5.1 Effects / Chorus / Circuit . . . . . .
8.5.2 Effects / Chorus / User Interface . .
8.5.3 Effects / Chorus / NRPN Values . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

107
108
111
112
113
114
114
114
115
117
117
117
118
119
119
120
121
121

4

Yoshimi Software Synthesizer

User Manual

8.6

Effects / Distortion . . . . . . . . . . . . . .
8.6.1 Effects / Distortion / Circuit . . . .
8.6.2 Effects / Distortion / User Interface
8.6.3 Effects / Distortion / NRPN Values
8.7 Effects / Echo . . . . . . . . . . . . . . . . .
8.7.1 Effects / Echo / Circuit . . . . . . .
8.7.2 Effects / Echo / User Interface . . .
8.7.3 Effects / Echo / NRPN Values . . .
8.8 Effects / EQ . . . . . . . . . . . . . . . . .
8.8.1 Effects / EQ / Circuit . . . . . . . .
8.8.2 Effects / EQ / User Interface . . . .
8.8.3 Effects / EQ / NRPN Values . . . .
8.9 Effects / Phaser . . . . . . . . . . . . . . . .
8.9.1 Effects / Phaser / Circuit . . . . . .
8.9.2 Effects / Phaser / User Interface . .
8.9.3 Effects / Phaser / NRPN Values . .
8.10 Effects / Reverb . . . . . . . . . . . . . . .
8.10.1 Effects / Reverb / Circuit . . . . . .
8.10.2 Effects / Reverb / User Interface . .
8.10.3 Effects / Reverb / NRPN Values . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

122
122
123
124
124
124
124
125
125
125
125
126
127
127
128
130
130
130
130
133

9 Bottom Panel
9.1 Bottom Panel Controls . . . . . . . . . . . . . . . . .
9.1.0.1 Tip: Using the VU Meter . . . . . .
9.2 Bottom Panel / Controllers . . . . . . . . . . . . . .
9.2.1 Bottom Panel / Controllers / MIDI Controls
9.2.2 Bottom Panel / Controllers / Resonance . . .
9.2.3 Bottom Panel / Controllers / Portamento . .
9.3 Bottom Panel Instrument Edit . . . . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

133
133
137
138
139
140
140
141

10 ADDsynth
10.1 ADDsynth / AMPLITUDE . . . . . . . . . . . . . . . .
10.2 ADDsynth / FILTER . . . . . . . . . . . . . . . . . . .
10.3 ADDsynth / FREQUENCY . . . . . . . . . . . . . . . .
10.4 ADDsynth / Voice Parameters . . . . . . . . . . . . . .
10.4.1 ADDsynth / Voice Parameters / AMPLITUDE .
10.4.2 ADDsynth / Voice Parameters / FILTER . . . .
10.4.3 ADDsynth / Voice Parameters / FREQUENCY
10.4.4 ADDsynth / Voice Parameters / UNISON . . . .
10.4.5 ADDsynth / Voice Parameters / Voice Oscillator
10.4.6 ADDsynth / Voice Parameters / MODULATOR
10.4.6.1 Tip: Using the Ring Modulator . . . . .
10.5 ADDsynth / Voice List . . . . . . . . . . . . . . . . . . .
10.6 ADDsynth / Oscillator . . . . . . . . . . . . . . . . . . .
10.7 ADDsynth / Resonance . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

143
145
147
147
148
150
151
151
152
153
155
157
157
159
160

5

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Yoshimi Software Synthesizer

User Manual

11 PADsynth
11.1 PADsynth / Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.1.1 PADsynth / Algorithm / General . . . . . . . . . . . . . . . . . . . . .
11.1.2 PADsynth / Algorithm / Harmonic Bandwidth . . . . . . . . . . . . .
11.1.2.1 Tip: Using the PADsynth . . . . . . . . . . . . . . . . . . . .
11.2 PADsynth / Harmonic Structure . . . . . . . . . . . . . . . . . . . . . . . . .
11.2.1 PADsynth / Harmonic Structure / Basics . . . . . . . . . . . . . . . .
11.2.2 PADsynth / Harmonic Structure / Harmonic . . . . . . . . . . . . . .
11.2.3 PADsynth / Harmonic Structure / Bandwidth and Position . . . . . .
11.2.4 PADsynth / Harmonic Structure / Export . . . . . . . . . . . . . . . .
11.2.5 PADsynth / Harmonic Structure / Resonance . . . . . . . . . . . . . .
11.2.6 PADsynth / Harmonic Structure / Change . . . . . . . . . . . . . . .
11.2.6.1 PADsynth / Harmonic Structure / Change / Oscillator . . .
11.2.6.2 PADsynth / Harmonic Structure / Change / Base Function .
11.2.6.3 PADsynth / Harmonic Structure / Change / Middle . . . . .
11.2.6.4 PADsynth / Harmonic Structure / Change / Harmonic . . .
11.3 PADsynth / Envelopes and LFOs . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

160
160
161
161
162
163
164
165
167
169
169
169
170
171
172
175
176

12 SUBsynth
12.1 SUBsynth
12.2 SUBsynth
12.3 SUBsynth
12.4 SUBsynth
12.5 SUBsynth
12.6 SUBsynth

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

178
179
179
180
181
182
182

/
/
/
/
/
/

AMPLITUDE
BANDWIDTH
FREQUENCY
OVERTONES
FILTER . . . .
Harmonics . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

13 Kit Edit

183

14 Banks Collection
186
14.1 Yoshimi Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
14.2 Additional ZynAddSubFX Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
14.3 Additional Banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
15 Non-Registered Parameter Numbers
15.1 NRPN / Basics . . . . . . . . . . . .
15.2 NRPN / Effects Control . . . . . . .
15.2.0.1 Reverb . . . . . . .
15.2.0.2 Echo . . . . . . . .
15.2.0.3 Chorus . . . . . . .
15.2.0.4 Phaser . . . . . . .
15.2.0.5 AlienWah . . . . . .
15.2.0.6 Distortion . . . . . .
15.2.0.7 EQ . . . . . . . . .
15.2.0.8 DynFilter . . . . . .
15.2.0.9 Yoshimi Extensions
15.3 NRPN / Dynamic System Settings .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

6

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

188
188
190
190
190
190
191
191
191
191
192
192
193

Yoshimi Software Synthesizer

16 Vector Control
16.1 Vector / Basics . . . . .
16.2 Vector Dialogs . . . . .
16.3 Vector / Vector Control
16.4 Vector / Command Line

User Manual

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

194
194
195
200
201

17 MIDI Learn
203
17.1 MIDI Learn / Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
17.2 MIDI Learn / User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
17.3 MIDI Learn / Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
18 The
18.1
18.2
18.3
18.4

18.5
18.6

18.7

18.8
18.9

Yoshimi Command-Line Interface
Command Depth . . . . . . . . . . . . . . . . . . . . .
Command Level . . . . . . . . . . . . . . . . . . . . .
Command Scripts . . . . . . . . . . . . . . . . . . . . .
Other Command Tables . . . . . . . . . . . . . . . . .
18.4.1 Top Commands . . . . . . . . . . . . . . . . . .
18.4.1.1 SOlo . . . . . . . . . . . . . . . . . . .
18.4.1.2 Set / Read / MLearn Context Levels
18.4.1.3 Part Command Level . . . . . . . . .
18.4.2 Part Common Commands . . . . . . . . . . . .
18.4.3 Part Commands . . . . . . . . . . . . . . . . .
18.4.3.1 Part AddSynth Commands . . . . . .
18.4.3.2 Part PadSynth Commands . . . . . .
18.4.3.3 Part SubSynth Commands . . . . . .
18.4.3.4 Resonance Commands . . . . . . . . .
18.4.3.5 Part Waveform Commands . . . . . .
18.4.4 Engine Envelopes . . . . . . . . . . . . . . . . .
18.4.5 Engine Filters . . . . . . . . . . . . . . . . . . .
18.4.6 Engine LFOs . . . . . . . . . . . . . . . . . . .
MLearn . . . . . . . . . . . . . . . . . . . . . . . . . .
EFfects Commands . . . . . . . . . . . . . . . . . . . .
18.6.1 Vector Commands . . . . . . . . . . . . . . . .
18.6.2 Scales Commands . . . . . . . . . . . . . . . .
18.6.3 Help List . . . . . . . . . . . . . . . . . . . . .
List / History [s] . . . . . . . . . . . . . . . . . . . . .
18.7.1 Load/Save List . . . . . . . . . . . . . . . . . .
18.7.2 Config Commands . . . . . . . . . . . . . . . .
Command Descriptions . . . . . . . . . . . . . . . . .
Direct Access . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

209
210
213
213
215
215
217
217
217
218
220
221
222
223
223
224
225
226
227
228
228
233
234
235
235
236
237
239
242

19 LV2 Plug-in Support

244

20 Yoshimi Man Page

245

7

Yoshimi Software Synthesizer

User Manual

21 Concepts
21.1 Concepts / Terms . . . . . . . . . . . . . . . . . . . . . . . .
21.1.1 Concepts / Terms / Cent . . . . . . . . . . . . . . . .
21.1.2 Concepts / Terms / Frame . . . . . . . . . . . . . . .
21.1.3 Concepts / Terms / Instrument . . . . . . . . . . . . .
21.1.4 Concepts / Terms / Part . . . . . . . . . . . . . . . .
21.1.5 Concepts / Terms / Patch . . . . . . . . . . . . . . . .
21.1.6 Concepts / Terms / Patch Set . . . . . . . . . . . . .
21.1.7 Concepts / Terms / Presets . . . . . . . . . . . . . . .
21.1.8 Concepts / Terms / Program . . . . . . . . . . . . . .
21.1.9 Concepts / Terms / Voice . . . . . . . . . . . . . . . .
21.2 Concepts / ALSA Versus JACK . . . . . . . . . . . . . . . .
21.3 Concepts / Banks and Roots . . . . . . . . . . . . . . . . . .
21.4 Concepts / Basic Synthesis . . . . . . . . . . . . . . . . . . .
21.4.1 Concepts / Basic Synthesis / Panning . . . . . . . . .
21.4.2 Concepts / Basic Synthesis / Wetness . . . . . . . . .
21.4.3 Concepts / Basic Synthesis / Single Note . . . . . . .
21.4.4 Concepts / Basic Synthesis / Harmonics . . . . . . . .
21.4.4.1 Harmonic Bandwidth . . . . . . . . . . . . .
21.4.4.2 Harmonic Amplitude . . . . . . . . . . . . .
21.4.5 Concepts / Basic Synthesis / Randomness . . . . . . .
21.4.6 Concepts / Basic Synthesis / Components . . . . . . .
21.4.7 Concepts / Basic Synthesis / Filters . . . . . . . . . .
21.4.8 Concepts / Basic Synthesis / Envelopes . . . . . . . .
21.4.9 Concepts / Basic Synthesis / Formants . . . . . . . .
21.5 Concepts / MIDI . . . . . . . . . . . . . . . . . . . . . . . . .
21.5.1 Concepts / MIDI / Learn . . . . . . . . . . . . . . . .
21.5.2 Concepts / MIDI / Messages . . . . . . . . . . . . . .
21.5.3 Concepts / MIDI / NRPN . . . . . . . . . . . . . . . .
21.5.3.1 Concepts / MIDI / NRPN / Vector Control
21.5.3.2 Concepts / MIDI / NRPN / Effects Control
21.6 Concepts / Instances . . . . . . . . . . . . . . . . . . . . . . .
21.7 Concepts / Command Line . . . . . . . . . . . . . . . . . . .
21.7.1 Concepts / Command Line / level . . . . . . . . . . .
21.8 Concepts / LV2 Plugin . . . . . . . . . . . . . . . . . . . . . .
21.9 Concepts / Numbering . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

247
247
247
247
247
247
248
248
248
248
248
249
249
250
250
251
251
251
252
252
253
253
254
254
254
255
255
255
256
257
257
257
258
258
258
258

22 Building Yoshimi
22.1 Yoshimi Source Code .
22.2 Yoshimi Dependencies
22.3 Build It . . . . . . . .
22.4 Yoshimi Code Policies

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

258
259
259
260
262

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

23 Summary

262

24 References

263

8

Yoshimi Software Synthesizer

User Manual

List of Figures
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

Yoshimi Splash Screen! . . . . . . . . . .
Yoshimi Main Screen . . . . . . . . . . .
Space Bar Prompt . . . . . . . . . . . .
Configuration Warning Dialog . . . . . .
Yoshimi Menu, Exit . . . . . . . . . . .
Yoshimi Menu, About Dialog . . . . . .
Yoshimi Menu, Contributors . . . . . . .
Yoshimi Main Settings Tab . . . . . . .
OscilSize Values . . . . . . . . . . . . . .
Internal Size Values . . . . . . . . . . .
PADSynth Interpolation . . . . . . . . .
QWERTY Virtual Keyboard Layout . .
Virtual Keyboard Layout . . . . . . . .
Send Reports . . . . . . . . . . . . . . .
Yoshimi Console Window . . . . . . . .
Yoshimi Font for Extended File Format
Yoshimi Switches Tab . . . . . . . . . .
JACK Settings . . . . . . . . . . . . . .
ALSA Settings . . . . . . . . . . . . . .
MIDI Preferences . . . . . . . . . . . . .
MIDI Settings Pending . . . . . . . . . .
MIDI Setting In Use . . . . . . . . . . .
Yoshimi Menu, Exit . . . . . . . . . . .
Yoshimi Menu, Instruments . . . . . . .
Show Stored Instruments . . . . . . . .
A Sample Bank List . . . . . . . . . . .
Instruments, Load External . . . . . . .
Manage Favorites Drop-Down List . . .
Manage Favorites Dialog . . . . . . . . .
Instruments, Save External . . . . . . .
Clear Instrument Dialog . . . . . . . . .
Show Patch Banks . . . . . . . . . . . .
Load Patch Set . . . . . . . . . . . . . .
Save Patch Set . . . . . . . . . . . . . .
Patch Set, Nothing to Save . . . . . . .
Bank Root Paths . . . . . . . . . . . . .
New Root Directory? . . . . . . . . . . .
Preset Dirs Tab . . . . . . . . . . . . . .
Add Preset Directory . . . . . . . . . . .
Yoshimi Menu, State Load . . . . . . . .
Yoshimi Menu, State Save . . . . . . . .
Yoshimi Menu, Scales . . . . . . . . . .
Yoshimi Menu, Scales Settings . . . . .
Yoshimi Menu, Scales, Import File . . .
Yoshimi Menu, Scales, Import Keyboard
Yoshimi Menu, Open Scales . . . . . . .

. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
Map
. . .
9

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

20
21
21
22
32
32
33
35
35
36
36
36
37
37
38
38
39
41
43
44
44
45
47
47
48
50
53
54
54
55
56
57
59
60
60
61
61
62
63
64
65
66
67
69
69
71

Yoshimi Software Synthesizer

47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

User Manual

Yoshimi Menu, Failed to Load Scales . . . . . . . . . . .
Yoshimi Menu, Recent Scales . . . . . . . . . . . . . . .
Basic Filter Types . . . . . . . . . . . . . . . . . . . . .
Low Q vs. High Q . . . . . . . . . . . . . . . . . . . . .
2 Pole vs. 8 Pole Filter . . . . . . . . . . . . . . . . . . .
Filter Parameters Sub-panel . . . . . . . . . . . . . . . .
Filter Categories Dropdown . . . . . . . . . . . . . . . .
Filter Type Dropdown . . . . . . . . . . . . . . . . . . .
Filter Stage Dropdown . . . . . . . . . . . . . . . . . . .
ADDsynth/PADsynth Resonance . . . . . . . . . . . . .
ADDsynth/PADsynth Resonance Interpolated . . . . . .
ADDsynth/PADsynth Resonance Smoothed . . . . . . .
Basic LFO Parameters . . . . . . . . . . . . . . . . . . .
LFO Functions . . . . . . . . . . . . . . . . . . . . . . .
LFO Randomization . . . . . . . . . . . . . . . . . . . .
Amplitude LFO Sub-Panel . . . . . . . . . . . . . . . .
LFO Type Drop-down . . . . . . . . . . . . . . . . . . .
Filter LFO Sub-Panel . . . . . . . . . . . . . . . . . . .
LFO Function Types . . . . . . . . . . . . . . . . . . . .
Frequency LFO Sub-Panel . . . . . . . . . . . . . . . . .
ADSR Envelope (Amplitude) . . . . . . . . . . . . . . .
ASR Envelope, Frequency . . . . . . . . . . . . . . . . .
Amplitude Envelope Sub-Panel . . . . . . . . . . . . . .
Amplitude/Filter/Frequency Envelope Editor . . . . . .
Amplitude/Filter/Frequency Envelope Freemode Editor
Frequency Envelope Sub-Panel . . . . . . . . . . . . . .
Filter Envelope Sub-Panel . . . . . . . . . . . . . . . . .
Formant Filter Editor . . . . . . . . . . . . . . . . . . .
Copy to Clipboard . . . . . . . . . . . . . . . . . . . . .
Paste from Clipboard . . . . . . . . . . . . . . . . . . .
Yoshimi Mixer Panel . . . . . . . . . . . . . . . . . . . .
Yoshimi Virtual Keyboard . . . . . . . . . . . . . . . . .
Virtual Keyboard Controllers . . . . . . . . . . . . . . .
System Effects Dialog . . . . . . . . . . . . . . . . . . .
Effects Names . . . . . . . . . . . . . . . . . . . . . . . .
Effects, Send To . . . . . . . . . . . . . . . . . . . . . .
Effects / Copy To Clipboard . . . . . . . . . . . . . . .
Effects / Paste From Clipboard . . . . . . . . . . . . . .
Effects / Reports . . . . . . . . . . . . . . . . . . . . . .
Sample System Effects Dialog . . . . . . . . . . . . . . .
Sample Insertions Effects Dialog . . . . . . . . . . . . .
Part Selection Dropdown . . . . . . . . . . . . . . . . .
Sample Instrument Effects Dialog . . . . . . . . . . . . .
Effects Edit, No Effect . . . . . . . . . . . . . . . . . . .
Dynamic Filter Circuit Diagram . . . . . . . . . . . . .
Effects Edit, DynFilter . . . . . . . . . . . . . . . . . . .
DynFilter Presets . . . . . . . . . . . . . . . . . . . . . .
Effects Edit, AlienWah . . . . . . . . . . . . . . . . . . .
10

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

71
72
76
77
77
78
78
79
80
80
82
83
84
84
85
85
86
87
88
88
89
89
89
91
92
93
94
96
99
100
102
105
107
108
109
109
110
110
111
111
112
112
113
114
115
115
116
118

Yoshimi Software Synthesizer

95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142

User Manual

Chorus Circuit Diagram . . . . . . . . . . . . . . . . . . . . .
Effects Edit, Chorus . . . . . . . . . . . . . . . . . . . . . . .
Distortion Circuit Diagram . . . . . . . . . . . . . . . . . . .
Effects Edit, Distortion . . . . . . . . . . . . . . . . . . . . .
Effects Edit, Echo . . . . . . . . . . . . . . . . . . . . . . . .
Effects Edit, EQ . . . . . . . . . . . . . . . . . . . . . . . . .
Phaser Circuit Spectrogram . . . . . . . . . . . . . . . . . . .
Effects Edit, Phaser . . . . . . . . . . . . . . . . . . . . . . .
Reverb Circuit Diagram . . . . . . . . . . . . . . . . . . . . .
Effects Edit, Reverb . . . . . . . . . . . . . . . . . . . . . . .
Reverb Preset Dropdown . . . . . . . . . . . . . . . . . . . .
Reverb Type Dropdown . . . . . . . . . . . . . . . . . . . . .
Controllers Dialog . . . . . . . . . . . . . . . . . . . . . . . .
MIDI Controls from Controllers Button . . . . . . . . . . . .
Part Edit (Instrument) Dialog . . . . . . . . . . . . . . . . . .
Instrument Type Drop-down List . . . . . . . . . . . . . . . .
ADDsynth Edit/Global Dialog . . . . . . . . . . . . . . . . .
Velocity Sensing Function . . . . . . . . . . . . . . . . . . . .
ADDsynth Frequency Detune Type . . . . . . . . . . . . . . .
ADDsynth Voice Parameters Dialog . . . . . . . . . . . . . .
Frequency Detune Type . . . . . . . . . . . . . . . . . . . . .
Unison Phase Invert Dropdown . . . . . . . . . . . . . . . . .
Voice Oscillator Choices . . . . . . . . . . . . . . . . . . . . .
Oscillator in ADDSynth Voice . . . . . . . . . . . . . . . . . .
White Noise in ADDSynth Voice . . . . . . . . . . . . . . . .
Pink Noise in ADDSynth Voice . . . . . . . . . . . . . . . . .
Voice Modulator Type . . . . . . . . . . . . . . . . . . . . . .
ADDsynth Voices List . . . . . . . . . . . . . . . . . . . . . .
ADDsynth Oscillator Editor . . . . . . . . . . . . . . . . . . .
ADDsynth Oscillator Harmonic Randomness Selections . . .
PADsynth Edit Dialog . . . . . . . . . . . . . . . . . . . . . .
Base Type of Harmonic . . . . . . . . . . . . . . . . . . . . .
PADsynth Full/Upper/Lower Harmonics . . . . . . . . . . . .
PADsynth Amplitude Multiplier . . . . . . . . . . . . . . . .
PADsynth Amplitude Mode . . . . . . . . . . . . . . . . . . .
Harmonic Base Dropdown . . . . . . . . . . . . . . . . . . . .
Harmonic Samples Per Octave . . . . . . . . . . . . . . . . .
Harmonic Number of Octaves . . . . . . . . . . . . . . . . . .
Harmonic Sample Size Dropdown . . . . . . . . . . . . . . . .
Harmonics Bandwidth Scale. . . . . . . . . . . . . . . . . . .
PADsynth Harmonics Spectrum Mode . . . . . . . . . . . . .
PADsynth Overtones Position . . . . . . . . . . . . . . . . . .
Harmonics Structure Export Dialog . . . . . . . . . . . . . .
Harmonic Content Editor . . . . . . . . . . . . . . . . . . . .
PADsynth Harmonic Content Mag Type . . . . . . . . . . . .
PADsynth Harmonic Content Base Function . . . . . . . . . .
PADsynth Harmonic Content Editor Wave-Shaping Function
PADsynth Harmonic Content Filter . . . . . . . . . . . . . .
11

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

120
121
122
123
124
125
127
128
130
131
132
132
138
139
141
142
144
146
147
149
152
153
154
154
154
154
155
158
159
160
163
164
165
165
165
166
166
166
167
167
167
168
169
170
171
171
173
174

Yoshimi Software Synthesizer

143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166

User Manual

PADsynth Harmonic Content Editor Modulation . . .
PADsynth Harmonic Content Editor Spectrum Adjust
PADsynth Adaptive Harmonic Type . . . . . . . . . .
PADSynth Parameters, Envelopes and LFOs . . . . .
SUBsynth Edit Dialog . . . . . . . . . . . . . . . . . .
Harmonic Type Dropdown . . . . . . . . . . . . . . . .
SUBSynth Magnitude Type Dropdown . . . . . . . . .
SUBsynth Start Type . . . . . . . . . . . . . . . . . .
Kit Edit Dialog . . . . . . . . . . . . . . . . . . . . . .
Yoshimi Vectors Dialog . . . . . . . . . . . . . . . . .
Yoshimi Vectors Options . . . . . . . . . . . . . . . . .
Yoshimi Vectors, Feature 1 . . . . . . . . . . . . . . .
Yoshimi Vectors, Feature 2 . . . . . . . . . . . . . . .
Yoshimi Vectors, Feature 3 . . . . . . . . . . . . . . .
Yoshimi Vectors, Feature 4 . . . . . . . . . . . . . . .
Yoshimi Vectors Saved as ”My First Vector” . . . . .
MIDI Controls Panel . . . . . . . . . . . . . . . . . . .
MIDI Learn Prompt Example 1 . . . . . . . . . . . . .
MIDI Learn Prompt Example 2 . . . . . . . . . . . . .
MIDI Learn Prompt Unsupported Example . . . . . .
Empty MIDI Learn Dialog . . . . . . . . . . . . . . . .
MIDI Learn Dialog . . . . . . . . . . . . . . . . . . . .
ZynAddSubFX/Yoshimi Main Structure . . . . . . . .
ZynAddSubFX/Yoshimi Note Generation . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

174
175
176
177
178
181
182
182
183
196
197
198
198
198
199
199
204
204
205
205
205
206
250
251

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

194
215
216
218
220
221
221
221
222
223
223
224
225
225
225
225
226
227
227
229

List of Tables
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Dynamic System Commands .
Yoshimi Common Commands .
Yoshimi Top-Level Commands
Part Common Commands . . .
Part Commands . . . . . . . .
Part AddSynth Commands . .
AddSynth Voice Commands . .
Voice Modulator Commands . .
Part PadSynth Commands . .
Part SubSynth Commands . . .
Resonance Commands . . . . .
Part Waveform Commands . .
Engine Envelopes, Type . . . .
Engine Envelopes, Controls . .
Engine Envelopes, Fixed . . . .
Engine Envelopes, Freemode . .
Engine Filters . . . . . . . . . .
Engine Filters, Formant Editor
Engine LFOs . . . . . . . . . .
Reverb . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

12

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Yoshimi Software Synthesizer

21
22
23
24
25
26
27
28
29
30
31
32
33
34

1

Echo . . . . . . . . . . . . . . . . . . . .
Chorus . . . . . . . . . . . . . . . . . . .
Phaser . . . . . . . . . . . . . . . . . . .
Alienwah . . . . . . . . . . . . . . . . .
Distortion . . . . . . . . . . . . . . . . .
EQ . . . . . . . . . . . . . . . . . . . . .
Dynfilter . . . . . . . . . . . . . . . . . .
Yoshimi Vector Commands . . . . . . .
Yoshimi Scales Commands . . . . . . . .
Yoshimi Help Commands . . . . . . . .
Yoshimi Load Commands . . . . . . . .
Yoshimi Save Commands . . . . . . . .
Yoshimi Config Commands . . . . . . .
ZynAddSubFX/Yoshimi MIDI Messages

User Manual

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

229
230
231
231
232
232
233
233
234
235
236
237
237
256

Introduction

This manual was inspired by a wiki version of a ZynAddSubFX manual (see reference [31]). That wiki
shows screen shots and a detailed survey of the settings and parameters of ZynAddSubFX. It inspired us to
thoroughly document Yoshimi, with the help of Will Godfrey, who continues to improve Yoshimi at great
pace. This manual owes much to the descriptions and diagrams provided by the original ZynAddSubFX
author, Paul Nasca, as well as some others whose names we don’t know.

1.1

Yoshimi And ZynAddSubFX

Yoshimi is an algorithmic MIDI software synthesizer for Linux. It synthesizes in real time, can run
polyphonic or monophonic, with multiple simultaneous patches on one or more MIDI channels, and has
broad microtonal capability. It includes extensive addititive, subtractive, and pad synth capabilities which
can be run simultaneously within the same patch. It also has eight audio effects modules.
This manual describes how to use Yoshimi [19], the software synthesizer derived from the great
ZynAddSubFx (version 2.4.0) [23] software synthesizer (Copyright 2002-2009 Nasca Octavian Paul). Because of their common origin, much of this manual also applies to ZynAddSubFx for versions less than
3.0, and uses some earlier ZynAddSubFX documentation and diagrams. Please note that the references
to ZynAddSubFx in this manual apply primarly to versions of ZynAddSubFx prior to version 3.0.

1.2

New Features

This section provides an ad hoc, catch-as-catch-can survey of the new features of Yoshimi, in no particular
order. There are new features for the command-line interface, and many internal fixes to reduce the
likelihood of ”xruns”, static, clicks, or other performance issues.
1.2.1

MIDI Learn

Yoshimi, as of version 1.5.0, supports MIDI Learn. It is available by right-clicking on the desired parameter
widget. See Section 21.5.1 ”Concepts / MIDI / Learn” on page 255, and Section 17 ”MIDI Learn” on
page 203, for more information.
13

Yoshimi Software Synthesizer

1.2.2

User Manual

LV2 Plugin

Yoshimi can run as an LV2 plugin. Supported features:
1.
2.
3.
4.
5.

Sample-accurate MIDI timing.
State save/restore support via LV2 State Interface.
Working UI support via LV2 External UI Widget.
Programs interface support via LV2 Programs Interface.
Multi-channel audio output. ’outl’ and ’outr’ have lv2 index 2 and 3. All individual ports numbers
start at 4.

See Section 19 ”LV2 Plug-in Support” on page 244, for more information, but keep in mind there is
still much more to document concerning the LV2 plugin.
1.2.3

Control Automation

Controls automation support is a part of a common controls interface. There are significant extensions to
the NRPNs that Yoshimi handles. Sensitivity to MIDI volume change (CC #7) is variable in Controllers
in the same way as pan width, etc. The numeric range is 64 to 127; the default at 96 gives the same
sensitivity as before at -12dB relative to the GUI controls. 127 gives 0dB and 64 gives -26dB.
In parallel with this there are more NRPNs supported so that one can perform some of these controls
via automation. The arrangment looks positively steam-punk, but is actually very easy to use, requiring
only a utility that can send MIDI CCs. NRPNs aren’t special. They are simply a specific pattern of CCs.
Yoshimi’s implementation is very forgiving, doesn’t mind if one stops halfway through (will just get on
with other things while it waits) and will report exactly what it is doing. See Section 15 ”Non-Registered
Parameter Numbers” on page 188, for more information, as well as the sections noted below.
1.2.4

MIDI CC

To help when things don’t seem to go right, one can show raw incoming CCs. This is enabled from the
Settings / MIDI tab. These are the values before Yoshimi does any processing.
MIDI program changes have always been pretty clean from the time Cal first introduced them, but
now GUI changes are just as clean. While it is generally best to change a program when the part is silent,
even if a part is sounding there is barely a click. There is no interference at all with any other sounding
parts.
Sometimes MIDI CCs don’t seem to give the results one expects. There is a setting that reports all
incoming CCs so that one can discover what Yoshimi actually sees (which may not be what was expected).
At the request of one user, Yoshimi (and only Yoshimi) has an implementation of CC 2, Breath
Control. This feature combines volume with filter cutoff. See Section 21.5.2 ”Concepts / MIDI / Messages”
on page 255, for more information.
Yoshimi implements the ”legato footswitch” control, MIDI CC 68. Send this command with a value
of 64 and above, and it will switch to Legato mode. Send less than 64, and it will revert to whatever it
was before. So, if the mode had been Poly, it goes back to that, and it it already was Legato, it just stays
a Legato.

14

Yoshimi Software Synthesizer

1.2.5

User Manual

Vectors

It’s probably best to more clearly separate the concept of parts versus channels these days. Yoshimi can
provide up to 64 parts, in blocks of 16. One can decide how many one wants to have available using the
spin-box alongside the channel number. One can have 16, 32 or 64 parts. By default, all the upper parts
are mapped to the same MIDI channel numbers as the lowest ones, but have independent voice and patch
set values. They cannot normally receive independent note or control messages. However, vector control
will intelligently work with however many are set, as will all the NRPN direct part controls. See Section 16
”Vector Control” on page 194, for more information.
1.2.6

Bank Support

Bank root directories are better identified, with IDs that can be changed by the user in the GUI. This is
also made available for selecting over MIDI. MIDI only sees banks in the current root directory, but all
banks are accessible to the GUI. One can set up a new bank root path when starting from the command
line. This takes the form:
$ yoshimi -D /home/(username)/(directory)/(subdirectory)/bank
Yoshimi will scan this path for new banks, but won’t make the root (or any of its banks) current.
The final directory doesn’t have to be banks, but that is tradition. When running from the command line
there is access to many of the system and root, bank, and other settings.
Yoshimi splits out roots and banks from the main configuration file, and creates a new ”history” file.
The separation means that the different functions can be implemented, saved, and loaded at the most
appropriate time. These files have ”yoshimi” as the doc-type, as they are in not relevant to ZynAddSubFX.
See the new Banks sections, Section 3 ”Banks and Roots” on page 29and Section 14.1 ”Yoshimi Banks”
on page 186, for more information.
1.2.7

Accessibility

One of the main features of recent releases of Yoshimi is improved accessibility. The effectiveness and
usefulness of accessibility will shape future complementary interfaces. A number of first-time defaults
have been changed to make this easier.
It has always been possible to run Yoshimi headless, but now real control is available. In the first
place, when starting from the command line, an argument can be included for a new root path to be
defined to point to a set of banks fetched from elsewhere. This will be given the next free ID. Once
running, all setup can be done within the terminal window. Some settings will require a restart. There
is also extensive control of roots, banks, parts and instruments including the ability to list and set all of
these. One can do things like:
add root /home/music/yoshimi/banks
set part 4 program 130
Additional controls that are taken for granted in the GUI but otherwise get forgotten are master
key shift and master volume. The most important parts of vector control are exposed to the command
line. For all of this there is extensive error checking and feedback, which can be rendered aurally using
text-to-speech software.

15

Yoshimi Software Synthesizer

User Manual

There is one partially-sighted persion we occasionally hear from. There is also a totally blind person
(working with a Braille reader/writer) who has offered a lot of suggestions, and very much likes vector
control. So accessibility is an important feature of Yoshimi. See the section that follows.
1.2.8

Command Line

Yoshimi offers great control of one’s working environment. One can have just the graphical user interface,
just a command-line interface, or both, and these settings can be saved. Actually, both interfaces can be
disabled, and then Yoshimi runs in a headless mode, responding in the background to MIDI events.
The command-line interface can access all top level controls, as well as the part editing controls, and
can select any effect and effect preset. It can be used to set up Vector Control much more quickly and
easily than using NRPNs. It allows setting to be made to the various synthesis engines. The command-line
is also context sensitive, which, along with careful choice of command names and abreviations, allows very
fast access with minimal typing. Since version 1.5.8 it has been possible to start, stop and select different
instances for further control.
Yoshimi’s parser is case-insensitive for commands (but not for filenames), and accepts the shortest
unambiguous abbreviation. However it is quite pedantic, and expects spelling to be correct regardless of
length. Apart from the back commands, it is word-based, so spaces are significant. Some examples:
”s p 4 pr 6” (”set part 4 program 6”): This command sets part 4 to the instrument with ID 6 from
the current bank. It also then leaves one at the part context level and pointed to part 4. Additionally,
it will activate that part if it was off (and the configuration setting is checked). In most cases the words
program and instrument are interchangable.
”s ef 1 rev” (”set effect 1 reverb”): This command moves one up to part effects context level and
sets that part’s effect number 1 to effect type reverb.
”s pre 2” (”set preset 2”): This command sets preset number 2 (we use numbers here as most preset
names repeat the effect type).
”..s 6 v 80” (”up one level, set part 6 volume 80”): This command drops one back up to part level,
switches one to part 6 (but doesn’t actually enable it), and sets its volume to 80.
”/s ve cc 93” (”to top level, set vector control cc 93”): This command drops back up to the top
level, and sets vector control for channel 1, X axis to respond to CC 93 leaving one in the vector context.
Whenever intermediate values are omitted, the default or last-used value will be assumed. All standard
CLI inputs, as well as the return message numbers should start from 1 with the following exceptions:
• Bank roots
• Banks
• CCs
These follow standard MIDI practice (and do the same in the GUI).
The CLI prompt always shows what level one is on, and the help lists are also mostly context-sensitive,
so one doesn’t see a lot of irrelevent clutter. Yoshimi instrument patches are still fully compatible with
ZynAddSubFX patches, and have ported across new refinements with thanks. See Section 18 ”The Yoshimi
Command-Line Interface” on page 209, for more information.

16

Yoshimi Software Synthesizer

1.2.9

User Manual

Audio Support

The preferred JACK/ALSA MIDI and audio interfaces are no longer fixed at compile time. There are
checkboxes on Settings to change them. One can also set preferred startup ALSA/JACK MIDI and audio
devices. These selections will be remembered on the next run.
Yoshimi will always start even if the audio/MIDI backend called for doesn’t exist. In this situation,
it will try all combinations in this order: JACK, ALSA, and null. This enables one to then change the
settings and try again.
A significant improvement is the handling of ALSA audio, which is very important for some people.
Yoshimi can handle 2-channel 16-bit format. Tests have shown that virtually all motherboard sound
chipsets will handle this setting, but many external ones don’t. So Yoshimi initially requests 32-bit 2channel, then works towards a compromise with the hardware. See Section 4.1.3.4 ”Menu / Yoshimi /
Settings / Alsa” on page 42, for details.
1.2.10

Miscellany

Yoshimi stamps instrument and patch-set XML files with its own major and minor version numbers so it
is possible to tell which version created the files, or whether they were created by ZynAddSubFX.
One can direct messages to either stderr (the error output of a terminal console) or the Reports
window on the fly. If one chose stderr, the Reports button is greyed out.
One can use the mouse scroll wheel to adjust rotary controls. Holding down the Ctrl key gives access
to finer adjustment. Also, horizontal as well as vertical mouse movement will adjust the knob.
Including the Mixer Panel, all the rotary controls and sliders will return to their home positions if
right-clicked anywhere in the control. In the case of sliders not the peg itself. As of version 1.5.8 switches,
buttons and selectors will also home with a right-click.
Part-editing windows carry the part number and voice name in the title bar. For the AddSynth
oscillator window this also includes the voice number.
When opening an instrument bank, one can tell exactly which synth engines are used by each instrument. This is represented by three pale background colours: Red = AddSynth; Blue = SubSynth; and
Green = PadSynth.
If the instruments are kits they scanned to find out if any member of the kit contains each engine,
so that the colors above can be applied. This feature is duplicated in the current part, the mixer panel
for the currently loaded instruments, and in the Instrument Edit window. The same colors highlight the
engine names when they are enabled with the check boxes.
Yoshimi remembers where major windows were last placed (per instance), and if any were left open
at shutdown, they will be reopened at the same location on the next run.
Thanks to the ZynAddSubFX developers, Yoshimi has pink as well as white noise available on
Addsynth voices. Pink noise sounds softer. With the latest ”depop” port from ZynAddSubFX, Yoshimi
is fully compatibly with all instrument files.
The Humanise feature has had more interest so it’s been upgraded. It’s now a slider, and it’s setting
can be saved in patch sets. It provides a tiny per-note random detune to an entire part (all engines in all
kits), but only for that part.
Audio and MIDI preferences have been improved. If one sets (say) ALSA MIDI and JACK audio,
either from the GUI or the command line, the setting can be saved and will be reinstated on the next
17

Yoshimi Software Synthesizer

User Manual

run. These settings are per-instance, so if one has multiple sound cards, one can make full use of them.
Barring major system failures, there are no circumstances where Yoshimi will fail to start.
We have tested Yoshimi in recovery mode, logged in as root, with no X server. Using the command
/usr/share/bin/yoshimi -A -i worked perfectly and auto-connected the keyboard so we could prove
everything worked. We still need the X11 libraries to compile Yoshimi, but we don’t know if it is practical
to provide a compile time option to build a purely headless version.
Load and save dialogues intelligently recognise the history lists and offer the appropriate first choice.
External instrument loads and saves are now also remembered. For saves, on a restart, one is offered the
home directory regardless of where Yoshimi was launched, but in the case of saving external instruments,
one is always offered the name of the instrument in the currently selected part, prefixed with the home
directory.
There is now a specific State menu item (”Save as Default”) for saving the current complete setup
as the default. This file is always saved to Yoshimi’s configuration directory, and will not show in history
lists.
If Start With Default State has been set, and a default state has been saved, not only will a
complete restart load this, but a master reset will load this file, instead of doing a first-time default reset.
There is a ”gotcha” with this, in that when saving the default state, one must already have set the
Start With Default State switch, otherwise reloading the default state works once, but upon re-opening
Yoshimi, the switch will be unchecked —that is, quite correctly in its previously saved state!
A final detail with the history lists is that in each list type, the last used item will be placed at the
top of the list. This is especially useful when you want to continually save/load an item you are currently
working on.

1.3

Document Structure

The structure of any manual is a struggle. There’s no way to avoid jumping all over the place to cover a
topic. The sections are covered roughly in the order of the user interface of Yoshimi. To help the reader
jump around this manual, multiple links and an index are supplied.
Usage tips for each of the functions provided in Yoshimi are sprinkled throughout this manual. Each
tip occurs in a section beginning with ”Tip:”. Each tip is provided with an entry in the Index, under the
main topic ”tips”. Bug notes may also be found. Each bug occurs in a sentence beginning with ”Bug:”.
Each bug is provided with an entry in the Index, under the main topic ”bugs”. New features since the last
version are flagged with ”New:” We cannot pretend to have marked all new developments, as Yoshimi is
advancing fast. To-do items are also present, in the same vein.

1.4

Yoshimi Mailing List

The Yoshimi project used to have an email listserv at SourceForge, but the unreliability of the site has
prompted a move to a new mailing list. See reference [21]. The team have managed to port across all the
old yoshimi-user archives to this new site. See reference [22].
Subscribe to the Yoshimi mailing list with an e-mail to: yoshimi-request@freelists.org or by
visiting http://www.freelists.org/list/yoshimi.
To post to the list, send an email to: yoshimi@freelists.org. The news archive is at: https:
//www.freelists.org/archive/yoshimi.
18

Yoshimi Software Synthesizer

1.5

User Manual

Yoshimi Licensing
Software licenses are are something I really don’t want to get involved in - I have much better things to do
with my time - but I found I was obliged to do so.
It is possible I’m the only person who knows all the following events, as I was the one that instigated them!
The first time I saw ZynAddSubFX source files they were licensed as GPL V2. At that time Zyn had a
number of very serious problems, and not much was being done about them. Somewhat naively I asked Lars
Luthman if he would help, as he had offered a couple of small patches previously. His response was that he
would not do any significant work, as he did not agree with the GPL V2 only license.
I then contacted Paul, explaining the situation and asking if he would consider a change in the license to
V2 or later. I was actually a bit surprised that he immediately agreed. When I next looked at the sources, the
licenses on the files had indeed been updated, so I passed this information on.
Unfortunately Paul forgot to update the website, but I wasn’t especially concerned as it was only the files
themselves that really mattered.
While developing Yoshimi after the initial fork, Cal queried the license situation. I told him of the conversations I’d had, and passed him a copy of the email I’d got from Paul. Later on, Cal - in good faith - wrote
new sources and placed them under GPL V3. This would be quite compatible with V2 or later, but not with
V2 strict.
What I didn’t notice until very much later was that Paul had only updated half of the text in the sources,
leaving the actual licence in an ambiguous state.
To the best of my knowledge, V3 is not compatible with V2 strict, but V2 or later is. However the complete
project then becomes downgraded to V2 strict - although the V2 or later sources (such as all the new root/bank
code) can independently be freely merged into V3 code.
I doubt anyone would actually make an issue of this. However, to safeguard Yoshimi as a whole, I took
it upon myself to change Cal’s code to V2 or later. I believe it retains the spirit of his wishes, and the only
person with standing to object – his daughter - has been totally supportive of the work currently being done
on Yoshimi.
Any source code I add will be GPL V2 or later.
Update.
The original change discussion has now been located and the license for both Zyn and Yoshi is confirmed
as GPL V2 or later.
Anyone wanting to confirm this should look at the Zyn user list archives August 2007 and September 2007.

1.6

Let’s Get Started with Yoshimi!

Let us run Yoshimi. The first thing to do is make sure one has no other sound application running (unless
one wants to risk blocking Yoshimi or hearing two sounds simultaneously, depending on one’s sound card
and ALSA setup). Then start Yoshimi:
$ yoshimi
If JACK is available, it will be used. Otherwise ALSA will be used.

19

Yoshimi Software Synthesizer

User Manual

Figure 1: Yoshimi Splash Screen!
One sees a brief message, and then the splash screen. We show the new splash screen, Figure 1
”Yoshimi Splash Screen!” on page 20, here because it goes away too fast when one runs Yoshimi! What
fun is that?
Next shown is the Yoshimi main window, as shown in Figure 2 ”Yoshimi Main Screen” on page 21,
and it persists, of course:

20

Yoshimi Software Synthesizer

User Manual

Figure 2: Yoshimi Main Screen
Note that, if one presses the Space bar while the main window has keyboard focus (right after starting
Yoshimi), the following prompt appears:

Figure 3: Space Bar Prompt
Be careful! For this manual, the main window is composed of the following sections:
1.
2.
3.
4.

Menu.
Top Panel.
Effects Panel.
Bottom Panel. Includes the VU-meter at the bottom.

One thing to note is that the Detune and Pan buttons no longer have a small red button next to
them to press in order to reset the control to its center value. Starting with version 1.4.0, a right-click on
21

Yoshimi Software Synthesizer

any control in Yoshimi will reset the control’s value to its center position. In version 1.4.1, the Vectors
control appears, with some minor rearrangement of the top panel.
There’s a lot going on with Yoshimi, with no way to describe it in linear order. This manual describes
how to do useful things in each of the sections noted above, while leaving some of the details to be described
in later sections, to which reference can be made for the details. This document depends heavily on index
entries and references. There is also a ”cookbook” at [3]; it is a long way from being comprehensive, but
still has some useful tips.
If one downloads the source code for Yoshimi, in the examples directory one finds a complete song
set, OutThere.mid and OutThere.xmz. Together these produce a fairly complex 12 part tune that makes
Yoshimi work quite hard. Also, after installing Yoshimi, one can find a nice, short introduction to Yoshimi
in Will’s document, /usr/share/doc/yoshimi/The Short Yoshimi Guide.odt, along with a number of
texts files with information that might not yet be present in the long manual.
One last thing to note is that there is a list of important concepts in Section 21 ”Concepts” on
page 247, which one should consult if a term is puzzling.

2

Configuration Files

Let’s cover the configuration files, which have expanded in utility in recent versions of Yoshimi. Understanding these configuration file makes it easier to use Yoshimi. Also note that all configuration settings
are exposed to the command line interface as well.
As with most applications, Yoshimi and ZynAddSubFX allow for one to save one’s work and reload
it. In recent versions of Yoshimi, it is possible to autoload a default state on startup, so that Yoshimi
is already configured exactly as desired, with patches loaded and part destinations set. In addition,
Yoshimi now saves settings that have been disabled. In this way, they can be re-enabled without having
to reconstruct them from scratch.
However, the configuration has changed quite a bit, and configurations from Yoshimi 1.4 and earlier
will need to be reconstructed. The following warning will occur if that is the case:

Figure 4: Configuration Warning Dialog
Yoshimi has a number of different files that make up the current configuration. Together, they make
up the concept of a patch set (also called a patchset). Sometimes one will see reference to a ”session”,
but that term is too easy to confuse with the ”session” in ”JACK session manager”.
The last-used file in any configuration section is always at the top of its history list. The main benefit
of this new setup is that now all patch sets, vectors, scales, MIDI Learn, and state - offer the most recent
entry when asked to load or save. On first-time use, when there is no history, one is offered one’s home
directory as a location, regardless of where Yoshimi was called from. Presets are not yet included in this
process.

22

Yoshimi Software Synthesizer

When saving these ”managed” files, one won’t be offered the previous last-used configuration unless
it was seen during that session, either by being loaded, or saved by name. This protects against accidental
overwrites: you’ve been working on ’foo’ for a whole day, saving as you go, then the following day you
start up Yoshimi, and immediately have a completely new idea ’bar’, and start working on it. Without
thinking you save and hit Enter. Oops, you just wiped out ’foo’. Only now you haven’t, because while
loading Yoshimi would see the older file, so the save command just offers the home directory to put a
new name in.
Here is a summary of the files. Please note that the names all start with yoshimi. For example,
.banks is really yoshimi.banks.
• .banks Contains information on the accessible instrument banks, and information to translate
between bank directory names and bank ID values. Current root and current bank settings have
now been moved from banks to the config and instance files, so the banks file now consists only
of the bank structure. On first time start up, Yoshimi will look for ZynAddSubFX banks as well
as Yoshimi banks in the usual locations. It will not look for a ZynAddSubFX configuration file, as
these are no longer relevant.
• .config Contains the setup information configured in the Yoshimi / Settings dialog. This is the
main configuration file. Configuration instances are now in place, so the main configuration file is
common to all, but each instance has its own file for things like current bank, JACK/ALSA settings,
etc. Common settings are only visible in the main instance and completely hidden in all the later
ones.
• .history Recent patch sets are now stored in the .history file. The last-used file in any section
is always at the top of its history list.
• ~/.yoshimi history Holds command-line history, which is then available on the next Yoshimi
session.
• .instance(n) Contains the current root/bank, MIDI settings, and preferred engines. Yoshimi now
has instance data separated from the main configuration file, with the name yoshimi-(n).instance.
• .state Contains the information needed to duplicate a complete Yoshimi session that was saved.
• .windows Contains the current layout of windows for reinstantiation at the next startup of Yoshimi.
If there is no such file (~/.config/yoshimi/yoshimi.window) at Yoshimi, then the keyboard is also
opened, alongside the main window, as a help to those new to Yoshimi. And of course that state
will be saved, if present, when Yoshimi exits.
• .xiz An Instrument file. This format is the Legacy or Zyn file format. This format will be
supported forever, although some backward-compatible refinements might be made as time goes on.
• .xiy An Instrument file in the new Yoshimi file format. This format includes all the controllers,
the part mode status (Poly, Mono, Legato) and the Humanise setting. When loading files, Yoshimi
will always look for the .xiy version first, and, if it can’t find it, will then look for the .xiz version.
• .xly A MIDI-Learn file for saving the MIDI-Learn settings in force at the moment this file is saved.
It is also included in the state file (.state).
• .xmz All Yoshimi active data; everything except MIDI-Learn. This file is called a patch set.
• .xpz Presets. A preset is a Yoshimi sub-setting file.
• .xsz Scale Settings.
• .xvy Vector settings. The extension stands for ”Xml Vector Yoshimi”. Vector settings are now
included in both the patch sets (.xmz) and state files (.state. For a good example, see Section 16.4
”Vector / Command Line” on page 201. Vector control settings are now also stored in patch set and
state files.
The entire config set should then be (ignoring the prepended yoshimi):
23

Yoshimi Software Synthesizer

•
•
•
•
•

2.1

Configuration Files / Patch Set

.config
.instance[n]
.windows
.history
.banks

The .windows file is specific to the GUI, so doesn’t figure in this scheme at all, but it is created or
saved when one exits Yoshimi.
In the file-save dialogs, the file extension is determined by the type of file being saved, and it doesn’t
matter if one enters the extension explicity, or not. If it’s missing, or it is the wrong one, it will be replaced.
This is actually true of almost all file saves, and has been for quite some time now.
For vectors (in common with external instruments and patch sets), the configuration is saved to the
user’s home directory. Once saved, Vectors / Options / Recent is your friend.
Yoshimi can set up critical configuration settings to be writable only by the main instance, but
readable (and used) by any others. In the current version of Yoshimi, this applies to AddSynth Oscillator
Size, Internal Buffer Size, and Alsa Samplerate. These three must be defined before any other
initialisation.

2.1

Configuration Files / Patch Set

A patch set is basically a group of instruments related simply by the user wanting to have them all loaded
at once into Yoshimi. A patch set is stored in a .xmz file. A patch set is akin to a preset, in that it stores
a combination of items, that took awhile to set up, for easy retrieval later.
Patch sets are not the full configuration. They carry most of it, including almost all of the dynamic
settings, but they don’t contain the configuration settings that .state does. The patch set format is
either XML or compressed XML, as explained elsewhere. The Patch Sets / Save External... menu
entry saves files with the .xmz extension.
One of the simplest ways to save one’s work is to save the bulk of the Yoshimi dynamic settings. This
saving can be done through the Patch Sets menu (the File menu in ZynAddSubFX), and will result in
the creation of a .xmz file. Once created, this file will hold the settings for all settings within that setup,
such as microtonal tunings, all patches, system effects, insertion effects, etc. See Section 4.1.3.1 ”Menu /
Yoshimi / Settings / Main Settings” on page 34. Patch sets will save all other instruments regardless of
whether they are activated or not.
In many cases saving everything in a part is not what is desired. Saving a patch later on in an editing
session is one such example. In order to save a patch, one can either save it from the Instruments menu,
or through the Bank window.

2.2

Configuration Files / Config

Often, one will see the extension .config used in the $HOME/.config/yoshimi directory. This file once
contained information to translate between bank directory names and bank ID values. In recent versions
of Yoshimi, this file is much reduced in size, and its ”doctype” is no longer ”ZynAddSubFX”.
The .config file is always going to be specific to one machine and working modes, so no one will
ever want to copy it across even to another Yoshimi environment. Recent patch sets are now no longer
stored in the main .config file, but in a new .history file. The .config file is now a much reduced
24

Yoshimi Software Synthesizer

2.3

Configuration Files / State

common settings – interfaces, sample rate – file. It is a single file that every instance can read, but only
the first one can write.
The .config file has been separated from .instance(n). It is saved only when the user explicitly
calls for it to be saved.
All files are still per instance, as the Yoshimi team haven’t had time to work out exactly how to
manage common files and memory locations for those that should be shared. Yoshimi will still mention
its absense:
$ yoshimi -a -A
Yoshimi is starting
ConfigFile /home/ahlstrom/.config/yoshimi/yoshimi.config not found, will
use default settings ...
The .config file will be readable by all instances of Yoshimi, but writeable only by the main instance.
The relevant controls will be hidden from the other instances. Also, those controls not relevant to LV2
are disabled in that mode. The .config and .banks data now reside in separate configuration files. The
banks file is saved every time there is a normal exit, so the last-used root and bank IDs will always match
what that instance thinks is there. Conversely, the main .config file doesn’t get saved when one starts a
new (unkown) instance of Yoshimi, but the config-changed flag is set, so one has control over whether any
settings are saved. So now, if anything goes wrong with the config files they won’t corrupt one’s carefully
organised bank files, and vice-versa.

2.3

Configuration Files / State

Sometimes one will see the extension .state used in the $HOME/.config/yoshimi directory. These files
contain a lot more information, that needed to duplicate a Yoshimi session that was saved. This file is
a superset of an .xmz file, saving everything. The state file is accessed from the State menu item in
the main window. Its default name is ~/.config/yoshimi/yoshimi.state. This file is auto-loaded when
Yoshimi starts, if it is present. If not present, then the normal settings are in place.
The advantage of this is that once can set up a complete patch set of instruments one commonly
uses, with all their settings, including audio destination. Save it to the default state and it will be loaded,
along with the system settings, every time one starts Yoshimi, if the Yoshimi / Settings / Switches
/ Start With Default State setting is checked. To revert the state, simply uncheck the Yoshimi /
Settings / Switches / Start With Default State setting (and change any other needed), click the
Reset button on the main screen, and save the settings.
The Yoshimi ’state’ file consists of the entire setup, from basic configuration settings to currentlyloaded instrument sets. However, upon investigating some JACK session managers, it looks like they don’t
want (or can’t use) most of the configuration information because they are expecting to be able to change
the state in running instances.
Yoshimi now splits the ’instance’ data from the main configuration. This solves this session issue by
saving only the true configuration locally, and to the state save. However, the ’instance’ data includes
things like ALSA/JACK settings. Currently we can’t change these live (although it would be nice if we
could), but would anyone want to do so from a JACK session manager?

25

Yoshimi Software Synthesizer

2.4

2.4

Configuration Files / Instrument

Configuration Files / Instrument

An Instrument. These files can have two formats, compressed and uncompressed. Uncompressed is set by
Yoshimi / Settings / Main Settings / XML Compression Level set to 0, and compressed is set
by a value greater tha 0.
With the Instrument menu, one can save the file to any given location with the .xiz extension.
Default instruments are never saved, not even in patch sets and states, but if the parts are activated,
that fact is saved; it’s a part feature, not an instrument feature.

2.5

Configuration Files / Scale

Scale Settings. These files store microtonal settings that Yoshimi can use to produce non-standard musical
scales. Recent scales settings are saved and recorded.

2.6

Configuration Files / Presets

Have a favorite setting for an envelope, or a difficult-to-reproduce oscillator? Then presets are for you!
Presets allow for one to save the settings for any of the components which support copy/paste operations.
This is done with preset files (.xpz), which get stored in the folders indicated by Paths / Preset Dirs....
The key thing about using presets is that one must first specify a presets directory! Otherwise, who knows
where they go? A good choice for a preset directory is ~/.config/yoshimi/presets.
In Yoshimi, a preset is any collection of settings that can be saved to the clipboard or to a file, for
later loading elsewhere.
A preset is canned version of a Yoshimi sub-setting. Presets can be copied and pasted using the C
and P user-interface buttons associated with many of the Yoshimi dialog windows. They make it easy to
save portions of the current settings for later use. For example, resonance settings can be saved.
The naming convention for a preset file is presetname.presettype.xpz, where presename is the
name one types into the Copy to Preset name field, presettype is the name that appears in the Type
field, and xpz is the file-extension for compressed XML preset files.

2.7

Configuration Files / Instance

A new feature of the Yoshimi configuration. It contains the current root/bank, MIDI settings, and preferred engines. These instance files are totally independent files, distinguished by a number in the file-name.

2.8

Configuration Files / History

A new feature of the Yoshimi configuration. Recent patch sets are now stored in the .history file. For example, if the XML Compression option is set to 0, and one exits Yoshimi, then the file ~/.config/yoshimi/yoshimi.
might contain the following items (ignoring the XML markup):
/home/me/yoshimi-cookbook/sequencer64/b4uacuse/yoshimi-b4uacuse-gm.state
/home/me/sequencer64/contrib/yoshimi/horse.state

26

Yoshimi Software Synthesizer

2.9

Configuration Files / Banks

.history is a single file that every instance can read and write. The .history file is saved only upon
a normal exit, as it is comparatively unimportant.
The history is a single buffer and file, readable and writeable by all instances. This is actually quite
interesting as there can never be a conflict. It is impossible to have two browser lists open at the same
time (try it!) and the lists are always rebuilt from memory every time they are opened. Similarly, the
histories are added too every time a new recognised file is loaded or saved and one can’t physically do
two at the same time – even if one could it would simply mean that one very briefly waited for the other,
which is not an issue as they are not in the realtime thread.
Now, there is also another ”history” file created by Yoshimi: ~/.yoshimi history. This file is a
history of commands typed into the command-line interface of Yoshimi; it follows standard readline
practice.

2.9

Configuration Files / Banks

A new feature of the Yoshimi configuration. Currently each Yoshimi instance takes its own copy of the
actual files as it starts up. However, they can all save, delete, or rename the actual files without talking
to the other instances, so one can move a file in one instance, and then try (and fail) to access it from
another.
With the Banks menu, one can assign a patch to a given slot with a bank. This instrument will
remain in that slot for future use until it is deleted. To see the physical location of the .xiz file, one should
check the Yoshimi / Settings / Banks / Root Dirs (File / Settings / Bank Root Dirs) window to
see the paths for banks.
At startup, after all the configuration is complete, the banks are loaded and installed. On a per
instance basis, the first thing this process does is look for a yoshimi(-n).banks file, if it can’t, find that
it then hunts for a yoshimi(-n).config file, and if that fails it does a rescan for banks. In this way it
should be completely backward compatible with any previous config files.
The .banks file is saved every time roots, banks, or instruments are changed, and again on a normal
exit to catch the current root and bank (which don’t otherwise trigger a save). This allows the last-used
root and bank IDs to always match what that instance thinks is there. Note that one needs to have write
permissions to add instruments to the bank. When one saves an instrument to a bank slot, it is given a
filename with the internal name as the leaf-name. When one saves an instrument to an external file, one
is first offered the internal name and the current directory, but one can change it if desired.
By default Yoshimi does not assign a bank ID 0 (zero) in any root. This feature has an interesting
benefit. Several sequencers insist on setting a bank with every program change, and if one doesn’t give a
bank, they will try to set 0. However, Yoshimi is smart enough to ignore any invalid bank ID and remain
with the existing bank number.
As a further protection against rogue sequencers making assupmtions, any attempt to set an invalid
bank or bank root will be ignored. Also, on first-time startup, discovered roots will be given ID numbers
starting from 5, continuing in steps of 5. This makes it easier to re-arrange them to preference. We
recommend that you don’t use 0.
Loading an instrument now updates the Kit window; the kit is all there and looks and sounds
correctly.
On first time start up, Yoshimi will look for ZynAddSubFX banks as well, in the usual locations. It
will not look for a ZynAddSubFX configuration file, as these are no longer relevant to Yoshimi.
Banks are more thoroughly described in Section 21.3 ”Concepts / Banks and Roots” on page 249.
27

Yoshimi Software Synthesizer

2.10

2.10

Configuration Files / .bankdir

Configuration Files / .bankdir

A bit of ancient history has bubbled to the surface. When one creates a new bank in Yoshimi, it inserts
an empty file in the new bank, called .bankdir. For example:
... /banks/Zen Collection/.bankdir
The reason for this is that when scanning for banks (especially at startup) it looks for this file first.
If it can’t find it, then it has to go though the slower process of looking for at least one completely valid
instrument file. Running from SSDs, it probably won’t make a lot of speed difference but it will on a
conventional hard drive, especially if one has lots of banks. So, if one wants to get that little startup edge,
plonk a copy of this file into all your banks. It’s an empty file.
In modern times, one of the main distros creates a warning for the packagers if it sees embedded
dot files, and gets very unhappy if these are empty ones. The obvious answer is to put something there;
Yoshimi now adds a .bankdir file that is useful – when one creates a new bank, this file contains a string
with the Yoshimi version number it was created with, and to add icing to the cake, every time one saves
an instrument file in a bank, this file is created if it wasn’t there, and will have the current Yoshimi version
number.
So now it is be possible to tell how recently a bank was changed, which may have implications if
running modern instruments on older Yoshimi’s or on ZynAddSubFX. Also, the distro will be happier
because the .bankdir file won’t be empty.
For the ”Collection” bank, the version number is 0.0.0; all its instruments were created with Yoshimi,
sometime before version 1.3.0. ”Drums” is set to 1.3.0; ”Companion” is set to 1.5.0.

2.11

Configuration Files / Windows

No, this term isn’t a reference to ”that other operating system”.
A new feature of the Yoshimi configuration. It saves the current layout of windows for reinstantiation
at the next startup of Yoshimi.

2.12

Configuration Files / Format

The Unix file command indicates that the XML files are one of two types:
• exported SGML document, ASCII text. These files are unindented XML data with an encoding of
UTF-8 and a DOCTYPE of ”ZynAddSubFX-data”.
• gzip compressed data, from Unix. These files can be renamed to end in ”.gz”, and then run through
the gunzip program to yield the XML file (but without an .xml extension).
The format depends on the ”XML compression level” option discussed in Section 4.1.3.1 ”Menu /
Yoshimi / Settings / Main Settings” on page 34.
Saving settings or not: If one changes settings, and closes without saving, that means the settings
remain in place only for the current session. If one has changed anything, when one closes Yoshimi, one
will be given a second chance to save them. If one responds ’No’, the next time Yoshimi starts, the old
settings will be restored. An ’undo’ feature would get pretty crazy very quickly.

28

Yoshimi Software Synthesizer

2.13

Configuration Files / MIDI Learn

In the Settings window, Save Settings refers to the entire window, not just individual tabs. The
close buttons are actually outside the frame of the tabs.
Close without saving doesn’t mean revert to previous settings; it means to use the changes, but
don’t immediately store them to the filesystem.
In general, the contents are structured a lot like the user-interface elements that are used to set them.

2.13

Configuration Files / MIDI Learn

The MIDI-Learn data crosses the border between static configuration and dynamic settings. It is stored
in files with an extension of .xly (”XML Learn Yoshimi”). If compression is turned off (Yoshimi /
Settings / Main Settings / XML Compression Level set to 0), this file is an XML/SGML file with
a MIDILEARN section in it.
When saving states, if there are any configured MIDI learned lines, these lines will also be saved.
When one reloads the state they will also be restored. However, if the state file doesn’t have any MIDI
learn data, it will not clear any settings that are already there.
Therefore, be aware that if one now re-saves that state, it will include such MIDI learned data, and
the next time it is loaded, it will overwrite any lines that are already there.
Also note that, during a master reset, the MIDI learn data is the only thing that is not cleared.
These features are designed to give the best protection to a setup that could have taken quite a long
time to set up exactly as desired. In our experiments, we have discovered that we seem to use pretty much
the same controls and actions, and the list of our ’preferred’ settings is slowly increasing.

3

Banks and Roots

In recent versions of Yoshimi, the concepts of banks and roots have undergone a fair amount of change,
including new features to make them easier to manage and easier to automate. There are a lot of details
to understand, too many to include along with the descriptions of the user-interface elements that control
them. Therefore, this new section is devoted to banks and roots. It is an elaboration of material originally
presented in Section 21.3 ”Concepts / Banks and Roots” on page 249.
At one time, one could in theory have 1000 roots, 1000 banks and 1000 presets. However, now roots
and banks were trimmed to what can be addressed from MIDI. One can supposedly still have 1000 presets,
though. Anyway, 128x128x160 = 2621440 instruments should be enough for anyone.
All root, bank, and instrument IDs are used by MIDI controls, and as of version 1.3.6 will also be
accessible to the command line.
The file Banks.txt in the Yoshimi source-code bundle makes an important point about a transition
(in newer versions) to tagging roots (directories) and banks with an ID code:
One no longer has the concept of a default root directory, but a current one. This can by changed at any time
without requiring a restart, so there is no longer a need to display the (confusing) contents of all roots. Also,
roots now have ID numbers associated with them, but no changes have been made to the actual directores to
achieve this. Instead the IDs are stored in the config file. The same ID system is used for banks, again without
making any file system changes.
At first run (and whenever new root directories are set) unknown roots and banks are given these IDs.
Once set they will not change no matter how many more roots and banks are later added. One can however,
manually change root directory IDs in the ’Bank Root Paths window’ accessible from the ’Paths’ item in the

29

Yoshimi Software Synthesizer

3.1

Roots

main window. Also, there is a new Banks window so that these can be set up, moved and renamed in exactly
the same way as instruments can. With these IDs, roots and banks can be grouped/ordered by function instead
of alphabetically. When using the GUI, one will always know exactly which root and bank one fetches an
instrument from.
One can quickly step between roots, banks and instruments with the so marked buttons in each of these,
and if one right-clicks on them one will close one window as one opens the other.
The significance of all this is that one’s MIDI sequencer can now reliably use these ID numbers to select
roots, banks and (already available) instruments. That Rosegarden or Muse file one saves today will be just as
valid in the future, unless one makes the deliberate choice to change some IDs. Indeed, one can now start with
an ’empty’ Yoshimi, and via MIDI, set roots, banks and load instruments into parts (enabling the parts as one
does so) swapping banks and roots as necessary. While the MIDI file runs it can silently pull instruments from
any root/bank into any non-sounding part without disturbing the playing ones.
In Yoshimi / Settings / MIDI one can enable or disable all these features, and can define which CCs one
wants to use. Bank can be either MSB or LSB (as before). Root can be any non-reserved CC but including
the one not in use for Bank. Also, Extended Program Change now has the same restrictions as Root, and
these three are all cross-checked against each other. As an example, one might set Bank to LSB amd Root to
0 (MSB), effectively giving one extended bank control compatible with all sequencers.
Also, different instances have their own config files so that one can have (say) the main instance with current
root(9), bank(23) while instance 4 has current root(2), bank(6). One can call up instances by number and thus
access saved settings for that instance. As each instance has its own MIDI and audio ports, they can behave
more-or-less independently.
In doing all of this we have completely changed the way we manage the structure internally, resulting in much
greater efficiency, at the cost of only a slightly slower startup. Swapping roots performs *no* file operations.
Swapping banks only fetches the directory list of the newly selected bank. Changing an instrument doesn’t
have to search for a file, only load from its already known location.
If one changes a bank root path, either through the gui or via MIDI, it will always reset the current bank
to the lowest numbered one it can find. This is because there may not be a bank in the new root with the same
ID, and even if there is, there is no guarantee that it will have the same name or contents.
Also if an attempt is made to reload the same root, nothing will actually happen. The same is true of banks.
Both of these are kept fully up-to-date so there would be no point.
However, reloading the same *instrument* will be performed every time, as one may have changed what is
currently loaded without saving it. This provides an effective ’restore’ operation.
Finally, it is generally advisable to make root and bank changes on channel 1 so that one can more easily
keep track of them. However they are not channel sensitive as they don’t directly affect the sound, so one can
set them in any convenient channel then perform individual program changes on the desired channels.

It has always been possible to swap and move instruments within a bank, and since V 1.3.5 it was
possible to swap banks within a bank root, but now one can swap/move instruments across any banks and
any bank roots. One can also move whole banks across bank roots. These extensions use exactly the same
controls as before. However, it isn’t just a case of changing IDs. Files are actually moved, so additional
protections and warnings are put in place.
There are also bank importing and exporting controls and since version 1.5.8 these have been made
available to the CLI with specific IMport and EXPort controls.
A ”CC” is a MIDI ”continuous controller”. A MIDI bank change is usually a CC#0 value of 0,
followed by a CC#32 value of X, where X is the desired bank number from 0 to whatever. (However, in
some cases it may simply be a CC#0 on its own with a value of X). Many synths also require that one
send a program change after the bank change, to select the program within the bank.

3.1

Roots

In Yoshimi, a root is a location in which banks can be stored. It is basically a directory, though it
ultimately is assigned a number by Yoshimi, presumably to be able to access it in an automated way. By
choosing a root and making it the current root, one can hone in on a smaller collection of banks.

30

Yoshimi Software Synthesizer

3.2

Banks

One cannot reach root paths through the Yoshimi / Settings menu any more; it was causing
a nightmare of syncing with the other entry routes. One can reach it from the Banks window or the
Instruments window, and both of the latter also have multiple entry routes. Roots can also be reached
through the Yoshimi / Paths menu.

3.2

Banks

Another important concept in Yoshimi is banks. Instruments can be stored in banks. These are loaded
and saved automatically by the program. On program start, the last used bank is loaded. A single bank
can store up to 128 instruments normally, and 160 using extended programs.
Also note that, as well as bank and program changes, there is the ability to set a MIDI CC to access
the voices from 129 to 160 (numbered re 1). All the Bank controls are contained in a tab in the main
Settings window, and take immediate effect.
Bank root directories are identified with ID numbers that can be changed by the user in the userinterface. This feature is also made available for selection over MIDI. MIDI only sees banks in the current
root directory, but all banks are accessible to the user-interface.
3.2.1

Bank Directories

Banks are arranged in directories, with each directory containing a number of instrument files.
Each instrument’s file-name should begin with a 4-digit number (left-padded with 0’s to make it 4
digits long). This number can serve as a MIDI patch number for automated selection of the instrument
via a MIDI program-change message.
Unnumbered instruments in a bank will be given a temporary ID starting from number 160 and
working down. If those numbers already exist then they will be skipped over. This can get very confusing.
However, if one simply loads it and re-saves it to the same instrument slot, it will gain that ID and be
properly fixed. One can then move-swap it with others.

4

Menu

We’re now ready to describe the user-interface of Yoshimi! The Yoshimi menu, as seen at the top of
Figure 2 ”Yoshimi Main Screen” on page 21, is fairly simple, but it is important to understand the
structure of the menu entries.

4.1

Menu / Yoshimi

The Yoshimi menu entry contains the sub-items shown in Figure ?? ”??” on page ??. The next few
sub-sections discuss the sub-items in the Yoshimi sub-menu. (Note that, in ZynAddSubFX, this menu is
called the File menu.)

31

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

Figure 5: Yoshimi Menu
The items it contains are:
1.
2.
3.
4.
5.
6.

About...
New instance
Settings...
MIDI Learn...
View Manual...
Exit

The Vectors menu entry of version 1.4.0 has been moved to its own button in version 1.4.1, as can be
seen in the figure. See Section 16.2 ”Vector Dialogs” on page 195, which presents this dialog and describes
it.
MIDI Learn is a new feature of Yoshimi, and is described below.
View Manual is a new feature of Yoshimi. It currently requires that a PDF viewer be installed. Note
that some viewers might not work properly (e.g. apvlv ([1]).
4.1.1

Menu / Yoshimi / About...

There is no Help menu in Yoshimi. Therefore, the About dialog appears in the Yoshimi menu, as shown
in Figure 6 ”Yoshimi Menu, About Dialog” on page 32. These guys need some acknowledgment for their
hard work! And they acknowledge the massive groundwork laid by the ZynAddSubFX project.

Figure 6: Yoshimi Menu, About Dialog

32

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

This has a new ’more’ button that changes the window to an alphabetic list of all those who have
helped Yoshimi. Somtimes just a hint from these friends has been enough to pave the way for extensive
improvements.

Figure 7: Yoshimi Menu, Contributors

4.1.2

Menu / Yoshimi / New instance

The New instance menu entry creates a new instance of Yoshimi. If JACK is running, start a normal
(JACK-using) instance of Yoshimi. Then use this menu entry. Yoshimi will start another instance of itself,
with a prompt to accept the next available instance ID or to change it. The presence of this instance can
be verified by running a JACK session manager such as QJackCtl. In a non-JACK setup it won’t fail, but
in the absence of any specific setting, it will have null audio, but (probably) will still connect to ALSA
MIDI. Not too useful, but we should test that sometime.
It is important to note that each instance of Yoshimi has its own configuration file. Each also has its
own MIDI and audio ports. Thus, these instances are partly independent of each other. The new instance
tries to open a Yoshimi instance based on the configuration found in the file ~/.config/yoshimi/yoshimi.configXX, where XX is the ID one supplied.
Opening a new instance creates a copy that has it’s own dynamic memory for running storage. Some
data (such as recent history) is shared between instances. This is done only where instances actually need
to be in sync. The bank structure should be synchronised, but currently isn’t.
Instances no longer fight for access to JACK/ALSA audio; they simply try to find another route to
a soundcard. Failing to find one, they revert to null audio, but nonetheless start cleanly.
The list of hidden ”base parameters” that are set only by the main instance is now:
•
•
•
•
•
•
•

ALSA Sample Rate
Internal Buffer Size
AddSynth Oscillator Size
XML Compression Level
Show Splash Screen
Enable GUI
Enable CLI
33

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

In the other instances these are now hidden instead of deactivated. This behavior makes sense, as
they are never enabled in the other instances of Yoshimi. This is more consistent, making Yoshimi’s
configuration directory more tidy.
4.1.3

Menu / Yoshimi / Settings...

The Yoshimi Settings dialog contains five tabs that control the major and overall settings of Yoshimi. At
the bottom of this dialog are two buttons: Save and Close and Close Unsaved.
Please note that the Save and Close and Close Unsaved buttons apply to the whole Settings
window. Furthermore, the ”saving” does not refer to preserving the changes that have been made in any
of the tabs for the current Yoshimi session. Any changes made in Settings always remain in place for
the current Yoshimi session. However, the changes to the settings are saved to the state file only if Save
and Close is clicked.
1. Save and Close. This selection saves the settings made in all of the tabs to the state file, and
closes the Yoshimi settings dialog.
2. Close Unsaved. Close Unsaved, Main Settings.
This selection closes the Yoshimi settings dialog. However, note that any changes made in the tabs
are preserved. They are preserved for the current Yoshimi session, but are not saved to the filesystem.
Here are the tabs included in the main settings of Yoshimi as of version 1.4.1; each is described in
its own section.
•
•
•
•
•

Main settings
Switches
Jack
Alsa
MIDI

4.1.3.1

Menu / Yoshimi / Settings / Main Settings

The Main Settings tab controls the main configuration items that follow, which apply to all patches/instruments.
The main settings are shown in Figure 8 ”Yoshimi Main Settings Tab” on page 35. Some settings only
take effect after restarting the synthesizer. In Main settings, only the items marked with an asterisk
(’*’) need a restart. The settings dialogs have changed gradually as Yoshimi has progressed.

34

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

Figure 8: Yoshimi Main Settings Tab
The following settings exist in the Main settings tab:
1.
2.
3.
4.
5.
6.
7.

AddSynth Oscillator Size
Internal Buffer Size
PADsynth interpolation
Virtual Keyboard Layout
XML compression level
Send reports to
Saved instrument Format

1. AddSynth Oscillator Size. ADDsynth Oscillator Size (in samples). This item used to be called
”OscilSize”. Sets the number of the points of the ADDsynth oscillator. Bigger is better, as it results in
a more mathematically-correct waveform, but it takes more CPU, though it has no effect on latency. In
an all-JACK environment, JACK determines the latency. There are very few occasions where one might
want the internal buffer smaller than the JACK size, and none where it should be bigger. If it is bigger,
the extra space will (to a small degree) represent wasted processor use.
See Section ?? ”??” on page ??, which goes into performance-related details.
The default value for Yoshimi is shown marked with an asterisk, and the default value for ZynAddSubFX is 512. This asterisk/plus-sign convention is used throughout this manual. See Figure 9
”OscilSize Values” on page 35, shown below for the AddSynth Oscillator Size drop-down element.
Values: 256, 512*, 1024, 2048, 4096, 8192, 16384

Figure 9: AddSynth Oscillator Size (samples)

35

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

2. Internal Buffer Size. This is a new item for version 1.3.6. It is actually the old Period Size
field from the Alsa tab. It sets the granularity of the sound generation. To find out the internal delay
in milliseconds, divide the buffer-size value by the sample-rate, then multiply the result by 1000: For
example, 256/44100 ∗ 1000 = 5.8ms.
The default internal buffer size has been reduced from 1024 to 256. One gets better latency that way.
Almost all modern computers can run Yoshimi with the current default (smaller) buffer-size value, and
many will do so at 64 frames (and even 16 frames!) without any special precautions.
Note that, for ALSA, if the audio destination is ”default”, then ALSA decides on the buffer size
(among other settings), and Yoshimi will set it’s internal buffer size to match, which always seems to be
1024.
Values: 64, 128, 256*, 512, 1024, 2048, 4096, 8192

Figure 10: AddSynth Internal Buffer Size (old)
Note that there are two more values, not shown in this old diagram.
3. PADsynth interpolation. See Figure 11 ”PADSynth Interpolation” on page 36, shown below,
for the interpolation values. From an email conversation with Paul Nasca, Will notes that the sound
improvement with cubic interpolation is quite subtle, and requires a well designed audio setup, a PADsynth
instrument with a fair amount of high-frequency content... and good hearing!

Figure 11: PADSynth Interpolation Values
Values: Linear(fast)*, Cubic(slow)
4. Virtual Keyboard Layout. The virtual keyboard is useful, but it is difficult to move the mouse
rapidly to the next key on the virtual keyboard. Therefore, Yoshimi supports using the computer keyboard
to produce notes.

Figure 12: QWERTY Virtual Keyboard Layout
36

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

See Figure 12 ”QWERTY Virtual Keyboard Layout”, for the mapping of the computer keyboard
to the virtual keyboard. Three octaves (blue, green, and red) are available, with the dark keys of each
color representing the ”black” keys. Note that this is a QWERTY layout. Yoshimi also supports other
keyboard layouts. See Figure 13 ”Virtual Keyboard Layout” on page 37, for the virtual keyboard layout
settings drop-down.
Values: QWERTY*, Dvorak, QWERTZ, AZERTY

Figure 13: Virtual Keyboard Layout Values
5. XML compression level. Gzip Compression level of Yoshimi XML files. The settings and instruments of Yoshimi are preserved in XML files. The value of 0 indicates that the XML file is uncompressed.
In general, 0 is a setting for debugging only. Setting this option makes the XML files a bit larger,
perhaps larger by a factor of more than 10, making a 10K file into a 180K file. For a little ”wasted” space
and time, one can view the XML file in a text editor. If one’s system is tight on disk space, higher levels
of compression can be specified. Using XML compression can also save file access time which may be
beneficial if one’s computer is borderline on latency. This setting should stay at 3 if one is going make
instruments publicly available, as some older versions of Yoshimi and ZynAddSubFX don’t recognise
uncompressed files. This also applies if one is going to save large patchsets that will be loaded while
running. Uncompressing is much faster than file loading.
Values: 0 to 9, 3*
6. Send reports to. Notices and error messages can be sent to the standard error log of the terminal
in which Yoshimi can be run, or, more usefully, to an output console window. In some versions of Yoshimi
these messages were pushed in reverse order, to avoid manually scrolling and to make the most recent
statuses easily visible. However, a method has now been found to auto-scroll and keep the most recent
entry visible, so new entries are in normal reading order.
See Figure 14 ”Send Reports” on page 37. It provides a depiction of the selection drop-down.
Values: stderr*, Console Window

Figure 14: Send Reports To
If the Console Window option is chosen, then the Reports button in the effects panel is enabled.
Pressing the Reports button brings up a small console dialog, as shown in Figure 15 ”Yoshimi Console
Window” on page 38.

37

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

Figure 15: Console Window
Note that numbers that are shown (such as part numbers) all start from 1, not 0.
Loaded
Loaded
Loaded
Loaded

65
10
41
67

"Hyper Arpeggio" to Part 1
"Arpeggio11" to Part 2
"Soft Arpeggio4" to Part 3
"Glass Arpeggio1" to Part 4

An interesting feature of the console window is that one can identify user-interface elements of the
Yoshimi configuration in this window by a middle-click on the user-interface element. (Unfortunately,
those new single-button touchpads make it impossible to provide a middle-click, so one would need a
mouse!)
Information about each knob middle-clicked is pushed to the top of the windows in reverse order.
Information about an earlier left-click is shown at the bottom of the figure. Each left-click (”Button 1”)
will increase the parameter represented by the knob, and each right-click (”Button3”) will decrease the
parameter represented by the knob, and each change is reported in the console window. And, of course,
each middle-click changes nothing, but reports the current value in the console window. This feature lets
one gather the information needed to control the parameter from the command-line. The output can be
selected, copied, and pasted to a script or archive text file for safe-keeping.
7. Saved instrument Format. This new (1.5.5) feature provides a choice between the old instrument
format and a new format. The Legacy format has a file extension .xiz. The Yoshimi format has a file
extension .xiy.
Values: Legacy (.xiz), Yoshimi (.xiy), Both (.xiz + .xiy)
Some users wanted a way to store the Controllers settings with an instrument, as they can make
a dramatic difference to the sound. There is now a superset of instruments that can be saved instead
of, or as well as, the standard ones. On loading, Yoshimi will look for the extended version (.xiy) first.
This applies to instruments in banks, as well as externally saved instrument. If one has an extended
type loaded, the instrument name will be in a blue font, instead of black. This also applies to the stored
instruments in bank slots.

Figure 16: Extended File Format Font
38

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

This is part of the rationale of the new instrument format: We will never make any changes to the
standard instruments, and one will always be able to load and save them. However, we will incrementally
add improvements and refinements to the new format, with compatible adjustments for the standardformat instruments, where appropriate.
There is a caveat when handling instruments in banks. If one sets for only Legacy or only Yoshimi,
but have previously set for both, saving to such a dual entry will erase the one that wasn’t selected.
Currently, it is not known why that happens (banks are ’interesting’).
4.1.3.2

Menu / Yoshimi / Settings / Switches

Many of the check-box items have been moved into this new tab, to reduce clutter.

Figure 17: Yoshimi Switches Tab
The following settings exist in the Switches tab:
1.
2.
3.
4.
5.
6.
7.
8.
9.

Start With Default State
Hide Non Fatal Errors
Show Splash Screen
Log Load times
Log XML headers
Include disabled data in XML files
Enable GUI
Enable CLI
Enable Auto Instance

1. Start With Default State. Requires Yoshimi to be restarted, to take effect. This setting allows
Yoshimi to be initialized with one’s own initial state file that matches one’s usual work setup. The default
state file is named ~/.config/yoshimi/yoshimi.state.
If the Reset button on the main screen is click, then this file is loaded, instead of reverting to the
first-run default state of Yoshimi.
2. Hide Non Fatal Errors. Especially when running from the command line (with reports going
there too), under some circumstances one can get a swamp of low-level error messages (such as XRUNs)
39

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

that is so large that one cannot work out what is going on. This feature disables these error messages;
it is a work in progress to catch the bulk of them, while still reporting top-level messages and ones that
cause a forced exit (surely not!)
3. Show Splash Screen. This item will speed up the start-up of Yoshimi slightly if unchecked, by
not showing the splash screen while files are being loaded.
4. Log Load times. Provides a way of noting problematic patch sets, which may take a long enough
time to load so as to affect the smoothness of playback.
5. Log XML headers. This item sends the information to the console window (or stderr) so that
one can then see what ynAddSubFX/Yoshimi version created the file.
6. Include disabled data in XML files. Allows disabled data to be stored in the XML file. This
makes it a lot easier to re-enable a setting later.
7. Enable GUI. If checked, the user-interface is enabled. This setting is normally what you want. If
one unchecks it, it warns that disabling the GUI can only be reversed from the command line.
8. Enable CLI. If checked, the command-line interface is enabled. Note as of V 1.5.6 it has been
possible to disable both the user-interface and the command line at the same time. This means that
Yoshimi can only be closed by sending a special MIDI message (CC 99, 68, CC 98, 68). Alternatively one
could send a system shutdown message.
9. Enable Auto Instance. If checked, then, if any other instances were open at the time you close
the main instance, then these other instances will be re-opened next time one runs Yoshimi.
If these instances each have their own Start with Default State switch checked, and if there is a
valid default state for them, then these instances will also have their default state loaded. Therefore, just
by starting the main instance, one can have a highly-detailed multi-instance setup installed. This setup
will include such things as JACK/ALSA audio and MIDI, and a complete patch set, etc.
4.1.3.3

Menu / Yoshimi / Settings / Jack

JACK is the ”Jack Audio Connection Kit”, very useful for increasing audio performance and configurability. When using the JACK audio backend, instruments can be individually routed and sent to the main
L/R outputs. This is controlled from the panel window, Section 7.1 ”Mixer Panel Window” on page 101,
and the settings are saved with all the other parameters.
Direct part outputs carry the Part and Insertion effects, but not the System ones.

40

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

Figure 18: JACK Settings Tab
The following items are provided by the Jack settings:
1.
2.
3.
4.
5.

Jack Midi Source
Set as preferred MIDI
Jack Server
Set as preferred audio
Autoconnect audio (new, 1.3.9)

1. Jack Midi Source. Jack MIDI Source. It is possible to have more than one JACK MIDI source.
This option tells this instance of Yoshimi which JACK client to try to auto-connect to for MIDI input.
This option corresponds to the Yoshimi command line option --jack-midi(=device).
Values: default*, name name; see ”man jackd” for details.
2. Set as preferred MIDI. Set as preferred MIDI for JACK. This setting determines which MIDI
connections a particular instance will first attempt. The switches are mutually exclusive across JACK and
ALSA, so if one checks ALSA for MIDI, it automatically unchecks JACK for MIDI. As well as from the
GUI, this setting can be set (for instance 0) from the command line, both at start-up and once running.
3. Jack Server. Jack Server Name. It is possible to have more than one JACK server running. This
option tells this instance of Yoshimi which JACK server to use. This option corresponds to the Yoshimi
command line option --jack-audio(=server).
Values: default*, name name, as set by jackd --name; see ”man jackd” for details.
4. Set as preferred audio. Set as preferred audio for JACK. This setting determines which audio
connections a particular instance will first attempt. The switches are mutually exclusive across JACK and
ALSA, so if one checks ALSA for audio, it automatically unchecks JACK for audio. As well as from the
GUI, this setting can be set (for instance 0) from the command line, both at start-up and once running.
Note that any of these setting changes require a restart of Yoshimi to take effect.
5. Autoconnect audio. Sets Yoshimi to connect automatically to the JACK server, just like the -K
command-line option does. (However, note that the command-line has no way to disable this feature it
the configuration has been saved.)

41

Yoshimi Software Synthesizer

4.1.3.4

4.1

Menu / Yoshimi

Menu / Yoshimi / Settings / Alsa

A significant improvement is to the handling of ALSA audio, which is still very important for some
people. Until now, Yoshimi has insisted on a 2-channel, 16-bit format. Tests have shown that virtually all
motherboard sound chipsets will handle this, but many external ones don’t.
From Yoshimi 1.3.6 onwards, when using ALSA audio, Yoshimi first tries to connect 2 channels at
32 bit depth. If that connection does not succeed, then Yoshimi negotiates whatever the soundcard will
support. For example, a card might support only 24 bits, and 6 channels. So Yoshimi will fall back to
24 bit, and, due to its own limits, will use only channels 1 and 2. With external sound modules in mind,
endian swaps are also implemented.
To be able to reliably use ALSA audio, one needs to set a card name, not just ”Default”. In a terminal
window enter the following command:
$ cat /proc/asound/card*/id
The result of this command should be something like:
PCH
K6
Go to the ALSA settings tab illustrated below, and in Alsa Audio Device enter, for example,
”hw:PCH”. This ensures one will always connect to this card at startup regardless of the order this and
other ones. Another benefit of using this hardware name is that ALSA will now use Yoshimi’s internal
buffer size (256), otherwise ALSA will force Yoshimi to accept its default size (usually 1024).
One can also set the sample rate, but bear in mind that not all cards can use all of these. The sample
rates 44100 and 48000 are almost always available. If one sets a Midi Device as well (such as a keyboard)
Yoshimi will try to find and connect to this device at startup.
To find the MIDI devices available, try:
$ grep Client /proc/asound/seq/clients
The result of this command should be something like:
Client info
Client
0 : "System" [Kernel]
Client 14 : "Midi Through" [Kernel]
Client 128 : "TiMidity" [User]
It is not obvious how ALSA audio is controlled and who takes command. If one sets a specific audio
destination, then Yoshimi makes a request. It’s often a negotiation on bit depth and channel count, but
Yoshimi nearly always gets to decide the buffer size, which is the internal buffer size. However, if the
destination is ’default’ then ALSA decides on the sound card, bit depth, number of channels and the
buffer size, and Yoshimi will set it’s internal buffer size to match. On most machines this seems to be
1024.

42

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

Figure 19: ALSA Settings Tab
1. Alsa Midi Source. ALSA MIDI Source. The purpose of this setting is the same as the command
line option --alsa-midi="name". It is used so that Yoshimi can auto connect to a MIDI source such as a
keyboard. For example, the one that Will has identifies itself as name = ”Hua Xing”. A port name, such
as ”128:0” (for one of the ports provided by TiMidity) should work as well. If the destination is ”default”,
then ALSA decides on the sound card, bit depth, number of channels and the buffer size, and Yoshimi
will set it’s internal buffer size to match. On most machines this always seems to be 1024.
Values: default*
2. Set as preferred MIDI. Set as preferred MIDI for ALSA. This setting determines which MIDI
connections a particular instance will first attempt. The switches are mutually exclusive across JACK and
ALSA, so if one checks ALSA for MIDI, it automatically unchecks JACK for MIDI. As well as from the
GUI, this setting can be set (for instance 0) from the command line, both at start-up and once running.
3. Alsa Audio Device. ALSA Audio Device. This specifies the sound card to which Yoshimi can
connect. Normally, this will be an ALSA hardware specification such as ”hw:0”. ALSA audio also lets
one connect to a sound card by name. For example, with a Komplete Audio KA 6 sound card, the device
specification is ”hw:K6”. This feature is particularly useful for USB modules, as one can never be sure
where they appear numerically.
Values: default*
4. Set as preferred audio. Set as preferred audio for ALSA. This setting determines which audio
connections a particular instance will first attempt. The switches are mutually exclusive across JACK and
ALSA, so if one checks ALSA for audio, it automatically unchecks JACK for audio. As well as from the
GUI, this setting can be set (for instance 0) from the command line, both at start-up and once running.
5. Samplerate. Sample Rate. Sets the quality of the sound, higher is better, but it uses more CPU. One
can select from a list. Note that both ALSA and JACK will support the 192000 rate, if the sound-card
supports it. To find out the internal delay in milliseconds, divide the buffer-size value by the Sample Rate
and multiply the result by 1000 (256 / 44100 * 1000 = 5.8 ms).
Note that, as of version 1.3.6, the Period Size field has been removed from the Alsa tab, and is
replaced by the Internal Buffer Size field in the Main Settings tab. Note that any of these setting
changes require a restart of Yoshimi to take effect.
43

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

Values: 192000, 96000, 48000*, 44100
4.1.3.5

Menu / Yoshimi / Settings / MIDI

The CC settings tab has been renamed the ”MIDI” tab. This tab, shown in Figure 20 ”MIDI Preferences”
on page 44, presents MIDI bank-root, bank, program change, and extended program change settings, plus
some new values.

Figure 20: MIDI Preferences Tab
A recent feature is that some changes to the items in this tab cause a red Pending button to appear.
Pressing this button saves that particular change.

Figure 21: MIDI Settings Pending
The following items are provided by the MIDI settings tab:
1. Enable Bank Root Change
44

Yoshimi Software Synthesizer

2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

4.1

Menu / Yoshimi

Bank Root Change
Bank Change
Enable Program Change
Enable Part On Program Change
Enable Extended Program Change
Extended Program Change
Enable Incoming NRPNs
Ignore Reset all CCs
Log Incoming CCs
Show Learn Editor

The concepts of banks and roots is very useful. See Section 21.3 ”Concepts / Banks and Roots” on
page 249. The settings in this tab affect the usage of banks and root changes controlled by MIDI messages,
thereby making Yoshimi able to implement MIDI automation.
1. Enable Bank Root Change.

Enable Bank Root Change.

Values: Off*, On
2. Bank Root Change. Sets the control value to use for a bank-root change.
Values: 0*, to 127
If enabled, a new reddish button, Pending, appears. Once the change has been made in the scroll list,
click this button to set the change. Warning: The Save and Close button will not result in the removal
of the Pending button. This result seems counter-intuitive, but the pending button is not removed here
because, at that point, it still hasn’t actually been either set or abandoned. It remains available for when
the user actually makes up his/her mind. If the control number is already in use for another purpose, one
might get a warning like the following:

Figure 22: MIDI Setting In Use
3. Bank Change. Bank Change. Defines which MIDI settings one wants to use. Note that MIDI
Controller 0 = CC0 = Bank Select MSB, and MIDI Controller 32 = CC32 = Bank Select LSB. When
combined, these Bank Select messages provide 128*128 = 16384 banks. Note that all a Bank Select does
is select the bank for the next Program Change event. The program doesn’t change after changing a bank,
until a Program Change is sent. Bank changes can be completely disabled; some hardware synthesizers
don’t play nice with banks.
Values: LSB, MSB*, Off
4. Enable Program Change.
Values: Off*, On
Enables/disables MIDI program change. Program changes can be completely disabled, but some
hardware synths don’t play nice!
5. Enable Part On Program Change.

45

Yoshimi Software Synthesizer

4.1

Menu / Yoshimi

Values: Off*, On
The part is automatically enabled if the MIDI program was changed on this part.
6. Enable Extended Program Change.
Values: Off*, On
7. Extended Program Change. If enabled, a new reddish button, Pending, appears. Once the
change has been made in the scroll list, click this button to set the change.
Values: 0-127, 110*
8. Enable Incoming NRPNs. Set by default, so one might not notice it at first. Disabling incoming
NPRNs stops rogue MIDI sources from screwing things up. Disabling it also lets one use the NRPN CCs
for other functions, if you want to use a programmable hardware controller.
Values: Off, On*
9. Ignore Reset all CCs. Causes Yoshimi to ignore this message. For example, using Yoshimi’s
CC monitor (see the next item), Will found that one software sequencer was sending CC 121 (reset all
controllers) at the start of some song segments. Checking this option prevents unwanted resets.
Values: Off*, On
10. Log Incoming CCs. This setting is now saved (in the config file). It is there as an aid for when
Yoshimi appears to ignore MIDI commands, as it tells one exactly what Yoshimi thinks it received.
Values: Off*, On
11. Show Learn Editor. Sets whether the MIDI Learn editor window is to be opened when learning
a new control. One might find that when learning a new control one usually wants to change the Min
and Max settings.
Values: Off, On*
4.1.4

Menu / Yoshimi / MIDI Learn...

The MIDI Learn functionality of Yoshimi gives it the ability to redirect MIDI input from physical
controllers to various user-interface controls in Yoshimi, so that the user can basically control Yoshimi’s
knobs and sliders via MIDI equipment.
There’s enough to say about this topic so that we describe it in a section of its own. See Section 17
”MIDI Learn” on page 203for details.
4.1.5

Menu / Yoshimi / View Manual...

This menu entry brings up the most recent version of this manual, which is now include as part of a
Yoshimi installation. Note that some viewers might not work properly (e.g. apvlv ([1]).
4.1.6

Menu / Yoshimi / Exit

Simply exits from Yoshimi. The user is prompted if unsaved changes exist, as shown in Figure 23 ”Yoshimi
Menu, Exit” on page 47.
One can sometimes get a false parameters-changed warning if one scrolls through one of the menu
type entries without actually changing it. Better safe than sorry!
46

Yoshimi Software Synthesizer

4.2

Menu / Instruments

Figure 23: Yoshimi Menu, Exit

4.2

Menu / Instruments

The Yoshimi Instruments menu lets one select instruments and work with banks of instruments. Yoshimi
stamps instrument XML files with its own major and minor version numbers so it is possible to tell which
version created the files, or whether they were created by ZynAddSubFX.
While the Instrument Menu allows for the management of parts, the Part Edit dialog, described
in Section 9.3 ”Bottom Panel Instrument Edit” on page 141, is where one would start for the the creation
of a new part/instrument.
When opening an instrument bank one can now tell exactly which synth engines are used by each
instrument. This is represented by three pale background colours:
• Red: ADDsynth
• Blue: SUBsynth
• Green: PADsynth
These new colored engine backgrounds aren’t just pretty. They give real information about expected
processor load, and time taken to be ready when loaded:
• Processor Load, low to high: PAD, SUB, then ADD.
• Time to initialize, low to high: SUB, ADD, PAD.
If the instruments are kits they scanned to find out if any member of the kit contains each engine.
This scanning is duplicated in the current part, the mixer panel for the currently loaded instruments, and
in the Instrument Edit window the same colors highlight the engine names when they are enabled with
the check boxes.
The following sub-menus are provided, as shown in Figure 24 ”Yoshimi Menu, Instruments” on
page 47.

Figure 24: Yoshimi Menu, Instruments
This new version of the Instruments menu is somewhat different than the old version. It is actually
simpler and easier to use, while still offering all of the power of the setting up of instruments in Yoshimi.
1. Show Stored...
47

Yoshimi Software Synthesizer

2.
3.
4.
5.
4.2.1

4.2

Menu / Instruments

Load External...
Save External...
Recent Instruments... (not shown in figure)
Clear
Menu / Instrument / Show Stored...

Instruments are stored in banks (see Section 21.3 ”Concepts / Banks and Roots” on page 249). The banks
(and current bank setting) are loaded/saved automatically by the program, so one doesn’t have to worry
about saving the banks before the program exits. On program start, the last used bank is loaded. A single
bank can store up to 128 instruments. However, there is space for a number of additional instruments in
the bank, the extended-program section, to allow up to 160 instruments in a bank.
When the Show Stored... button is selected, a dialog comes up that shows all of the instruments
present in the currently-selected bank.

Figure 25: Instruments Stored in Current Banks
As Figure 25 ”Show Stored Instruments” on page 48, shows, this is a very complex dialog with a lot
of options. The figure shows a default setup, with the first bank of instruments, 32. Cormi Sound, listed.
If one drops this list down (shown later), one also observes that the banks are numbered in increments of
5, to make it easier for a user to insert his or her own bank(s) of instruments.

48

Yoshimi Software Synthesizer

4.2

Menu / Instruments

The default set of banks are spaced 5 apart only because thats the best-fit for the current number of
banks. If we add more banks in future versions of Yoshimi, then a clean install is likely to have different
spacing, but for an existing setup, the new entries will just be slotted in where they will fit.
Also, if one deletes banks or instruments by some external means, the next time Yoshimi starts, it
will notice their absence and quietly remove their entries.
Note how Yoshimi now shows the color codings for the synth-sections used in each instrument: red
for ADDsynth, blue for SUBsynth, and green for PADsynth.
Also note how the numbers at the beginning of the filenames are used as an ”instrument” or ”program” number. These numbers can be used in MIDI Program Change commands.
All of the instrument files (such as 0001-Arpeggio1.xiz) with filenames starting with numbers (no
matter how many digits) will be shown in the corresponding slot number. Those instrument files without
numbers (or larger numbers?) will start with numbers at 129 or above (”Extended Program Change”)
up to 160. One could give them numbers by renaming them outside of Yoshimi, then reloading the bank.
One can also fix unnumbered ones simply by loading them, then resaving them to the same slot. It’s then
probably best to swap them into the main set, if there is space.
Note that MIDI CC (see Section 4.1.3.5 ”Menu / Yoshimi / Settings / MIDI” on page 44) can be set
to access voices from 129 to 160. All the Bank controls in the MIDI settings tab take immediate effect
when set. Bank and program changes can be completely disabled in the settings tab; some hardware
synths don’t play nice with it.
Learning how to use the Instruments dialog is an important way to make instruments easier to
manage, and so this will be a long discussion.
Here is a list of the user-interface items in the instruments/banks dialog:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

Bank Names
Roots
Banks
Instrument and Bank Matrix
SELECT
RENAME
SAVE
DELETE
SWAP
Show synth engines
Close

1. Bank Names. Instruments Bank Name. This item is a drop-down list of the available instrument
banks in the currently-selected root directory. Basically, each bank is a directory name, with a number
prepended. The banks are found under the current root, which is a also a directory name, and is the name
of the parent directory of a set of banks. Here is the Bank Names drop-down list for the default setup,
which has the default banks provided by the basic Yoshimi installation.

49

Yoshimi Software Synthesizer

4.2

Menu / Instruments

Figure 26: A Sample Bank List
And here is the directory listing associated with it, in the order produced by the UNIX/Linux ls -1
(list single-column) command (shown in two columns to save space):
Arpeggios
Bass
Brass
chip
Choir_and_Voice
Drums
Dual
Fantasy
Guitar
Misc
Noises
Organ

Pads
Plucked
Reed_and_Wind
Rhodes
Splited
Strings
Synth
SynthPiano
The_Mysterious_Bank
Will_Godfrey_Collection
Will_Godfrey_Companion

The directories (banks) shown above come from the default root when Yoshimi and its data files are
installed:
/usr/share/yoshimi/banks
If one installed Yoshimi by building the source code, then this directory is:
/usr/local/share/yoshimi/banks
Note that the directory that holds the banks is shown in the title bar. Another good source of banks,
if one installs ZynAddSubFX, is:
/usr/share/zynaddsubfx/banks
50

Yoshimi Software Synthesizer

4.2

Menu / Instruments

Note that there are only 128 Yoshimi banks supported in a Yoshimi root. If the list of banks takes
up about half of the available slots, it might be time to move some of those banks to a new root directory.
The numbers in the drop-down list are generated by Yoshimi the first time it sees a new root path
or a new bank within the root path. Once set, these numbers will never change unless one actually moves
them around (using the SWAP button).
The bank number is also the MIDI ID for the bank; one can be sure that it will always be there for
bank changes, no matter how many banks are added later. Yoshimi always lists the banks in ID order,
not alphabetical order, so one can group them sensibly and permanently. However, at first-time creation
Yoshimi sets the IDs in alphabetical order and tries to space them evenly over the range to provide some
wiggle room. Selecting one of the items in this drop-down list selects the bank and loads it into the Banks
dialog.
Right-clicking or left-clicking on a bank in the drop-down list causes the instrument list of the previous
bank to be replaced by the instrument list of the newly-selected bank.
2. Roots. Instruments Roots Button. Shows a list of directories that can serve as ”root” directories. The
”Bank Root Paths” dialog discussed in Section 4.3.5 ”Menu / Patch Sets / Patch Bank Roots” on page 60in
Figure 32 ”Show Patch Banks” on page 57, shows the system root (e.g. /usr/share/yoshimi/banks) and
a user’s home location for his/her banks and roots.
3. Banks. Banks Button. This item brings up a Banks dialog showing all of the banks present in the
current root. It is an alternative to using the Bank Names drop-down list to select a bank. It is also a
way to reorganize and renumber the banks without using the Linux console or a file-explorer application
to do so.
4. Instrument and Bank Matrix. Instruments Bank Matrix. Shows the instruments that are in the
currently selected bank.
The next few items are selector buttons that determine what happens when one clicks on an instrument name.
5. SELECT. Instruments SELECT. When this button is selected, then clicking on an instrument
selects that instrument as the instrument for the current Part active in the main window. In the main
window of Yoshimi, that instrument name will appear in the currently-selected Part. If Yoshimi is writing
to a console window then each part, when clicked, will be shown:
yoshimi> Loaded 64 "Hyper Organ1" to Part 1
Loaded 65 "Hyper Arpeggio" to Part 1
Loaded 10 "Arpeggio11" to Part 1
Loaded 41 "Soft Arpeggio4" to Part 1
Loaded 67 "Glass Arpeggio1" to Part 1
6. RENAME. Instruments RENAME. When this button is selected, then clicking on a bank brings
up a small dialog to rename the clicked-on bank. However, one will see the following warning message if
trying to rename a file that is in a directory not modifiable by normal users:
! Could not rename instrument 39 to Soft Arpeggio5 [Close]
Note that, as soon as this operation is done, the auto-selector (green check-box) moves back to the
SELECT button.

51

Yoshimi Software Synthesizer

4.2

Menu / Instruments

7. SAVE. Instruments SAVE. When this button is selected, then clicking on a bank saves the instruments as currently configured. A prompt like the following will appear:
? Overwrite the slot no. 43 ?

[No/Yes]

However, if one answers yes, and the instrument is in a non-modifiable directory, then one will see
the following error message:
! Could not save to this location [Close]
8. DELETE. Instruments DELETE. Selecting this button and clicking an empty bank entry does
nothing. Selecting this button and clicking an existing bank entry brings up a small dialog asking one if
this bank is really to be deleted.
? Clear the slot no. 68?

[No/Yes]

However, if one answers yes, and the instrument is in a non-modifiable directory, then one will see
the following error message:
! Could not clear this location

[Close]

9. SWAP. Instruments SWAP. Selecting this button, then selecting one instrument, and then another,
swaps the numbering and postion of the selected instruments. However, one might also experience the
following warning message:
! Could not swap these locations

[Close]

Note that all of the above error messages are also shown in the console, if it is where Yoshimi is
running. For example:
40 Failed to remove /usr/local/share/yoshimi/banks/Arpeggios/0041-Soft
Arpeggio3.xiz Permission denied
10. Show synth engines. If enabled, then the usage of each of the Yoshimi synthesis engines is
indicated by color coding, as shown in the figure above.
11. Close.
4.2.2

Closes the window.

Menu / Instrument / Load External...

This menu entry simply brings up a file dialog, allowing the user to navigate to an arbitrary directory,
and then to a solitary instrument file (*.xiz), and load it into the current Part.

52

Yoshimi Software Synthesizer

4.2

Menu / Instruments

Figure 27: Instruments, Load External
These ”xiz” files are normally found in a banks directory, but this operation allows access to instruments that are not located in a bank.
• If you load an external instrument file with no internal name, you’ll be shown the file leafname.
• If you load an external instrument file with the name Simple Sound, you’ll be given the name No
Title.
• If you load a patch set that has unnamed instruments, or ones with the name Simple Sound, those
will be given the name No Title.
This dialog has a number of user-interface elements to discuss:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

Show
Favorites
Create a new diretory
Instrument List
XML Preview
Preview
Show hidden files
Directory Bar
Filename
OK
Cancel

These elements are used in a number of different places in Yoshimi. Therefore, we will explain them
all once, here.
1. Show. Show types of files. This item shows a file filter for selecting instrument files. The types of
filters are as follows (screen shot not available):
1. ({*.xiz}) (compressed XML files)
53

Yoshimi Software Synthesizer

4.2

Menu / Instruments

2. All Files (*)
3. Custom Filter
2. Favorites. Favorite directories. Provides a list of options and favorite directories in which to find
instrument files.

Figure 28: Manage Favorites Drop-Down List
1.
2.
3.
4.

Add to Favorites
Manage Favorites
File Systems
(current favorite directories)

Add to Favorites simply adds the currently selected directory shown in the instrument list to the
list of favorites.
To add favorites in the file dialog, navigate to the desired directory. Then click Favorites, and select
Add to Favorites.
Once one has a number of favorites set up, there is a Manage Favorites that can be used. For
example, if one needs to get rid of a directory, one can use the Manage Favorites dialog, shown in
Figure 29 ”Manage Favorites Dialog” on page 54below, to do that.

Figure 29: Manage Favorites Dialog
File Systems Provides a list of all file systems starting at root (”/”). This list can be pretty confusing,
54

Yoshimi Software Synthesizer

4.2

Menu / Instruments

with a lot of entries. But note that one navigates to (”/”), and from there to /usr/share/yoshimi/banks
to get easy access to all the instruments that are preinstalled with Yoshimi. Generally, one will want to
use only Add to Favorites and Manage Favorites.
3. Create Directory. Creates a New Directory. This little symbol brings up a small ”New Directory?”
dialog (not shown here, it is very simple and stock) into which one can type a directory name to be added
to the current directory of the instrument list.
4. Instrument List. Provides a list of the instrument files available in the current directory. Also shown
are sub-directories (if available) that might contain more instruments, and a (”../”) entry to navigate to
the parent directory.
5. Preview. If one thinks the preview feature is not useful, uncheck this check-box. so that one doesn’t
see the preview window. As a bonus, one can see more of a long instrument file-name.
6. Preview pane. XML Preview. This box can show the beginning of the XML data of an instrument
file. Bug: The XML preview feature shows the XML only if the XML is not compressed.
7. Show hidden files. Shows file that are hidden. Not sure how useful this feature is; who would hide
a Yoshimi instrument file?
8. Directory Bar. Provides an alternate way to move up through the directory structure. Click on
each of the small bevelled rectangles to move around in the directory hierarchy.
9. Filename.

File Name. Provides the full path specification for the instrument file.

10. OK/Cancel. We don’t really need to discuss the OK and Cancel buttons, do we? OK, we’ll
cancel that discussion.
4.2.3

Menu / Instrument / Save External...

This menu entry simply brings up a file dialog, allowing the user to navigate to an arbitrary directory,
and then save the current Part to a solitary instrument file (*.xiz).

Figure 30: Instruments, Save External

55

Yoshimi Software Synthesizer

4.2

Menu / Instruments

This dialog is very similar to the Load External dialog. Note the large question mark in the XML
preview, indicating a compressed XML file. If uncompressed, then an XML text preview will be shown.
The instrument save action saves only what is essential to the instrument, and not the part it may
be sitting in. If there have been no changes in the instrument, then a Nothing to save! dialog appears.
4.2.4

Menu / Instrument / Recent Instruments...

This menu brings up a simple window with a list of the most recent instruments that have been selected.
A single-click on the desired instrument will load it.
4.2.5

Menu / Instrument / Clear

This menu entry simply clears the instrument that is loaded into the current Part. This converts the
instrument to a Simple Sound patch. This menu entry brings up a prompt to clear the parameters of the
instrument that is currently loaded in the current part.

Figure 31: Clear Instrument Dialog
No is now the default action.
4.2.6

Menu / Instrument / Misc Notes

There are still many Yoshimi/ZynAddSUbFx instruments out there with no internal title. This fact
applies to both external files and instruments in banks, and means that, once loaded, one does not know
what instruments one has. So now, if the internal name is missing, Yoshimi will use the leaf-name of the
file. When one saves an instrument to a bank slot, it will get a filename with the internal name as the
leaf-name. When one saves an instrument to an external file, you will first be offered the internal name
and in the current directory, but you can change it if you wish.
The part and mixer name fields will always show the (possibly adjusted) internal name regardless
of the external filename, which could easily have been changed at some time. The instrument banks
will always show the file’s leaf-name, so it more-or-less matches external files (what one sees from a file
display). As soon as one edits an instrument, if it was Simple Sound, the name will be changed to No
Title. Yoshimi generally won’t let one rename an instrument to Simple Sound.
Default instruments are never saved, not even in patch sets and states, but if the parts are activated,
that fact is saved; it’s a part feature, not an instrument one.
Patch sets will save all other instruments regardless of whether they are activated or not.
While testing all these features, Will created a new multi-part instrument kit. It’s now in the Companion set and is called Pad Kit.

56

Yoshimi Software Synthesizer

4.3

4.3

Menu / Patch Sets

Menu / Patch Sets

This new menu entry is part of the very nice reorganization and simplification of the handling of roots
and banks in the new Yoshimi. The Patch Sets menu replaces the old Parameters menu. Do you like
the new name? The patch set saves all of the settings, including effects and instruments. Patch sets will
save all other instruments regardless of whether they are activated or not. Default instruments are never
saved, not even in patch sets, but if the parts are activated that fact is saved. It is a part feature, not an
instrument feature.
Yoshimi stamps its configuration XML files with its own major and minor version numbers so it is
possible to tell which version created the files, or whether they were created by ZynAddSubFX.
The main dialog is somewhat similar in layout and function to the dialog shown in Figure 25 ”Show
Stored Instruments” on page 48, for managing instruments in a selected bank.
4.3.1

Menu / Patch Sets / Show Patch Banks...

The Banks window has had some button shuffling, and one can import and export banks as well.

Figure 32: Show Patch Banks
Here is a list of the user-interface items in the patch-banks dialog:
1. Roots
57

Yoshimi Software Synthesizer

2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

4.3

Menu / Patch Sets

current bank
Instruments
Bank Matrix
SELECT
RENAME
SAVE
DELETE
SWAP
IMPORT
EXPORT
Close

1. Roots. Show Patch Banks, Root Directories. To add a bank root path, delete a bank root path, or
manage bank root path, press this button. The result is somewhat similar to a file dialog, and is described
in detail in Section 4.3.5 ”Menu / Patch Sets / Patch Bank Roots” on page 60, later in this sub-chapter.
2. current bank. This item is highlighted in pink, and the bank that is actually the current bank is
also highlighted in pink. There is no action associated with this user-interface element; it merely indicates
the currently-selected bank.
3. Instrument. This button brings up an instruments window similar to the one shown in Figure 25
”Show Stored Instruments” on page 48, which shows the instruments collected in the currently-selected
bank. Clicking on a bank in the dialog also brings up the instruments window.
4. Bank Matrix. This view shows all of the banks available in the current root. Left-clicking on a
bank in the dialog brings up the Instruments window for that bank. Right-clicking on a bank in the dialog
brings up the Instruments window for that bank, but also closes the banks window, to reduce clutter.
5. IMPORT. There are a number of benefits to using the IMPORT/EXPORT buttons rather than
dealing with the directories externally. One has far greater control where things go when importing, and
it’s much easier to identify the bank to export.
When importing or exporting, Yoshimi refuses to overwrite exisiting banks or directories. That is a
flat refusal for exporting, but for importing it will add a numeric suffix to the name.
Importing will copy only in files that Yoshimi understands, but will notify if there were other unrecognised types in there. Exporting just dumps out the entire bank contents.
There are a number of banks in the wild that contain all sorts of extraneous stuff, usually copyright
notices; one should use only the instrument text fields, provided for exactly that purpose. Oh, and one
bank Will found had subdirectories with pictures, and they weren’t small!
In the main part Instrument Edit window there is a new Default button top right. See Section 9.3
”Bottom Panel Instrument Edit” on page 141.
We hope this encourages people to fill in the Author and Copyright information. To set it up, fill in
the text field as normal, then, while holding down the Ctrl key, click on the button (left or middle mouse
click) . This text will now be stored in one’s Yoshimi configurionat directory, and whenever one creates a
new instrument, just click on the Default button, and the saved text will be filled in.
6. EXPORT. Export of banks is described in the previous section.
The buttons SELECT, RENAME, SAVE, DELETE, and SWAP behave similarly to the same
buttons in the Instruments window, as described in the discussion at Section 4.2.1 ”Menu / Instrument
/ Show Stored..” on page 48.

58

Yoshimi Software Synthesizer

4.3.2

4.3

Menu / Patch Sets

Menu / Patch Sets / Load External...

This menu entry simply brings up a file dialog, allowing the user to navigate to an arbitrary directory,
and then to a solitary instrument file (*.xmz), and load it into the current set of parts.

Figure 33: Load Patch Set
These ”xmz” files are normally found in a presets directory, but this operation allows access to
banks that are not located in a particular root.
When an ”xmz” file is loaded, all of the instruments it contains are loaded sequentially into the Parts.
Thus, a number of instruments are loaded at once. So, a patch set is a list of instruments that are related
by being necessary for a given tune, rather than by being located in a particular bank.
4.3.3

Menu / Patch Sets / Save External...

This menu entry simply brings up a file dialog, allowing the user to navigate to an arbitrary directory,
and then save the current Part to a solitary instrument file (*.xiz).
In patch sets, Yoshimi will save named-but-disabled patches. Currently, ZynAddSubFX does not, so
be aware when transferring data between the two synthesizers.

59

Yoshimi Software Synthesizer

4.3

Menu / Patch Sets

Figure 34: Save Patch Set
Patch set saves include everything that is not part of the main configuration, and so saved patch
sets includes Master Volume and Detune Part destinations, Humanise, and more. If nothing has
changed, then the following dialog is shown.

Figure 35: Patch Set, Nothing to Save

4.3.4

Menu / Patch Sets / Recent Sets

This menu entry brings up a dialog box with a list of the recent patch sets that have been loaded. This
item makes it easy to move around one’s frequently-used banks.
4.3.5

Menu / Patch Sets / Patch Bank Roots

Yoshimi (as installed by Debian Linux) provides a default bank at /usr/share/yoshimi/banks. To add
one’s own directory, click on the Roots button. It brings up the following dialog.

60

Yoshimi Software Synthesizer

4.3

Menu / Patch Sets

Figure 36: Bank Root Paths
This dialog has a number of buttons, some of which will be disabled if no directory in the list is
selected.
Then click on the ”Add root directory...” button. In the file dialog that appear, one can use the
Create Directory button to make a new directory, if desired:

Figure 37: New Root Directory?
Otherwise, once can add an existing directory to the list.
1. Add root directory....

Bank Root Paths, Add Root Directory.

Once selected, one will see that /usr/share/yoshimi/banks or /usr/local/share/yoshimi/banks
is marked with an asterisk. One can select the new root directory via the file dialog that appears, and
then make it the current root by clicking the Make current button. Then the Banks dialog will show
all the banks in that directory, one bank per subdirectory (each subdirectory ”is” a bank).
2. Remove root directory.... Bank Root Paths, Remove Root Directory. If a path is selected, then
this button is active, and can be used to delete the selected path from the ”root paths” list.
3. Make current. Bank Root Paths, Make Current. This button marks the currently-selected path as
the ”current root” path.
4. Open current.
this work?)

Bank Root Paths, Open Current. This button opens the current root path. (Does

5. Change ID. Bank Root Paths, Change ID. This ID can be used to make the bank selectable via
an extended MIDI control.
Values: 0* to 127

61

Yoshimi Software Synthesizer

4.4

4.4

Menu / Paths

Menu / Paths

This menu entry provides a more direct way to set up the Bank Root and the Presets directories. It
contains the following items:
1. Bank Root Dirs.... The Paths Bank Root Dirs dialog is described in Section 4.3.5 ”Menu / Patch
Sets / Patch Bank Roots” on page 60, which shows Figure 36 ”Bank Root Paths” on page 61, and
describes this dialog in full.
2. Preset Dirs.... The Yoshimi preset directories are the locations where presets can be found. See
below for details.
The Yoshimi preset directories are the locations where presets can be found. When first installed,
the system preset directory is one of the following, depending on whether Yoshimi was installed via a
package manager or via source code:
/usr/share/yoshimi/presets
/usr/local/share/yoshimi/presets
The user can provide additional directories for the presets, up to a limit of 128 directories (the same
limit as for roots and banks). These directories are useful for containing copies of the system presets that
one can modify safely, and for providing custom presets designed by the user.
The following items are provided by the preset directory settings:
1.
2.
3.
4.
5.
6.

Preset list
Add preset directory...
Remove preset directory...
Make default
Save and Close
Close Unsaved

Figure 38: Yoshimi Preset Dirs Dialog
1. Preset list. This interface element contains a list of preset directories. By default, the only directory
present is the installed preset directory. For example, /usr/share/yoshimi/presets.

62

Yoshimi Software Synthesizer

4.5

Menu / Scales

Tip: If there is no directory in this dialog, then one must add one, otherwise there is no place to
store the presets. So make this one of the first items specified when first running Yoshimi!
Another example would be this project; let YOSHIMI-DOC be the directory where this project is
stored. Then one can add YOSHIMI-DOC/config/yoshimi/presets to this list, using the button described
next.
2. Add preset directory.... Use this button and dialog to add a preset directory to the list, for easy
access.
Press the Add preset directory... button, revealing the following dialog.

Figure 39: Add a Preset Directory
Navigate to the desired directory, select it, and press the Ok button. (There is no need to press the
Save and Close button; the directory is added as soon as OK is clicked. However, one tends to want to
click it anyway, to be sure.) Important: Restart Yoshimi to use the preset directory.
3. Remove preset directory.... Select one of the preset directories in the preset list, then press this
button to remove the preset directory from the list of preset directories. It is removed immediately, with
no need to confirm the deletion, click an OK button, or click a Save button.
4. Make default presets. Make Default Presets Directory. Select one of the preset directories in the
preset list, then press this button to make the preset directory the default preset directory. It should be
a directory for which one has write permissions. By default, it is ~/.config/yoshimi/presets.

4.5

Menu / Scales

Yoshimi is a microtonal synthesizer, and is capable of a wide range of microtonal scales. Improvement
to its features and the accuracy of the scales have been made in the 1.5.0 series of Yoshimi. Scales are
discussed in detail in Section 5 ”Scales” on page 65.

63

Yoshimi Software Synthesizer

4.6

4.6

Menu / State

Menu / State

Yoshimi state is saved in files with the extension .state. These files are also XML files.
Yoshimi ”state” will include the system settings, as well as all patches. Some of these settings (such
as Oscillator Size) can only be realised on a reload if loading via the command line at startup.
1.
2.
3.
4.

Load
Save
Save as Default (new, not yet shown)
Recent States...

State files were normally stored in the user’s .config/yoshimi/yoshimi.state file, but now Yoshimi
offers the user’s home directory instead.
1. State Load. Provides a way to load a previously-saved Yoshimi state file.

Figure 40: Yoshimi Menu, State Load
This item is a standard Yoshimi file dialog. Note that XML text is shown in the preview pane, but,
if XML compression is set, then a large question mark is all that would be shown.
2. State Save. Provides a way to save a new or modified Yoshimi state file.

64

Yoshimi Software Synthesizer

Figure 41: Yoshimi Menu, State Save
This item is a standard Yoshimi file dialog.
3. Save as Default. This item simply makes the current state the new default state when starting
Yoshimi. This item is effective only if the Start With Default State option is checked in Yoshimi /
Settings. This item is also exceptional is it will not appear in the history list, and so will not be offered
as a normal load.
4. Recent States. This item brings up a list of states to select. The Recent States dialog will not
come up if there are no states that have yet been managed.

5

Scales

Yoshimi is a microtonal synthesizer, and is capable of a wide range of microtonal scales. Many improvements have been made to the scales, including the user-interface, performance, accuracy of calculations,
and adherence to the Scala ([15]) specification. in version 1.5.2 and above. At the request of users, since
version 1.5.8 some controls have been made accessible to MIDI-learn, and these have the familiar pale
blue border. For users of the LV2 plugin, any changes in scale settings are reported back so that the plugin
host can be aware of the change.

5.1

Scales / Command Line

One can now fully control scales from the CLI. For tunings, either ratios or floating point numbers can
be entered. Ratios are in the form n1/n2 to a maximum of normal integer range. If just a numerator is
set, it will be regarded as n/1. Floating point numbers must include the decimal point and at least one
digit (or zero) on either side. The numbers are padded out with leading and trailing zeros in the form
nnnn.nnnnnn.
In keyboard maps, non-sounding notes should be entered as an ’x’ instead of the key number.
CLI tunings and keymaps are entered in CSV format. Tuning:
65

Yoshimi Software Synthesizer

5.1

Scales / Command Line

0076.049000, 0193.156860, 0310.264710, 5/4, 0503.421570,
0579.470570, 0696.578430, 25/16, 0889.735290, 1006.843140,
1082.892140, 2/1
Keymap:
0, 1, 2, 3, x, 5, 6, 7, x, 9, 10, 11
The tuning/keymap sizes are generated internally by counting the number of entries in the strings.
When saving scales, for floating point numbers, Yoshimi includes the text it was derived from. This
has accuracy benefits, but also reassures less experienced users, because the values they enter won’t seem
to change on re-loading. The stored value is still saved for backward compatibility with older versions of
Yoshimi.
Scale shift provides an offset to the scale start position, and only makes a difference in uneven interval
sizes.
Normally (for the even tempered scale) the scale starts on ’A’, and, as the intervals are all identical,
changing the octave start will make no difference. However, if one has (say) a 5-note pentatonic scale, the
intervals will be very different and the scale shift will effectively determine the key of the scale.

Figure 42: Yoshimi Menu, Scales
1.
2.
3.
4.
5.

Show Settings...
Load...
Save...
Recent Scales...
Clear

66

Yoshimi Software Synthesizer

5.2

5.2

Scales / Show Settings

Scales / Show Settings

Figure 43: Yoshimi Menu, Scales Settings
5.2.1

Scales Basic Settings

This item controls the micro-tonal capabilities of Yoshimi and some other settings related to tuning. The
last entry in the tunings list represents one octave. All other notes are deduced from these settings.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.

Enable Microtonal
”A” Freq.
”A” Note
Invert Keys
Center
Name
Shift
Comment
Tunings
Retune
Keyboard Mapping
ON
First note
Middle note
Last note
nts./oct.
Import .scl file
67

Yoshimi Software Synthesizer

5.2

Scales / Show Settings

18. Map Size
19. Import .kbm file
20. Close
1. Enable Microtonal. Enable Microtonal Scales. When disabled, the synthesizer will use equaltemperament, 12 notes per octave. Otherwise, one can input any scale one desires.
Values: Off*, On
2. ”A” Freq.
Hz.

Frequency of the ”A” Note. Sets the frequency of the ”A” key. The standard is 440.0

Values: 440*
3. ”A” Note. Sets the MIDI Value of the ”A” Note.
Values: 0 to 127, 69*
4. Invert Keys. Allows the keys to be inverted, so that higher-valued keys play lower notes.
Values: Off*, On
5. Center. Center for Inverted Keys. This is the center where the notes frequencies are turned upsidedown if Invert keys is enabled. If the center is 60, the note 59 will become 61, 58 will become 62, 61 will
become 59, and so on.
Values: 0 to 127, 60*
6. Name.
7. Shift.

Name of the Mapping. For example, the default mapping is called ”12tET”.
Key Shift. Shift the scale. If the scale is tuned to A, one can easily tune it to another key.

Values: -63 to 64, 0*
8. Comment. Comment for Key Mapping. Provides a comment or a description of the scale. By
default, this is ”Equal Temperament 12 notes per octave”.
9. Tunings. Tunings. Here one can input a scale by entering all the tunings for one octave. One can
enter the tunings in two ways:
1. As the number of cents (1200 cents=1 octave) as a float number like ”100.0”, ”123.234”
2. As a proportion like ”2/1” which represents one octave, ”3/2” a perfect fifth, ”5734/6561”. ”2/1”
is equal to ”1200.0” cents.
The default is a series of values: 0100.0, 0200.0, ..., 1100.0, 2/1.
10. Keyboard Mapping. The items related to the Keyboard Mapping are discussed separately in
the next section.
11. Retune. Retune button. This button retunes the synthesizer according to the settings of the
Tunings and Keyboard Mapping lists. The Retune button is needed if one changes any of the actual
scale settings. However, it’s not needed for key mappings or any other controls, all of which operate
immediately.
12. nts./oct.

Notes Per Octave. This value is affected by changes to the Tunings mapping.

Values: 12*
13. Import .SCL file. Import Scala files. Scala is a powerful application for experimentation with
musical tunings (intonation scales, micro-tonal,...etc.). From its home page [15], one can download more
than 2800 scales which one can import directly into Yoshimi. Note that the zip file must be unzipped
with the -aa (”autoconvert”) option. However, we have converted it to a a much smaller tar file (it crams

68

Yoshimi Software Synthesizer

5.2

Scales / Show Settings

18 Mb of files into an sub-500 Kb file), which can be untarred directly into one’s configuration directory
to create a ~/.config/yoshimi/scales directory chock full of scales.
$ cd ~/.config/yoshimi/
$ tar xf yoshimi-scales.tar.xz
Note that a Scala file cannot be loaded directly. It must be imported.

Figure 44: Yoshimi Menu, Scales, Import File
This item is a standard file dialog for reading a *.scl file.

Figure 45: Yoshimi Menu, Scales, Import Keyboard Map
69

Yoshimi Software Synthesizer

5.2

Scales / Show Settings

14. Map Size. Map Size. This value is affected by changes to the Keyboard Mapping.
Values: 12*
15. Import .kbm file.

This item is a standard file dialog for reading a *.kbm file.

16. Close, Scales Dialog.
5.2.2

Keyboard Mapping

One can set the MIDI keyboard mapping to scale-degree mapping. This is used if the scale has more or
less than 12 notes/octave. One can enable the mapping by pressing the ON check-box.
1.
2.
3.
4.
5.
6.

ON
First Note
Last Note
Middle Note
Map
Map Size

1. ON.

This item enables the Keyboard Mapping list.

Values: Off*, On
2. First Note. First MIDI Note Number. Sets the MIDI note value to use for the first note of the
scale. MIDI notes below this value are ignored.
Values: 0* to 127
3. Middle Note. Sets the MIDI note value to use for the middle note of the scale. This is the note
where the scale-degree 0 setting is mapped; the middle note represents the note where the formal octave
starts.
Values: 0 to 127*
4. Last Note. Last MIDI Note Number. Sets the MIDI note value to use for the last note of the scale.
Keys above this value are ignored.
Values: 0 to 127*
5. Map. Scales map. This is the input field where the mappings are entered. The numbers represent
the order (degree) entered on Tunings Input field, with the first value being 0. This number must be
less than the number of notes per octave (since the values start at 0). If one doesn’t want a key to be
mapped, one enters an ”x” instead of a number.
Values: 0 to 11
6. Map Size. Provides the size of the scale-map.
Values: 12
In the current version of Yoshimi, up to 25 recently used scales are now stored in the new history
file (yoshimi.history), and can be quickly reinstalled with a mini-browser in exactly the same way as
patch sets.

70

Yoshimi Software Synthesizer

5.3

5.3

Scales / Load

Scales / Load

Figure 46: Yoshimi Menu, Open Scales
If the format of the scales file is not correct, then the following prompt will appear.

Figure 47: Yoshimi Menu, Failed to Load Scales
Note that the loading and saving of scales is fully available in the command-line as well.

5.4

Scales / Save

This dialog opens a stock file-dialog to allow the saving of *.xsz files. If one has imported a scale from
an *.scl file, and one wants direct access to it from the Scales / Recent Scales menu, one must first
save the imported file as an *.xsz files.
Note that the loading and saving of scales is fully available in the command-line as well.
In the past, every time one saved and reloaded a scale, there was a degradation in the accuracy of
the scales. This issue has been fixed, since people are very sensitive to pitch intervals.

5.5

Scales / Recent Scales...

Once a scale file has been loaded (or imported and saved), then it becomes available in this list, for more
convenient access to it.
71

Yoshimi Software Synthesizer

5.6

Scales / Clear

Figure 48: Yoshimi Menu, Recent Scales

5.6

Scales / Clear

This menu entry simply resets the Yoshimi scale back to it default, the twelve-tone equally-tempered
scale.

6

Stock Settings Elements

This section collects all of the settings values and small user-interface items that one will find for audio
parameters in the Yoshimi GUI. Sometimes the labels and tool-tips in the application are a bit too brief
to understand. One will find their full meanings, their tricks, and usage notes in this section. This section
also covers the sub-panels that provide the settings. Many of these sub-panels are used in many places
in Yoshimi, not only as user-interface elements, but as presets that can be saved and load. By describing
the deep details of these sub-panels here, we can refer to them when describing how to set up specific
sounds in Yoshimi. Much of this material comes from http://sourceforge.net/zynaddsubfx/Doc and
has been reorganized and expanded.

6.1

Settings Features

This section notes some minor interface and synthesizer features that may be seen thoughout Yoshimi.
6.1.1

Mouse Features

The right mouse click is used for setting the default value of a control, where it acts like a ”reset” button,
and is also used to bring up the MIDI Learn dialog for controls that can be MIDI-learned.
When traversing window stacks, a right click will close one window as it opens the next. Closing such
a window with the right button will re-open its parent.
6.1.2

Tooltips

Like many applications, Yoshimi provides tooltips to help the user navigate the many controls and data
fields in the user-interface. Many of the controls now have active tooltips that show the current value of the
control when one hovers over it, so one no longer must click the control to see its value (and accidentally
change it at the same time). Many have real-world data units, such as dB, Hz, ms etc.

72

Yoshimi Software Synthesizer

6.1.3

6.1

Settings Features

Title Bars

The title bars of all editing windows display both the part number and the current name of the instrument
one are working on. In the ADDsynth Oscillator Editor, one also sees the voice number of the oscillator
one is editing. Title bars also include the kit entry number if that part has a kit enabled.
6.1.4

Color Coding

A GUI enhancement for Yoshimi 1.3.5 is color-coded identification of an instrument’s use of ADD-,
SUB-, and PAD-synth engines, no matter where in the instrument’s kit they may be. This can be enabled/disabled in the mixer panel. It does slow down Yoshimi’s startup, but due to the banks reorganisation (done some time ago) it causes no delay in changing banks/instruments once Yoshimi is up and
running. Some saved instruments seem to have had their ”Info” section corrupted. Yoshimi can detect
this issue, and step over it to find the true status. Also, if one resaves the instrument, not only will the
PADsynth status be restored, but ADDsynth and SUBsynth will be included, allowing a faster scan next
time.
6.1.5

Rotary Knobs

Visual rotary knobs are used for modifying numerical parameters in the user-interface. Horizontal, as well
as vertical, mouse movements will adjust the knob. Mouse clicks also can adjust the knob.
• Coarse Control. When rotated using the left mouse button, the rotary knobs give a coarse control
of the numerical settings of the knob.
• Fine Control. When a knob is rotated using the middle mouse button, the rotary knobs give a
finer control of the numerical settings of the knob.
• Scroll Wheel. One can also use the mouse scroll wheel to adjust rotary controls, which gives
better control than using the mouse pointer.
• Super Fine Control. If the Ctrl key is held at the same time as the wheel is scrolled, the control
is extremely fine.
Note that the right mouse button can be used for setting the default value of a control or for the
initiation of MIDI learn.
• Home Position. A right-click sends the knob to the home position (and sets its value to the home
value). For setting like Pan and Detune it is the middle position; for other settings, it is whatever
the default value is for that setting.
The fact that every control can now be homed with a right mouse click means there is no longer a
need for the few ”Zero” and ”Reset” buttons dotted around, so they are all gone as of version 1.4.0.
6.1.6

Sliders

For both horizontal and vertical sliders, if one holds down the right mouse button, the thumb will go to
it’s default position. The same thing will happen if one clicks on the track with the right button. If on
top of the thumb of the control, it won’t move unless one moves the mouse slightly while right-clicking.
Yoshimi has changed some rotary controls or rollers to sliders. These controls pack better without
looking crowded, are easier to manage, with clearer indication.
73

Yoshimi Software Synthesizer

6.1.7

6.1

Settings Features

Presets

The ZynAddSubFX/Yoshimi concept of presets is very powerful.
Absolutely every user-interface section that has blue C and P buttons can be stored in the presets
directory. That includes entire Addsynth engines! When one looks at the copy/paste buffer, one sees only
items that are relevant to the group that the C/P buttons are in.
As one wants to save, as well as load, these presets, it makes sense to copy all the default ones to a
location such as ~/.config/yoshimi/presets. That makes them fully accessible, but tucked away out
of sight. Yoshimi creates this directory at first time start up. Preset files allow one to save the settings for
any of the components which support copy/paste operations. This is done with preset files (.xpz), which
get stored in the folders indicated by Paths / Preset Dirs.... Note that the number of preset directories
that can be set is limited to 128 (the same as for roots and banks).
6.1.8

Automation

In Yoshimi 1.3.5, a number of existing, as well as new features have come together to give much greater
flexibility (especially for automation) using standard MIDI messages. These are:
1.
2.
3.
4.
5.
6.

NRPNs
ZynAddSubFX controls
Independent part control
16, 32 or 64 parts
Vector Control
Direct part stereo audio output

1. NRPNs. NRPNs can handle individual bytes appearing in either order, and usually the same with
the data bytes. Increment and decrement is also supported as graduated values for both data LSB and
MSB. Additionally, the ALSA sequencer’s 14-bit NRPN blocks are supported.
2. ZynAddSubFx controls. System and Insertion Effect controls are fully supported, with extensions
to allow one to set the effect type and (for insertion effects) the destination part number.
3. Part control. Independent part control enables one to change instrument, volume, pan, or indeed any
other available control of just that part, without affecting any others that are receiving the same MIDI
channel. This can be particularly interesting with multiply layered sounds. There are more extensions
planned.
4. 16/32/64 Parts. With 32 and 64 parts, it helps to think of 2 or 4 rows of 16. When one saves
a parameter block, the number of parts is also saved, and will be restored when one reloads. By default
each column has the same MIDI channel number, but these can be independently switched around, and
by setting (say) number 17 taken right out of normal access.
In tests, compiling for 64 parts compared with 16 parts increased processor load by a very small
amount when Yoshimi was idling, but this becomes virtually undetectable once one has 8 or more instruments actually generating output. In normal use, selecting the different formats makes no detectable
difference, but using the default 16 reduces clutter when one doesn’t need the extras.
5. Vector control. Vector control is based on these parts columns, giving one either 2 (X only) or 4
(X + Y) instruments in this channel. Currently the vector CCs one set up can (as inverse pairs) vary any
combination of volume, pan, and filter cut-off. More will be added. To keep the processor load reasonable
it pays to use fairly simple instruments, but if one has sufficient processing power, it would be theoretically
possible to set up all 16 channels with quite independent vector behavior! Also see Section 16.2 ”Vector
74

Yoshimi Software Synthesizer

6.2

Filter Settings

Dialogs” on page 195, for a discusson of the vector configuration dialog, and Section 16 ”Vector Control”
on page 194, for an in-depth discussion of how vectors work.
6. Direct part audio. Direct part audio is JACK-specific, and allows one to apply further processing
to just the defined part’s audio output (which can still output to the main L+R if one wants). This
setting is saved with parameter blocks. Currently it is only set in the mixer panel window, but it will
also eventually come under MIDI direct part control. Again, to reduce unnecessary clutter, part ports are
only registered with JACK if they are both enabled, and set for direct output. However, once set they
will remain in place for the session to avoid disrupting other applications that may have seen them.

6.2

Filter Settings

This section describes filtering at a high level, in terms of frequency responses and other concepts of
filtering. The end of this section covers a user interface used in filter settings. It is a stock-panel re-used
in other user-interface elements. See Section 6.2.5 ”Filter Parameters User Interface” on page 78, if one
is in a hurry.
Yoshimi offers several different types of filters, which can be used to shape the spectrum of a signal.
The primary parameters that affect the characteristics of the filter are the cutoff, resonance, filter stages,
and the filter type.
Filter stages are the number of times that this filter is applied in series. So, if this number is 1, one
simply has this one filter. If it is two, the sound first passes the filter, and the results then pass the same
filter again. In ZynAddSubFX, the wetness is applied after all stages were passed.
6.2.1

Filter Type

A filter removes or attenuates frequency elements or tones from a signal. Filtering changes the character
of a signal.
The basic analog filters that Yoshimi and ZynAddSubFX offer are shown in Figure 49 ”Basic Filter
Types” on page 76, with the center frequency being marked by the red line. The state variable filters
should look quite similar.

75

Yoshimi Software Synthesizer

6.2

Filter Settings

Figure 49: Filter Types, Yoshimi/ZynAddSubFX
1. A low-pass filter makes the sound more muffled.
2. A band-pass filter makes the sound more tone-like, and sometimes more penetrating, if the total
energy in the passband is preserved as the bandwidth decreases.
3. A high-pass filter makes the sound seem sharper or more strident.
6.2.2

Filter Cutoff

The filter cutoff value determines which frequency marks the changing point for the filter. In a low pass
filter, this value marks the point where higher frequencies begin to be attenuated.
6.2.3

Filter Resonance

The resonance of a filter determines how much excess energy is present at the cutoff frequency. In Yoshimi
and ZynAddSubFX, this is represented by the Q-factor, which is defined to be the cutoff frequency divided
by the bandwidth. In other words higher Q values result in a much more narrow resonant spike.
The Q value of a filter affects how concentrated the signal’s energy is at the cutoff frequency. The
result of differing Q values are shown in Figure 50 ”Low Q vs. High Q” on page 77. For many classical
analog sounds, high Q values were used on sweeping filters. A simple high Q low pass filter modulated by
a strong envelope is usually sufficient to get a good sound.

76

Yoshimi Software Synthesizer

6.2

Filter Settings

Figure 50: The Effect of the Q Value

6.2.4

Filter Stages

The number of stages in a given filter describes how sharply it is able to make changes in the frequency
response. The more stages, the sharper the filter. However, each added stage increases the processor time
needed to make the filter calculation.

Figure 51: The Effect of the Order of a Filter
The affect of the order of the filter can be seen in the figure above. This is roughly synonymous with
the number of stages of the filter. For more complex patches, it is important to realize that the extra
sharpness in the filter does not come for free, as it requires many more calculations to be performed.
This phenomena is the most visible in SUBsynth, where it is easy to need several hundred filter stages to
produce a given note.
There are different types of filters. The number of poles define what will happen at a given frequency.
Mathematically, the filters are functions which have poles that correspond to that frequency. Usually,
two poles mean that the function has more ”steepness”, and that one can set the exact value of the
function at the poles by defining the ”resonance value”. Filters with two poles are also often referred to
as Butterworth Filters.
For the interested, functions having poles means that we are given a quotient of polynomials. The denominator has degree 1 or 2, depending on the filter having one or two poles. In the file DSP/AnalogFilter.cpp,
computefiltercoefs() sets the coefficients (depending on the filter type), and singlefilterout() shows
the whole polynomial (in a formula where no quotient is needed).

77

Yoshimi Software Synthesizer

6.2.5

6.2

Filter Settings

Filter Parameters User Interface

Figure 52: Stock Filter Parameters Sub-Panel
The user interface for filter parameters is a small stock sub-panel that is re-used in a number of larger
dialog boxes, as shown in the figure above. This panel has changed slightly with version 1.5.0. Let’s
describe each item of this sub-panel.

Figure 53: Filter Categories, Dropdown Box
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

Category
Filter Type
C.freq
Q
V.SnsA
freq.tr
gain
St
0/+
C
P

1. Category. Determines the category of filter to be used. There are three categories of filters (as
shown in the dropdown element shown in Figure 53 ”Filter Categories Dropdown” on page 78).
1. Analog (the default)
2. Formant
3. StVarF
An analog filter is one that approximates a filter that is based on a network of resistors, capacitors,
and inductors.
A formant filter is a more complex kind of filter that acts a lot like the human vocal tract, allowing
for sounds that are a bit like human voices. For a description of how formants work, see Section 21.4.9
”Concepts / Basic Synthesis / Formants” on page 254.
Using formant filters can be rather like pulling teeth. Although Paul gave a pretty good description of
how the vowels and formants interact and are laid out, there is an extremely important bit of information
missing! The filter lays out the sequence (or sequences if there are multiple vowels) but it is the filter
envelope that set the rate and degree to which these are traversed. Also, the richer the original harmonic
content the more pronounced the effect will be (quite useless on sine wave).

78

Yoshimi Software Synthesizer

6.2

Filter Settings

See Section 6.5.6.1 ”Formant Parameters” on page 96for the format parameters, which may have
slightly different names from what Paul used.
A state variable (”StVarF”) filter is a type of active filter. The frequency of operation and the Q
factor can be varied independently. This and the ability to switch between different filter responses make
the state-variable filter widely used in analogue synthesizers.
Values: Analog*, Formant, StVarF
2. Filter Type. Selects the type of filter to be used, such as high-pass, low-pass, and band-pass. See
the dropdown element in Figure 54 ”Filter Type Dropdown” on page 79.

Figure 54: Type of Filter Passband, Dropdown Box
Values: LPF1, HPF1, LPF2*, HPF2, BPF2, NF2, PkF2, LSh2, HSh2
3. C.freq. Cutoff frequency or center frequency. This items has various definitions in the literature.
Usually it refers to the frequency at which the level drops to 3 Db below the maximum level. In various
dialogs, this value is the center frequency of the filter or the base position in a vowel’s sequence.
Values: 0 to 127, 90*
4. Q. The level of resonance for the filter. It indicates a measure of the sharpness of a filter. The higher
the Q, the sharper the filter. Generally, a higher Q value leads to a louder, more tonal affect for the filter.
Note that some filter types might ignore this parameter.
5. V.SnsA.

Velocity sensing amount for filter cutoff. Velocity sensing amount of the filter.

Values: 0 to 127, 64*
6. V.Sns.

Velocity sensing function of the filter. Set the amplitude of the velocity sensing.

Values: 0 to 127, 64*
7. freq.tr. Filter Frequency Tracking Amount. When this parameter is positive, higher note frequencies
shift the filter’s cutoff frequency higher. For the filter frequency tracking knob, left is negative, middle is
zero, and right is positive.
Values: 0 to 127, 64*
8. gain. Filter gain. Additional gain/attenuation for a filter. Also described as the filter output
gain/damping factor.
Values: 0 to 127, 64*
9. St. Filter stages. The more filter stages applied to a signal, the stronger (in general) the filtering. It
is the number of additional times the filter will be applied (in order to create a very steep roll-off, such
as 48 dB/octave). This dropdown element is shown in Figure 55 ”Filter Stage Dropdown” on page 80.

79

Yoshimi Software Synthesizer

6.3

Stock Resonance Settings

Obviously, the more stages used, the more calculation-intensive the filter will be. This should also increase
the latency (lag) of the filter.

Figure 55: Filter Stage Dropdown
10. 0/+. Filter tracking upgrade. Filter tracking could never quite reach 100%, so if using it to get
”notes” from noise it would go slightly out-of-tune. Yoshimi now has this new check box that changes its
range so that instead of -100% : 98.4% it will track 0% : 198.4%.
This new feature is one of the first that actually change instrument files. However, the format is
backwards compatible; older versions of Yoshimi simply ignore them.
Also present in this sub-panel are the usual Copy and Paste buttons that call up a copy-parameters
or a paste-parameters dialog.

6.3

Stock Resonance Settings

Yoshimi provides for setting very arbitrary ”resonance” settings for some sounds. In fact, ”resonance” is
too limiting a word. A lot of control over the spectrum is possible. The following dialog is used by the
ADDsynth editor, Figure 10.7 ”ADDsynth / Resonance” on page 160, and the the PADsynth editor,
The resonance editor is brought on-screen via the Resonance button of the ADDsynth or PADsynth
global part editors.
The resonance effect acts as a ”resonance box” or a filter with arbitrary frequency response. This
produces very realistic sounds. The cursor location is shown below the graph (the frequency, kHz, and
the amplitude, dB).
Paul Nasca has a video on YouTube that includes a demonstration of how the resonance dialog works
and affects the sound, if one cares to look for it.

Figure 56: ADDsynth/PADsynth Resonance
80

Yoshimi Software Synthesizer

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.

6.3

Stock Resonance Settings

Graph Window
Enable
Max dB
C.f.
Oct.
Prot.1st
InterpPk
KHz
dB
Zero
Smooth
RND1
RND2
RND3
C
P
Close

1. Graph Window.
”freehand” mode.
2. Enable.

Resonance Graph Window. Lets one draw the resonance frequency response in

Resonance Enable. Turn the Resonance effect on.

Values: Off*, On
3. Max dB (wheel). The Maximum Amplitude (dB) wheel. Sets the amount of resonance: lower
values have little effect. Use the roller below to set it.
Values: 1 to 90, 20*
4. C.f. (knob). Center Frequency (kHz). Sets the center frequency of the graph. The value is shown
in the read-only text-box to the left.
Values: 0 to 127, 64* for 0.10 to 10.0, 1.0*
5. Oct. Number of Octaves. Sets the number of octaves the graph represents. The value is shown in
the read-only text-box to the left.
Values: 0 to 127, 64* for 0 to 10, 5*
6. Prot.1st.

Protect the fundamental Frequency. That is, do not damp the first harmonic.

Values: Off, On
7. InterpPk. Interpolate the resonance peaks. This setting used to be a weird one where the mouse
button (left versus right) affected the kind of interpolation used, but also affects the next field as well,
but in Yoshimi 1.3.9 the mechanism for interpolation has been made more clear. In addition, some of the
controls have been changed to sliders for easier usage.
This setting allows one to make resonance functions very easily. To use it effectively, first, clear the
graph using the Clear button. Click the left button on a position on the graph to create a peak (or do
it more than once to create more peaks). Click either the InterpPk S button (smooth interpolation) or
the InterpPk L button (linear interpolation). Yoshimi will interpolate automatically between the peaks
drawn, as shown in Figure 57 ”ADDsynth/PADsynth Resonance Interpolated” on page 82, which shows
smooth interpolation.

81

Yoshimi Software Synthesizer

6.3

Stock Resonance Settings

Figure 57: ADDsynth/PADsynth Resonance Interpolated
Please do not confuse this ”smoothing” with the processing done using the Smooth button discussed
below.
Also note that one can clear a part of the graph by dragging with the right mouse button. In fact, the
interpPk functionality interpolates between non-zero values. Oh, and note that the kHz and dB fields
update to match it. And don’t forget to try the middle-click feature to see the corresponding command-line
needed to achieve the setting.
8. KHz.
9. dB.

The current frequency on graph.
The current level on graph window.

Values: -90 to +90
10. Clear.

Clear the resonance function. (Used to be called ”Zero”.) Clear the graph.

11. Smooth. Smooth the resonance function. Smooth the graph. This button causes each jagged portion
of the graph to be smoothed. This smooth does not interpolate between the peaks, unlike the InterpPk
functionality described earlier. Compare the interpolation shown in Figure 57 ”ADDsynth/PADsynth
Resonance Interpolated” on page 82, and the smoothing shown in Figure 58 ”ADDsynth/PADsynth
Resonance Smoothed” on page 83.

82

Yoshimi Software Synthesizer

6.4

LFO Settings

Figure 58: ADDsynth/PADsynth Resonance Smoothed
Note how the amplitude of the peaks is also reduced by the smoothing. Presumably, a frequencysmoothing window is applied to the peaks, thus making each new data-point a weighted average of the
data-points around it. Don’t forget to try the middle-click feature to see the corresponding command-line
needed to achieve the setting.
12. RND1. Randomize the resonance function, 1. RND1, RND2, RND3 are used to create random
resonance functions.
13. RND2.

Randomize the resonance function, 2.

14. RND3.

Randomize the resonance function, 3.

15. C.

Copy Dialog.

16. P. Paste Dialog.
17. Close.

6.4

Close.

LFO Settings

Yoshimi provides LFOs for it amplitude, frequency, and filtering functions. ”LFO” means Low Frequency
Oscillator. These oscillators are not used to make sounds by themselves, but they change parameters
cyclically as a sound plays.
LFOs are, as the name says, oscillators with, compared to the frequency of the sound, low frequency.
They often appear in order to control the effect.

83

Yoshimi Software Synthesizer

6.4.1

6.4

LFO Settings

LFO Basic Parameters

Figure 59: Basic LFO Parameters
1.
2.
3.
4.

Delay.
Start Phase.
Frequency.
Depth.

The LFOs has some basic parameters (see Figure 59 ”Basic LFO Parameters” on page 84.
1. Delay. LFO Delay. This parameter sets how much time takes since the start of the note to start the
cycling of the LFO. When the LFO starts, it has a certain position called ”start phase”.
2. Start Phase. LFO Start Phase. The angular position at which a LFO waveform will start.
3. Frequency.
LFO changes.)

LFO Frequency. How fast the LFO is (i.e. how fast the parameter controlled by the

4. Depth. LFO Depth. The amplitude of the LFO (i.e. how much the parameter is controlled by the
LFO changes.)
6.4.2

LFO Function

Another important additional LFO parameter is the shape or type of the LFO. There are many LFO
Types that vary according to the function used to generate the LFO. Yoshimi supports the LFO shapes
shown in Figure 60 ”LFO Functions” on page 84.

Figure 60: LFO Types, Shapes, or Functions

84

Yoshimi Software Synthesizer

6.4.3

6.4

LFO Settings

LFO Randomness

Figure 61: LFO Randomization
Another parameter is the LFO Randomness. It modifies the LFO amplitude or the LFO frequency at
random. In Yoshimi one can choose how much the LFO frequency or LFO amplitude changes by this
parameter. Observe Figure 61 ”LFO Randomization” on page 85. It shows some examples of randomness
and how it changes the shape of a triangle LFO.
6.4.4

LFO, More Settings

Other settings are available as well.
Continous mode: If this mode is used, the LFO will not start from ”zero” on each new note, but it
will be continuous. This is very useful if one applies on filters to make interesting sweeps.
Stretch: It controls how much the LFO frequency changes according to the note’s frequency. It can
vary from negative stretch (the LFO frequency is decreased on higher notes) to zero (the LFO frequency
will be the same on all notes) to positive stretch (the LFO frequency will be increased on higher notes).
6.4.5

LFO User Interface Panels

Figure 62: Amplitude LFO Sub-Panel
In Yoshimi, LFO parameters are available for amplitude, filters, and frequency. They all have essentially
the same interface elements. Note Figure 62 ”Amplitude LFO Sub-Panel” on page 85, which shows an
example of an LFO stock sub-panel.
These parameters are:
1. Freq
2. Depth
85

Yoshimi Software Synthesizer

3.
4.
5.
6.
7.
8.
9.
10.
11.

6.4

LFO Settings

Start
Delay
A.R
F.R
C or C.
Str
Type
C (copy)
P (paste)

1. Freq. LFO Frequency. This parameter varies from 0 to 1. We still need to figure out what that scale
means, however. Obviously, it is a relative scale, and is perhaps related to the overall sampling frequency.
Values: 0 to 1, 0.63*
2. Depth.

LFO Depth. Also called ”LFO Amount”.

Values: 0* to 127
3. Start.

LFO Start Phase. If this knob is at the lowest value, the LFO Start Phase will be random.

Values: 0 = random, to 127, 64*
4. Delay. LFO Delay.
Values: 0* to 127
5. A.R.

LFO Amplitude Randomness.

Values: 0* to 127
6. F.R.

LFO Frequency Randomness.

Values: 0* to 127
7. C.

LFO Continous Mode.

Values: Off*, On
8. Str. LFO Stretch. See the image in Figure 62 ”Amplitude LFO Sub-Panel” on page 85. It shows
that the LFO stretch is set to zero, though the tooltip would show it to be 64.
Values: 0 to 127, 64*
9. Type. LFO Function. Also present in this sub-panel are the usual Copy and Paste buttons that
call up a copy-parameters or paste-parameters dialog.
Values: SINE*, TRI, SQR, R.up, R.dn, E1dn, E2dn

Figure 63: LFO Function Type Drop-down
10. Type. LFO Type (or Shape, or Function). The various shapes of LFO functions are shown in
Figure 60 ”LFO Functions” on page 84. The values that can be selected are shown in Figure 63 ”LFO
86

Yoshimi Software Synthesizer

6.4

LFO Settings

Type Drop-down” on page 86. Also present in this sub-panel are the usual Copy and Paste buttons that
call up a copy-parameters or paste-parameters dialog.
Values: SINE*, TRI, SQR, R.up, R.dn, E1dn, E2dn
For reference, Figure 64 ”Filter LFO Sub-Panel” on page 87shows the LFO sub-panel for a filter,
and Figure 66 ”Frequency LFO Sub-Panel” on page 88shows the LFO sub-panel for frequency.
6.4.6

Filter LFO Sub-panel

Figure 64: Filter LFO Sub-Panel
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

Enable (present on some versions of this sub-panel).
Freq.
Depth
Start
Delay
Str.
C.
A.R.
F.R.
Type
C
P

1. Enable.

Enable the panel. (Present on some versions of this sub-panel).

2. Freq. LFO Frequency.
Values: 0 to 1, 0.64*
3. Depth.

LFO Amount.

Values: 0* to 127
4. Start.

LFO Startphase (leftmost is random).

Values: 0 to 127, 64*
5. Delay. LFO Delay.
Values: 0* to 127
6. Str.

LFO Stretch.

Values: 0 to 127, 64*
7. C.

Continuous LFO.

Values: Off*, On
8. A.R.

LFO Amplitude Randomness.

Values: 0* to 127
87

Yoshimi Software Synthesizer

9. F.R.

6.5

Envelope Settings

LFO Frequency Randomness.

Values: 0* to 127
10. Type.

LFO Type.

Figure 65: LFO Function Type Dropdown
Values: SINE*, TRI, SQR, R.up, R.dn, E1dn, E2dn
11. C.

Copy to Clipboard/Preset.

12. P. Paste from Clipboard/Preset.
6.4.7

Frequency LFO Sub-panel

Figure 66: Frequency LFO Sub-Panel
This panel is basically identical to the Filter LFO panel described in the previous section.

6.5

Envelope Settings

Envelopes control how the amplitude, the frequency, or the filter changes over time. The general envelope
generator has four sections:
1. Attack. The attack is the initial envelope response. It begins when the key for the note is first held
down (at Note On). The volume starts at 0, and rises fast or slowly until a peak value. In Yoshimi,
the attack is always linear.
2. Decay When the attack is at its highest value, it immediately begins to decay to the sustain value.
The decay can be fast or slow. The attack and decay together can be used to produce something
like horn blips, for example.
3. Sustain This is the level at which the parameter stays while the key is held down, i.e. until a Note
Off occurs.
4. Release When the key is released, the sound decays, either fast or slowly, until it is off (the volume
is 0).
Together, these values are called ”ADSR”. The ADSR envelope generally controls the amplitude of
the sound. In Yoshimi, amplitude envelopes can be linear or logarithmic.

88

Yoshimi Software Synthesizer

6.5

Envelope Settings

Figure 67: ADSR Envelope (Amplitude)
See Figure 67 ”ADSR Envelope (Amplitude)” on page 89, it shows a depiction of an ADSR envelope.
The ADSR is mostly applied to amplitude envelopes.

Figure 68: ASR Envelope, Frequency
Frequency envelopes control the frequency (more exactly, the pitch) of the oscillators. The following
image depicts the stages of these envelopes.
For frequency envelopes, a simpler form of envelope is used. This envelope is an ASR envelope, shown
in Figure 68 ”ASR Envelope, Frequency” on page 89. The dotted line represents the real pitch of the
sound without the envelope. The frequency envelopes are divided into 3 stages:
1. Attack. It begins at the Note On. The frequency starts from a certain value and glides to the real
frequency of the note.
2. Sustain. The frequency stays the same during the sustain period.
3. Release. This stage begins on Note Off and glides the frequency of the note to a certain value.
6.5.1

Amplitude Envelope Sub-Panel

Figure 69: Amplitude Envelope Sub-Panel
89

Yoshimi Software Synthesizer

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

6.5

Envelope Settings

A.dt
D.dt
S.val
R.dt
Str
L
frcR
C
P
E

1. A.dt.
durations.

Attack duration, attack time. We need to determine the units of time at play for ADSR

Values: 0* to 127
2. D.dt.

Decay duration, decay time.

Values: 0 to 127, 44*
3. S.val. Sustain value. This is the (relative?) level at which the envelope will settle while the note is
held down. The only stage that always remains defined is the Sustain, where the envelopes freezes until
a Note Off event.
Values: 0 to 127*
4. R.dt.

Release time.

Values: 0 to 127, 25*
5. Str. Stretch. How the envelope is stretched according the note. Envelope Stretch means that, on
lower notes, the envelope will be longer. On the higher notes the envelopes are shorter than lower notes. In
the leftmost value, the stretch is zero. The rightmost use a stretch of 200%; this means that the envelope
is stretched about 4 times per octave.
Values: 0 to 127, 64*
6. L.

Linear envelope. If this option is set, the envelope is linear, otherwise, it will be logarithmic.

Values: Off*, On
7. frcR. Forced release. This means that if this option is turned on, the release will go to the final
value, even if the sustain stage is not reached. Usually, this must be set. If this option is turned on, the
release will go to the final value, even if the sustain level is not reached. Also present in this sub-panel
are the usual Copy and Paste buttons that call up a copy-parameters or paste-parameters dialog.
Values: Off, On*
8. C.

Copy to Clipboard/Preset.

9. P. Paste from Clipboard/Preset.
10. E.
6.5.2

Amplitude Envelope Editing Window. Described in the next section.
Envelope Settings

This section describes the Amplitude Envelope Editing window.

90

Yoshimi Software Synthesizer

6.5

Envelope Settings

Figure 70: Amplitude/Filter/Frequency Envelope Editor
1.
2.
3.
4.
5.

Graph Window
FreeMode
C
P
Close

1. FreeMode.
details.

Freemode Enable. Enables the envelope editor’s Free Mode. See the next section for

Values: Off*, On

6.5.3

Freemode Envelope Settings

The envelope panels are parts that control a parameter (such as the frequencies) of a sound. For all
envelopes, there is a mode that allows the user to set an arbitrary number of stages and control points.
This mode is called Freemode. The only stage that always remains defined is the Sustain, where the
envelopes freezes until a Note Off event. The Freemode envelope editor has a separate window to set the
parameters and controls.
The main concept of the freemode editor window is the control point. One can move the points using
the mouse. In the right on the window, it shows the total duration of the envelope. If the mouse button
is pressed on a control point, it will be shown the duration of the stage where the point is.
Figure 71 ”Amplitude/Filter/Frequency Envelope Freemode Editor” on page 92shows an example of
the stock Freemode envelope editor, with Freemode enabled.

91

Yoshimi Software Synthesizer

6.5

Envelope Settings

Figure 71: Amplitude/Filter/Frequency Envelope Freemode Editor
All of the envelope editors have some common controls.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

Graph Window
Add point
E
FreeMode
Add point
Delete point
Sust
Stretch
L
frcR
Close
C
P

1. E. Editor. Graph Window. Shows a window with the real envelope shape and the option to convert
to Freemode to edit it. The envelope editor shows a window in which one can view and modify the
detailed envelope shape, or convert it to Freemode to edit it almost without restriction. By default, only
the Freemode button/checkbox is visible.
If an envelope has FreeMode enabled, it allows one to edit the graph of the envelope directly. Select
a point from the graph and move it. Notice that only the line before the currently edited point of the
envelope changes its duration. As the point is dragged, the text on the right shows the duration of the
line before it. Otherwise, the text shows the total duration of the envelope.
If the envelope doesn’t have the FreeMode mode enabled, it doesn’t allow one to move the points;
the envelope window is then useful only to see what happens if one changes the ADSR settings.
2. FreeMode. FreeMode. Provides a mode where completely arbitrary envelopes may be drawn.
Actually, the envelopes aren’t completely arbitrary, as the sustain section is always flat, and its duration
corresponds with the duration the note is held down. When this mode is enabled, the rest of the controls
shown in Figure 71 ”Amplitude/Filter/Frequency Envelope Freemode Editor” on page 92appear, and
are described in the following paragraphs.
Values: Off*, On
3. Add point. Add point. Provides a way to add a data point to the Freemode envelope. It adds the
point after the currently-selected point. One can select a point by clicking on it.
92

Yoshimi Software Synthesizer

4. Delete point.
envelope.

6.5

Envelope Settings

Delete point. Provides a way to delete the current data point from the Freemode

5. Sust. Sustain point. Sets the sustain point. The sustain point is shown using the yellow line. If the
point is at 0, then sustain is disabled. It is difficult to determine the difference between 1 and 2.
1. 0 means that sustain is disabled, and the envelope immediately starts dying, even if the note is held.
2. 1 seems to mean the sustain curve follows its course while the note is held.
3. 2 seems to mean that extra sustain kicks in after the note is released.
Values: 0, 1, 2*
6. Stretch. Envelope Stretch. How the envelope is stretched according the note. On the higher notes
the envelopes are shorter than lower notes. At the leftmost value, the stretch is zero. The rightmost sets
a stretch of 200%; this means that the envelope is stretched about four times/octave.
7. L. Envelope Linear. This setting is only available in the amplitude envelope. If enabled, the envelope
is linear. If not enabled, the envelope is logarithmic (dB).
Values: Off*, On
8. frcR. Forced Release. This means that if this option is turned on, the release will go immediately
to the final value, even if the sustain stage is not reached. Usually, this must be set. When the key is
released, the position of the envelope jumps directly to the point after the release point. If the release is
disabled, the envelope position jumps to the last point on release.
Values: Off*, On
9. Close.

Close Dialog.

Also present in this sub-panel are the usual Copy and Paste buttons that call up a copy-parameters
or paste-parameters dialog, as well as a button to bring up the editor window.
6.5.4

Envelope Settings, Frequency

These envelopes controls the frequency (more exactly, the pitch) of the oscillators. Observe Figure 68
”ASR Envelope, Frequency” on page 89. It depicts the stages of these envelopes. The dotted line represents
the real pitch of the sound without the envelope.
The frequency envelopes are divided into 3 stages: attack (see 1.); sustain (see 3.); and release (see
4.).
One question to answer is: can the attack and release go in the opposite directions, or do the knob
ranges prohibit this?

Figure 72: Frequency Envelope Sub-Panel
1.
2.
3.
4.

Enable (present on some versions of this sub-panel).
A.value or A.val
A.dt
R.dt
93

Yoshimi Software Synthesizer

5.
6.
7.
8.
9.
10.

6.5

Envelope Settings

R.val (present on some versions of this sub-panel).
Stretch
frcR
C
P
E

For Frequency Envelopes the interface has the following parameters:
1. Enable.

Enable the panel. (Present on some versions of this sub-panel).

2. A.val. Attack value. We need to figure out what this means.
Values: 0 to 127, 64*
3. A.dt.

Attack duration. Attack time.

Values: 0 to 127, 40*
4. R.dt.

Release time.

Values: 0 to 127, 60*
5. R.val. Release Value. Actually present only on the Frequency Env sub-panel.
Values: 0 to 127, 64*
6. Stretch.

Envelope Stretch. Envelope Stretch (on lower notes make the envelope longer).

Values: 0 to 127, 64*
7. frcR. Forced release. If this option is turned on, the release will go to the final value, even if the
sustain level is not reached.
Values: Off, On*
Also present in this sub-panel are the usual Copy and Paste buttons that call up a copy-parameters
or paste-parameters dialog, as well as a button to bring up the editor window.
6.5.5

Envelope Settings for Filter

This envelope controls the cutoff frequency of the filters. The filter envelopes are divided into 4 stages:
1. Attack. It begins at the Note On. The cutoff frequency starts from a certain value and glides to
another value.
2. Decay. The cutoff frequency continues to glide to the real cutoff frequency value of the filter (dotted
line).
3. Sustain. The cutoff frequency stays the same during the sustain period (dotted line).
4. Release. This stage begins on Note Off and glides the filter cutoff frequency of the note to a certain
value.

Figure 73: Filter Envelope Sub-Panel

94

Yoshimi Software Synthesizer

6.5

Envelope Settings

The newest version of this panel spells out ”Filter Envelope”. Not worth a new screen-shot. The
items in this panel are:
1.
2.
3.
4.
5.
6.
7.
8.

A.value
A.dt
D.val
D.dt
R.dt
Stretch
frcR
L

Filter Envelopes has the following parameters:
1. A.value. Attack Value. Starting Value. We need to figure out what this means.
Values: 0 to 127, 64*
2. A.dt.

Attack Duration. Attack Time.

Values: 0 to 127, 40*
3. D.val. Decay Value.
Values: 0 to 127, 64*
4. D.dt.

Decay Duration. Decay Time.

Values: 0 to 127, 70*
5. R.dt.

Release time.

Values: 0 to 127, 60*
6. Stretch.

Stretch. Envelope Stretch (on lower notes make the envelope longer).

Values: 0 to 127, 64*
7. frcR. Forced Release. If this option is turned on, the release will go to the final value, even if the
sustain level is not reached.
Values: Off, On*
Also present in this sub-panel are the usual Copy and Paste buttons that call up a copy-parameters
or paste-parameters dialog, as well as a button that bring up the editor window.
8. L.

If this option is set, the envelope is linear, otherwise, it will be logarithmic.

Values: Off*, On
6.5.6

Formant Filter Settings

This window allows one to change most of the parameters of the formant filter. It is reached by enabling a
FILTER panel in an AddSynth part, changing the Category (top right in the Filter Params sub-panel)
value to Formant, and then clicking the Edit button that sits below the category drop-down list.

95

Yoshimi Software Synthesizer

6.5

Envelope Settings

Figure 74: Formant Filter Editor Dialog
This editor dialog provides a lot of functionality:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.

Graph Window
Formants
Fr.Sl.
Vw.Cl.
C.f.
Oct.
Vowel no.
Formant
freq
Q
amp
Seq.Size
S.Pos.
Vowel
Strtch
Neg Input

6.5.6.1

Formant Parameters

9. Formants Graph Window. The graph window shows the formant frequency envelope in red, and
one or more vertical yellow lines at each formant’s center frequency. As the mouse pointer is moved over
the graph, other format center frequencies may appear, highlighted in yellow. Various mouse actions will
modify the formant graph in a manner that might be more intuitive than frobbing the spin and knob
controls.
One can control some of the parameters by placing the mouse pointer over the yellow lines representing
each formant. Hold down the left or right mouse button and move the mouse sideways: this action will
change the formant’s center frequency. The Left button down: moving vertically will change the amplitude.
The Right button down: moving vertically changes the formant’s Q factor. Anywhere on the graph: the
scroll-wheel changes the octave range, and holding Shift at the same time changes the center frequency.
Thus, one can control most of the formant features one-handed, quickly, while also playing on a
keyboard. If one’s mouse has extra buttons on the sides (mine hasn’t) you can also use these to switch
96

Yoshimi Software Synthesizer

6.5

Envelope Settings

between the formats instead of moving the mouse across to the next one. While making changes, one sees
the respective knobs/sliders moving too; these are still fully functional.
An important detail is the, uniquely, there is no ’default’ value for formant frequency. This value will
be set randomly, but, once saved, will be fixed like all the other controls.
10. Formants. Number of Formants Used.
Values: 1 to 12, 3*
11. Fr.Sl. Formant Slowness. This parameters prevents too-fast morphing between vowels.
Values: 0 to 127, 64*
12. Vw.Cl. Vowel ”Clearness”. Sets how much the vowels are kept ”clear”, that is, how much ”mixed”
vowels are avoided.
Values: 0 to 127, 64*
13. C.f. Center Frequency. This slider control changes the center frequency of the graph, in relative
units. Not quite sure how to describe this one, so play with the slider and see (and hear) for oneself.
Values: 0.09 to 10.00, 1.0*
14. Oct.

Number of Octaves. This slider controls the number of octaves shown in the graph.

Values: 0 to 10
6.5.6.2

Formant Vowel Parameters

15. Vowel no. Vowel Number. The number of the current vowel. Each number represents a different
vowel, and leads to a gross change in the shape of the formant spectrum. We do not yet have a mapping
between the numbers and which vowel is represented.
Values: 0 to 5
16. Formant. Formant Number. The current formant to be emphasized or modified. The vertical
marker in the graph moves as this value is changed.
Values: 0 to 11
17. freq. Formant Frequency. The frequency of the current formant. This knob changes the frequency
of the formant peak selected by the Formant Number control.
Values: 0 to 127
18. Q. Formant Resonance, Formant Q. The Q (resonance depth or bandwidth) of the current formant.
Used to sharpen or make the current formant sound dull.
Values: 0 to 127
19. amp. Formant Amplitude. Controls the amplitude of the current formant. Initially, one will want
to set this to the maximum value.
Values: 0 to 127
6.5.6.3

Formant Sequence Parameters

The sequence represents what vowel is selected to sound according to the input from the filter envelopes
and LFO’s. We need to learn a bit about how this setup actually works.
20. Seq Size. Sequence Size. The number of vowels in the sequence.
97

Yoshimi Software Synthesizer

6.6

Clipboard Presets

Values: 1 to 7
21. S.Pos.

Sequence Position. The current position of the sequence.

Values: 0 to 6
22. Vowel. Vowel Position. The vowel from the current position.
Values: 0 to 5
23. Strtch. How the sequence is stretched. This number probably means that the duration of the
sequence decreases as the pitch of the selected notes increase.
Values: 0 to 127
24. Neg Input. Negative Input. If enabled, the input from the envelope or LFO control is reversed.
Values: off, on

6.6

Clipboard Presets

In many of the settings panels, there are buttons labelled C, P, and E. E is the editor window, discussed
in section 6.5.3 C and P are the clipboard/preset copy and paste dialogs, respectively. These buttons
allow cut-and-paste for shorter sections of the XML configuration.
The preset dialog also provides a way to save a preset to a preset file. The naming convention for
a preset file is presetname.presettype.xpz, where presename is the name one types into the Copy to
Preset name field, presettype is the name that appears in the Type field, and xpz is the file-extension
for compressed XML preset files.
The presets are stored in the current default preset directory, which is normally ~/.config/yoshimi/presets.
Preset directories can be added to the list, and the default preset directory can be changed. See Section 4.4
”Menu / Paths” on page 62.
6.6.1

Clipboard/Preset Copy

Note that Figure 75 ”Copy to Clipboard” on page 99shows an example of the copying dialog for the
clipboard.

98

Yoshimi Software Synthesizer

6.6

Clipboard Presets

Figure 75: Copy to Clipboard/Presets
1. Type. Clipboard type for copying. This field indicates the context (e.g h. ”envamplitude”) or name
of the clipboard to which the data will be copied. If the preset is saved/copied to a file, this field becomes
the second part of the preset’s file-name.
2. Clipboard list. Clipboard list. This itemm is actually a list of preset files available to be selected
for this block of Yoshimi settings.
3. Copy to Preset. Clipboard to preset. Provides a way to specify the preset (and, indirectly, the
preset file) to which this data should be copied.
To save to a preset, type the desired name of the setting. This entry will enable this button. When
the button is pressed, the preset will be saved to the default preset directory. Be sure to set up a default
present directory where ordinary users have write permissions! A good choice for a preset directory is
~/.config/yoshimi/presets. The file-name of the of the preset will be a non-hidden file such as
my_preset.ADnoteParameters.xpz
The middle part of this name is shown near the top of the preset dialog, as a cue. There is no way
in Yoshimi to change this part of the file-name. And don’t do it using file system commands! Modify the
first part of the file-name to distinguish it from other versions of the preset. Only the type-name will ever
be visible in the Yoshimi presets Type field.
Note that Yoshimi ships with a number of non-hidden .xpz files.
4. Copy to Clipboard.
6.6.2

Copies the preset to the clipboard.

Clipboard/Preset Paste

Observe Figure 76 ”Paste from Clipboard” on page 100. It shows an example of the pasting dialog for
the clipboard.
99

Yoshimi Software Synthesizer

Figure 76: Paste from Clipboard/Presets
1.
2.
3.
4.
5.

Add point
Type
Clipboard list
Paste from Preset
Paste from Clipboard

1. Type. Clipboard type for pasting. This field indicates the context (e.g h. ”envamplitude”) or name
of the clipboard to which the data will be copied.
2. Clipboard list. Clipboard list.
3. Paste from Preset.
should be copied.

Paste from preset. Provides a way to specify the preset to which this data

4. Paste from Clipboard.

7

Clipboard to preset.

Top Panel

The Yoshimi top panel provides quick access to some major features of the application. The top panel is
shown in Figure 2 ”Yoshimi Main Screen” on page 21.
Here are the major elements of the top panel.
1.
2.
3.
4.
5.
6.

Stop!
Reset
Mixer Panel
Virtual Keybd
Vectors
Reports

100

Yoshimi Software Synthesizer

7.1

Mixer Panel Window

7. Key Shift
8. Detune
9. Volume
1. Stop!. Stop! This button causes Yoshimi to ”Cease all sound immediately!” Useful when MIDI input
suddenly stops due to a bug in the MIDI source.
2. Reset. Master Reset. Resets Yoshimi to its default state, when no default configuration files exist.
If there is a saved default state and the start with default option is set, then a reset will reload that
file. For any other situation it will set the first-time defaults.
If the Ctrl key is held down while doing a master reset, then MIDI Learn will also be cleared.
3. Mixer Panel. This button brings up a panel that shows a ”mixer” view of all of the parts that
have been created in the current state of Yoshimi.
For the details of this panel, see Section 7.1 ”Mixer Panel Window” on page 101.
4. Virtual Keybd. This button brings up the virtual keyboard, which is a way to enter MIDI
information without a real MIDI keyboard. It also provides a way to use the computer keyboard for faster
playing. See Section 7.2 ”Virtual Keyboard” on page 104.
5. Vectors. Provides the recent new feature of vector control. This has been moved moved to this
button from the Yoshimi menu. See Section 16.2 ”Vector Dialogs” on page 195.
6. Reports. This button is active only if reports are not going to stdout, by setting Yoshimi /
Settings / Main Settings / Send reports to: to Console Window (see Section 4.1.3.1 ”Menu /
Yoshimi / Settings / Main Settings” on page 34for this item.) When pressed, the Yoshimi console window
is opened.
7. Key Shift. Master Key Shift. This is the key-shift (transpose) that applies to all parts, in units
of semitones. In recent versions of Yoshimi, this range has been extended. Also note that the master key
shift can be set via the user-interface, the command-line, or (we suspect) by MIDI NRPN commands.
Values: -36 to 36, 0*
Also see the Key Shift item in Section 9 ”Bottom Panel” on page 133for more information.
8. Detune. Detune. Provides a global fine detune functionality. The fine detune mapping to the knob
values shown below is -64 to 63 cents.
Values: 0 to 127, 64* (float)
9. Volume. Volume, Master Volume. Controls the overall volume of all sounds generated by Yoshimi.
Values: 0 to 127, 90*

7.1

Mixer Panel Window

The Mixer Panel button opens the ”Mixer” window. The mixer provides a global view of the most
important adjustable parameters of all of the defined parts. There are two views, a 2x8 view and a 2x16
view. See Figure 77 ”Yoshimi Mixer Panel” on page 102, which shows the 2x8 view.
The Panel Window allows one to edit some important part parameters (instrument/volume/panning/etc.)
and it acts like a mixer. Also, this window shows VU-meters for each part. To make a part the current part,
left-click on its Edit button. To edit an instrument, right-click on the Edit button for that instrument.

101

Yoshimi Software Synthesizer

7.1

Mixer Panel Window

When using the JACK audio backend, parts can be individually routed or sent to the main L/R
outputs, either by themselves, or working with the main Left and Right outputs at the same time. This
is controlled from the panel window, and the settings are saved with all the other parameters.
The individual part outputs will have the part effects, and any Insertion effects that are linked to
them, but not the System effects. Direct part outputs carry the part and insertion effects, but not system
ones.
Yoshimi used to register all parts with JACK by default, but that is a bit much now that 64 parts
are available, so now Yoshimi uses an ”on demand” model.
In the mixer panel window one will see a field just above the Edit button. This field determines the
audio destination on a part-by-part basis, defaulting to just the main L+R pair. The direct part outputs
are only exposed on parts that are active, and have the destination set to either part or both. Once
activated, they will remain in place for the entire session, even if the part is later disabled or routed to
main only. This is so that other programs won’t see links suddenly disappear, although they will become
silent. This setting is preserved in Yoshimi’s patch sets and will be re-instated when next loaded.

Figure 77: Yoshimi Mixer Panel, 2x8 View

102

Yoshimi Software Synthesizer

7.1

Mixer Panel Window

Note that there is also a 1x16 version of this dialog (not shown). This dialog has been updated
recently; there is now a Solo control, shown in the figure above and described below.
1. Part Summary.

Parts View or Summary.

2. Enable part. Enable/Disable the part. The check-box enables/disables the part. When the part is
disabled, its controls are greyed out.
Values: Off*, On
3. Part name. Instrument name. Click on this box to change the instrument (it will open up the Edit
window.
4. Volume Slider.

Volume Bar. Changes the volume of the part.

5. VU-meter display.

Shows the level of the part when playing.

6. Panning Knob. Panning Dial-Button. Changes the panning of the part.
Values: 0 (left) to 64* (center) to 127 (right)
7. Channel.

Receive from MIDI channel. Changes the MIDI channel assigned to the part.

Values: Ch1*, Ch2, ..., Ch16
8. Main. Set Audio Destination. Sets the audio for this part to be routed to the main audio output, to
the audio specified by the part setup, or to both outputs. This option requires that Yoshimi use JACK
audio. If running ALSA, this option is disabled (greyed out). The part’s audio destination (JACK) is
saved with the patch sets, and so is the number of available parts. (ZynAddSubFX will still load these
files, but it ignores any settings it doesn’t recognise. If one re-saves in ZynAddSubFX, the settings will
be lost.)
Values: Main, Part, or Both
9. Edit. The Edit button provides two function Left mouse button: Part select. Right mouse button:
Instrument edit. This setup is a bit unintuitive, but the tooltips make it clear which click one might want
to use.
10. Solo. There are two commands that change the way Yoshimi responds to incoming MIDI, so that
only one of a group of instruments will see note-on events, but all of the group will see note-off ones.
These commands are both in the Mixer Panel.
They are referred as a Solo feature or a Channel Mixer feature. The Solo settings are saved in patch
sets, which saves a little frustration when loading one’s current favorite patch set.
Values: Off*, Row, Col, Loop, TwoWay
For these modes, if one has a programmable MIDI controller, one can set it up to activate a specific
part, or to increment/decrement which part in the set is active. The Solo drop-down list enables the
feature for either Row or Column mode, and also makes the CC spin-box visible. One uses this spin-box
to set which incoming CC changes the part that gets new notes. The value this CC sends performs the
actual change, instantly and silently. Most importantly it leaves any existing notes sounding through a
note off release and the effects tail.
Row means that all of the first 16 channels will be set to channel 1, but with only one active, and
one’s CC will dial up any of the parts, disabling the others. In Row mode the whole of the first 16 parts
are ostensibly receiving on channel 1. This mode is most useful if one wants to play live through a piece
with multiple instrument changes while playing. It works best with a foot switch that internally stores a
channel number and increments/decrements it with every press, then sends it.

103

Yoshimi Software Synthesizer

7.2

Virtual Keyboard

Although this uses all of the first 16 parts, one can set the number of parts to 32, so that one
can use the 17+ row for normal 1 through 16 channels. Also, if one has vector control set up, Solo
intelligently recognises this fact, and, for each vector it finds, it will switch in/out the whole vector column
appropriately.
Note that Row is recommended only for automation.
For running Solo in Column mode, one needs to have 32 or (preferably) 64 parts set; with this
setup, one can have up to 4 parts switched per channel, and independently of each other. However, this
works more like vector control in that you have to switch in groups of 16. For example, to control the
channel 4 column one would send 4, 20, 36, 52 to select the wanted part. This usage is more appropriate
for post recording MIDI automation.
For both of these modes, if one has a programmable MIDI controller, one can set it up to activate a
specific part, or the increment/decrement which part in the set is active.
Loop. Loop mode is a variation on the Row mode. With this mode, if one sends any value (except
zero) via the designated CC, it will increment the active part by one, rolling round to 1 after 16. This
should make even the dumbest foot controller usable.
To keep it all lightweight, one needs to load and activate all the patches and parts wanted, but that
could be obtained from a saved patch set, and the channels are only changed from the very first time one
sends the CC. To look really clever, the whole lot can be embedded in a MIDI file.
One can play a piece that needs to live-switch between 10 instruments, using a footswitch to do the
channel changes. The device holds a channel number (starting with zero) and increments/decrements it
depending on which switch is pressed, then sends the resulting CC.
At the 2017 Linux Audio Conference, it became obvious there was a possible problem with the Loop
feature. This issue arose from the ’bounce’ of a cheap footswitch that would then send two changes instead
of one. It is now resolved by adding a debounce timer of about 60ms so that a second pulse inside that
time will be ignored.
TwoWay. A further development suggested at that time has now also been implemented. This is
the addition of a TwoWay option. This option works in a similar way to Loop, but a value between 1
and 63 will step down instead of up, so that if one does make a mistake it can quickly be rectified.
With a reasonable MIDI controller one can usually set a couple of foot switches to report the same
CC but with different values. Alternatively stick to their native values and pass them through something
like QmidiRoute to do the translation.
11. Parts Layout.
Change to 1 x 16.
12. Close.

7.2

Changes the layout of the panel to the other layout, either Change to 2 x 8 or

Close the window.

Virtual Keyboard

This section describes the detailed usage of the Yoshimi virtual keyboard. The virtual keyboard lets one
play notes using the keyboard/mouse. There is no MIDI requirement.
Using the computer keyboard: The keyboard is split into three octaves. It may happen that the keys
will not trigger a note-on; this happens when another widget has the keyboard focus. To play using the
computer keyboard, click on the virtual keyboard.

104

Yoshimi Software Synthesizer

7.2

Virtual Keyboard

Using the mouse: One can use the mouse to play. If one presses the Shift key while pressing the
mouse button, the keys will be not released when the mouse button is released. If one presses the Stop!
or ”panic” button from the ZynAddSubFX/Yoshimi main window, all keys are released.

Figure 78: Yoshimi Virtual Keyboard

7.2.1
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Virtual Keyboard, Basics
Pwh
Midi Channel
Velocity
Velocity
Octave
Key Oct
Maps Oct
Controller
Cval
Close

13. Pwh. Pitch bend knob. Pitch wheel. This item is now a slider control. To reset it to the middle
position, right-click within the slider.
14. Midi Channel. MIDI Channel. Sets the MIDI channel for the virtual keyboard.
Values: 1* to 16
15. Velocity. Velocity of Notes. Sets the note-on velocity for the virtual keyboard.
Values: 1 to 127, 100*
16. Velocity. Velocity Randomness.
Values: 0* to 127
17. Octave. Transposes all of the virtual keyboard notes by the given number of octaves.
Values: 1, 2*, 3, 4, 5
18. Key Oct. Transposes the upper keys (the numbers and the ”qwert” keys); the range of these keys
is from C-4 to A-5 (replace the ’5’ with the octave). Look at the tooltips as a reminder.
Values: 1, 2*, 3, 4, 5
19. Maps Oct. Transposes the lower keys (”sdghj” and ”zxcvb”); the range of these keys is from C-3
to E-4 (replace the ’4’ with the octave). Look at the tooltips as a reminder.
Values: 1, 2*, 3, 4, 5
105

Yoshimi Software Synthesizer

20. Controller.

7.2

Virtual Keyboard

Keyboard Controller.

Values: 01:Mod.Wheel, 07:Volume, 10:Panning, 11:Expression, 64:Sustain, 65:Portamento,
71:Filter Q, 74:Filter Freq*, 75:Bandwidth, 76:FM Gain, 77:Res.c.freq, 78:Res.bw.
Sets the controller to be changed according to the Cval controller. See Section 7.2.3 ”Virtual Keyboard, Controllers” on page 106.
21. Cval. Controller value. Changes the controller value. This item consists of two parts. The top
part shows a tiny number representing the current value of the selected controller. The bottom part is a
combination value-bar and slider that one can move up and down with the mouse, to change the controller
value. Note that the Cval value might not reflect the internal value of the controller when one changes
the controller.
Values: 1 to 127, 96*
22. Close.
7.2.2

Close button.

Virtual Keyboard, ASCII Mapping

In addition to this virtual keyboard, the QWERTY (or Dvorak, or AZERTY) keyboards can be used
to produce notes. The computer keyboard layout is shown in Figure 12 ”QWERTY Virtual Keyboard
Layout” on page 36, From lowest octave to highest, the colors are blue, then green, then red. The ”white”
keys are the light colors, and the ”black” keys are the deeper colors. The range of the keys on the ”zxcvb...”
row is C3 to E4. The range of the keys on the ”qwert...” row is C4 to A5. These octave ranges can be
adjusted. The computer keyboard will produce notes only when the virtual keyboard has focus.
7.2.3

Virtual Keyboard, Controllers

This section (will give) a brief overview of the controller’s that this window supports.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

01:
07:
10:
11:
64:
65:
71:
74:
75:
76:
77:
78:

Mod. Wheel
Volume
Panning
Expression
Sustain
Portamento
Filter Q
Filter Freq.
Bandwidth
FM Gain
Res. c. freq
Res. bw.

The following figure shows the corresponding drop-down list of controller values, each preceded by
its MIDI control number, re 1.

106

Yoshimi Software Synthesizer

Figure 79: Virtual Keyboard Controllers
1. Mod. Wheel. Sets the MIDI modulation value. This control will only have an effect on certain
instruments. (It has no effect on the ”Simple Sound”, for example).
2. Volume. Controls the overall volume of the instrument being played by the virtual keyboard.
3. Panning.

Controls the left-right location of the sounds played by the virtual keyboard.

4. Expression. Controls the expression. This probably can have different effects depending on the
instrument. For example, with the ”Simple Sound”, this control is a lot like volume.
5. Sustain. Controls the sustain duration. This works even with the ”Simple Sound”. Using it makes
even this virtual keyboard capable of some ”virtuoso” expression.
6. Portamento. Controls the time of transition from one pitch to another. Using it makes even this
virtual keyboard capable of some ”virtuoso” expression.
7. Filter Q. Controls the sharpness of the filters used in an instrument. Generally requires a complex
instrument to take effect. For example, try this control with the ”Weird Pad” instrument in the ”Fantasy”
bank.
8. Filter Freq. Controls the center frequency of the filters used in an instrument. Generally requires a
complex instrument to take effect. For example, try this control with the ”Weird Pad” instrument in the
”Fantasy” bank.
9. Bandwidth.

Controls the frequency bandwidth of the filters used in an instrument.

10. FM Gain. TODO. Haven’t found a sound that exercises this control. Haven’t looked all that hard
yet.
11. Res. c. freq.

Resonance Center Frequency. Applies only if the part has resonance set up.

12. Res. bw. Resonance Bandwidth. Applies only if the part has resonance set up.

8

Effects

The Yoshimi Effects panel provides a number of special effects that can be applied to parts. Effects are,
generally, blackboxes that transform audio signals in a specified way. More exactly, the only input data
for an effect in ZynAddSubFX is an array of samples. The output is the transformed array of samples.
As described, effects have no information about anything else. For example, key presses are not
recognized. Therefore, pressing a key does not initiate the LFO. Phase knobs will always be relative to a
global LFO, dependent only on the system time.

107

Yoshimi Software Synthesizer

8.1

Effects / Panel Types

Wetness determines the mix of the results of the effect and its input. This mix is made at the effects
output. If an effect is wet, it means that nothing of the input signal is bypassing the effect. If it is dry,
then the effect has no effect.
Interpolation means that, if one MIDI-learns the controls, one can now automate them smoothly
instead of the somewhat gritty previous behaviour. This does not change processor demand when running
at 64 frames, a short number of frames. This interpolation is especially effective on ”saw” sounds with
the frequency control on the EQ low pass filter.
The Effects panel is shown in Figure 2 ”Yoshimi Main Screen” on page 21. Note that these effects
have been incorporated into a separate guitar-effects project called Rakkarrak [13].
There are two types of effects: System effects and Insertion effects. The System effects apply to all
parts and allows one to set the amount of effect that applies to each part. Also, it is possible to send
the output of one system effect to another system effect. In the user interface this is shown as ”source
- H(z) = Y (z)X(z) = 1 − d1 − d ∗ z − 1
which is used in Y (z) = H(z) ∗ X(z). So H(z) is indeed a filter, and by looking at it, we see that it
is an LP1. Note that infinite looping for d=1 is impossible.
8.7.2

Effects / Echo / User Interface

Figure 99: Effects Edit, Echo
124

Yoshimi Software Synthesizer

8.8

Effects / EQ

TODO (yoshimi): Pan lets one apply panning of the input.
1.
2.
3.
4.
5.

Delay
LRdl.
LRc.
Fb.
Damp

1. Delay. The delay time of one echo.
2. LRdl. Left-Right-Delay. The delay between left/right channels. If it is set to the middle, then both
sides are delayed equally. If not, then the left echo comes earlier and the right echo comes (the same
amount) later than the average echo; or the other way round. Set the knob to 0 to hear on the right first.
3. LRc.

Echo Crossover. The ”crossing” between left/right channels.

4. Fb. Echo feedback. Feedback describes how much of the delay is added back to the input. Set Fb.
to the maximum to hear an infinite echo, or to the minimum to just hear a single repeat.
5. Damp. Echo damping. How high frequencies are damped in the Echo effect. The Damp value lets
the LP1 reject higher frequencies earlier if increased.
8.7.3

Effects / Echo / NRPN Values

Effects can be controlled via ”non-registered parameter numbers”, or NRPNs. This section details the
value supported by the Echo effect. TODO.

8.8

Effects / EQ

EQ is a parametric equalizer. An equalizer is a filter effect that applies different volume to different
frequencies of the input signal. This can, for example, be used to ”filter out” unwanted frequencies.
ZynAddSubFX’s implementations follow the ”Cookbook formulae for audio EQ” ([5]) by Robert BristowJohnson.
On the equalizer graph there are 3 white vertical bars for 100Hz, 1kHz, 10kHz.
8.8.1

Effects / EQ / Circuit

8.8.2

Effects / EQ / User Interface

Figure 100: Effects Edit, EQ
125

Yoshimi Software Synthesizer

8.8

Effects / EQ

We describe all parts of the GUI here. The term passband (or often just ”band”) refers to the amount of
frequencies which are not significantly attenuated by the filter.
1.
2.
3.
4.
5.
6.
7.
8.

Gain
Graph
B
T
Freq
Gain
Q
St

Global:
1. Gain.

Amplifies or reduce the signal that passes through EQ.

2. Graph. Shows the graph of the EQ frequency response, based on the two Gain settings, T., Gain,
Gain,
3. B. Set the current frequency band number (or filter). B lets one choose the passband number.
Multiple passbands define one filter. This is important if one wants multiple filters to be called after each
other. Note that filters are commutative.
Values: 0*, 1, ... 7
Bands:
4. T.

Set the type of the filter.

Values: Off*, Lp1, Hp1, Lp2, Hp2, Bp2, N2, Pk, Lsh, Hsh
Note that, for certain values of the B parameter, some of the T values will not be available.
5. Freq. The frequency of the filter. Freq describes the frequencies where the filter has its poles. For
some filters, this is called the ”cutoff” frequency. Note, however, that a bandpass filter has two cutoff
frequencies.
6. Gain (Filter). The gain of the filter. Gain is only active for some filters (Pk, Lsh, and Hsh, and it
sets the amount of a special peak these filters have. Note that for those filters, using the predefined gain
makes them effectless.
7. Q. The Q (resonance, or bandwidth) of the filter. Resonance lets one describe a peak at the given
frequency for filters with 2 poles. This can be compared to real physical objects that have more gain at
their resonance frequency.
8. St. Number of additional times the filter will be applied (in order to do very steep roll-off - eg. 48
dB/octave). St. lets one define multiple filter stages. This is equivalent to having multiple copies of the
same filter in sequence.
Values: 0*, 1, ... 4
8.8.3

Effects / EQ / NRPN Values

Effects can be controlled via ”non-registered parameter numbers”, or NRPNs. This section details the
value supported by the EQ effect.
TODO.

126

Yoshimi Software Synthesizer

8.9

8.9

Effects / Phaser

Effects / Phaser

The Phaser is a special dynamic filter. The result is a sweeping sound, which is often used on instruments
with a large frequency band, like guitars or strings. This makes it typical for genres like rock or funk,
where it is often modulated with a pedal, but also for giving strings a warm, relaxing character.
8.9.1

Effects / Phaser / Circuit

We have no circuit diagram, just a picture of the results of the phaser effect in the form of a spectrogram.

Figure 101: Phaser Circuit Spectrogram
The audio signal is split into two paths. One path remains unchanged. The other one is sent to a
delay line. The delay time (the so-called phase) is made dependent on the frequency. Therefore, an all-pass
filter is applied to the signal, which preserves the amplitude, but determines the delay time. In the end,
both paths are added.
The spectrogram describes how this works on white noise. Light blue indicates that the frequency
is not present at the current time, and dark blue indicates the opposite. The dark blue peaks appear if
the delay time is very short, because then, the second path almost equals the first one, which results in
duplication of the signal. If the delay line is very long, then it is – in the case of white noise – totally at
random whether the delayed signal currently duplicates the unchanged path, or whether it cancels it out
to zero. This random effect results in white noise between the clear blue structures.
ZynAddSubFX offers different types of phasers:
• Analog and ”normal” phasers. Analog phasers are more complicated. They sound punchier,
while normal phasers sound more fluently. However, analog filters usually need more filter stages to
reach a characteristic sound.
• Sine and triangle filters. Note that an analog triangle filter with many poles is a barber pole
filter and can be used to generate Shepard Tones, i.e. tones that seem to increase or decrease with
time, but do not really.
• The LFO function can be squared. This converts the triangle wave into a hyper sine wave. The
sine squared is simply a faster sine wave.

127

Yoshimi Software Synthesizer

8.9

Effects / Phaser

For the normal phaser, Figure 102 ”Effects Edit, Phaser” on page 128, below, shows the controls
referred to in this list of steps.
1. First, the LFO is generated. There are 4 controls (Freq, Rnd, LFO type, St.df ) that define the
LFO.
2. Phase and Depth are applied afterwards in the usual way. For the analog phaser (see the Analog
check-box), Phase is not implemented yet.
3. If hyper is set, then the LFO function is squared.
4. Next, the input is used.
5. The Analog setting decides whether the phaser is analog or ”normal”.
6. Pan applies panning to the original input in every loop.
7. Next, barber-pole phasing is applied (Analog only).
8. Fb applies feedback. The last sound buffer element is (after phasing) multiplied by this value and
then added to the current one. For the normal filter, the value is added before, and, for analog, after
the first phasing stage.
9. Next, based on the setting of Stages, phasing stages are applied. The dist control sets the amount
of distortion when applying the phasing stages. This setting has only effect for analog phasers.
10. The feedback is applied next, for analog filtering.
11. In the end, the Substract option inverts the signal, multiplying it by -1.
8.9.2

Effects / Phaser / User Interface

Figure 102: Effects Edit, Phaser
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

Preset.
Depth
Phase
Stages
Subtract
hyper
Analog
D/W
Pan
Freq
Rnd
St.df
Fb
128

Yoshimi Software Synthesizer

8.9

Effects / Phaser

14. L/R
15. dist
16. LFO
The extra fields that are shown if the effect is an insertion effect are not shown. They are still need
to be described.
9. Preset.

Phaser Presets.

Values: Phaser 1, ...
10. Depth.

Phaser Depth. Phaser LFO Depth?

Values: 0% to 100%
11. Phase.

Phaser Phase.

Values: 0% to 100%
12. Stages.

Phaser Stages.

Values: 1*, 2, ... 12
13. Subtract.

Phaser Subtract. Checking this box inverts the output.

Values: Off*, On
14. hyper.

Phaser Hyper. Checking this box sets the ”hyper-sine” mode, whatever that is.

Values: Off*, On
15. Analog.

Phaser Analog. Checking this box emulates the ”FET”. Field-effect transistor?

Values: Off*, On
16. D/W. Phaser Dry/Wet. This knob sets the effect volume. The dry value ranges from 0 dB down to
”inf” (infinity) dB, while the wet values is the complementary range, from ”inf” dB to 0 dB. Confusing?
The tooltip tells the user exactly what the settings are.
17. Pan.

Phaser Panning. Ranges from 100% left to centered to 100% right.

18. Freq. Phaser Freq. Set the Phaser LFO frequency. Ranges from 0.0 Hz to 30.68 Hz.
19. Rnd.

Phaser Randomness. Set the Phaser LFO randomness. Ranges from 0.0% to 100% percent.

20. St.df. Left/Right Channel Phase Shift. The phase difference between LFO for left/right channels.
Ranges from -180 degrees (left 180) to equal to +180 degrees (right 180). The actual end values can differ
a little from 180.
21. Fb.
22. L/R.

Phaser Feedback. Ranges from -99% to 99%.
L/R. How the left/right channels are routed to output:

1. leftmost. Left to left and right to right.
2. middle. Left+right to mono.
3. rightmost. Left to right, and right to left.
23. dist.
24. LFO.

Phaser Distortion. Ranges from 0% to 100%.
Phaser LFO Type.

Values: SINE, TRI

129

Yoshimi Software Synthesizer

8.9.3

8.10

Effects / Reverb

Effects / Phaser / NRPN Values

Effects can be controlled via ”non-registered parameter numbers”, or NRPNs. This section details the
value supported by the Phaser effect.

8.10

Effects / Reverb

A Reverberation actually expresses the effect of many echoes being played at the same time. This can
happen in an enclosed room, where the sound can be reflected in different angles. Also, in nature, thunders
approximate reverbs, because the sound is reflected in many different ways, arriving at the listener at
different times.
In music, reverbs are popular in many ways. Reverbs with large room size can be used to emulate
sounds like in live concerts. This is useful for voices, pads, and hand claps. A small room size can simulate
the sound board of string instruments, like guitars or pianos.
8.10.1

Effects / Reverb / Circuit

As mentioned, a reverb consists of permanent echo. The reverb in ZynAddSubFX is more complex than the
echo. After the delaying, comb filters and then allpass filters are being applied. These make the resulting
sound more realistic. The parameters for these filters depend on the roomsize. For details, consider the
information about Freeverb.

Figure 103: Reverb Circuit Diagram

8.10.2

Effects / Reverb / User Interface

The user-interface for the Reverb effect depends on whether it is used as a System effect or an Insertion
effect. Observr Figure 104 ”Effects Edit, Reverb” on page 131, where the Insertion mode is shown. In
the System mode, only the light-blue portion of the user-interface appears.

130

Yoshimi Software Synthesizer

8.10

Effects / Reverb

Figure 104: Effects Edit, Reverb
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

Preset
Type
R.S.
D/W
Pan
Time
I.del
I.delfb
BW
E/R
LPF
HPF
Damp

There is a fourth type we have screen captures for, but we can’t seem to navigate to them now! Are
these now out-of-date screen captures?
1.
2.
3.
4.
5.
6.
7.

FX No.
bypass
EffType
Send To
C
P
Close

1. Preset.

Reverb Preset.

131

Yoshimi Software Synthesizer

8.10

Effects / Reverb

Figure 105: Reverb Preset Dropdown
Values: Cathedral 1, Cathedral 2, Cathedral 3, Half 1, Half 2, Room 1, Room 2, Basement,
Tunnel, Echoed 1, Echoed 2, Very Long 1, Very Long 2
2. Type.

Reverb Type. The combobox lets one select a reverb type.

Figure 106: Reverb Type Dropdown
• Freeverb is a preset. It was proposed by Jezar at Dreampoint.
• Bandwidth has the same parameters for the comb and allpass filters, but it applies a unison before
the LPF/HPF. The unison’s bandwidth can be set using BW.
• Random chooses a random layout for comb and allpass each time the type or the roomsize is being
changed.
Values: Random, Freeverb, Bandwidth
3. R.S.

Reverb Room Size. The room size defines parameters only for the comb and allpass filters.

4. D/W. Reverb Dry/Wet Setting. This setting controls much of the original signal is mixed with the
reverb effect.
5. Pan.

Reverb Panning. Pan lets one apply panning. This is the last process to happen.

6. Time. Reverb Time. Set the duration of late reverb. Time controls how long the whole reverb shall
take, including how slow the volume is decreased.
7. I.del. Reverb Initial Delay. The initial delay (I.del) is the time which the sounds need at least to
return to the user.
8. I.delfb. Reverb Initial Delay Feedback. Sets the initial delay feedback. The initial delay feedback
(I.delfb) says how much of the delayed sound is added to the input. It is not recommended to use this
setting together with low initial delays).
9. BW.

Reverb Bandwidth.

10. E/R.

Reverb E/R. Echo Reflection? TODO!

11. LPF.

Reverb Lowpass Filter. This filter is applied before the comb filters.
132

Yoshimi Software Synthesizer

12. HPF.

Reverb Highpass Filter. This filter is applied before the comb filters.

13. Damp. Reverb Damp. Damp determines how high frequencies are damped during the reverberation.
The dampening control (Damp) currently only allows to damp low frequencies. Its parameters are used
by the comb and allpass filters.
14. FX No. Reverb FX Number.
Values: 1 to 8?
15. bypass.

Reverb FX Bypass.

Values: Off*, On
16. EffType.

Reverb Effect Type.

Values: Reverb, EQ, Echo, etc. TODO
17. Send To. Reverb Send To. This user-interface drop-down is shown only in the Part / Edit /
Effects version of the effects panel.
Values: Next Effect, Part Out, Dry Out
18. C.

Reverb Copy.

19. P. Reverb Paste.
20. Close.
8.10.3

Close Window.

Effects / Reverb / NRPN Values

Effects can be controlled via ”non-registered parameter numbers”, or NRPNs. This section details the
values supported by the Reverb effect.
TODO: detail the values supported by the Reverb effect.

9

Bottom Panel

9.1

Bottom Panel Controls

The Yoshimi bottom panel provides quick access to some major features of the application. The bottom
panel is shown in Figure 2 ”Yoshimi Main Screen” on page 21.
Here are the major elements of the bottom panel.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

Part
of
Instrument Name
Edit (Instrument Edit Button)
Midi
Mode
Enabled
Portamento
Velocity Sens
Velocity Offset
Pan

133

Yoshimi Software Synthesizer

12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.

Volume
Controllers
Minimum Note
Maximum Note
m
R
M
Key Shift
Key Limit
System Effect Sends
System Effect Sends
System Effect Sends
System Effect Sends
Sound Meter

9.1

Bottom Panel Controls

1
2
3
4

1. Part. Part Number.
Values: 1 to 16; 1 to 32; 1 to 64
Show and set current part. The maximum number of values depends on the Part of selection.
2. of.

Maximum Number of Parts.

Values: 16*, 32, 64
Yoshimi now has up to 64 parts in blocks of 16. One can now decide how many one wants to have
available using this user-interface item. By default these are wrapped around the normal MIDI channels,
so that parts 1, 17, 33, and 49 all respond to channel 1 messages. This was originally implemented for
Vector Control, working with up to four sounds on a channel (similar to the Yamaha SY hardware series).
However, these additional parts have other less obvious uses. One of these is getting far more than
16 completely independent tracks addressed by just the 16 channels. Most tunes run with instruments
having a relatively narrow pitch range, and this is what we can make use of.
As an example, in Yoshimi’s main window select 64 parts, then on part 1 set (say) ’Steel Bass’ and
maximum note as 52 (E). Next select part 17 and enable it (easiest to use the mixer panel for this) set
’Tunnel Piano’, the minimum note as 53 and maximum as 71 (B). Finally, enable part 33, set ’Rushes’,
and set its minimum note as 72, but key shift down an octave. With a 61 note keyboard that gives one
quite a useful working range, on just one channel.
However, the idea really comes into its own with a sequencer like Rosegarden where one can record
multiple parts over the full MIDI range and track them to the same channel. Also, in Rosegarden the
parts can be separately named, and identified as ’Bass’ and ’Treble’ in the notation editor. This setup
makes it very convenient for those wanting a more formal musical layout.
So, with very little effort, one can now have 48 tracks playing at once! Ummm, one does need a decent
processor though :) Yes, one could run more instances of Yoshimi on different MIDI ports, but where’s
the fun in that?
Another possibility is obtaining very smooth transitions between different sounds on the same channel.
If one uses program change to do this, that part has to be muted, and there is a variable time lag (while
the new part is loaded) before one can play any more notes on that channel. However, with 32 and 64
parts one can actually overlap notes with different instruments on a playing channel.
This setup is accomplished by pre-loading the wanted instruments, then switching channel numbers.
If (via the direct part NRPN) one adds 16 to a sounding part’s channel number, it will then only respond to
134

Yoshimi Software Synthesizer

9.1

Bottom Panel Controls

Note Off events. To bring it back into operation simply restore the original channel number. An example:
1.
2.
3.
4.

Enable 32 parts.
Load ’Simple Chimes’ into part 0 (part 1 in the GUI).
Load ’Silver Bell’ into part 16 (part 17 in the GUI).
In your sequencer, via direct part NRPN set part 16 to channel 16. This will now be ’whited out’
in the GUI.
5. Record some notes to channel 0 (1 in human-readable terms).
6. In the sequencer, just before the first note that one wants to sound as ’Silver Bell’, insert two direct
part NRPNs, with one to set part 0 to channel 16, and the other to set part 16 to channel 0.
Now, when played through, the last ’Simple Chimes’ note will have its full release and reverb tail,
blending into the first ’Silver Bell’ note. To go back to using ’Simple Chimes’ just reverse the NRPNs.
The only time this gets complicated is if the new note is exactly the same pitch as the old one, in which
case the NRPNs need to be between the old note-off and the new note-on.
By default, all the upper parts (numbers greater than 16) are mapped to the same MIDI channel
numbers as the lowest ones, but have independent voice and parameter settings. They cannot normally
receive independent note or control messages. However, vector control will intelligently work with however
many one has set, as will all the NRPN direct part controls. See Section 16.3 ”Vector / Vector Control”
on page 200.
This item is a fairly new feature of Yoshimi (as of version 1.3.5).
3. Instrument Name. Instrument Name. Left-click to open the Bank window. Right-click to change
the name of the current instrument. One needs to change only one character to make the instrument
name savable. If one goes into the instrument editor and changes engine controls, then ’Simple Sound’
gets changed to ’No Title’, and this change can be saved. Blocking the saving of ’Simple Sound’ was done
for two reasons. Initially there was no name at all by default, and people were saving them like that. The
problem then was once re-loaded you had no idea what was there, or even if there was anything at all
except the basic sound. Also, to save time and space, when saving patch set or state files, no ’empty’
instruments are included, and that name is a quick way to identify such an instrument; the alternative
would be to compare every single element of the instrument against it’s default setting.
If one changes the name of the instrument, be sure to select Menu / Instrument / Save Instrument to preserve that change.
The name now has color-coding to indicate the instrument’s use of ADDsynth, SUBsynth, or PADsynth.
One can see the ”red” color for ADDsynth in the figure for the bottom panel. ”Blue” would indicate SUBsynth, and ”green” would indicate PADsynth.
4. Edit. Instrument Edit button. This button brings up the instrument-edit dialog shown in Figure 109
”Part Edit (Instrument) Dialog” on page 141.
This dialog provides a very broad overview of the instrument, and provides access to far more detailed
dialogs to edit the instrument. This dialog is explained in detail in Section 9.3 ”Bottom Panel Instrument
Edit” on page 141.
There are some additional tricks to this button. From the main window there are shortcuts to go
directly to the Add, Sub, and Pad editors (in kit mode this only applies to item 1). Holding down A, S, P,
for AddSynth, SubSynth, and PadSynth, respectively, while left-clicking the Edit button, will open their
respective editors, but only if the desired engine is enabled; otherwise, the keystroke will be ignored, but
the normal part-edit window will come up.
135

Yoshimi Software Synthesizer

9.1

Bottom Panel Controls

Using the right mouse button to click will enable the engine and then open the editor. The same is
true with S for SUBSynth and P for PADSynth.
D can be used as an alternative to P, which is nice for QWERTY keyboards. This is not perfect, and
if one’s timing is a bit quick it might miss, and just open the normal part selection window.
Holding down the K key then clicking will open the Kit editor. The E key opens the part’s Effects
window.
5. Midi.

MIDI Channel.

Values: 1 to 16
6. Mode. Note-generation mode. Sets the mode (polyphonic/monophonic/legato). In Polyphonic mode,
multiple simultaneous notes are supported. In Monophonic mode, only one note is supported. In Legato
mode, the sound flows smoothly from note to note without any breaks. This mode is particularly effective
with Portamento. If one uses the foot-pedal CC to enable it, the text in the Mode icon will show this
status, and then will drop back to whatever it was previously when the pedal is released.
However, one cannot have legato mode and drum mode (see Section 13 ”Kit Edit” on page 183)
at the same time. If drum mode is set when trying to enable legato, drum mode takes priority, and the
”Legato” label will be shown in red. Cancelling drum mode makes legato valid, and the ”Legato” label
will turn black again. If using a legato MIDI pedal, Yoshimi’s part mode will show the legato change, and
will set the label red if an instrument in drum mode is on in that part.
Values: Poly, Mono, Legato
7. Enabled.

Enable the part. If the Part is disabled it doesn’t use CPU time.

Values: Off*, On
8. Portamento. Enable/disable the portamento. One can set the duration and other parameters by
opening the Controllers window.
Values: Off*, On
9. Velocity Sens.

Velocity Sensing Function.

Values: 0 to 127, 64*
10. Velocity Offset.

Velocity Offset.

Values: 0 to 127, 64*
11. Pan.

Pan.

Values: 0 to 127, 64*
12. Volume. Instrument Volume.
Values: 0 to 127, 96*
The default volume for ADD parts (overall) and SUB parts is 96; the default volume for SUB parts
is 90; the ADD voice volumen is 100; and effects volumes vary heavily with the effect.
13. Minimum Note. Minimum note the part receives.
Values: 0* to 127
14. Maximum Note. Maximum note the part receives.
Values: 0 to 127*
15. m.

Minimum Note Capture Button.
136

Yoshimi Software Synthesizer

9.1

Bottom Panel Controls

Set minimum note to last note played.
16. R.

Minimum and Maximum Note Reset Button.

Reset the minimum key to 0 and the maximum key to 127.
17. M.

Maximum Note Capture Button. Sets the maximum note to the last pressed key.

18. Key Shift. Key Shift. This value is like the master Key Shift in the top panel, but it applies only
to the current part active in the bottom panel. In recent versions of Yoshimi, it has been extended to a
larger semitone range. Also note that the key shift can be set via the user-interface, the command-line, or
by MIDI NRPN commands. With NRPN, this part shift can be set by direct part control or by channel
number.
Values: -36 to 36, 0*
Also see the Key Shift item in Section 7 ”Top Panel” on page 100for more information.
19. Key Limit. Maximum keys to be allocated for this part.
Values: 0 to 60, 20*
20. System Effect Sends 1, 2, 3, and 4.
TODO: Describe how these sends work.
Values: 0 to 127*
21. Sound Meter. VU Meter. Sound Meter.
This discussion of ”Audio Output and Levels” comes from Output Levels.txt.
At the bottom of the main window there is a pair of horizontal grids representing a bargraph type
display. The upper one is for the left hand channel and the lower one for the right hand one. The grid
divisions each represent 1 dB, and the brighter divisions are therefore 5 dB. The thicker bright divisions
therefore being 10 dB. The overall scale range is -48 dB to 0 dB.
As the output level rises pale blue strips will light up in these grids. These fast responding bars are
the peak levels and should never be allowed to go above 0 dB, otherwise the output is likely to be clipped
and distorted. There is also a pair of boxes on the end of these grids which will show the highest peak
level seen. If clipping has happened the box background will change from black to red. To clear the clip
and peak level indication, click on this area.
As well as the peak level, the display shows a much slower responding RMS level, as a yellow line on
top of the blue bar. This gives and indication of the apparent accoustic power.
If one opens the panel window one will see vertical bargraphs for each individual part. On these, the
faint bars are 5dB steps and the bright ones 10dB. The peak level isn’t shown numerically, but if one
exceeds 0dB a thick red line will appear at the top of the bargraph. This is also cleared from the box in
the main window.
9.1.0.1

Tip: Using the VU Meter

The VU meter topic is very interesting, because one of the problems is a tendency to overdrive it by way
of sustain pedal. At the last test, it showed up in the output before it showed up in the VU meter, so the
VU meter will help a lot in analysis.
One way to avoid overdrive is to keep polyphony to 20 on each patch (two or three patches per
Yoshimi instance, with two or three Yoshimi simultaneous instances depending on the patch). Another
item which helps a lot is compression (for example, the Calf multiband compressor is amazingly good.
137

Yoshimi Software Synthesizer

9.2

9.2

Bottom Panel / Controllers

Bottom Panel / Controllers

Figure 107: Controllers Dialog
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.

Exp MWh
ModWh
Exp BW
BwDepth
PanWdth
FltQ
FitCut
Vol Rng
PWheelB.Rng
Expr
Breath (1.5.6)
FMamp
Vol
Sustain
Resonance (section)
PortaMento (section)
Reset all controllers
Close

1. Exp MWh. Exponential Modulation Wheel. Changes the modulation scale to exponential.
Values: Off*, On
2. ModWh.

Modulation Wheel Depth.

Values: 0 to 127, 80*
3. Exp BW. Exponential Bandwidth Controller. Changes the bandwidth scale to exponential.
Values: Off*, On
4. BwDepth.

Bandwidth Depth.

Values: 0 to 127, 64*
5. Exp BW. Exponental Bandwidth. Changes the bandwidth scale to exponential.
Values: 0 to 127, 64*
6. PanDpth. Panning Depth.
Values: 0 to 64*
138

Yoshimi Software Synthesizer

7. FltQ.

9.2

Bottom Panel / Controllers

Filter Q (resonance) Depth.

Values: 0 to 127, 64*
8. FltCut.

Filter Cutoff Frequency Depth.

Values: 0 to 127, 64*
9. Vol Rng. Volume Range.
Values: 64 to 127, 64*
10. PWheelB.Rng.

Pitch Wheel Bend Range (cents). 100 cents = 1 halftone.

Values: -6400 to 6400, 200*
11. Expr.

Expression Enable. Enable/disable expression.

Values: Off, On*
12. Breath.

Breath.

Breath control was once a ”per part” setting, but now it is a ”per instrument” setting. By default,
this setting is enabled. This new switch is visible from version 1.5.6 on, and it is saved only in new .xiy
format. See Section 2 ”Configuration Files” on page 22for details on the new format.
Values: Off, On*
13. FMamp. FM Amplitude Enable. Enable/disable receiving Modulation Amplitude controller (76).
Values: Off, On*
14. Vol. Volume Enable.
Values: Off, On*
Enable/disable receiving volume controller. Sensitivity to MIDI volume change (CC7) is now variable
in ’Controllers’ in the same way as pan width etc. The nnumeric range is 64 to 127; the default at 96 gives
the same sensitivity as before at -12dB relative to the GUI controls. 127 gives 0dB and 64 gives -26dB
15. Sustain.

Sustain Pedal Enable. Enable/disable sustain pedal.

Values: Off, On*
16. Reset all controllers.
17. Close.
9.2.1

Reset All Controllers.

Close Window.

Bottom Panel / Controllers / MIDI Controls

There is a new, small window, accessed by right-clicking on the Controllers button on the bottom panel.
This window has five controls that are MIDI-learnable.

Figure 108: MIDI Controls from Controllers Button
1. Modulation
139

Yoshimi Software Synthesizer

2.
3.
4.
5.

9.2

Bottom Panel / Controllers

Expression
Filter Q
Filter Cutoff
Bandwidth

Will has one keyboard that sends aftertouch messages, and all of these work correctly with it. An
interesting effect was to have a sawtooth wave set up in AddSynth and the frequency LFO level turned
up. Then, he learned Modulation, Expression, and Filter Cutoff, all on aftertouch. He then reduced
their ranges in the MIDI learn window and the effect was very interesting. Try it!
Because of the way this is implemented, these controls are also accessible via CLI direct access for
both for read and write, and the knobs will respond to this, as well as to learned controls.
1. Modulation.
2. Expression.

Affects the (amplitude) modulation of all engines in the part.
Affects the ”expression” of all engines in the part.

3. Filter Q. Affects the sharpness of the filtering of all engines in the part.
4. Filter Cutoff. Affects the brightness of all engines in the part by increasing or reducing the corner
frequency.
5. Bandwidth. The master bandwidth control affects all engines in a part, and is real-time. It is also
highly dependent on the harmonic structure, so is most effective on SubSynth sounds. Like all of these
MIDI controls, it is a part control, not an instrument setting, and is never saved. It is available in the
window shown above, the command-line, and it is learnable. It considerably ”expands” some instruments.
9.2.2

Bottom Panel / Controllers / Resonance

1. CFdepth.

Resonance Center Frequency Depth, Center Frequency Controller Depth.

Values: 0 to 127, 64*
2. BWdepth.

Resonance Bandwidth Depth, Resonance Bandwidth Controller Depth.

Values: 0 to 127, 64*
9.2.3

Bottom Panel / Controllers / Portamento

1. Rcv. Portamento Receive, Receive Portamento Controllers. Determines if the part receives Portamento On/Off (65) controller.
Values: Off, On*
2. Proprt.

Portamento Proportional, Enable Proportional Portamento (over fixed portamento).

Values: Off*, On
3. time.

Portamento time. The duration of the portamento.

Values: 0 to 127, 64*
4. t.dn/up.

Portamento Time Stretch (up/down).

Values: 0 to 127, 64*
5. threshx100 cnt. Threshold of the Portamento. The minimum or maximum difference of notes in
order to do the portamento (x 100 cents). It represents the minimum or the maximum number of halftones
(or hundred cents) required to start the portamento. The difference is computed between the last note
140

Yoshimi Software Synthesizer

9.3

Bottom Panel Instrument Edit

and current note. The threshold refers to the frequencies and not to MIDI notes (one should consider this
if one uses microtonal scales).
Values: 0 to 127, 3*
6. th.type. Threshold Type (min/max). Checked means that the portamento activates when the
difference of frequencies is above the threshold (”thresh”); not checked is for below the threshold.
Values: Off, On*
7. Propt.

Proportional Portamento. If set, the portamento is proportional to ratio of frequencies.

Values: Off, On*
8. Prp.Rate. Distance required to double change from nonproportional portamento time. The ratio
needed to double the time of portamento.
Values: 0 to 127, 80*, requires Proprt. = On
9. Prp.Depth.

The difference from nonproportional portamento.

Values: 0 to 127, 90*, requires Proprt. = On

9.3

Bottom Panel Instrument Edit

The main instrument-editing (”part edit”) dialog is relatively simple, and provides for editing information that identifies the instrument, and buttons to access the more complex dialogs of the ADDsynth,
SUBsynth, PADsynth, Kit Edit, and Effects components.

Figure 109: Part Edit (Instrument) Dialog

141

Yoshimi Software Synthesizer

9.3

Bottom Panel Instrument Edit

This dialog provides a very broad overview of the instrument, and provides access to far more detailed
dialogs to edit the instrument. This dialog is called up by the Edit button on the bottom panel of the
main Yoshimi main screen.
1.
2.
3.
4.
5.

6.

7.

8.
9.
10.
11.

Type
Author and Copyright
Default
Comments
ADDsynth
1. Enabled
2. Edit
SUBsynth
1. Enabled
2. Edit
PADsynth
1. Enabled
2. Edit
Kit Edit
Effects
Rnd. Det., which is now a Humanise slider.
Close

The ADDsynth, SUBsynth, PADsynth, Kit Edit, and Effects dialogs are detailed in separated
sections, as they are all very complex dialogs with many sub-dialogs.
1. Type.

Instrument Type. Instrument Category.

This dropdown dialog allows one to tag the type of instrument, to indicate what category of instruments it fits into. The following figure shows the types.

Figure 110: Instrument Type Drop-down List
Values: Piano, Chromatic Percussion, Organ, Guitar, Bass, Solo Strings, Ensemble, Brass,
Reed, Pipe, Synth Lead, Synth Pad, Synth Effects, Ethnic, Percussive, Sound Effects
142

Yoshimi Software Synthesizer

2. Author and Copyright. This field provides space for identifying the author, copyright, and license
for the part. Starting text can be saved by using the Default button, described in the next section.
3. Default. In the main part Instrument Edit window there is a new Default button at top right.
We hope this encourages people to fill in the Author and Copyright information. To set it up, fill in the
text field as normal, then, while holding down the Ctrl key, click on the button (left or middle mouse
click) . This text will now be stored in one’s Yoshimi configuration directory, and whenever one creates a
new instrument, just click on the Default button, and the saved text will be filled in.
This button was added to discourage users from adding supplementary information directly into the
XML file.
4. Comments.

Allows free-form comments and notes to be entered.

5. ADDsynth.
1. Enabled. Enables this synth type to be used in the part/instrument. When enabled, its marker
color, red, is shown.
2. Edit. Brings up the editing dialog presented in Figure 111 ”ADDsynth Edit/Global Dialog” on
page 144. There one will find a full discussion of that dialog.
6. SUBsynth.
1. Enabled. Enables this synth type to be used in the part/instrument. When enabled, its marker
color, blue, is shown.
2. Edit. Brings up the editing dialog presented in Figure 147 ”SUBsynth Edit Dialog” on page 178.
There one will find a full discussion of that dialog.
7. PADsynth.
1. Enabled. Enables this synth type to be used in the part/instrument. When enabled, its marker
color, green, is shown.
2. Edit. Brings up the editing dialog presented in Figure 125 ”PADsynth Edit Dialog” on page 163.
There one will find a full discussion of that dialog.
8. Kit Edit. Brings up the editing dialog presented in Figure 151 ”Kit Edit Dialog” on page 183.
There one will find a full discussion of that dialog.
9. Effects. Brings up the editing dialog presented in Figure 90 ”Effects Edit, No Effect” on page 114.
There one will find a full discussion of that dialog.
When the effects panels are brought up from this button, there are two extra user-interface elements:
Bypass and Close. If the Bypass item is checked, then the effect is not used; it is taken out of the
circuit.
10. Humanise (Rnd. Det.). Small Random Detune, Humanise. Sets the random detune value of the
whole part in cents. In the most recent versions of Yoshimi, this item has been replaced by a Humanise
slider. This value is an experimental feature. It lends some complexity or piquancy to the part.
Values: 0* to 50
11. Close.

10

Closes the Edit window.

ADDsynth

The Yoshimi ADDsynth (also spelled ”ADsynth” or ”AddSynth”) dialog is a complex dialog for creating
an instrument. This is the most complex, most advanced and most sophisticated part of the synthesizer
and allows one to edit the parameters that apply to all the voices of ADDsynth.
143

Yoshimi Software Synthesizer

ADDsynth, a primarily additive synthesis engine, is one of the three major synthesis engines available
in Yoshimi/ZynAddSubFX. The basic concept of this engine is the summation of a collection of voices,
each of which consists of oscillators.
”ADDsynth” (sometimes spelled ”ADsynth”) or ”ADnote” is a complex engine which makes sounds
by adding a number of voices. Each one has filters, envelopes, LFOs, morphing, modulation, resonance,
etc. Each voice includes a very powerful waveform generator with up to 128 sine/non-sine harmonics.
One can use Fourier synthesis, or if one doesn’t like it, one can use wave-shaping/filtering of functions.
This engine includes anti-aliasing. Modulation includes ring modulation, phase modulation, and more.
The modulators can have any shape. [27]
There are two oscillators per voice: the voice oscillator and the modulation oscillator. For the voice
oscillator, one can use one defined for that voice (internal) or link to the oscillator of any lower-numbered
voice. For the modulation oscillator one can have a locally defined one (internal) or one can have two
alternatives: either the modulation oscillator from a lower-numbered voice, or the oscillator from the
lower-numbered voice itself (that voice must be enabled).
In the voice window, the Oscillator Source gives the choice of previous voice oscillators and the
Local Oscillator gives you the choice of previous modulation oscillators and the current (internal)
oscillator.
The sum of the voices are passed through filters and amplification to produce the final sound. This
could lead one to think that ADDsynth is just a bunch of minor post-processing, and at this level much
of the sound generation is hidden.

Figure 111: ADDsynth Edit/Global Dialog

144

Yoshimi Software Synthesizer

10.1

ADDsynth / AMPLITUDE

The major sections of this dialog are listed:
1.
2.
3.
4.
5.
6.
7.
8.
9.

AMPLITIUDE (stock section)
FILTER (stock section)
FREQUENCY (stock section)
Show Voice Parameters (section)
Show Voice List (section)
Resonance (stock section)
C
P
Close

This complex dialog is best described section by section. Many of the sub-sections are stock sub-panels
described elsewhere in this document. References to those sections are included.
One thing to note is that the small Red reset button next to the Pan knob is no longer present.
Instead, one can use a right-click on this knob to reset it to its home position and value.

10.1
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

ADDsynth / AMPLITUDE
Volume
Vel Sens
Pan
Rand
Amplitude Env The Amplitude Env panel is described in detail in Section 6.5.1 ”Amplitude
Envelope Sub-Panel” on page 89.
Amplitude LFO The Amplitude LFO panel is described in detail in Section 6.4.5 ”LFO User
Interface Panels” on page 85.
Stereo
Rnd Grp
P.Str.
P.t
P.Stc.
P.Vel.

Note the two sub-panels, mentioned above, that are described elsewhere. They will not be discussed
in detail below.
1. Volume. ADDsynth Volume. Sets the overall/relative volume of the instrument.
Values: 1 to 127, 64*
2. Vel Sens. ADDsynth Velocity Sensing function. Velocity sensing is simply an exponental transformation from the note’s velocity to some parameter change. Observe Figure 112 ”Velocity Sensing Function”
on page 146. It shows how the velocity sensing controls affects the translation of a parameter over the
whole range of possible note velocities. Turn the knob rightmost/maximum to disable this function.
Values: 1 to 127, 64*

145

Yoshimi Software Synthesizer

10.1

ADDsynth / AMPLITUDE

Figure 112: Velocity Sensing Function
3. Pan. ADDsynth Global Panning. Dialing the knob to leftmost or zero gives random panning. Also,
clicking on the Rand LED will enable random panning.
Values: 0, 1 to 127, 64*
4. Rand. ADDsynth Random Panning Indicator. A red fill-in color provides an indicator for the
activation of random panning in this control. Also, clicking on this small control will enable random
panning.
Next, we skip the Amplitude Env and Amplitude LFO panels, which are described elsewhere,
as noted above.
5. Stereo. ADDsynth Stereo. Stereo can be enabled. When disabled, all the voices will also have
panning disabled.
Values: Off, On*
6. Rnd Grp. ADDsynth Random Group. Disable harmonic amplitude randomness of voices with a
common oscllator.
Values: Off*, On
7. P.Str. ADDsynth Punch Strength. The punch strength of a note in ADDsynth is a constant
amplification to the output at the start of the note, with its length determined by the punch time and
stretch and the amplitude being determined by the punch strength and velocity sensing. The relBW
control in the frequency panel is effectively a multiplier for detuning all voices within an ADnote.
Values: 0* to 127
8. P.t. ADDsynth Punch Time (duration). Sets the punch effect duration (from 0.1 ms to 100 ms on
an A note, 440Hz).
Values: 0 to 127, 64*
9. P.Stc. ADDsynth Punch Stretch. Sets the punch effect stretch according to frequency. On lowerfrequency notes, punch stretch makes the punch effect last longer.
Values: 0 to 127, 64*

146

Yoshimi Software Synthesizer

10.2

ADDsynth / FILTER

10. P.Vel. ADDsynth Punch Velocity Sensing. The higher this value, the higher the effect of velocity
on the punch of the note.
Values: 0 to 127, 72*

10.2

ADDsynth / FILTER

The ADDsynth FILTER block consists solely of sub-panels described in detail in the sections noted below.
The sub-panels of the FILTER section are:
1. Filter Params
2. Filter Env
3. Filter LFO
1. Filter Params. ADDsynth Filter Parameters. The Filter Params panel is described in detail in
Section 6.2.5 ”Filter Parameters User Interface” on page 78.
2. Filter Env. ADDsynth Filter Envelope. The Filter Env panel is described in detail in Section 6.5.5
”Envelope Settings for Filter” on page 94.
3. Filter LFO. The Filter LFO panel is described in detail in Section 6.4.5 ”LFO User Interface
Panels” on page 85.

10.3

ADDsynth / FREQUENCY

1.
2.
3.
4.
5.

Detune
FREQUENCY slider
Octave
RelBW
Frequency Env. A stock sub-panel described in Section 6.5.4 ”Envelope Settings, Frequency” on
page 93.
6. Frequency LFO A stock sub-panel described in Section 6.4.7 ”Frequency LFO Sub-panel” on
page 88.
7. Detune Type
8. Coarse det.
1. Detune. ADDsynth Detune Value. This display box shows the value of the detune as selected by
the frequency slider described below.

Figure 113: ADDsynth Frequency Detune Type
This value defines the number of cents that define the range of the FREQUENCY slider, that is 35
cents, 10 cents, 100 cents (one semitone), or 1200 cents (1 octave), below and above the main frequency.
The default is 35 cents. The 1200-cents setting provides a whole octave of detuning in either direction.
The ”L” stands for ”linear”, and the ”E” for ”exponential”, to describe how the detune slider acts.

147

Yoshimi Software Synthesizer

10.4

ADDsynth / Voice Parameters

Values: Default*, L35cents, L10cents, E100cents, E1200cents
2. FREQUENCY slider. ADDsynth Fine Detune (cents), a slider control. While the detune type
dropdown and the octave selection provide a coarse selection of detune, the slider allows for a finer
selection of detune, up to roughly one-third of a semitone.
Values: -35.00 to 35.00, -10.00 to 10.00, -100.00 to 100.00, -1200.00 to 1200.00
3. Octave. ADDSynth Octave. The octave setting changes the frequency by octaves.
Values: -8 to 7, 0*
4. RelBW.
changed.

ADDSynth Relative Bandwidth. Bandwidth: how the relative fine detune of the voice is

Values: 0 to 127, 64*
5. Frequency Env. ADDsynth Frequency Envelope. The Frequency Env panel is described in detail
in Section 6.5.4 ”Envelope Settings, Frequency” on page 93.
6. Frequency LFO. The Frequency LFO panel is described in detail in Section 6.4.5 ”LFO User
Interface Panels” on page 85
7. Detune Type. Frequency Detune Type. This setting provides a coarse detuning. We would welcome
an explanation of exactly is meant by the numbers and the ”E” versus ”L” designation.
Values: L35cents, L10cents, E100cents, E1200cents
8. Coarse det. Coarse Detune, ”C.detune”. The one-arrow buttons change the value by one. The
two-arrow buttons change the value by ten. Again, we need a way to explain the interactions of the slider,
the octave setting, the detune type, and the coarse detune settings.
Values: -64 to 63, 0*
9. Show Voice Parameters. ADDsynth Show Voice Parameters. This button brings up the ”voice
parameters” dialog discussed in the next section.

10.4

ADDsynth / Voice Parameters

Again, this dialog is built from some stock sections and stock sub-panels, plus additional elements.
Each Yoshimi ADDsynth instrument consists of up to 8 voices. This dialog provides a way to define
each of the 8 voices in great detail. By default, an ADDsynth instrument consists of one voice, voice 1.

148

Yoshimi Software Synthesizer

10.4

ADDsynth / Voice Parameters

Figure 114: ADDsynth Voice Parameters Dialog
Note the 8 VOICE tabs at the top of the window. These make it easy to switch to another voice, and
without opening up yet another editing window. Non-active voices are shown with an inactive tab/number
appearance. This is all in synchrony with the Voice List window.
Also note that there is no longer a Red reset button next to the Pan knob; use a right-click on this
knob to reset it.
This dialog consists of a few extra settings, plus a number of stock dialog sections. Take some time to
compare Figure 111 ”ADDsynth Edit/Global Dialog” on page 144, which covers the overall instrument,
with Figure 114 ”ADDsynth Voice Parameters Dialog” on page 149, which covers each of the voices. The
stock sections in the former cover the whole instrument as one, while the very similar stock sections in the
latter cover only the voice they configure. Obviously, the combinations of settings are essentially endless.
Each voice can be amplitude-controlled, filter-controlled, and frequency-controlled. Each voice can
also be modulated by an internal modulator. Another property of the voice is that one can tell Yoshimi
to modulate a given voice with any of the voices that are numbered less than that voice.
1.
2.
3.
4.

Voice Number Tab
On
Delay
Resonance
149

Yoshimi Software Synthesizer

5.
6.
7.
8.

10.4

ADDsynth / Voice Parameters

AMPLITUDE (see the stock-panel section below)
FILTER (see the stock-panel section below)
MODULATOR (see the stock-panel section below)
FREQUENCY (see the stock-panel section below)

1. Voice Number Tab. ADDsynth Voice Number. When highlighted this indicates the voice currently
being viewed. Each Yoshimi part/instrument can consist of up to eight voices. The voice being worked
on can be selected using the Current Voice tab.
Values: 1* to 8
2. On.

ADDsynth Voice On/Off. Enables this voice in the part/instrument.

Values: Off, On
3. Delay. ADDsynth Voice Delay.
Values: 0* to 4.90
4. Resonance. ADDsynth Voice Resonance On/Off. The rest of the GUI elements (AMPLITUDE,
FILTER, MODULATOR, FREQUENCY, and Voice Oscillator) are more detailed, and discussed in the
sections that follow.
Values: Off, On*
10.4.1

ADDsynth / Voice Parameters / AMPLITUDE

This section of the voice parameters dialog also includes a couple of stock sub-panels that have an
additional ”Enable” control.
1.
2.
3.
4.
5.
6.
7.
8.

Minus
Volume
Vel Sens
Pan
Pan randomness indicator
Pan reset (red button)
Amplitude Env, Stock + Enable
Amplitude LFO, Stock + Enable

1. Minus. ADDsynth Amplitude Minus. When checked, this control inverts the phase of the waveform
relative to all the other voices. With only one voice enabled, this control will seem to do nothing. With
two voices enabled with identical waveforms, the Minus control will indeed seem to reverse the effect
of the volume control. But if the waveforms are different, then it can provide some interesting harmonic
change effects.
Values: Off*, On
2. Volume. ADDsynth Voice Volume. Sets the (relative) volume of this voice in the part/instrument.
Values: 0 to 127, 100
3. Vel Sens. ADDsynth Voice velocity-sensing function; setting to rightmost/max disables this function.
Values: 0 to 127*
4. Pan.

ADDsynth Voice panning; setting to leftmost/0 gives random panning.

Values: 0 to 127, 64*

150

Yoshimi Software Synthesizer

10.4

ADDsynth / Voice Parameters

5. Pan randomness indicator. ADDsynth Voice random panning On/Off. Fills in red to indicate
that random panning is in force. Clicking on it will also set random panning.
6. Amplitude Env, Stock + Enable. ADDsynth Amplitude Envelope Sub-panel. See Section 6.5.1
”Amplitude Envelope Sub-Panel” on page 89. Additionally, the Enable checkbox allows the enabling of
this component.
7. Amplitude LFO, Stock + Enable. ADDsynth Amplitude LFO Sub-panel. See Section 6.4.5
”LFO User Interface Panels” on page 85. Additionally, the Enable checkbox allows the enabling of this
component.
10.4.2

ADDsynth / Voice Parameters / FILTER

This section of the voice parameters dialog also includes a couple of stock sub-panels that have an
additional ”Enable” control.
1.
2.
3.
4.
5.

Enable
Bypass Global F.
Filter Params, Stock
Filter Env, Stock + Enable
Filter LFO, Stock + Enable

1. Enable.

ADDsynth Voice Enable Filter. This value enables the whole FILTER dialog section.

Values: Off*, On
2. Bypass Global F.
filter.

ADDsynth Voice Bypass Global Filter. The voice signal bypasses the global

Values: Off*, On
We need to make sure there is a discussion of the global filter.
3. Filter Params, Stock.

See Section 6.2.5 ”Filter Parameters User Interface” on page 78.

4. Filter Env, Stock + Enable.

See Section 6.5.5 ”Envelope Settings for Filter” on page 94.

5. Filter LFO, Stock + Enable.

See Section 6.4.6 ”Filter LFO Sub-panel” on page 87.

10.4.3

ADDsynth / Voice Parameters / FREQUENCY

This frequency section is almost a stock part. It is similar to the ADDsynth Edit’s FREQUENCY
section.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Detune
FREQUENCY slider
440Hz
Eq.T
Octave
Detune Type
Coarse det
Frequency Env, Stock + Enable
Frequency LFO, Stock + Enable
Voice Oscillator

151

Yoshimi Software Synthesizer

1. Detune.

10.4

ADDsynth / Voice Parameters

Voice Parameters Detune. Shows the value selected by the frequency slider.

2. FREQUENCY slider. Frequency Slider. Provides fine detune, in cents. Note that 35 cents is
roughly one-third of a semitone.
Values: -35.00 to 35.00, 0*
3. 440Hz. 440 Hz Selection. Fixes the voice base frequency to 440 Hz. One can adjust this with the
detune settings. No matter what key is played on the keyboard, this voice will emit only 440 Hz. This
is useful for defining a constant frequency to use as a modulator for the other voices in the part. For
example, one can define voice 1 to be a tone, then define voice 2 to be 440 Hz. The two voices will mix,
but only voice 1 will change frequencies as different keys are played.
Values: Off*, On
4. Eq.T. Equal Temperament? This item is enabled only if the 440Hz check-box is enabled. It
determines how the frequency varies according to the keyboard. If set to its leftmost (0) value, then the
frequency is fixed.
Values: 0 to 127?
5. Octave. Voice Parameters Octave.
Values: -8 to 7, 0*
6. Detune Type. Detune Type.

Figure 115: Frequency Detune Type
Values: Default*, L35cents, L10cents, E100cents, E1200cents
7. Coarse det. Coarse Detune. Is this setting in units of semitones?
Values: -64 to 63, 0*
8. Frequency Env, Stock + Enable.
Frequency” on page 93.

Frequency Envelope. See Section 6.5.4 ”Envelope Settings,

9. Frequency LFO, Stock + Enable. Frequency LFO. See Section 6.4.7 ”Frequency LFO Sub-panel”
on page 88.
10. Voice Oscillator.
10.4.4

Voice Parameters Oscillator. See the next section.

ADDsynth / Voice Parameters / UNISON

Enabling this item causes the Unison-related items to become activated.
1.
2.
3.
4.
5.

Enable (unmarked button)
Size
Frequency Spread
Ph.rnd
Stereo
152

Yoshimi Software Synthesizer

10.4

ADDsynth / Voice Parameters

6. Vibrato
7. V.speed
8. Invert
1. Enable.

Enables or disables unison.

Values: Off*, On
2. Unison Size. Sets the number of unison sub-voices.
Values: 2* to 50
3. Unison Frequency Spread.

Frequency spread of the unison (cents).

Values: 0 to 200, 44.6*
4. Phase Randomness. Unison Phase Randomness.
Values: 0 to 127*
5. Stereo Spread. Unison Stereo Spread.
Values: 0 to 127, 64*
6. Unison Vibrato. Unison Vibrato.
Values: 0 to 127, 64*
7. Vibrato Speed. Unison Vibrato Average Speed.
Values: 0 to 127, 64*
8. Phase Invert. Unison Phase Invert. Values: None*, Random, 50%, 33%, 25%, 20%

Figure 116: Unison Phase Invert Dropdown

10.4.5

ADDsynth / Voice Parameters / Voice Oscillator

The ADDsynth Voice Oscillator panel is tucked in the lower left side of the ADDSynth Voice Parameters
editor.
1.
2.
3.
4.
5.
6.
7.
8.

Sound
Waveform graph
Use
Waveform (was Change)
Phase
C
P
Close Window

1. Sound. ADDSynth Oscillator Type (sound/noise). Sound/Noise choice. Select the mode of the
oscillator (sound versus white noise).
Values: Sound*, Noise (white), Noise (pink)
153

Yoshimi Software Synthesizer

10.4

ADDsynth / Voice Parameters

Figure 117: Voice Oscillator Choices
2. Waveform graph.

Waveform Graph. Shows a period of the currently configured oscillator.

Figure 118: Oscillator in ADDSynth Voice
If white Noise is selected, then the waveform graph simply announces ”White Noise”. Also, the
Unison control is disabled.

Figure 119: White Noise in ADDSynth Voice
If pink Noise is selected, then the waveform graph simply announces ”Pink Noise”. Also, the Unison
control is disabled.

Figure 120: Pink Noise in ADDSynth Voice
3. Use (oscillator). Use Oscillator. If the Current Voice is set to a value greater than 1, meaning
that one is editing additional voices, then this dropdown item also includes the values of all oscillators
less then this one, marked as ”Voice n”, where ”n” is the voice number. For example, if one is currently
editing current voice 3, then the dropdown list includes Internal, Voice 1, and Voice 2.
Values: Internal*, Other oscillators ("Voice n")

154

Yoshimi Software Synthesizer

10.4

ADDsynth / Voice Parameters

4. Waveform. ADDSynth Voice Oscillator Waveform. This button brings up the ADDsynth Oscillator
Editor dialog. This dialog is described elsewhere; it used to be called Change.
5. Phase.

Voice Oscillator Phase.

Values: 0 to 360 (0 to 2*pi)
10.4.6
1.
2.
3.
4.
5.

ADDsynth / Voice Parameters / MODULATOR

Type:
Oscillator Source
Mod AMPLITUDE
Mod FREQUENCY
Local Oscillator

1. Type:.

ADDsynth Modulator Type.

Figure 121: Voice Modulator Type
1. OFF. This setting turns off the modulator.
2. MORPH The morph modulator works by combining the output of the voice oscillator and the
modulator opscillator into one sonud, with the amplitude envelope translating between one waveform
and the other. It is important that the amplitude envelope is enabled, otherwise no change will take
place.
3. RING The ring modulator is useful for making bell-like sounds and some weird effects. The ring
modulator works by multiplying two waveforms together, producing a signal that possesses the sum
and difference of the frequencies present in the waveforms. The ins-and-outs of the ring modulator
are explained in detail in paragraph 10.4.6.1 ”Tip: Using the Ring Modulator” on page 157.
4. PM The PM (phase modulation) modulator works by using a modulator envelope to change the
pulse of the voice oscillator. It produces a similar effect to frequency modulation. Generally, set
F.Damp to zero, so that the modulation amount doesn’t depend on the note number.
5. FM The (frequency modulation) morph modulator works by modulating the frequency. Examples
can be heard in the ”Ethereal” and ”Steel Wire” instruments.
6. PWM The pulse width modulator works by pulse-width modulation.
Values: OFF, MORPH, RING, PM, FM, PWM
2. Modulator Source. AddSynth Modulator Source. This feature allows one of the voices (of the
up to 8 allowed in a single ADDsynth instrument) to be used as a modulator or external oscillator for
another voice in the instrument. Note that the voice must be one with a number below the current voice.
It’s important to understand that oscillators always exist even if not used. This option specifies to use
the oscillator of another voice or the local oscillator.
The parameters must be lower than the voice index; one cannot use the oscillator from a voice with a
bigger index (e.g. one can’t use the oscillator of voice 8 for voice 4). This is very useful because, if one uses

155

Yoshimi Software Synthesizer

10.4

ADDsynth / Voice Parameters

many voices with the same oscillator settings, one can use only one oscillator and select other voices to
use this, and if one changes a parameter of this oscillator, all voices using this oscillator will be affected.
If one sets up voice 2 as a square wave, and voice 1 as a triangle wave, then sets voice 3 to voice 2,
voice 3 will get a square wave.
If one then sets voice 2 to voice 1, voice 2 will get a triangle wave but voice 3 will still get a square
wave.
Voice 3 can use the oscillator from voice 1, even if voice 1 is switched off.
Modulator 3 can use the oscillator from modulator 1, even if modulator 1 is switched off, but modulator 3 can’t use voice 1 if voice 1 is switched off.
However, if voice 2 is using the oscillator from voice 1, and modulator 3 is using voice 2, it will still
get voice 2 oscillator.
When a voice or modulator is pointed to another voice/modulator, the oscillator window will show
the waveform of the actual source, and all the controls will change this, not the internal oscillator.
Local. Uses the local (internal) oscillator as the modulator of another voice.
Values: Local*, Other voice numbers
Oscillator Source. Use another voice as a modulator instead of the modulator of the internal voice.
One can make a ”modulation stack”. The modulator of the voice itself is disabled. One can only select
Local (i.e. Internal), or one from a lower numbered voice.
Values: Local*, "Mod n"
3. Mod AMPLITUDE. Modulator Amplitude.
1. Vol Volume. Values: 0 to 127, 90*
2. V.Sns Velocity Sensing Function; set to rightmost/max to disable. Values: 0 to 127, 64*
3. F.Damp Modulator Damp at higher frequency. How the modulator intensity is lowered according
to lower/higher note frequencies. Values: 0 to 127, 90*
4. Amplitude Env, Stock + Enable See Section 6.5.1 ”Amplitude Envelope Sub-Panel” on page 89.
4. Mod FREQUENCY. Modulator Frequency.
1. Detune slider Fine Detune (cents). Values: -35.00 to 35.00, 0*
2. Detune Type Fine Detune (cents). Values: L35cents, L10cents, E100cents, E1200cents See
Figure 113 ”ADDsynth Frequency Detune Type” on page 147.
3. Octave Octave. Values: -8 to 7, 0*
4. Coarse Det. Coarse Detune. Values: -64 to 63, 0*
5. Filter Env, Stock + Enable See Section 6.5.5 ”Envelope Settings for Filter” on page 94.
5. Local Oscillator. Local Oscillator. Provides the modulator for the oscillator. This value must
indicate a modulator from a voice with a number less than the current voice. Entries are greyed out for
Voice 1, as there is no lower-numbered voice available for modulation.
Values: Internal*, "Mod n"
1.
2.
3.
4.

Waveform ADDsynth Oscillator Editor.
Use Oscillator to Use. See the paragraph below. Values: Internal*, Other oscillators?
Phase Oscillator Phase. Values: 0 to 360 (0 to 2PI)
Waveform graph Waveform graph.

156

Yoshimi Software Synthesizer

10.5

ADDsynth / Voice List

One has the choice between Internal, which in this case means a completely independent modulator
oscillator per voice (extra waveform button), or Mod. (n), which refers to the modulation oscillators one
has already defined for the voices with a lower index. The voice of lower index doesn’t need to be enabled
in order to be used as a modulator. This means one can make one modulation oscillator for voice 1, and
reuse it in voices 2 and 3. This is the same system used for the normal (voice) oscillators.
10.4.6.1

Tip: Using the Ring Modulator

This section is derived from one of the short text files in the Yoshimi source-code bundle ([19] or [20]). It
notes that ”Some people have been confused about how to use an ’external’ Mod Oscillator”, and provides
usage notes that we will elaborate on here. Here is the way to use the ring modulator:
1.
2.
3.
4.
5.
6.

Open the ADDsynth editing window. Then open Show Voice Parameters.
For Type, select the RING value. This selection will activate the Mod Oscillator.
In the Local Oscillator, click on Waveform to open the ADDsynth Oscillator Editor.
Set the wave-shape to Triangle.
Switch to voice number 2 and enable it.
Again, for Type, select the RING value. However, feel free to select one of the other modulators,
if one wishes.
7. One can now use Internal for voice 2, or select Voice 1, to use the first voice as in internal
modulator.
8. Change the internal voice to, for example, Square.
9. Do the same setup for voice 3. One will find that one can use its Internal or either of the two
previous ones.
Now the joker in the pack is that one can disable both the previous voices but still use their Mod
Oscillators.
In a newsgroup ([14], the following note is found.
Say I want the A tone ring-modulated by 880Hz. A is 440 Hz, the ring modulation setting lets me choose
the modulation frequency relative to the frequency of the tone. So I choose octave 1 and let the detune at zero.
If I move the detune, it’ll shift the modulation frequency a bit, which will make a disharmonic effect.
Wet/dry setting is controlled by volume in ”modulation amplitude”. The modulation frequency can further
be multiplied or several modulations can be simulated by changing the oscillator waveform.
One huge letdown is that it is only available for Adsynth. PadSynth does not seem to have ring modulation
option, so the coolest sounds stay out of question for massive lead tones. :-(

We have provided a more useful ”tutorial” on using the ring modulator in the Yoshimi Cookbook [4]
document.
Finally, at the bottom of the ADDsynth Voice Part dialog, (under the Modulator section, we find
the last few controls.
1. C.

Copy D note parameters (”DnoteParameters”).

2. P. Paste D note parameters (”DnoteParameters”).
3. Close Window. Close.

10.5

ADDsynth / Voice List

The ADDsynth Voices List shows a summary of voices 1 to 8, and allows some overall control of them,
almost like a simple mixer. It is brought on-screen via the Show Voice List button of the ADDsynth
global part editor. It is fully in sync with the voice windows.
157

Yoshimi Software Synthesizer

10.5

ADDsynth / Voice List

Figure 122: ADDsynth Voices List
1.
2.
3.
4.
5.
6.
7.
8.
9.

No. (1 to 8)
Edit
Wave
Vol
Pan
Res
Detune
Vibrato Depth
Hide Voice List

1. No. (1 to 8).
part.

Voice List Number. This check-box enables or disables a given voice in the current

Values: Off, On
2. Edit. ADDSynth Voice List Edit Button. This button brings up the appropriate ADDSynth Voice
dialog so that the waveform can be easily brought up for modification.
3. Wave Icon. Waveform Icon. The waveform icon shows a rough rendering of the actual shape of the
voice waveform, or the letter N is the voice is constructed from white noise. Note that this picture isn’t
updated if the voice is edited, until the voice list is closed and reopened.
4. Vol. Voice Volume. This slider controls the relative volume of a given voice in the current part.
Values: 0 to 127, 100*
5. Pan. Voice Panning (0/leftmost is Random). This slider controls the panning of a given voice in the
current part.
Values: 0 to 127, 64*
6. Res. Resonance On/Off. Enable/disable the resonance effect of a voice. Note that the resonance
is configured in by the Resonance dialog brought up by the Resonance button at the bottom of the
ADDsynth main dialog. The resonance dialog has its own Enable button, as well. This is provided so
individual voices can bypass the resonance filter.
Values: Off, On*
7. Detune Value. This read-only text-box shows the current value of detune as selected by its slider.
8. Detune.

Fine Detune (cents).

158

Yoshimi Software Synthesizer

10.6

ADDsynth / Oscillator

Values: -35 to 35, 0*
9. Vibrato Depth. Frequency LFO Amount/Depth. This setting can be very useful because, with the
detune settings, one can create very good sounding instruments.
Values: 0 to 127, 40*
10. Hide Voice List.
version of Yoshimi.

10.6

Hide Voice List. A Close button, really, and that is what it is in the latest

ADDsynth / Oscillator

Pressing the Waveform button in the ADDsynth voice-editor dialog brings up a very complex dialog for
modifying the harmonics of the voice.

Figure 123: ADDsynth Oscillator Editor
This item is nearly identical to the PADsynth harmonic editor depicted in Figure 138 ”Harmonic
Content Editor” on page 170, except for the items noted below. Obviously, it is a topic unto itself!
1.
2.
3.
4.

Oscillator Spectrum Graph
Oscillator Waveform Graph
Mag.Type
Phase Randomness (ADDsynth Oscillator Editor only)
159

Yoshimi Software Synthesizer

10.7

ADDsynth / Resonance

5. H.rnd (ADDsynth Oscillator Editor only)
6. H.rnd knob (ADDsynth Oscillator Editor only)
1. Oscillator Spectrum Graph. Oscillator Spectrum Graph. This graph shows the spectrum of the
oscillator as a series of vertical lines, a kind of frequency histogram.
2. Oscillator Waveform Graph. Oscillator Waveform Graph. This graph shows the temporal waveform of the oscillator.
3. Mag.Type. Oscillator Magnitude Type. Sets how the magnitudes from the user interface behave.
See the values below.
4. Phase Randomness. Phase Randomness. Sets the randomness of the oscillator phase which is
settable from -64 (-90 deg) to 63 (+90 deg).
5. H.rnd. Harmonic Amplitude Randomness. Enables the feature and sets the ’law’ for the way
randomness is applied.

Figure 124: ADDsynth Oscillator Harmonic Randomness Selections
Values: None, Pow, and Sin
6. H.rnd knob. Harmonic Amplitude Randomness Knob. Adjusts the amount of randomness applied
to the amplitudes of individual harmonics.
Values: 0 to 127, 64*

10.7

ADDsynth / Resonance

This dialog, shared in common with the PADsynth editor, is a stock user-interface element described in
Section 6.3 ”Stock Resonance Settings” on page 80.

11

PADsynth

The Yoshimi PADsynth dialog is a complex dialog for creating a pad instrument, ”PADsynth” or ”PADnote” is engine that makes very beautiful pads and other instruments. (These instruments can be exported
for use with other programs too).
The PADsynth dialog consists of two major tabs, Harmonic Structure and EnvelopesLFOs.
Each of these tabs is complex, so the discussion will break the tabs down by sub-sections.
There is extra protection for a really huge PadSynth engine (that can potentially take tens of seconds
to complete). For that time, any attempt to alter the part that contains the one that’s updating will not
accept any other changes, and will give the warning: Part n busy.

11.1

PADsynth / Algorithm

The complexity of the PADsynth dailog merely reflects the complexity of the PADsynth algorithms.

160

Yoshimi Software Synthesizer

11.1.1

11.1

PADsynth / Algorithm

PADsynth / Algorithm / General

The PADsynth algorithm generates very beautiful sounds, even if its idea is much simpler than other
algorithms. It generates a perfectly looped wave-table sample which can be used in instruments. It easily
generates sounds of ensembles, choirs, metallic sounds (bells) and many other types of sound. Paul Nasca
wanted to make this algorithm known, and everyone is welcome to learn and use this algorithm into one’s
projects or products (non-commercial or commercial).
Quote [27]:
You will not be disappointed by this algorithm.
I hope that this algorithm will be implemented in many software/hardware synthesizers. Use it, spread it,
write about it, create beautiful instruments with it. If your synthesizer uses plenty of samples, you can use this
algorithm to generate many ready-to-use samples.
This algorithm, this page, the images, the implementations from this page, the audio examples, the parameter
files from this page are released under Public Domain by Nasca Octavian Paul. e-mail: zynaddsubfx AT yahoo
DOT com

In order to understand how this algorithm works, one needs to be familiar with how to think about
musical instruments. Please read an introduction for the description of the meaning and the importance
of bandwidth of each harmonic and randomness.
This algorithm generates some large wave-tables that can be played at different speeds to get the
desired sound. This algorithm describes only how these wave-tables are generated. The result is a perfectly
looped wave-table. Unlike other synthesis methods, which use the Inverse Fast Fourier Transform, this
one does not use overlap/add methods and there is only one IFFT for the whole sample.
The basic steps are:
1. Make a very large array that represents the amplitude spectrum of the sound (all default values are
zero).
2. Generate the distribution of each harmonic in the frequency spectrum and add it to the array.
3. Put random phases to each frequency of the spectrum.
4. Do a single Inverse Fourier Transform of the whole spectrum. There is no need of any overlapping
windows, because there is only one single IFFT for the whole sample.
The output is a sample which can be used as a wave-table.
11.1.2

PADsynth / Algorithm / Harmonic Bandwidth

We consider one harmonic (overtone) as being composed of many frequencies. These sine components of
one harmonic are spread over a certain band of frequencies. Higher harmonics have a wider bandwidth.
In natural choirs/ensembles the bandwidth is proportional to the frequency of the harmonic.
The harmonics become wider and wider, until a certain frequency, where they may merge into a noise
band (as in the full spectrum image from above shows). This is a normal thing and we recommend to not
avoid this by limiting the bandwidth of the harmonics.
This describes the function of the spread of the harmonic. Here are some examples of how they can
be spread:
1. A special case is where there is only a single sine component inside the harmonic In this case, the
harmonic and the ”sine component” are the same thing.
2. Detuned. In this case there are two sine components which are detuned.
3. Evenly spread inside the harmonic (all components have the same amplitude)
161

Yoshimi Software Synthesizer

11.1

PADsynth / Algorithm

4. Normal (Gaussian) distribution. The sine components amplitude are bell-shaped. The largest amplitude is in the center of the band. This distribution gives the most natural sounds (it simulates a
very, very large ensemble).
Of course, one can use many other profiles of the harmonic. ZynAddSubFX’s PADsynth module
offers many ways to generate the harmonic profile. Also, it’s very important that the harmonic must have
the same amplitude, regardless of the profile functions/parameters and the bandwidth. For many more
details of this algorithm, see Paul Nasca’s document [27].
11.1.2.1

Tip: Using the PADsynth

Keep in mind that the resulting wave-tables are perfectly looped. There are some sound-generation ideas
to keep in mind:
1. When using the wave-tables for instruments, on each Note On, start from a random position and
not from the start. This avoids hearing the same sound on each keystroke.
2. One can use the same wave-table for generating stereo sounds, by playing the same wave-table at
different positions for left and right. The best method is to create a difference between left and right
of N/2.
3. Generate different wave-tables for different pitches and use the one that is closest to the desired
pitch.
4. Upsample or downsample the amplitude array of the harmonic before running the algorithm, according to the fundamental frequency. In this case we need to set a parameter ”base frequency”
which represents the frequency where the array is left unchanged.
Example: We have A orig[]=1,2,1,3,0,0,1,0 and base frequency is equal to 440 Hz Here are some cases:
A[] for 440 Hz: is the same as A orig[]
A[] for 220 Hz: is the A orig[] upsampled by factor of 2
so: A[]=1, 1, 1.5, 2, 1.5, 1, 2, 3, 1.5, 0, 0, 0, 0.5, 1, 0.5, 0
(the original A orig amplitudes are shown as bold)
A[] for 880 Hz: the A orig[] is downsampled by a factor of 2
so: A[]=1.5, 2, 0, 0.5
A[] for F Hz: the A orig[] is scaled by a factor of 440/F.
Even if this idea is very simple, the resulting sounds are very natural, because it keeps the spectrum
constant according to the frequency of the harmonic and not to the number of the harmonics. This follows
from the document where Paul Nasca describes some principles regarding synthesis.

162

Yoshimi Software Synthesizer

11.2

11.2

PADsynth / Harmonic Structure

PADsynth / Harmonic Structure

Figure 125: PADsynth Edit Dialog
Note how, in the newer versions of Yoshimi, the part number and part name are part of the window
caption. There are a lot of parameter sections to keep track of, and to describe.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Basics (section)
Harmonic (section)
Resonance (section)
Waveform (section)
Bandwidth and Position (section)
Export (section)
C
P
Apply Changes
Close

Some of these elements have their own sections devoted to them, below.

163

Yoshimi Software Synthesizer

11.2.1
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

11.2

PADsynth / Harmonic Structure

PADsynth / Harmonic Structure / Basics

BaseType
Width
FreqMlt
Str
SFreq
Size
Full/Upper/Lower
AmpMultiplier
AmpMode
Par1
Par2

1. BaseType.

Base Type of Harmonic.

Figure 126: Base Type of Harmonic
Values: Gauss*, Square, DoubleExp
2. Width. Width of Harmonic. The lowest value yields a very thin Profile of One Harmonic
(Frequency Distribution) waveform, pretty close to a Dirac delta function (in this case, pretty close to
a sine wave). The highest value yields a broadband spectrum, almost a flat spectrum, but it has a hump
around the center frequency.
Values: 0 to 127
3. FreqMlt. Frequency Multiplier. Increasing this value causes more and more repetitions of the
harmonic spectrum frequency distribution to appear. A value of 127 yields 32 repetitions of the spectrum.
Values: 0 to 127
4. Str. Stretch. Not quite sure what this one does. Increasing it adds harmonics to the spectrum and
alters the distribution of their levels.
Values: 0 to 127
5. SFreq.
harmonics.

Harmonic Sfreq. Not quite sure what this one does. Increasing it tightens up the spread of

Values: 0 to 127
6. Size.

Harmonic Size. Increasing this value preserves the shape of the spectrum, but widens it.

Values: 0 to 127
7. Full/Upper/Lower. Harmonic Sidebands. These menu entries select the full spectrum, or filter in
only the upper sidebands of the spectrum, or the lower sidebands.
Values: 0 to 127

164

Yoshimi Software Synthesizer

11.2

PADsynth / Harmonic Structure

Figure 127: PADsynth Full/Upper/Lower Harmonics
Values: Full*, Upper Half, Lower Half
8. AmpMultiplier.
various ways.

Amplitude Multiplier. These values spread out the frequency components in

Figure 128: PADsynth Amplitude Multiplier
Values: OFF*, Gauss, Sine, Flat
9. AmpMode.

Amplitude Mode.

Figure 129: PADsynth Amplitude Mode
Values: Sum*, Mult, Div1, Div2
10. Par1. Harmonic Parameter 1. Increasing this parameter narrows the width of the central spectral
component.
Values: 0 to 127
11. Par2. Harmonic Parameter 2. Varying this parameter changes the relative amplitude of the central
spectral component and the sidebands.
Values: 0 to 127
11.2.2
1.
2.
3.
4.
5.
6.
7.
8.

PADsynth / Harmonic Structure / Harmonic

Profile of One Harmonic
Harmonic Content Window
base
smp/oct
no.oct
Sample Size
Resonance (section)
Change (section)

165

Yoshimi Software Synthesizer

11.2

1. Profile of One Harmonic.

PADsynth / Harmonic Structure

Profile of One Harmonic (Frequency Distribution).

2. Harmonic Content Window.

Harmonic Content Window.

3. base.

Figure 130: Harmonic Base Dropdown
Values: C-2, G-2, C-3, G-3, C-4*, G-4, C-5, G-5, G-6
4. smp/oct.

Harmonic Samples Per Octave.

Figure 131: Harmonic Samples Per Octave
5. no.oct.

Number of Octaves of Harmonic.

Figure 132: Harmonic Number of Octaves
Values: 1, 2, 3, 4*, 5, 6, 7, 8
6. Sample Size. Harmonic Sample Size.

166

Yoshimi Software Synthesizer

11.2

PADsynth / Harmonic Structure

Figure 133: Harmonic Sample Size Dropdown
Values: 16k (Tiny), 32k, 64k (Small), 128k*, 256k (Normal), 512k, 1M (Big)
11.2.3
1.
2.
3.
4.
5.
6.
7.
8.
9.

PADsynth / Harmonic Structure / Bandwidth and Position

BandWidth
cents
Bandwidth Scale
Spectrum Mode
OvertonesPosition
Par1
Par2
ForceH
Harmonics Plot

1. BandWidth.

Harmonics Bandwidth.

Values: 0 to 127
2. cents.

Bandwidth Reading (cents).

3. Bandwidth Scale. Bandwidth Scale.

Figure 134: Harmonics Bandwidth Scale.
Values: Normal, EqualHz, Quater, Half, 75%, 150%, Double, Inv. Half
4. Spectrum Mode. Harmonics Spectrum Mode.

Figure 135: PADsynth Harmonics Spectrum Mode

167

Yoshimi Software Synthesizer

11.2

PADsynth / Harmonic Structure

Values: Bandwidth*, Discrete, Continuous
5. OvertonesPosition. Overtones Position.

Figure 136: PADsynth Overtones Position
Values: Harmonic*, ShiftU, ShiftL, PowerU, PowerL, Sine, Power
6. Par1. PADSynth Bandwidth Parameters 1. If the Overtones Position drop-down is set to something other than Harmonic, then this knob changes the harmonic lines shown in the spectrum view just
below this item. It is best to play with this setting and observe and hear the changes it makes.
7. Par2. PADSynth Bandwidth Parameters 2. If the Overtones Position drop-down is set to something other than Harmonic, then this knob changes the harmonic lines shown in the spectrum view
(Harmonics Plot) just below this item. It is best to play with this setting and observe and hear the
changes it makes.
8. ForceH. PADSynth Bandwidth ForceH. If the Overtones Position drop-down is set to something
other than Harmonic, then this knob changes the harmonic lines shown in the spectrum view just below
this item. It is best to play with this setting and observe and hear the changes it makes.
9. Harmonics Plot. PADSynth Harmonics Plot. Shows the position and amplitude of each of the
harmonic lines that the settings will generate.

168

Yoshimi Software Synthesizer

11.2.4

11.2

PADsynth / Harmonic Structure

PADsynth / Harmonic Structure / Export

Figure 137: Harmonics Structure Export Dialog
This export dialog is a file dialog similar to other file dialogs in Yoshimi.
11.2.5

PADsynth / Harmonic Structure / Resonance

This dialog, shared in common with the ADDsynth editor, is a stock user-interface element described in
Section 6.3 ”Stock Resonance Settings” on page 80.
11.2.6

PADsynth / Harmonic Structure / Change

The Waveform button brings up the Harmonic Content editor, which is another complex dialog. Like
Figure 123 ”ADDsynth Oscillator Editor” on page 159, it allows one to create an essentially unlimited
number of oscillators.

169

Yoshimi Software Synthesizer

11.2

PADsynth / Harmonic Structure

Figure 138: Harmonic Content Editor
This dialog is complex enough that it makes sense to break it down into sub-sections.
1.
2.
3.
4.

Oscillator (section)
Base Function (section)
Middle (section)
Harmonic (section)

11.2.6.1
1.
2.
3.
4.

PADsynth / Harmonic Structure / Change / Oscillator

Oscillator Spectrum Graph
Oscillator Waveform Graph
Mag.Type
Apply

1. Oscillator Spectrum Graph. Oscillator Spectrum Graph. This graph shows the spectrum of the
oscillator as a series of vertical lines, a kind of frequency histogram.
2. Oscillator Waveform Graph. Oscillator Waveform Graph. This graph shows the temporal waveform of the oscillator.
3. Mag.Type. Oscillator Magnitude Type. Sets how the magnitudes from the user interface behave.
See the values below.
170

Yoshimi Software Synthesizer

11.2

PADsynth / Harmonic Structure

Figure 139: PADsynth Harmonic Content Mag Type
Values: Linear*, -40dB, -60db, -80dB, -100dB
4. Apply. PADsynth Harmonic Content Editor Apply Button.
11.2.6.2
1.
2.
3.
4.
5.
6.
7.
8.
9.

PADsynth / Harmonic Structure / Change / Base Function

Base Func. Spectrum Graph
Base Func. Waveform Graph
Base F..
Par. Value
Par. Wheel
B.F.Mod.
Wheel 1
Wheel 2
Wheel 3

1. Base Func. Spectrum Graph.

Harmonic Base Function Spectrum Graph.

2. Base Func. Waveform Graph. Harmonic Base Function Waveform Graph.
3. Base F. Harmonic Base Function. Sets what function to use as the harmonics base function. One
can use any base function as harmonics.

Figure 140: PADsynth Harmonic Content Base Function
Values: Sine*, Triangle, Pulse, Saw, Power, Gauss, Diode, AbsSine, PulseSine, StrchSine,
Chirp, AbsStrSine, Chebyshev, Sqr, Spike, Circle

171

Yoshimi Software Synthesizer

4. Par. Value.

11.2

PADsynth / Harmonic Structure

PADsynth Parameter Value.

5. Par. Wheel. PADsynth Parameter Wheel. Change the parameter of the base function.
6. B.F.Mod. PADSynth Base Frequency Mod. This item is very similar to the Harmonic Editor
Modulation (Mod.) setting.
Values: None*, Rev, Sine, Pow
7. Wheel 1. PADsynth Wheel 1. With the B.F.Mod. selection set to something other than None, this
modifies one (unknown at this time) parameter of the modulation selection.
8. Wheel 2. PADsynth Wheel 2. With the B.F.Mod. selection set to something other than None, this
modifies one (unknown at this time) parameter of the modulation selection.
9. Wheel 3. PADsynth Wheel 3. With the B.F.Mod. selection set to something other than None, this
modifies one (unknown at this time) parameter of the modulation selection.
11.2.6.3
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.

PADsynth / Harmonic Structure / Change / Middle

Use as base
Clr.
Wsh.
Wsh Value
Wsh Wheel
Filter
Filter Wheel 1
Filter Wheel 2
Filter p
Mod.
Mod. Wheel 1
Mod. Wheel 2
Mod. Wheel 3
Sp.adj.
Sp.adj. Wheel

1. Use as base. Use as Base. Convert the oscillator output to a base function. Changing the Base
function or its parameter will erase the converted base function.
2. Clr. Clear. Clear the settings and make the oscillator equal to a base function. If this is cleared, one
can click the Use as base button to make multiple conversions to base functions.
3. Wsh.

Harmonic Editor Wave-shaping, ”W.sh”.

Wave shaping function that applies to the oscillator. It has one parameter that fine-tunes the waveshaping function.
4. Wsh Value. Harmonic Editor Wave-shaping Value.

172

Yoshimi Software Synthesizer

11.2

PADsynth / Harmonic Structure

Figure 141: PADsynth Harmonic Content Editor Wave-Shaping Function
Values: None*, Atan, Asym1, Pow, Sine, Qnts, Zigzg, Lmt, LmtU, LmtL, ILmt, Clip, Asym2,
Pow2, Sgm
The type of wave-shaping distortion has much influence on how the overtones are being placed.
Sometimes, one gets a ”fat” bass, and sometimes, high frequencies are added, making the sound ”crystal
clear”.
Atan & Sigmoid. This is the default setting. It is an easy way to apply loudness to a wave without
getting undesired high overtones. Thus, it can be used both for making instruments that sound like ”real”
ones, but also for electronic music. The transformation turns, roughly said, every amplitude into a square
amplitude. Thus, sine, power, pulse and triangle turn into a usual square wave, while a saw turns into a
phased square wave. A chirp wave turns into a kind of phase modulated square wave.
Quants (”Qnts”) Quantization adds high overtones early. It can be seen as an unnatural effect, which
is often used for electronic music. The transformation is a bit similar to building the lower sum of a wave,
mathematically said. This means that the transformation effect turns an ”endless high” sampled wave
into only a few samples. The more distortion one applies, the fewer samples will be used. Indeed, this is
equivalent to say that more input amplification is used. To see this, here is a small sample of code, where
”ws” is the (correctly scaled amount of input amplification, and ”n” the number of original samples.
If one turns on quantisation very high, one might be confused that, especially high notes, make no
sound. The reason: High frequencies are ”forgotten” if one samples with only few samples. Also, the sign
of an amplitude can be forgotten. This behaviour might make some quantisations a bit unexpected.
Limiting (”Lmt*” and ”Clip”) Limiting usually means that for a signal, the amplitude is modified
because it exceeds its maximum value. Overdrive, as often used for guitars, is often achieved by limiting:
It happens because an amplifier ”overdrives” the maximum amplitude it can deliver.
ZynAddSubFX has two types of limiting. Soft limiting, here as Lmt, means that the sound may not
exceed a certain value. If the amplitude does so, it will simply be reduced to the limiting value. The
overtones are generated in the lower frequencies first.
Hard limiting, is also called clipping and abbreviated Clip. This means that if the maximum is
exceeded, instead of being constant at the limiting value, the original signal still has some influence on
the output signal. Still, it does not exceed the limiting value. For ZynAddSubFX, a signal exceeding the
limiting value will continue to grow ”in the negative”. This leads to overtones being generated on the full
frequency band.
173

Yoshimi Software Synthesizer

11.2

PADsynth / Harmonic Structure

5. Wsh Wheel. Harmonic Editor Wave-shaping Wheel.
6. Filter.

Harmonic Editor Filter. Sets the type of the harmonic filter.

Figure 142: PADsynth Harmonic Content Filter
Values: None*, LP1, HP1a, HP1b, BP1, BS1, LP2, HP2, BP2, BS2, Cos, Sin, LSh, S
7. Filter Wheel 1. Harmonic Editor Filter, Wheel 1. The knob on the left sets one filter parameter,
which is either the cutoff frequency, or, if the filter is a bandpass filter, the lower corner frequency. It is
best to play with this knob with various kinds of filters selected from the filter drop-down list.
8. Filter Wheel 2. Harmonic Editor Filter, Wheel 2. The knob on the right sets, if the filter is a
bandpass filter, the upper corner frequency. It is best to play with this knob with various kinds of filters
selected from the filter drop-down list.
9. Filter p. Harmonic Editor Filter, p. If set, the filter is applied before waveshaping.
10. Mod.

Harmonic Editor Modulation.

Figure 143: PADsynth Harmonic Content Editor Modulation
Values: None*, Rev, Sine, Pow
11. Mod. Wheel 1. Harmonic Editor Modulation Wheel 1. With the Mod. selection set to something
other than None, this modifies one (unknown at this time) parameter of the modulation selection.
12. Mod. Wheel 2. Harmonic Editor Modulation Wheel 2. With the Mod. selection set to something
other than None, this modifies one (unknown at this time) parameter of the modulation selection.
13. Mod. Wheel 3. Harmonic Editor Modulation Wheel 3. With the Mod. selection set to something
other than None, this modifies one (unknown at this time) parameter of the modulation selection.
14. Sp.adj.

Harmonic Editor Spectrum Adjust. Adjust the spectrum of the waveform.

RMS normalize. Enables the RMS normalization method (recommended); this keeps the same loudness regardless the harmonic content.
174

Yoshimi Software Synthesizer

11.2

PADsynth / Harmonic Structure

Below are the harmonics and their phases. One can use them to add to oscillator harmonics that has
the waveform of the base function. Increasing the number of harmonics has virtually no effect on CPU
usage. Right click to set a harmonic/phase to the default value.

Figure 144: PADsynth Harmonic Content Editor Spectrum Adjust
Values: None*, Pow, ThrsD, ThrsU
15. Sp.adj. Wheel. Harmonic Editor Spectrum Adjust Wheel.
11.2.6.4
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.

PADsynth / Harmonic Structure / Change / Harmonic

Harmonics Amplitude
Harmonics Bandwidth
Harmonics Scrollbar
Harmonic Shift
Harmonic Shift R
Harmonic Shift preH
Adpt.Harm.
Adpt.Harm. Slider
Adpt.Harm. baseF
Adpt.Harm. pow
Clear
Sine
C
P
Close

16. Harmonics Amplitude.
monics.

Harmonics Amplitude. Provides 128 sliders for the amplitude of har-

17. Harmonics Bandwidth.
monics.

Harmonics Bandwidth. Provides 128 sliders for the bandwidth of har-

18. Harmonics Scrollbar. Harmonics Scrollbar.
19. Harmonic Shift. Harmonics Shift.
20. Harmonic Shift R.
value to zero (0).

Harmonics Shift Reset. Pressing this button resets the Harmonic Shift

21. Harmonic Shift preH. Harmonics Shift preH. If set, applies the harmonic shift before the filtering
and waveshaping.
22. Adpt.Harm. Adaptive Harmonics. Changes the type of the adaptive harmonics. (The tooltip
spells ”adaptive” wrong.)

175

Yoshimi Software Synthesizer

11.3

PADsynth / Envelopes and LFOs

Figure 145: PADsynth Adaptive Harmonic Type
Values: OFF*, ON, Square, 2xSub, 2xAdd, 3xSub, 3xAdd, 4xSub, 4xAdd
23. Adpt.Harm. Slider. Adaptive Harmonics Slider. If something other that OFF or ON is selected,
then this slider changes the waveform appearance. Even more informative is the change in the spectrum
that is shown. Obviously, this setting is something to play with while listening to the waveform.
24. Adpt.Harm. baseF. Adaptive Harmonics Base Frequency. If something other that OFF is selected,
then this knob changes the waveform appearance. Even more informative is the change in the spectrum
that is shown. Obviously, this setting is something to play with while listening to the waveform.
25. Adpt.Harm. pow. Adaptive Harmonics Power. If something other that OFF is selected, then this
knob changes the waveform appearance. Even more informative is the change in the spectrum that is
shown. Obviously, this setting is something to play with while listening to the waveform.
26. Clear.

Harmonics Clear. Clears the harmonics settings.

27. Sine. Harmonics Sine. The user is prompted to ”Convert to sine?” This seems simply to reset the
base function to a sine wave.
28. C.

Harmonics Copy.

29. P. Harmonics Paste.
30. Close.

11.3

Harmonics Close.

PADsynth / Envelopes and LFOs

This dialog is reached by click on the Envelopes LFOs tab of the PADsynth parameters dialog. This
tab is next to the Harmonic Structure tab.
It consists of nothing but stock user-interface elements that are described elsewhere in this manual.

176

Yoshimi Software Synthesizer

11.3

PADsynth / Envelopes and LFOs

Figure 146: PADSynth Parameters, Envelopes and LFOs
1.
2.
3.
4.
5.
6.
7.

AMPLITUDE
FILTER (section)
FREQUENCY (section)
Export
C
P
Close

One thing to note is that the small Red reset button next to the Pan knob is no longer present.
Instead, one can use a right-click on this knob to reset it to its home position and value.
Also note the ”Filter Envelope” section in the figure. This is a free-edit version of the envelope. The
non-free-edit view can be seen in Figure 73 ”Filter Envelope Sub-Panel” on page 94, which describes this
user-interface item in more detail.
31. AMPLITUDE. See Section 10.1 ”ADDsynth / AMPLITUDE” on page 145. This stock dialog
section provide volume, velocity sensing, panning, an amplitude envelope sub-panel, and an amplitude
LFO sub-panel.
32. FILTER. See Section 10.2 ”ADDsynth / FILTER” on page 147.
33. FREQUENCY.

See Section 10.3 ”ADDsynth / FREQUENCY” on page 147.

177

Yoshimi Software Synthesizer

34. Export.
35. C.

Very similar to Figure 137 ”Harmonics Structure Export Dialog” on page 169.

The stock copy dialog.

36. P. The stock paste dialog.
37. Close.

12

Close.

SUBsynth

The Yoshimi SUBsynth dialog is yet another complex dialog, this time for creating a subtractive-synthesis
instrument, ”SUBsynth” or ”SUBnote” is a simple engine which makes sounds through subtraction of
harmonics from white noise. [27]

Figure 147: SUBsynth Edit Dialog
One thing to note is that the small Red reset button next to the Pan knob is no longer present.
Instead, one can use a right-click on this knob to reset it to its home position and value.
This dialog, though very complex, consists of a number of stock sections that are described elsewhere
in this manual. Some descriptions are repeated here, though.
1. AMPLITUDE (section)
2. BANDWIDTH (section)

178

Yoshimi Software Synthesizer

3.
4.
5.
6.
7.
8.
9.
10.

12.1

SUBsynth / AMPLITUDE

FREQUENCY (section)
OVERTONES (section)
FILTER (section)
Harmonics (section)
Clear
C
P
Close

12.1

SUBsynth / AMPLITUDE

1.
2.
3.
4.
5.
6.

Volume
Vel Sens
Pan
Rand
Reset (panning) (red button)
Amplitude Env (stock sub-panel)

1. Volume. SUBsynth Volume.
Values: 1 to 127, 64*
2. Vel Sens. Velocity Sensing function, rightmost/max to disable.
Values: 1 to 127, 64*
3. Pan.

Global panning, leftmost/zero gives random panning.

Values: 1 to 127, 64*
4. Rand.

Indicator for activation of random panning.

5. Reset (panning). Reset Panning.
6. Amplitude Env. Amplitude Envelope. See Section 6.5.1 ”Amplitude Envelope Sub-Panel” on
page 89, for information on this stock sub-panel.

12.2

SUBsynth / BANDWIDTH

1. BandWidth
2. B.Width Scale
3. Bandwidth Env
1. BandWidth.

SUBsynth Bandwidth. Sets the bandwidth of each harmonic.

Values: 1 to 127, 40*
2. B.Width Scale. SUBsynth Bandwidth Scale. Sets how the bandwidth of each harmonic is increased
according to the frequency. The default (0) increases the bandwidth linearly according to the frequency.
This setting is kind of a ”frequency stretch” parameter.
Values: -64 to 63, 0*
3. Bandwidth Env. SUBsynth Bandwidth.
1. Enabled
2. A.val
179

Yoshimi Software Synthesizer

3.
4.
5.
6.
7.
8.
9.
10.

12.3

SUBsynth / FREQUENCY

A.dt
R.dt
R.val
Stretch
frcR
C
P
E

1. Enabled.

Enable the panel.

2. A.val. Attack value. We need to figure out what this means.
Values: 0 to 127, 64*
3. A.dt.

Attack duration. Attack time.

Values: 0 to 127, 40*
4. R.dt.

Release time.

Values: 0 to 127, 60*
5. R.val. Release Value. Actually present only on the Frequency Env sub-panel.
Values: 0 to 127, 64*
6. Stretch.

Bandwidth Stretch. On lower notes make the bandwidth lower.

Values: 0 to 127, 64*
7. frcR. Forced release. If this option is turned on, the release will go to the final value, even if the
sustain level is not reached.
Also present in this sub-panel are the usual Copy and Paste buttons that call up a copy-parameters
or paste-parameters dialog, as well as a button to bring up the editor window.
Values: Off, On*

12.3
1.
2.
3.
4.
5.
6.
7.
8.

SUBsynth / FREQUENCY
Detune
FREQUENCY Slider
440Hz
Eq.T
Octave
Detune Type
Coarse Det.
Frequency Env

1. Detune.

Frequency Detune Indicator

2. FREQUENCY Slider. Frequency Slider.
Values: -35 to 34.99
3. 440Hz. Frequency 440Hz. Fixes the base frequency to 440Hz. One can adjust it with detune settings.
4. Eq.T. Frequency Equalize Time. Sets how the frequency varies according to the keyboard. Set to
the leftmost setting for a fixed frequency.
180

Yoshimi Software Synthesizer

12.4

SUBsynth / OVERTONES

5. Octave. Frequency Octave. Octave Shift.
6. Detune Type. Frequency Detune Type. Sets the ”Detune” and ”Coarse Detune” behavior
7. Coarse Det. Frequency Coarse Detune, ”C.Detune”.
8. Frequency Env.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Frequency Envelope Stock Sub-Panel.

Enable
A.value or A.val
A.dt
R.dt
R.val
Stretch
frcR
C
P
E

See Section 70 ”Amplitude/Filter/Frequency Envelope Editor” on page 91, for more details.

12.4

SUBsynth / OVERTONES

The harmonics settings controls the harmonic intensities/relative bandwidth. Moving the sliders upwards
increases the relative bandwidth. Please note that, if one increases the number of harmonics, the CPU
usage increases. Right click to set the parameters to default values.
1.
2.
3.
4.

Overtones Position
Par1
Par2
ForceH

1. Overtones Position. Subsynth Overtones Position.
Values: Harmonic, ShiftU, ShiftL, PowerU, PowerL, Sine, Power, Shift

Figure 148: Harmonic Type Dropdown
2. Par1.

Subsynth Overtones Par1.

Values: 0 to 127
3. Par2.

Subsynth Overtones Par2.

Values: 0 to 127
4. ForceH. Subsynth Overtones ForceH.
Values: 0 to 127
181

Yoshimi Software Synthesizer

12.5
1.
2.
3.
4.
5.
6.
7.

12.5

SUBsynth / FILTER

SUBsynth / FILTER
Enabled
Filter Params (stock sub-panel)
Filter Env (stock sub-panel)
Stereo
Filter Stages
Mag. Type
Start

1. Enabled.

SUBsynth Filter Enabled.

2. Filter Params. Filter Params. See Section 6.2.5 ”Filter Parameters User Interface” on page 78,
which describes this stock sub-panel.
3. Filter Env. Filter Params. See Section 6.5.5 ”Envelope Settings for Filter” on page 94, which
describes this stock sub-panel.
4. Stereo. SUBsynth Stereo. Make the instrument stereo. The CPU usage goes up about 2 times. This
item isn’t really a FILTER item, it is just located in that same area.
5. Filter Stages. Filter Stages. Filter Order. Sets the number of filter stages applied to white noise.
This parameter affects the CPU usage.
Values: 0, 1, 2*, 3, 4, 5
6. Mag. Type. Magnitude Type. Sets the type of magnitude settings (linear versus dB values)

Figure 149: SUBSynth Magnitude Type Dropdown
Values: Linear, -40dB, -60dB, -80dB, -100dB
7. Start.

Start Type. How to start the filters.

Figure 150: SUBsynth Start Type
Values: Zero, RND, Max.

12.6

SUBsynth / Harmonics

This section consists of 64 sliders to control the amplitude of the narrow noise band at a given harmonic,
and 64 sliders to control the bandwidth of each band.

182

Yoshimi Software Synthesizer

The top row of SUBsynth sliders sets the relative amplitude. This used of the word ”relative” is an
important distinction, as the overall level of the output is normalised; all actual levels will be dependent
on whichever is the highest.
The bottom row sets the bandwidth of each harmonic. If one has just the fundamental, and drops the
bandwith to the minimum, one gets very nearly a sinewave. Set it to maximum and it is very obviously
filtered noise.

13

Kit Edit

The Yoshimi Kit dialog is a dialog for creating a set of drums or layered instruments. It provides a way
to use individual voices and synth blocks to create drumlike sounds, or complex layered sounds. Within
this window one can create drum kits, layered instruments, or one can combine more instruments into
one instrument.

Figure 151: Kit Edit Dialog
There have been some minor changes in this figure in recent versions of Yoshimi.
1. Rows 1 to 16. This dialog contains 16 identical rows containing the following elements, in the
order given:
1. No.
2. Enable (unlabelled checkbox)
3. Mute (was called ”M”)
4. Name (Instrument Name)
183

Yoshimi Software Synthesizer

5.
6.
7.
8.
9.
10.

Min key
m (set minimum note)
R (reset default note range)
M (set maximum note)
Max key
ADsynth
1. Enable
2. edit
11. SUBsynth
1. Enable
2. edit
12. PADsynth
1. Enable
2. edit
13. FX.r.
2. Mode
3. Drum mode
4. Close
1. No.
kit.

Kit Row Number, Kit Item Number. A simple label to indicate the instrument number in the

2. Enable.

Kit Row Enable. This unlabelled checkbox enables or disables an instrument in the kit.

Value: Off*, On
3. Mute.

Kit Row ”M”, now labelled as ”Mute”. Mute an item of the kit.

4. Instrument Name. Kit Instrument Name.
5. Min key. Kit Instrument Minimum Key, was formerly labelled ”Min.k”. Sets the minimum key of
the item of the kit.
6. m.

Sets the minimum note of this instrument to value of the last note pressed.

7. R.

Resets the minimum and maximum notes to their default values.

8. M.

Sets the maximum note of this instrument to value of the last note pressed.

9. Max key. Kit Instrument Maximum Key, was formerly labelled ”Max.k”. Sets the maximum key
of the item of the kit.
10. ADsynth. Kit ADDsynth. A checkbox is provided to enable/disable this synth component, and
an edit button is provided to edit the component.
11. SUBsynth. Kit SUBsynth. A checkbox is provided to enable/disable this synth component, and
an edit button is provided to edit the component.
12. PADsynth. Kit PADsynth. A checkbox is provided to enable/disable this synth component, and
an edit button is provided to edit the component.
13. FX.r. Kit Effect. Chooses the Part Effect (PartFX) to process the item (OFF means that is
unprocessed).
Values: OFF, FX1, FX2, FX3
14. Mode.

Kit Mode.

We need a picture to show the full Mode menu.
184

Yoshimi Software Synthesizer

• Off means no kit is enabled, so one only has the Add, Sub, and Pad sounds in the Instrument Edit
window.
• Multi means all the kit items will sound together regardless of their note ranges.
• Single means only the lowest numbered item will sound in a given note range. There will be no
overlap.
• Crossfade is described in detail below.
For example: Item 1 has Min key set to 0 and Max key set to 60, and Item 2 has Min key set to
40 and Max key set to 127.
In Single mode, only Item 1 will sound in the note range 0 to 60, and Item 2 will sound in the
range 61 to 127.
In Multi mode, only Item 1 will sound in the range 0 to 40, both items will sound from 41 to 60,
and only Item 2 will sound from 61 to 127.
Values: Off*, Multi, Single, Crossfade.
The part’s kit edit Mode menu has an additional entry called Crossfade. When crossfade is set, one
gets Multi behaviour with overlapping key ranges, but with a very smooth crossfade between sequential
pairs of kit items. This follows the pattern 1+2, 3+4, etc. Each pair will not affect any other kit items.
It doesn’t matter which of the pair has the lower range, as long as there is a range overlap. The code
is semi-intelligent, and any that are not paired will exhibit normal Multi behaviour. If one item in a pair
is not enabled then the other one will exhibit normal Multi behaviour and will not fade at all.
An interesting effect is that if one of the pair is enabled, but muted or has no engines enabled, then
the other one still fades through the overlap range, so one can get sounds fading out (or fading in) with
increasing pitch!
If one wants a fade to come in then go out again, one needs two sets of pairs, with a hard nonoverlapped point in the middle.
item 1 - min 0 max 60
item 2 - min 40 max 80 (fades up)
item 3 - min 81 max 100 (fades down)
item 4 - min 90 max 127
This feature is backward-compatible, in that older versions of Yoshimi will see it as an ordinary
Multi – it uses a new variable stored in the instrument file that is simply ignored by earlier versions.
15. Drum mode. Kit Drum Mode. If drum-mode is set, then microtonal tuning is ignored for this
kit, otherwise it could make drum sounds very unpredictable!
16. Close Window. Close.
One kit mode is set, some direct-access to the kit mode is available. We’ll set it to ’multi’.
direct 1 64 58 0
Kit item 1 is always enabled, although one can mute it and enable/disable the individual engines. To
be clear, though, we’ll enable kit item 3 and work with that; add 32 to the kit number to get 35:

185

Yoshimi Software Synthesizer

direct
direct
direct
direct

1 64 8 0 35
56 64 16 0 35
1 64 8 0 35 1
40 64 0 0 3 1

// set its minimum note
// enable the subsynth engine
// change its volume

Note one adds 32 only for the kit item commands, not for the engine internal commands.

14

Banks Collection

In this section, we attempt to collect and summarize all of the existing banks for Yoshimi and ZynAddSubFX that we can find. Many of them are supplied by the two projects.
Between all of the collections, there is a large amount of duplication. There is also semi-duplication,
with slight variations on the same basic instrument. Various Linux distributions which package ZynAddSubFX and Yoshimi might add some banks to their versions of these packages. Thus, there are
far more sound settings than we can discuss and categorize.
One thing we’re looking for is a good General MIDI (GM) bank for Yoshimi. As part of our Yoshimi
Cookbook [4], we include a basic General MIDI bank for. However, there are number of patches with no
good implementation in it.

14.1

Yoshimi Banks

Yoshimi comes with the following banks, which may be found in /usr/share/yoshimi/banks as installed
by the installer. In this case, it is the Debian installer.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.

Arpeggios. Also in ZynAddSubFX.
Bass. Also in ZynAddSubFX.
Brass. Also in ZynAddSubFX.
chip.
Choir and Voice Also in ZynAddSubFX, slightly different bank name.
Drums. Also in ZynAddSubFX, but with only one drum kit included.
Dual. Also in ZynAddSubFX.
Fantasy. Also in ZynAddSubFX.
Guitar. Also in ZynAddSubFX.
Misc. Also in ZynAddSubFX.
Noises. Also in ZynAddSubFX.
Organ. Also in ZynAddSubFX.
Pads. Also in ZynAddSubFX.
Plucked. Also in ZynAddSubFX.
Reed and Wind. Also in ZynAddSubFX, slightly different bank name.
Rhodes. Also in ZynAddSubFX.
Splited. Also in ZynAddSubFX, slightly different bank name.
Strings. Also in ZynAddSubFX.
Synth. Also in ZynAddSubFX.
SynthPiano. Also in ZynAddSubFX.
The Mysterious Bank. Also in ZynAddSubFX, slightly different bank name. ZynAddSubFx has
three more mysterious banks (see next section).
186

Yoshimi Software Synthesizer

14.2

Additional ZynAddSubFX Banks

22. Will Godfrey Collection.
23. Will Godfrey Companion.

14.2

Additional ZynAddSubFX Banks

ZynAddSubFX comes with the following banks, which may be found in the source code [30] or installation
packages of this project. ZynAddSubFX has some of the same banks (as far as we can tell) as Yoshimi,
but with the following additions:
1.
2.
3.
4.
5.
6.
7.
8.

14.3

Companion.
Cormi Noise and Cormi Sound [6].
Laba170bank.
olivers-100. Some very good instruments, including sitar and steel drums.
the mysterious bank.
the mysterious bank 2.
the mysterious bank 3.
the mysterious bank 4.

Additional Banks

Here are some additional banks we have found, or have built ourselves. It often happens that, later on,
a site is no longer available. Or we forget from whence we got the banks. In these cases, the banks are
stored in the contrib/banks directory of this project.
1. Alex J The site seems to be gone/expired. So one will find these in the ”contrib/banks” directory
for safekeeping.
2. Bells We have no idea where we got this one. Lost track of that information.
3. C Ahlstrom These are mine, but not yet made into a systematic bank. They are included with
this document.
4. Chromatic Percussion Not sure where we got this at this time.
5. Drums DS Not sure where we got this at this time.
6. Electric Piano Not sure where we got this at this time.
7. Flute Not sure where we got this at this time.
8. folderol collection [8], also found at [26].
9. Internet Collection Not sure where we got this at this time.
10. Leads Not sure where we got this at this time.
11. Louigi Verona Workshop The site seems to be gone/expired. So one will find these in the ”contrib/banks” directory for safekeeping.
12. Misc Keys Not sure where we got this at this time.
13. mmxgn Collection [12]
14. Piano Not sure where we got this at this time.
15. RB Zyn Presets Not sure where we got this at this time.
16. Vanilla See [26] for this bank, and for some demonstration files of ZynAddSubFX sounds, and some
other nice links.
17. VDX Not sure where we got this at this time.
18. x31eq.com [18]
19. XAdriano Petrosillo Not sure where we got this at this time.
20. Zen Collection Not sure where we got this at this time.

187

Yoshimi Software Synthesizer

15

Non-Registered Parameter Numbers

This section comes from the source-code documentation file Zyn nrpn.txt or the ZynAddSubFx online
manual [27] and the Using NRPNS.txt document that accompanies the Yoshimi source code.
Yoshimi implements System and Insertion effects control in a manner compatible with ZynAddSubFX.
As with all Yoshimi’s NRPNs, the controls can be sent on any MIDI channel.

15.1

NRPN / Basics

NRPN stands for ”Non Registered Parameters Number”. NRPNs can control all System and Insertion
effect parameters. Using NRPNs, Yoshimi can now directly set some part values regardless of what channel
that part is connected to. For example, one may change the reverb time when playing to keyboard, or
change the flanger’s LFO frequency. The controls can be sent on any MIDI channel (the MIDI channels
numbers are ignored).
The parameters are:
• NRPN MSB (coarse) (99 or 0x63) sets the system/insertion effects (4 for system effects or 8 for
insertion effects). We abbreviate this value as Nhigh.
• NRPN LSB (fine) (98 or 0x62) sets the number of the effect (first effect is 0). We abbreviate this
value as Nlow.
• Data entry MSB (coarse) (6) sets the parameter number of effect to change (see below). We
abbreviate this value as Dhigh.
• Data entry LSB (fine) (26) sets the parameter of the effect. We abbreviate this value as Dlow.
One must send NRPN coarse/fine before sending Data entry coarse/fine. If the effect/parameter
doesn’t exists or is set to none, then the NRPN is ignored.
It’s generally advisable to set NRPN MSB before LSB However, once MSB has been set one can set
a chain of LSBs if they share the same MSB. The data CCs associated with these are 6 for MSB and 38
for LSB. Only when an NRPN has been established can the data values be entered (they will be ignored
otherwise). If a supported control is identified, these data values will be stored locally (if needed) so that
other NRPNs can be set. Whenever either byte of the NRPN is changed, the data values will be cleared
(but stored settings will not be affected). If either NRPN byte is set to 127, all data values are ignored
again.
In Yoshimi NRPNs are not themselves channel-sensitive, but the final results will often be sent to
whichever is the current channel. Yoshimi also supports the curious 14-bit NRPNs, but this shouldn’t be
noticeable to the user. In order to deal with this, and also some variations in the way sequencers present
NRPNs generally, if a complete NRPN is set (i.e. Nhigh, Nlow, Dhigh, Dlow), then the data bytes can be
in either order, but must follow Nhigh and Nlow.
(In these notes, where practical we also list the 14 bit values in square brackets.)
After this, for running values, once Dhigh and Dlow have been set if one changes either of these, the
other will be assumed. For example, starting with Dhigh = 6 and Dlow = 20:
Change Dlow to 15 and Yoshimi will regard this as a command Dhigh 6 + Dlow 16 Alternatively
change Dhigh to 2 and Yoshimi will regard this as a command Dhigh 2 + Dlow 20. This can be useful but
may have unintended consequences! If in doubt change either of the NRPN bytes and both data bytes
will be cleared.
188

Yoshimi Software Synthesizer

15.1

NRPN / Basics

Additionally there is 96 for data increment and 97 for decrement.
Data increment and decrement operation enables one to directly change the data LSB by between 0
and 63. To change the MSB, add 64 to cover the same range. Setting 0 might seem pointless, but it gives
an alternative way to make an initial setting if one’s sequencer doesn’t play nice.
Although data increment and decrement are only active if a valid NRPN has been set, they are
otherwise quite independent single CCs. For example:
Start Value
----- ----LSB
5
MSB
7
LSB
128(off)
MSB
126
MSB
128(off)

Command value
Result
-------------- -----inc 20
25
inc 68
11
inc 1
1
dec 74
116
dec 65
127

A small example (all values in this example are hex):
B0
B0
B0
B0

63
62
06
26

08
01
00
7F

//
//
//
//

Select
Select
Select
Change

the
the
the
the

insertion effects
second effect (remember: the first is 00 and not 01)
effect parameter 00
parameter of effect to the value 7F (127)

WARNING: Changing of some of the effect parameters produces clicks when sounds passes thru
these effects. We advise one to change only when the sound volume that passes through the effect is very
low (or silence). Some parameters produce clicks when they are changed rapidly.
Here are the effects parameter numbers (for Data entry, coarse). The parameters that produces clicks
are written in red and have (AC) after their entry (always clicks). The parameter that produces clicks
only when they are changed fast are written in blue and have a (FC) after the entry (Fast Clicks).
Most parameters have the range from 0 to 127. When parameters have another range, it is written as
”(low...high)”.
Here are the basic formats:
1. Send NRPN:
• MSB = 64 (same as for vectors)
• LSB = 0
2. Send Data MSB (6); all value ranges start from zero, not 1.
•
•
•
•
•

0 : data LSB = part number
1 : data LSB = program number
2 : data LSB = controller number
3 : data LSB = controller value
4 : data LSB = part’s channel number (16 to 31 allows only Note Off for this part, while
numbers 32 or above disconnects the part from all channel message)
• 5 : data LSB = part’s audio destination, one of 1 = main L&R; 2 = direct L&R; 3 = both; all
other values are ignored
• 7 : data LSB = main volume (not yet implemented)
• 35 (0x23) : data LSB = controller LSB value (not yet implemented)
189

Yoshimi Software Synthesizer

15.2

• 39 (0x27) : data LSB = main volume LSB (not yet implemented)
• 64 (0x40) : data LSB = key shift value (64 = no shift)
• Other values are currently ignored.
Other values are currently ignored by Yoshimi.

15.2

NRPN / Effects Control

15.2.0.1
•
•
•
•
•
•
•
•
•
•
•
•

00
01
02
03
04
05
06
07
08
09
10
11

-

15.2.0.2
•
•
•
•
•
•
•

00
01
02
03
04
05
06

-

15.2.0.3
•
•
•
•
•
•
•
•
•
•
•
•

00
01
02
03
04
05
06
07
08
09
10
11

-

Reverb
Volume or Dry/Wet (FC)
Pan (FC)
Reverb Time
Initial Delay (FC)
Initial Delay Feedback
reserved
reserved
Low Pass
High Pass
High Frequency Damping (64..127) 64=no damping
Reverb Type (0..1) 0-Random, 1-Freeverb (AC)
Room Size (AC)
Echo
Volume or Dry/Wet (FC)
Pan (FC)
Delay (AC)
Delay between left and right (AC)
Left/Right Crossing (FC)
Feedback
High Frequency Damp
Chorus
Volume or Dry/Wet (FC)
Pan (FC)
LFO Frequency
LFO Randomness
LFO Type (0..1)
LFO Stereo Difference
LFO Depth
Delay
Feedback
Left/Right Crossing (FC)
reserved
Mode (0..1) (0=add, 1=subtract) (AC)

190

NRPN / Effects Control

Yoshimi Software Synthesizer

15.2.0.4
•
•
•
•
•
•
•
•
•
•
•
•

00
01
02
03
04
05
06
07
08
09
10
11

-

15.2.0.5
•
•
•
•
•
•
•
•
•
•
•

00
01
02
03
04
05
06
07
08
09
10

-

15.2.0.6
•
•
•
•
•
•
•
•
•
•

00
01
02
03
04
05
06
07
08
09

-

15.2.0.7

15.2

NRPN / Effects Control

Phaser
Volume or Dry/Wet (FC)
Pan (FC)
LFO Frequency
LFO Randomness
LFO Type (0..1)
LFO Stereo Difference
LFO Depth
Feedback
Number of stages (0..11) (AC)
Let/Right Crossing (FC)
Mode (0..1) (0=add, 1=subtract) (AC)
Phase
AlienWah
Volume or Dry/Wet (FC)
Pan (FC)
LFO Frequency
LFO Randomness
LFO Type (0..1)
LFO Stereo Difference
LFO Depth
Feedback
Delay (0..100)
Left/Right Crossing (FC)
Phase
Distortion
Volume or Dry/Wet (FC)
Pan (FC)
Left/Right Crossing
Drive (FC)
Level (FC)
Type (0..11)
Invert the signal (negate) (0..1)
Low Pass
High Pass
Mode (0..1) (0=mono,1=stereo)
EQ

• 00 - Gain (FC)
All other settings of the EQ are shown in a different way. The N represent the band (”B.” setting in
the UI) and the first band is 0 (and not 1), like it is shown in the UI. Change the ”N” with the band one
likes. If one wants to change a band that doesn’t exist, the NRPN will be ignored.

191

Yoshimi Software Synthesizer

•
•
•
•
•

10+N*5
11+N*5
12+N*5
13+N*5
14+N*5

-

15.2

NRPN / Effects Control

Change the mode of the filter (0..9) (AC)
Band’s filter frequency
Band’s filter gain
Band’s filter Q (bandwidth or resonance)
reserved

Example of setting the gain on the second band in the EQ module:
• The bands start counting from 0, so the second band is 1 =

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Page Count                      : 282
Page Mode                       : UseOutlines
Author                          : ©
Title                           : 
Subject                         : 
Creator                         : pdfLaTeX
Producer                        : LaTeX with hyperref and ClassicThesis
Create Date                     : 2018:12:29 08:07:00-05:00
Modify Date                     : 2018:12:29 08:07:00-05:00
Trapped                         : False
PTEX Fullbanner                 : This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) kpathsea version 6.3.1/dev
EXIF Metadata provided by EXIF.tools

Navigation menu