Update: 2020-06-15
TrapezoidSynth is a monophonic synthesizer equipped with 2 trapezoid oscillator. Trapezoid oscillator is based on PTR (Polynomial Transition Regions) and it has a drawback that increasing noise at high frequency. Therefore 8 times oversampled. 2 pitch shifters are added to make some chord.
The package includes following builds:
macOS build isn’t tested because I don’t have Mac. If you found a bug, please file a issue to GitHub repository or send email to ryukau@gmail.com
.
Linux build is built on Ubuntu 18.0.4 and tested on Bitwig 3.1.2 and Reaper 6.03. Bitwig 3.1.2 seems to have a bug that occasionally blackouts GUI.
Place *.vst3
directory to:
/Program Files/Common Files/VST3/
for Windows.$HOME/.vst3/
for Linux./Users/$USERNAME/Library/Audio/Plug-ins/VST3/
for macOS.DAW may provides additional VST3 directory. For more information, please refer to the manual of the DAW.
Extract preset zip, then place preset directory to the OS specific path:
/Users/$USERNAME/Documents/VST3 Presets/Uhhyou
$HOME/.vst3/presets/Uhhyou
/Users/$USERNAME/Library/Audio/Presets/Uhhyou
Preset directory name must be the same as the plugin. Make Uhhyou
directory if it does not exist.
If DAW doesn’t recognize the plugin, try installing C++ redistributable (vc_redist.x64.exe
). Installer can be found in the link below.
On Ubuntu 18.0.4, those packages are required.
If DAW doesn’t recognize the plugin, take a look at Package Requirements
section of the link below and make sure all the VST3 related package is installed.
REAPER on Linux may not recognize the plugin. A workaround is to delete a file ~/.config/REAPER/reaper-vstplugins64.ini
and restart REAPER.
At first time, create color config file to:
/Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json
on Windows.$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json
on Linux.
$XDG_CONFIG_HOME
is empty, make $HOME/.config/UhhyouPlugins/style/style.json
./Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json
on macOS.Below is a example of style.json
.
{
"fontPath": "",
"foreground": "#ffffff",
"foregroundButtonOn": "#000000",
"foregroundInactive": "#8a8a8a",
"background": "#353d3e",
"boxBackground": "#000000",
"border": "#808080",
"borderCheckbox": "#808080",
"unfocused": "#b8a65c",
"highlightMain": "#368a94",
"highlightAccent": "#2c8a58",
"highlightButton": "#a77842",
"highlightWarning": "#8742a7",
"overlay": "#ffffff88",
"overlayHighlight": "#00ff0033"
}
Hex color codes are used.
First letter #
is conventional. Plugins ignore the first letter of color code, thus ?102938
, \n11335577
are valid.
Do not use characters outside of 0-9a-f
for color value.
fontPath
: Absolute path to *.ttf font file. Not implemented in VST 3 version.foreground
: Text color.foregroundButtonOn
: Text color of active toggle button. Recommend to use the same value of foreground
or boxBackground
.foregroundInactive
: Text color of inactive components. Currently, only used for TabView.background
: Background color.boxBackground
: Background color of inside of box shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, VSlider).border
: Border color of box shaped components.borderCheckbox
: Border color of CheckBox.unfocused
: Color to fill unfocused components. Currently, only used for knobs.highlightMain
: Color to indicate focus is on a component. Highlight colors are also used for value of slider components (BarBox and VSlider).highlightAccent
: Same as highlightMain
. Used for cosmetics.highlightButton
: Color to indicate focus is on a button.highlightWarning
: Same as highlightMain
, but only used for parameters which requires extra caution.overlay
: Overlay color. Used to overlay texts and indicators.overlayHighlight
: Overlay color to highlight current focus.Knob and slider can do:
Right clicking on controllable object popups a context menu provided by DAW.
It is recommended to insert high-pass when setting SlideType
to Reset to 0
.
If the image is small, use Ctrl + Mouse Wheel or “View Image” on right click menu to scale.
Diagram only shows overview. It’s not exact implementation.
Change oscillator pitch in semitone.
Change oscillator pitch in cent. 100 cent = 1 semitone.
Change left and right side of slope of trapezoid.
Pulse width. Change length of upper side of trapezoid.
Modulate pitch with white noise.
Modulate phase of Oscillator 1 with feedback signal.
osc1Phase += Feedback * (osc1 + OscMix * (osc2 - osc1))
Multiply the frequency of oscillator by number of Overtone
.
Modulate Osillator 1 phase with Oscillator 2 output.
When checked, reset envelope for each note on. When not checked, reset envelope only if the number of pressed key is changed from 0 to 1 or more.
Attack time in seconds.
Decay time in seconds.
Sustain level.
Release time in seconds.
Change envelope curve.
Master output gain.
TrapezoidSynth is using 8 of serially connected first order filter. Order
changes where to get the signal from the filter.
Cutoff frequency in Hz.
Resonance.
Filter saturation.
filterInput = tanh(Sat * (input + Res * filterOutput))
Modulation amount from Filter Envelope to Cut
.
Modulation amount from note pitch to Cut
.
Modulation amount from mixed signal of Oscillator 1 and Oscillator 2 to Cut
.
Modulation amount from Filter Envelope to pitch in octave.
Ratio of Oscillator 1 and Oscillator 2. When turned to left-most, output becomes only the signal from Oscillator 1.
Change pitch in octave.
Interpolation time in seconds from previous value to current value. Following parameters are affected by Smooth
.
Drift
Slope
PW
(for all parameter with identical name)Feedback
(for all parameter with identical name)PM
Gain
(for all parameter with identical name)Cut
Res
Sat
Env>Cut
Key>Cut
+OscMix
OscMix
>PM
>Feedback
>LFO
>Slope2
>Shifter1
Shifter1.Semi
Shifter1.Cent
Shifter2.Semi
Shifter2.Cent
Freq
Shape
>Pitch1
>Slope1
>PW1
>Cut
When checked, reset envelope for each note on. When not checked, reset envelope only if the number of pressed key is changed from 0 to 1 or more.
Modulation envelope attack time in seconds.
Modulation envelope curve.
Modulation amount from modulation envelope 1 to Oscillator2.PM
.
Modulation amount from modulation envelope 2 to Oscillator1.Feedback
.
Modulation amount from modulation envelope 2 to LFO.Freq
.
Modulation amount from modulation envelope 2 to Oscillator2.Slope
.
Modulation amount from modulation envelope 2 to Shifter 1 pitch.
Change amount of pitch shift in semitone.
Change amount of pitch shift pitch in cent. 100 cent = 1 semitone.
Output gain of pitch shifter.
4 waveforms are available for LFO.
Sin
: Sine wave. Output will be power of the value of Shape
.Saw
: Sawtooth wave. Can be turned into triangle with Shape
.Pulse
: Pulse wave. Duty ratio can be controlled by Shape
.Noise
: Brown noise. Wandering of noise can be changed by Shape
.Synchronize LFO frequency to tempo.
LFO frequency.
Change LFO wave shape.
Modulation amount from LFO to Oscillator 1 pitch.
Modulation amount from LFO to Oscillator1.Slope
.
Modulation amount from LFO to Oscillator1.PW
.
Modulation amount from LFO to Filter.Cut
.
3 type of pitch slide is available.
Always
: Always slide from the pitch of last note.Sustain
: Only slide when 2 or more keys are pressed.Reset to 0
: When number of pressed key is changed from 0 to 1, or 1 to 0, pitch will be slide to 0 Hz. Otherwise, slide behaves same as other 2 options.Time of pitch sliding.
Oscillator 2 slide time with respect to Oscillator 1 slide time.
Slide->Time
is ignored and set as same as Smooth
.kFxInstrument
to kInstrumentSynth
.TrapezoidSynth is licensed under GPLv3. Complete licenses are linked below.
If the link above doesn’t work, please send email to ryukau@gmail.com
.
VST is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries.