# ld jacinth Documentation

First of all, this documentation is written very quickly and doesn't describe how different parameters actually sound like. Feel free to experiment.

Currently this documentation is also out of date. Someone want to rewrite it?

Added a small FAQ section, no other updates. Read it first!

If you have any questions, please mail ld0d@kolumbus.fi

- ld

##
1. This synth is slow!

Yes, I know. But to make it less slow, you could try these tips:

1. Don't use the output saturation unit. Calculating the soft saturation is very slow. You might want to try some distortion machine instead, like Geonik's Saturator.
2. Switch to mono mode. Stereo mode needs more calculations, and if you don't need independently panned oscillators/tracks you should use the mono mode.
3. Turn off unused oscillators. If an oscillator's gain parameter is set to 0, the synth spends less time generating the oscillator outputs. Note that using phase or frequency modulation on oscillators 2 and 3 always forces oscillator 1 to generate output.
4. Set the unison parameter to a lower value. The unison parameter causes the synth to generate all the oscillator outputs multiple times. You can usually achieve the same result with detuning the oscillators slightly and setting unison to a lower value.
5. Use different filters. Some of the filters are faster to calculate than the others. Especially the moog filter is slow.
6. Use less envelopes and LFOs. Each active envelope and LFO takes some time to process.

About random presets:
Please try to tweak the cpu usage at least a bit if you're doing new sounds by randomizing the parameters.

##
2. FAQ

###
Waveform editor

  Can I play s...
  No you can't, it's not a sampler.

  Drawing waveforms
  The top display in the waveform editor displays an editable waveform frequency response. Changes to this graph will affect the lower display, where you can see how one cycle of the waveform looks like. Upper display is what you hear, lower what you see if you look at the synth output.
  Blue bars in frequency graph show octaves of the fundamental frequency.

  Waveform Sampling: Zero-crossing finder and cycle fixer
  Select the waveform so that the whole cycle is visible in the window, with little extra. Zero-crossing finder will seek the waveform from left edge rightwards, cycle fixer will find a loop position from right edge leftwards.

###
Misc.

  Where's the noise?
  Oscillator 1 waveform B and LFO waveform B. Nowhere else.

  It's crashing!
  If it crashes in the gui, you'll just have to live with it (or not use the gui). If it doesn't, try to reproduce the crash, and if you can, mail me (ld0d@kolumbus.fi). If you can't reproduce it, I can't really help much. Be sure to be available for more questions if you decide to mail me a bug report :)

  It clicks!
  Usually the reason is too short attack/decay/release times set in envelopes. Might be also because of the waveform you're using.

  Slower controlling for gui knobs
  Press and hold the ctrl-button while turning knobs in the gui. That will make them move slower.

  Track editing in gui
  The lights in the upper left corner of the gui open track parameter windows. If you have 5 tracks, 5 of the 16 lights will be active. Click those.

  There's only one envelope and lfo!
  Add more tracks and/or read the docs below.

  How do I... [lfos, envelopes]
  Read the docs below.

##
3. Operation modes and output post-processing

Modes
  The synth can work in three different modes: mono, stereo and simple. Mono and stereo modes are almost the same, except that in mono mode all panning parameters are ignored. In simple mode oscillators 3 and 4, filters 2 and 3 and panning effects are disabled, decreasing cpu usage.
Output saturation
  There is a parameter for output gain and a saturation unit that can do "hard" and "soft" clipping. The saturation effect is very slow, especially in stereo mode, so it is preferred that you use some external effect to do saturation.

##
4. Pitch bend

There's an attribute for the pitch bend depth. The attribute value is the pitch bend parameter value where the pitch is bent one octave up.
That is:
pitchbenddiv = 64 -> pitch bend at +64 = one octave up
pitchbenddiv = 48 -> pitch bend at +48 = one octave up, pitch bend at +4 = one semitone up
pitchbenddiv = 768 -> pitch bend at +64 = one semitone up.

##
5. Inertia

Inertia affects cutoff and pitch bend speed.

##
6. Oscillators

