zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 2091e391a8136014cce99ed97304b692c7a289f3
parent 15573ea56057f8220fe694d25d07690af00e1562
Author: Johannes Lorenz <[email protected]>
Date:   Sat, 15 Aug 2015 09:21:50 +0200

Moved TODO.txt to bug tracker. Fixed doc spelling mistakes.

Diffstat:
DTODO.txt | 23-----------------------
Mdoc/adsynth.txt | 10+++++-----
Mdoc/controller.txt | 16++++++++--------
Mdoc/effects.txt | 40++++++++++++++++++++--------------------
Mdoc/getting.txt | 4++--
Mdoc/intro.txt | 4++--
Mdoc/lfo.txt | 18+++++++++---------
7 files changed, 46 insertions(+), 69 deletions(-)

diff --git a/TODO.txt b/TODO.txt @@ -1,23 +0,0 @@ -Issues: -(1) src/Params/LFOParams.h: static int time; //is used by Pcontinous -parameter -(2) src/DSP/FFTwrapper.cpp:static pthread_mutex_t *mutex = NULL; -(3) src/Misc/MiddleWare.cpp:extern rtosc::ThreadLink *the_bToU;//XXX -(4) src/Misc/Allocator.h:extern Allocator DummyAlloc; -(5) src/Misc/Util.h:extern float *denormalkillbuf; /**<the buffer to add noise -in order to avoid denormalisation*/ -(6) src/Misc/Util.h:extern class Config config; -(7) src/Misc/Util.h:extern prng_t prng_state; -(8) src/Params/PresetsStore.h:extern PresetsStore presetsstore; - -Status: -(1) will be fixed by fundamental -(2) will be fixed with fftw3 (?), until then maybe use separate mutex? -(3) will be fixed by fundamental -(4) fixed + tested -(5) fixed + tested -(6) fixed + tested (only basic testing) -(7) -> will not be fixed (should stay random) -(8) fixed + tested - - diff --git a/doc/adsynth.txt b/doc/adsynth.txt @@ -17,21 +17,21 @@ image::gen/ad-note.png[scalewidth="50%",width="700"] The global level of adsynth is almost entirely composed of previously discussed elements. However a few new features appear here, this includes velocity sensing, punch, -detune options and realative bandwidth , and resonance. +detune options and relative bandwidth , and resonance. .AdSynth Global Window image::images/ad-global.png[] -Velocity sensing is simply an exponental transformation from the note's velocity +Velocity sensing is simply an exponential transformation from the note's velocity to some parameter change. -The below diagram shows how the velocity senseing controls affects this +The below diagram shows how the velocity sensing controls affects this translation over the whole range of possible note velocities. .Velocity Sensing Chart image::gen/velf.png[scalewidth="50%",width="600"] -The puch of a note in AdSynth is a constant amplification to the output at the +The punch of a note in AdSynth 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 pane is effectively a multiplier for detuning @@ -88,7 +88,7 @@ Waveshaping can be done using the *Wsh* area in the Oscillator editor. The type of distortion has much influence on how the overtones are being placed. Sometimes, you get a "fat" bass, and sometimes, high frequencies are added, -makeing the sound "crystal clear". +making the sound "crystal clear". Atan & Sigmoid ++++++++++++++ diff --git a/doc/controller.txt b/doc/controller.txt @@ -6,13 +6,13 @@ image::./images/uicontroller.png[] General ~~~~~~~ -* *ModWh*: Modullation Wheel depth -* *Exp MWh*: Exponental Modulation Wheel (changes modulation scale to - exponental) +* *ModWh*: Modulation Wheel depth +* *Exp MWh*: Exponential Modulation Wheel (changes modulation scale to + exponential) * *BwDpth*: Bandwidth Depth -* *Exp BW*: Exponental Bandwidth (changes badwidth scale to exponental) +* *Exp BW*: Exponential Bandwidth (changes bandwidth scale to exponential) * *PanDpth*: Panning Depth -* *FltQ*: Filter Q (ressonance) depth +* *FltQ*: Filter Q (resonance) depth * *FltCut* Filter Cutoff frequency depth * *Expr*: enable/disable expression * *Vol*: enable/disable receiving volume controller @@ -27,7 +27,7 @@ Portamento * *time*: The duration of the portamento * *thresh*: The threshold of the portamento. It represents the minimum or the maximum number of halftones -(or hundried cents) required to start the portamento. +(or hundred cents) required to start the portamento. The difference is computed between the last note and current note. * *th.type*: The threshold type. Checked means that the portamento activates when the difference of frequencies @@ -37,13 +37,13 @@ NOTE: The threshold refers to the frequencies and not to MIDI notes (you should consider this if you use microtonal scales). -Proportinal Portamento +Proportional Portamento ^^^^^^^^^^^^^^^^^^^^^^ //// TODO: add graphs to explain prp.rate and prp. depth //// -* *Propt.*: If the portamento is proportinal to ratio of frequencies +* *Propt.*: If the portamento is proportional to ratio of frequencies * *Prp. Rate*: Ratio needed to double the time of portamento * *Prp. Dpth*: The divergence from diff --git a/doc/effects.txt b/doc/effects.txt @@ -1,7 +1,7 @@ Effects ------- -Effects are, generally, blackboxes that transform audio signals in a +Effects are, generally, black boxes that transform audio signals in a specified way. More exactly, the only input data for an effect in ZynAddSubFX is: @@ -123,7 +123,7 @@ electronic music, we only have an input wave and need to generate these different timbres by ourselves. ZynAddSubFX therefore simply plays the sound, pitch modulated by an LFO, and adds this to the original sound. This explains the diagram below: The multiple pitches are generated by a delayed version of -the input. This version is being pitched by an LFO. More detailled, this pitch +the input. This version is being pitched by an LFO. More detailed, this pitch is generated by varying the reading speed of the delayed sound; the variation amount is controlled by an LFO. @@ -134,8 +134,8 @@ TODO: Add LFO pointing to delay? Related effects to Chorus are Flangers. Flangers can be described as Chorus with very short LFO delay and little LFO depth. You can imagine a flanger as two -copies of a sound playing at almost the same time. This leeds to interference, -which can be clearly heared. It is popular to apply flangers to guitars, giving +copies of a sound playing at almost the same time. This leads to interference, +which can be clearly heard. It is popular to apply flangers to guitars, giving them more "character". Usage @@ -149,8 +149,8 @@ changed at all. the delay also depends on the current pitch. * After the correct element of the sound buffer is found using the LFO, the *Fb* knob lets you set how loud it shall be played. This is mostly redundant to -the *D/W* knob, but we have not applied panning and substraction yet. -* Next, the singal can be negated. If the *Substract* Checkbox is activated, +the *D/W* knob, but we have not applied panning and subtraction yet. +* Next, the signal can be negated. If the *Substract* checkbox is activated, the amplitude is multiplied by -1. * Finally, *Pan* lets you apply panning. @@ -175,7 +175,7 @@ Distortion can happen in many situations when working with audio. Often, this is not wanted. In classical music, for example, distortion does not occur naturally. However, distortion can also be a wanted effect. It is typical for Rock guitars, but also present in electronic music, mostly in Dubstep and -DrumNBass. +Drum & Bass. The basic components of distortion are mainly @@ -215,18 +215,18 @@ We explain the functionality in a diagram and list the components below. image:./gen/distort.png[width=700, title="The components of a distortion function."] -* Negation is the first thing to happen. If the *Neg* Checkbox is activated, the +* Negation is the first thing to happen. If the *Neg* checkbox is activated, the amplitude is multiplied by -1. * Panning is applied. Note, however, that you have to activate the Stereo Checkbox, labeled *St*, before. -* Pre amplification is done next. The amount can be changed using the +* Preamplification is done next. The amount can be changed using the *Drive* nob. Indeed, this is the amount of distortion. For example, if you clip a signal, the louder the input gets, the more distortion you will get. This can have different meanings for different types of distortion, as described above. * *HPF* and *LPF* are filters with 2 poles. Whether they are used before or after the waveshape, depends on the checkbox labeled *PF*. * The next step is the wave shape. This defines how the wave is -actually modified. The *Type* ComboBox lets you define how. We will discuss some +actually modified. The *Type* combo box lets you define how. We will discuss some types below. * After the wave shape, we scale the level again. This is called output amplification. You can change the value using the *Level* knob. @@ -383,7 +383,7 @@ Function 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 +parameters for these filters depend on the room size. For details, consider the information about https://ccrma.stanford.edu/~jos/pasp/Freeverb.html[Freeverb]. image:./gen/reverb.png[width=700, @@ -392,13 +392,13 @@ image:./gen/reverb.png[width=700, Description ^^^^^^^^^^^ -* The *Type* ComboBox lets you select a reverb type: +* The *Type* combo box lets you select a reverb type: ** *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 LP/HP. 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. -* The roomsize (*R.S.*) defines parameters only for the comb and allpass +the room size is being changed. +* The room size (*R.S.*) defines parameters only for the comb and allpass filters. * *Time* controls how long the whole reverb shall take, including how slow the volume is decreased. @@ -435,8 +435,8 @@ signal, which *preserves* the amplitude, but determines the delay time. In the end, both paths are added. The following picture describes how this works on white noise. Light blue -signalises that the frequency is not present at the current time, and dark blue -signalises the opposite. The dark blue peaks appear if the delay time is very +signalizes that the frequency is not present at the current time, and dark blue +signalizes 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 @@ -468,7 +468,7 @@ Description For the normal phaser, first, the LFO is generated: -* There are 4 controls (*Freq*,*Rnd*,*LFO tpye*,*St.df*) that define the +* There are 4 controls (*Freq*,*Rnd*,*LFO type*,*St.df*) that define the LFO. * *Phase* and *Depth* are applied afterwards in the usual way (TODO: I don't understand the code here for the normal phase...). For the analog phaser, @@ -504,14 +504,14 @@ Function ^^^^^^^^ The way that the filter moves between the two vocals is mainly -described by an LFO. A bit easified, Paul Nasca has stated the formula (for +described by an LFO. A bit simplified, Paul Nasca has stated the formula (for latexmath:[$i^2=-1; R<1$]) as latexmath:[$fb=R*(\cos(\alpha)+i*\sin(\alpha))$] latexmath:[$y_n=y_{n-delay}*R*(\cos(\alpha)+i*\sin(\alpha))+x_n*(1-R)$]. -The input latexmath:[$x_n$] has the real part of the samples from the wavefile +The input latexmath:[$x_n$] has the real part of the samples from the wave file and the imaginary part is zero. The output of this effect is the real part of latexmath:[$y_n$]. latexmath:[$\alpha$] is the phase. @@ -519,7 +519,7 @@ Description ^^^^^^^^^^^ * *Pan* -* The following 5 controls (*Freq*,*Rnd*,*LFO tpye*,*St.df*, *Dpth*) define the +* The following 5 controls (*Freq*,*Rnd*,*LFO type*,*St.df*, *Dpth*) define the LFO. ** *Fb* diff --git a/doc/getting.txt b/doc/getting.txt @@ -5,7 +5,7 @@ Usually there are several methods to obtain a copy of ZynAddSubFX. SourceForge:: http://sourceforge.net/projects/zynaddsubfx/files/ -Distribuition:: +Distribution:: apt/yum/others Git:: git clone git://git.code.sf.net/p/zynaddsubfx/code zynaddsubfx @@ -14,7 +14,7 @@ Introduction to Git ~~~~~~~~~~~~~~~~~~~ For those who want to live on the bleeding edge or who want to assist with -making sure that the next release has fewer bugs, you will want to get aquanted +making sure that the next release has fewer bugs, you will want to get acquainted with git. Git is used to manage the source code for this project and can be used to quickly and easily get an up-to-date copy of the source code. diff --git a/doc/intro.txt b/doc/intro.txt @@ -3,7 +3,7 @@ Getting Started ZynAddSubFX is a fairly complex software synthesizer with a very large number of controls. -As such, it is not alway obvious how to use ZynAddSubFX. +As such, it is not always obvious how to use ZynAddSubFX. Many applications under Linux transport MIDI over ALSA and transmit audio over JACK. @@ -21,7 +21,7 @@ Currently the beginner interface is deprecated, so the advanced one is recommended. Now you should be able to see ZynAddSubFX's main window, from which you can -setup patches, effects, and general configurations, but more importatnly it +setup patches, effects, and general configurations, but more importantly it provides links into the parameters of the patches. ZynAddSubFX is a powerful tool with a number of base patches, but its true power lies in the ability to make your own patches. diff --git a/doc/lfo.txt b/doc/lfo.txt @@ -7,13 +7,13 @@ Introduction "LFO" means Low Frequency Oscillator. These oscillators are not used to make sounds by themselves, but they changes -somes parameters (like the frequencies, the amplitudes or the filters). +some parameters (like the frequencies, the amplitudes or the filters). -The LFOs has some basic parameters: +The LFOs have some basic parameters: * *Delay*: This parameter sets how much time takes since the start of the note to the start of the LFO -* *Start Phase*: The possition that a LFO will start at +* *Start Phase*: The position that a LFO will start at * *Frequency*: How fast the LFO is (i.e. how fast the parameter's controlled by the LFO changes) * *Depth*: The amplitude of the LFO (i.e. how much the parameter's controlled @@ -23,7 +23,7 @@ image:images/lfo0.png[] Another important LFO parameter is the shape. There are many LFO Types according to the shape. -ZynAddSubFX supports the folowing LFO shapes: +ZynAddSubFX supports the following LFO shapes: image:images/lfo1.png[] @@ -31,15 +31,15 @@ Another parameter is the LFO Randomness. It modifies the LFO amplitude or the LFO frequency at random. In ZynAddSubFX you can choose how much the LFO frequency or LFO amplitude changes by this parameter. -In the folowing images are shown some examples of randomness and how changes +In the following images are shown some examples of randomness and how changes the shape of a triangle LFO. image:images/lfo2.png[] Other parameters are: -* *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 usefull if you apply on filters to make interesting sweeps. -* *Stretch*: It controlls how much the LFO frequency changes according to the +* *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 you apply 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 @@ -52,14 +52,14 @@ In ZynAddSubFX, LFO parameters are shown as: image:images/uilfo.jpg[] -Theese parameters are: +These parameters are: * *Freq*: LFO Frequency * *Depth*: LFO Depth * *Start*: LFO Start Phase - If this knob is at the lowest value, the LFO Start Phase will be random. * *Delay*: LFO Delay -* *A.R.*: LFO Amplitude Randomnes +* *A.R.*: LFO Amplitude Randomness * *F.R.*: LFO Frequency Randomness * *C.*: LFO Continous Mode * *Str.*: LFO Stretch - in the image above the LFO stretch is set to zero