Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First wave of changes #22

Open
wants to merge 43 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
166001e
Smaller first changes
bratpeki Mar 24, 2024
0d6c559
Makefile added
bratpeki Mar 24, 2024
272af3c
Many smaller implementations and tests
bratpeki Mar 24, 2024
fd165ba
README updated
bratpeki Mar 24, 2024
97878b9
Small changes
bratpeki Mar 24, 2024
3bb6c81
Combined action with keyboard shortcut
bratpeki Mar 25, 2024
0ea8367
TODO added
bratpeki Mar 25, 2024
5d21277
More small changes
bratpeki Mar 26, 2024
18f49f3
Added more TODOs
bratpeki Jul 26, 2024
338839b
Changed "midi" to "MIDI", "...SubFx" to "...SubFX" and started testin…
bratpeki Jul 27, 2024
c3d2477
Enabled section numbers, added assistance in setting Ardour's virtual…
bratpeki Jul 29, 2024
c72bccb
Tutorial covered
bratpeki Jul 30, 2024
7d2fbed
Started the glossary, commented sections not yet worked on
bratpeki Jul 30, 2024
cd86818
UI, Status panel, added information
bratpeki Jul 31, 2024
1c5dbce
Switched tabs for spaces, playing around with indentation
bratpeki Jul 31, 2024
da0a971
More info regarding UI, Makefile updated, tutorial headers moved to b…
bratpeki Jul 31, 2024
979b581
Navigation panel written, keyshift changed to the 0-centered description
bratpeki Aug 3, 2024
816db63
Part settings, got to instrument settings
bratpeki Aug 3, 2024
57a8a62
Instrument settings nearing completion
bratpeki Aug 9, 2024
ab59382
Porta, controller and scale parameters named
bratpeki Aug 10, 2024
e67915e
Some controller info added
bratpeki Aug 12, 2024
e102bc7
Wrote about the mixer and browser windows and protamento, updated the…
bratpeki Aug 13, 2024
8a8fafd
Virkey and instr settings written in a better format
bratpeki Aug 20, 2024
f169225
More text added, down to the browser
bratpeki Aug 20, 2024
4f361e3
Kit settings written
bratpeki Aug 20, 2024
962ca66
Macro learn panel text written
bratpeki Aug 21, 2024
214d0fc
Made it to the synthesis engines
bratpeki Aug 24, 2024
4c05d90
TOC fixed
bratpeki Aug 24, 2024
3b79649
Reordered structure, lots of unneeded files to be cleaned up
bratpeki Aug 25, 2024
86e6799
Synths part reorganized
bratpeki Aug 25, 2024
9d237a8
Added subheaders to synthesis engines
bratpeki Aug 25, 2024
1aebedf
Synthesis engines added
bratpeki Aug 25, 2024
35172e7
Oscillator window and gen. amp. settings
bratpeki Aug 25, 2024
bb2ba11
More text on synthesis modules
bratpeki Aug 26, 2024
500d7b3
LFO synth module
bratpeki Aug 26, 2024
35ab230
Removed old PAD and SUBSynth docs
bratpeki Aug 26, 2024
e8290fe
Free env mode, glossary
bratpeki Aug 26, 2024
b0d8d68
SUBSynth, PADSynth
bratpeki Sep 1, 2024
27d5e11
Reordered unused ADOCs and images, work on images started
bratpeki Sep 6, 2024
59e2b5d
mixer image not quite right yet
bratpeki Sep 6, 2024
2f37587
Macro learn image added
bratpeki Sep 8, 2024
ed290d1
Resonance and copy-pasting
bratpeki Sep 8, 2024
cb61d34
Footer image now appears in Quick start
bratpeki Dec 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Any and all HTML and PDF files should be left out of the Git index
*.html
*.pdf
42 changes: 42 additions & 0 deletions ADDSynth.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
=== ADDSynth

image::imgs/add-synth.png[]

ADDSynth is ZynAddSubFX's additive synthesizer.

This is the most common synth of choice, and you should use it any time you need
more than one voice, modulation, or a simple, one-oscillator patch.

It features 8 voices,
each of which can be toggled using the power button in the top-left corner of the ADDSynth panel
or using the voice grid below the ADDSynth panel button.

This section is meant to be an intuitive explanation of various sections of ADDSynth.
If you haven't tried to use ADDSynth practically, please consult the tutorials.

==== Editing a voice -> VOICE tabs

So how do you actually start editing a voice?

Usually, you'll first hop into the <<synth-osc, oscillator editor>> and make your voice have the desired timbre!
As you could expect, this is done via the "Oscillator" tab.

Your voice might additionally require some modulation or a bit of unison, in which case, we'll move onto the "Modulation" and "Mod-Osc" tabs!

