Skip to content

Commit

Permalink
First wave of changes (#22)
Browse files Browse the repository at this point in the history
* Smaller first changes

* Makefile added

* Many smaller implementations and tests

* README updated

* Small changes

* Combined action with keyboard shortcut

* TODO added

* More small changes

* Added more TODOs

* Changed "midi" to "MIDI", "...SubFx" to "...SubFX" and started testing formats for the glossary

* Enabled section numbers, added assistance in setting Ardour's virtual keyboard mode, solved some TODOs and comments

* Tutorial covered

* Started the glossary, commented sections not yet worked on

* UI, Status panel, added information

* Switched tabs for spaces, playing around with indentation

* More info regarding UI, Makefile updated, tutorial headers moved to block titles

* Navigation panel written, keyshift changed to the 0-centered description

* Part settings, got to instrument settings

* Instrument settings nearing completion

* Porta, controller and scale parameters named

* Some controller info added

* Wrote about the mixer and browser windows and protamento, updated the glossary

* Virkey and instr settings written in a better format

* More text added, down to the browser

* Kit settings written

* Macro learn panel text written

* Made it to the synthesis engines

* TOC fixed

* Reordered structure, lots of unneeded files to be cleaned up

* Synths part reorganized

* Added subheaders to synthesis engines

* Synthesis engines added

* Oscillator window and gen. amp. settings

* More text on synthesis modules

* LFO synth module

* Removed old PAD and SUBSynth docs

* Free env mode, glossary

* SUBSynth, PADSynth

* Reordered unused ADOCs and images, work on images started

* mixer image not quite right yet

* Macro learn image added

* Resonance and copy-pasting

* Footer image now appears in Quick start
  • Loading branch information
bratpeki authored Feb 1, 2025
1 parent b2c7faa commit a52d568
Show file tree
Hide file tree
Showing 101 changed files with 872 additions and 265 deletions.
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.
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.
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

0 comments on commit a52d568

Please sign in to comment.