**vj-fm**

A powerful and fully customizable 9 operator FM synth with 3 voice polyphony using phase modulation.

Parameters:

- Global volume: 0-1
- Transpose: -36 - 36 (semitones)

Each operator comes with these options:

Page 1:

- Volume/modulation index (Yamaha CS-5 curve)
- Frequency multiplier (stepped by 0.125)
- Frequency divider (stepped by 0.125)
- Fine tune (in increments of 10 cents)

Page 2: ADSR envelope

Page 3:

- Feedback (Yamaha CS-5 curve)
- Envelope amount/depth: the number is a percentage of the mod index that is controlled by the envelope. Negative values flip the shape of the envelope (attack is decreasing, decay and release are increasing the volume/mod index.)
- Key scaling (higher values result in more reduction in mod index for higher notes)
- Velocity sensitivity (toggle)

Page 4:

- Detune (Â± 7 cents)
- Freq ratio adjustment: added to the frequency ratio for precise ratios. For example, a multiplier of 1, and divider of 2, and an adjuster of 17 would result in a final ratio of multiplier/divider + adjuster = 0.67.

That results in 9 * 4 = 36 pages of parameters. A bit menu divey but extremely powerful and customizable.

The AUX button + keys act as shortcuts to reach certain pages.

- Aux + low C, D, E = L1C, L1M1, L1M2
- Aux + low F, G, A = L2C, L2M1, L2M2
- Aux + high C, D, E = L3C, L3M1, L3M2

Here are how the operators are connected:

L1M2 -> L1M1 -> L1C -> Audio out

L2M2 -> L2M1 -> L2C -> Audio out

L3M2 -> L3M1 -> L3C -> Audio out

To summarize, 3 carriers, with two operators modulating each of them in series. â€śL1â€ť denotes â€ślane 1â€ť. â€śCâ€ť denotes â€ścarrierâ€ť. M1 denotes â€śmodulator, with depth 1â€ť.

By default, only L1C has parameters to output audio. To get started, try turning the Mod Amt of L1M1 and mess with the frequency multiplier and divider.

For the adventurous, the Pure Data source can be modified to configure other algorithms.

LICENSE: GPLv3

Update 1: Added a low pass filter to the modulation index so that it can be modulated by the LFO for pleasing results.

Update 2: Changed modulation index and feedback to exponential scaling so that you get better precision in the lower ranges

Update 3: Added Env Amt parameter to allow for more subtle envelopes and even negative envelopes.

Update 4: Multicore, Fine tuning, Detuning, Precise ratio adjust (it adds to the ratio after the multiplier and the divider), better modulation and feedback curves, key scaling

Update 5: Better volume controls, transposing, aux key shortcuts, better more detailed documentation