In "Modulation", you can set add unsion, which is great for choirs or harmonic-rich sounds, or make your sound crazy using frequency, phase, ring or some other type of modulation. In case you want to change the modulating oscillator, you can do so in <<synth-osc, the "Mod-Osc" tab>> or by using one of the previous voices to modulate the current voice (e.g. voice 3 can be modulated by voices 1 and 2)!
This is done by setting the dropdown displaying "Normal" to the desired oscillator.

Once you have your desired sound, we move onto the "Voice" tab, where you can edit
the <<synth-ampset, amplitude>>. <<synth-freqset, frequency>>,
as well as the optional <<synth-filset, filter>>.

==== Editing global parameters

Now, once you've made each voice sound like how you want them, let's make the final sound!

First, you might want to go to the "Voice list" tab and adjust the voice levels!
Additionally, you can enable anti-aliasing and set panning, detune and MIDI CC vibrato depth.

After that, apply the finishing touches by going to "Global" and "Resonance" tabs and making changes to
the <<synth-ampset, amplitude>> and <<synth-freqset, frequency>>,
as well as the optional <<synth-res, resonance>> and <<synth-filset, filter>>.
23 changes: 20 additions & 3 deletions Glossary.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
// Here goes all the term definitions the user might need to reference while reading the manual.
// We need to figure out a way to sort the items here alphabetically
// https://github.com/zynaddsubfx/user-manual/issues/6

NOTE: Here by glossary!
// Filter, sync, distortion, fade, pan
// FM, AM, Bandwith, Additive/Subtractive synthesis, Envelope and Harmonic

// Ideally they're more naturally introduced in the text