Waveforms

  The waveforms are a bit highpassed. Try waves 66, 67 and 68, those are generated (they're the same as in ld padsyn) and might be better for some uses (bass sounds?).

  Oscillator 1 wave B and the LFO wave B can be set to generate noise. Osc1 has wave number 69 which is white noise, LFO has waves 69 and 70: sample&hold noise and sample&glide noise.

Waveform mixing

  The WMix parameters morph output wave smoothly from wave A to wave B.

Phase shift

  The PShift parameter just moves the wave in time. But turning the PType parameter to Sub or Mul causes the whole wave to be mixed into a phase-shifted copy of itself:

  ...So you can easily generate pulse-width modulated pulse wave by using saw wave with subtractive phase shifting. Remember that the wave phase affects the result of phase modulation and frequency modulation, even if the PType parameter is set to "Off" position.

Detuning

  Detune amount of "12.20" would mean that the oscillator is tuned one octave and 20 cents up.

Gain and Saturation

  If the gain parameter is set to >1.0 (>64), there is (asymmetric) distortion applied to the waveform. Also a star (*) appears next to the parameter value when the oscillator output is saturated.

Mixing modes

  Oscillators are handled in order from 1 through 4. On oscillators 2-4 you can set the output mode to normal, subtractive or ringmod. This mode affects the output of the oscillator and the combined signal before it (if you set osc3 to ringmod, it will modulate the mixed signal from oscillators 1 and 2).

Phase Modulation

  The phase modulation (controlled with parameter PModAmt) is an extension to oscillators 2 and 3, and causes the output of oscillator 1 to be linked to the phase shift amount of oscillator 2 or 3. The PModType parameter can be used to change the source of phase modulation to a sine wave that is synced with the oscillator.

  If oscillator 1 waveform is sine wave, phase modulation changes the sound exactly like frequency modulation would.

Frequency Modulation

  Frequency modulation source is always oscillator 1. The FM system isn't working too well, and you usually get some "drifting" in the sound. Turning on oscillator syncing often helps.

  If you can achieve the same result with phase modulation, use it instead. FM is only added as a curiosity, though it may have some uses.

Oscillator 3 slaving

  By using the oscillator 3 mode parameter you can slave it to oscillator 2. This causes it to copy all the parameters of osc2, with only detuning inversed (if osc2 has detune amount of 0.12, osc3 would have detune amount of -0.12). If the mode parameter is set to "Slv/wave", the oscillator 2 wavea, waveb and wavemix parameters are not copied to oscillator 3, but it's own parameters are used instead. If the mode parameter is set to "Slv/pan", the oscillator 2 panning is not copied to oscillator 3.

Syncing

  Using the sync parameter oscillators 2 and 3 or 2, 3 and 4 can be synced exactly to oscillator 1. Syncing causes the oscillator phase to be reset when oscillator 1 finishes cycle. If the sync parameter is set to "NoteOn", the oscillator phases will only be reset on note-on.

Unison and the spread parameter

  Changing unison parameter duplicates all the oscillators and detunes them slightly, depending on the spread parameter. Great for fat pads. Note: the unison parameter will slow the machine down quite a bit. If you play one note with unison set to 6, it will practically play six notes, using six times the cpu time.

##
7. Filters

There are three filters in the synth, and there are four different routing modes for them, controlled with the FilterConf parameter. (mode "->(1, 2)->3->" means that filters 1 and 2 are linked in parallel and their output is mixed and put through filter 3.) Filter 1 has a KeyFollow parameter which makes the filter cutoff change according to the notes played (C-4 is considered as the middle note that doesn't affect filter cutoff). Filter 2 and 3 cutoffs can be linked to filter 1 cutoff with the CutoffLink parameter.

##
8. Envelopes

As you might have noticed, each track on the synth has only one envelope. All of the envelopes are "global" though. If you set the envelope of one track to control filter cutoff, all the tracks are configured to have one envelope controlling that track's cutoff. When one of the tracks is given a note-on command, that track's copy of the envelope is triggered and it changes only that track's cutoff parameter. This feature is shamelessly ripped from Rymix' KyrieSpectra, thank him for it :)

I decided to extend the standard ADSR envelopes a bit.

While in the delay phase, the envelope follows the slope that was there before it was triggered. In the hold phase the envelope output is at maximum level. There is no parameter for sustain time, but instead the envelope moves to release phase when a note-off is received.

If you use the delay parameter on the amp envelope, note that the oscillators change pitch as soon as you enter a new note. If the envelope is delayed, you may or may not, depending on the previous state of the envelope, hear the change of note.

### The accent parameter

Each track has a volume and an accent parameter. (In the machine attributes you can choose where to route midi velocity messages.) Using the envelope accent parameter you can configure how the track accent parameter affects the envelope amount. There's also DecAcc parameter that changes how much the accent changes decay length.

##
9. LFOs

The LFOs are also a bit extended from "normal". Like the envelopes, the LFOs are copied to all the tracks. They can also be configured to run as global or track LFOs. Global LFOs are in same phase on all the tracks and aren't affected by note-on commands. Track/TrackOnce LFOs' phase is reset on note-on, and TrackOnce LFOs stop running after one cycle, so they can be used as kind of extended envelopes. The LFO waveforms are set just like oscillators. WaveB can be set also to sample&hold noise or sample&glide noise. The invert parameter negates the wave (changes ramp-up saw wave to ramp-down).

The speedmode parameter affects how the speed parameter is handled, this way you can select the lfo cycle speed in Hertz or ticks.

The phase and looplen parameters can be used to play only a part of a waveform. If looplen is set to 128, the whole cycle is played. If looplen is set to 64, half of the cycle is played: the range [phase, phase + half of wave length].

The LFO outmode parameter changes the lfo from unipolar to bipolar (unipolar goes from 0 to lfoamp, bipolar goes from -lfoamp to +lfoamp).