[glossary]
ADSR:: Short for "Attack-Decay-Sustain-Release", the most common type of envelope.
Key:: A possible input to Zyn-Fusion, with a specific notation (eg. A4, G#2, etc). Practically, it's the same thing as a note.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not proposing a change, but for elsewhere in the docs be aware that this is an overloaded term and may be used to talk about a whole scale in the microtonal sections of the app.

LFO:: Short for "Low Frequency Oscillator", it's a periodic envelope used for looping and constant changes to your sound.
Patch:: A configuration of ZynAddSubFX the user makes or loads up. You can create patches for drums, strings, pads, or something entirely different!
Portamento:: A pitch slide from one note to another.
Preset:: A ready-made, reusable patch. ZynAddSubFX comes with a bunch of presets you can use!
Timbre:: The percieved quality of a sound. Different oscillators produce different timbres.
VU meter:: A meter that displays the average level of an audio signal.
Voice:: A single instance of sound a synth can produce. If you are limited to three voices, you can only play three notes at one time and expect to hear them in the final sound.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's the primary usage, but same as the last comment be aware that this gets overloaded to include a smaller contributing element within the add synth engine.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you elaborate on this? What changes would you propose?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For definitions that have multiple usages I'd mention the options in the definition. e.g. voice in most synths is typically an instance of something producing a sound, but in zyn it also refers to a piece of add synth where each voice in an add synth instance features one oscillator and one modulating oscillator.

Zyn-Fusion:: The modern descendant of ZynAddSubFX, introducing a new GUI and many other improvements.
Zyn:: A shorthand for Zyn-Fusion.
ZynAddSubFX:: The synthesis engine behind Zyn-Fusion, originally created by Paul Nasca Octavian.

// TODO: Key/Note? https://github.com/zynaddsubfx/user-manual/pull/22#discussion_r1717669181
65 changes: 32 additions & 33 deletions IntroTutorial-HiHatSynthesis.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
== Intro Tutorial 3: Hi-Hat Synthesis
=== Goals
[[tut3]]
=== Tutorial 3: Hi-Hat Synthesis

In the previous sections you learned how to use the ADDsynth to create a kick drum and snare drum. Let's round out a ver basic drum kit with a hi-hat cymbal!

Many of the steps of this project are identical to the steps we took in our previous projects, but with different values.
Expand All @@ -8,58 +9,57 @@ Hopefully you have begun to feel comfortable enough with the general layout of Z

When you're finished with this project you'll know to:

- synthesize a custom snare hi-hat cymbal using ADDsynth and *envelopes* and *filters*
- use modulator unison settings
- synthesize a custom snare hi-hat cymbal using ADDsynth and *envelopes* and *filters* and
- use modulator unison settings.

.Prerequisites
WARNING: This tutorial assumes that you have completed Project 2: Snare Drum Synthesis
WARNING: This tutorial assumes that you have completed <<tut2, Project 2: Snare Drum Synthesis>>

===== Open your previous Ardour session
Launch the Ardour session you used for Project 2.
.Open your previous Ardour session
Launch the Ardour session you used for <<tut2, snare drum tutorial>>.

===== Add a new midi track
* Create a new Zyn-Fusion midi track for our synthesizer
** `Shift + Ctrl + N`
*** *Name:* HiHat
*** *Instrument:* ZynAddSubFx
*** Click `Add and Close`
.Add a new MIDI track
* Create a new Zyn-Fusion MIDI track for our synthesizer, using `Shift + Ctrl + N`
** *Name:* HiHat
** *Instrument:* ZynAddSubFX
** Click `Add and Close`

===== Open the piano roll
.Open the piano roll
Expand the track itself by clicking on the lower edge and dragging it down until you see the "piano roll" similar to the picture below.

===== Draw your midi area
.Draw your MIDI area
Enable draw mode by clicking on the pencil icon.

- Draw a midi area that is 1 *beat* / 4 *measures* long (it should be the same length as your existing kick and snare midi areas).
- Draw a MIDI area that is 1 *beat* / 4 *measures* long (it should be the same length as your existing kick and snare MIDI areas).

===== Draw your midi pattern
.Draw your MIDI pattern
I'm just going to place a simple 4/4 pattern. You can do anything you like, but don't get too crazy yet, it's going to be repeating behind you while you sculpt the sound.

image::screenshots/ardour-midi-4-4-with-snare-and-hihat.png[]

.Info
NOTE: This tutorial uses note C4 as our starting note.

===== Loop your midi pattern
Now we're going to tell Ardour to loop this specific region whenever we tell it to play. Right click on your midi area, select "play", and "loop region".
.Loop your MIDI pattern
Now we're going to tell Ardour to loop this specific region whenever we tell it to play. Right click on your MIDI area, select "play", and "loop region".

You should now here your pattern being played with your kick drum and the default Addsynth sound.
You should now here your pattern being played with your kick drum and the default Addsynth sound.

.Tip
NOTE: You can listen to any track in _solo_ mode by clicking on the `S` button on the specific track. This will mute all instruments but the track you select and can be useful when modifying individual sounds.

image::screenshots/ardour-solo-track.png[]

===== Launch Zyn-Fusion
.Launch Zyn-Fusion
* Select your `Synth` track and then *double-click* on the ZynAddSubFX button (circled in red below)

===== Launch ADDsynth
Launch the ADDsynth by selecting the `ADD` button.
.Launch ADDsynth
Launch the ADDsynth by selecting the `ADD` button.

.What Key am I in?
NOTE: We use note `C4` as our starting point.

===== Change the Oscillator type
.Change the Oscillator type
Up to this point we've been using the default sine wave oscillator to generate our tones, but Zyn-Fusion is capable of generating many different types of waves. Each type has unique sound characteristics that we'll dig into later.

For this project we're going to use a *Pulse* wave.
Expand All @@ -70,7 +70,7 @@ For this project we're going to use a *Pulse* wave.

image::screenshots/osc-base-function-pulse.png[]

===== Adjust the Modulation
.Adjust the Modulation
Now we're going to adjust how the signal is *modulated*. It's ok if you don't know what that means yet, for now think of "modulation" as "changing" a wave.

One of the unique characteristics of cymbals is the "rattle" or "crash" that can often sound like multiple clanging sounds overlapping. We're going to accomplish this goal by increasing the *unison*.
Expand All @@ -95,14 +95,14 @@ Now let's disable the default *vibrato* settings.

image::screenshots/mod-unison.png[]

===== Modify the global frequency
.Modify the global frequency
Let's detune the frequency a bit again, this time at the global level.

* Navigate to `Global >> Frequency >> General`
** Adjust `BW >> 90`
*** How does the sound change when you adjust the frequency?

===== Modify the global filter
.Modify the global filter
Now it's time to play with filters where we will adjust, well, how the sound is filtered.

For starters, let's change from the default lowpass filter to a high-pass filter.
Expand All @@ -119,30 +119,29 @@ Now let's adjust the cutoff frequency.
** `Filter >> Cutoff >> 14300 Hz`
*** 14300 is an approximate number, anything close should be fine.


===== Modify the amplitude envelope
.Modify the amplitude envelope
Listen to that! Believe it or not, we're almost finished. Let's try minimizing the sustain value to shorten the length of our note, I feel like it's dragging on far too long.

* Navigate to `Global >> Amplitude >> Envelope`
** Modify `S.VAL >> 0`

That's an interesting sound now isn't it? What happens if we modify the *decay*?
That's an interesting sound now, isn't it? What happens if we modify the *decay*?

* Navigate to `Global >> Amplitude >> Envelope`
** `Amplitude >> Envelope >> D.DT >> 30`

.Tip
NOTE: If the hi-hat seems hard to hear when playing with your kick and snare, try increasing the `global >> amplitude >> volume` of the hi-hat.
NOTE: If the hi-hat seems hard to hear when playing with your kick and snare, try increasing the `GLOBAL >> AMPLITUDE >> VOL` of the hi-hat.

==== Save your instrument
.Save your instrument
Congratulations, you've crafted a hi-hat cymbal - starting with a single sin wave and using additive synthesis!

Now would be a great time to save your Zyn-fusion instrument and Ardour session.

* Navigate to `File >> Save instrument`
* Choose a directory and name your file before selecting `Enter`

==== Save your Ardour session
.Save your Ardour session

* Navigate to your Ardour window
* `Ctrl + S`
Loading