LongPhaser is a phaser using Schroeder all-pass filters which is able to set some long delay time. The sound is like somewhere between delay and phaser. It feels a bit underwhelming, however modulation with LFO and note events may be used to compensate the lack of character.
Output becomes darker by increasing `Stage`. This is due to linear interpolation used in delay. Turning off the oversampling emphasize the effect, but it might be useful to add some character.
When modulating delay time by increasing `LFO > Time`, it might be better to also change `Interp. Rate` at the same time to control the character of modulation. Setting `Interp. Rate` to integer value by using Shift + Middle Mouse Click might make the clear texture. The change of texture caused by `Interp. Rate` is the same one that can be heard in ParallelComb.
OrdinaryPhaser is an ordinary phaser with a delay on feedback path. Note events can be used to control all-pass cutoff frequencies and delay time. Usual first order all-pass filter is used.
Phaser has some tuning possibility around the spread of cutoff frequency (cutoff spread) , and how to apply LFO signal to cutoff frequency. In OrdinaryPhaser, cutoff spread can be smoothly transformed between uniform (1, 1, 1, ...) and overtones (1, 2, 3, ...) by changing `Cut Spread` parameter. LFO signal goes through exp2 function, and is multiplied to all-pass cutoff frequency.
Probably the use of distortion and second or higher order all-pass filters could provide more character to phaser.
MaybeSnare is a synthesizer that resembles sound of snare drum. This is basically 2 MembraneSynth coupled by cross feedback. Snare wire is not included. However, the noise of modulation adds rattling texture similar to snare wire.
To make snare drum sound, set a side with weak modulation and higher pitch, and another side with strong modulation and lower pitch. `Interp. Rate` are the strength of modulation, and `Snare Side Octave` is the difference of pitch between 2 sides. Also set `LP Cut` to higher value for the side with strong modulation, to emphasize rattling of snare wire.
On mix, it's better to use with equalizer, limiter, or saturator to trim the output.
MembraneSynth is a synthesizer that resembles sound of percussions with membrane, like bass drum or tom tom. The texture comes from self-modulating feedback delay network (FDN). Some strange noise can also be made by utilizing oscillation caused by self-modulation.
MaybeSnare is a snare drum synthesizer using feedback delay network (FDN) with self modulation. It's also possible to make bass drum sounds.
Alberto Torin's PhD thesis was helpful to grasp the behaviour of snare drum. There are some nice simulation results of gong and bass drum in Chapter 6.
In the thesis, von Kármán equations are used to model plate vibration. I didn't understand the equation well, but I got an implementation idea after reading about it. When a plate vibrates, it stretches or shrinks which add a bit more tension to the plate. For sound, more tension means higher pitch. So my idea was to reduce the delay time of FDN depending on the amplitude of feedback signal (self modulation).
The above method worked well to imitate the non-linearity of snare drum membranes. However, I didn't get the ideas about how to implement the coupling between batter side and snare side, and collision of snare wire, into FDN. So they were empirically tuned without any basis.
ClangSnare is a modified version of ClangCymbal. It is more suitable for snare drum sounds.
Snare drum has roughly 4 parts:
Batter side membrane
Snare side membrane
Snare wire
Body
ClangSnare is not so bad for membrane sounds, but it's not good at rattling of snare wire. Attack also feels weak. I'd recommend to apply additional gain envelope after loading the output to some sampler.
ClangSnare sometimes blows up. In that case, reduce the value of `FDN Matrix & Delay` -> `Cross`. "Blow up" here means that a peak appears on the end of the sound.
PadChoir3 is maybe a choir sound synthesizer using PADsynth algorithm. Most of the time, the sound is far from real choir. The difference to previous PADchoir is that PadChoir3 uses formant table from Csound manual.
ResonantBD is a synthesizer that can make bass drums similar to the ones in old rhythm machines. The sine sweep comes from oscillation of high Q state variable filter (SVF). This idea was explored in SingenBD3, but dropped to reduce complexity.
To control saturation, change Limiter -> Release and Limiter -> Input Gain.
SingenBD3 is possibly a bass drum synthesizer based on FM synthesis technique.
"Possibly" means that randomize is currently not well tuned and it mostly produce the sound far from bass drum. This is more suitable for quickly make sound effects, rather than to obtain drum sounds.
Depending on randomization and reverb settings, the stereo image can be quite strange. To reduce the stereo spread, click "Stereo" button on Overtone section, and reduce Mix value on Reverb section.
SerialCombCymbal is a cymbal-esque sound synthesizer using serially connected comb filters. Note that SerialCombCymbal doesn't work on current version of Firefox.
Below is a recipe to make cymbal like sounds:
Set nDelay to even number.
Set Feedback to some number close to -1.0, like -0.99.
Shorten Delay Time and Time Randomness.
Set Highpass Cutoff to lower than 100 Hz.
Set Highpass Q, Lowpass Cutoff, Lowpass Q to upper limit (default value).
It's also possible to make gong-ish sounds by increasing nDelay and subtly adding lowpass.
ClangCymbal was so heavy, so I was looking for faster cymbal
synth algorithm. Then I found that Image-Line DrumPad can make some nice
cymbal sounds. DrumPad was released for a decade ago, and CPU load is
very small. After playing with it for a bit, I got a guess that DrumPad
is using serially connected integer comb filter. Then SerialCombCymbal
is made up from this guess.
Web version of FDN64Reverb is now available. It was too heavy to run on real-time, so ported to run on browser with off-line (non real-time) computation. 64 is dropped from the name, because matrix size can be changed from 1 to 256.
Note that FDNReverb doesn't run on Firefox version 104 or earlier. It requires ECMAScript module support on Web Worker, which Firefox haven't implemented yet. Chrome or Safari can be used.
List of web synthesizers are also moved to new page.
"Animals" is an album, and a showcase of Uhhyou Plugins (うっひょうプラグイン).
Animal names used in titles are cut up from random Wikipedia articles.
Most of the composition is made by improvisation and overdub. But I'm bad at playing instruments and that's why rhythm is so inconsistent. Once this waddling mess is recorded, there appears some sparse part and dense part. While overdubbing, I put more notes on dense part, and not so much for sparse part. After some iteration, that waddling mess becomes a mass of waddling mess, and ended up as this album.
Plugin development, especially testing DSP components, was the hardest part of making this album. The first commit was 3 years ago, and I didn't even know how to write C++ at that time. The strategy here was perfecting the sound design part by developing plugins, so that I can just drop the random sound and it will be good. I'd call this circuitous John Cage strategy. I went through great effort of developing plugins, and finally threw the resulting sounds into WAV files after 3 years. But John Cage just dropped real physical objects into bathtub, and it sounds plainly gorgeous compared to my bastardized synthesizers which have to run on real-time.
Let's move on to the contents, and the advertisement of my plugins. Distinctive short decaying high metal tones are mostly made from EnvelopedSine, and that's the most used synthesizer in this album. Low drums in "Crimson-headed partridge" is also made from it. If you hear long decaying reverb, that's almost certainly comes out from L3/L4Reverb. You can hear them in "Ibexes and deer" and "Tigerwings". Those reverbs are the savior of my bad plays. They are also good to use with CollidingCombSynth. "Quagga" is the loudest piece in this album. Typical sound of ParallelComb and UltrasonicRingMod can be heard.
Thanks to Kirk Markarian, one of my improvisation "found in animals" is aired on a radio show called Electronic Frequencies, which is a program on Concertzender.nl. Below is a link to the show.
Electronic Frequencies is hosted by Kirk, also as known as his artist alias Neuro... No Neuro. I honestly recommend to listen to his music instead of mine. They are far more well tuned.
UltrasonicRingMod is a ring modulator with 64-fold oversampling.
Maximum modulator frequency is 1 MHz. That said, just modulating with
ultrasonic frequency doesn’t produce anything audible. Therefore, phase
modulation and hard clipping are added to make some noise in audible
frequency.
ClangCymbal is a spin off of ClangSynth, which is introduced in a previous post.
Note the β version. Bugs might be still remaining, and breaking change might be introduced. If you are planning to use it on production, make sure to write the result to file before closing DAW.
Below is a list of changes:
Increased FDN size from 8 * 8 to 64 * 64.
Added independent controls for each FDN filter on feedback path.
Added tremolo.
Added modulation envelope destination.
Changed oscillator from static wavetable to noise/pulse mix.
Reduced number of voice to 1, which means monophonic.
Removed LFO.
It can make more rich sounds because of the increased size of FDN. However, it also becomes monophonic due to the increased CPU load. To put more focus on percussion sounds, oscillator is changed to noise/pulse generator. Also LFO is omitted.
Change log:
0.0.2 (β4): Fix initialization failure on Bitwig and Live 11.
β3: Fix to load saved state at the opening of project file on FL Studio.
β2: Fix BarBox to get focus on mouse down, and release focus on mouse exit.
β version of ClangSynth is now available. ClangSynth is a metal percussion synthesizer using feedback delay network (FDN). With some tuning, it can resemble the sound of real cymbals.
If you have some feedback, please let me know through discussion or issue on GitHub repository, or email (ryukau@gmail.com).
Note that breaking change might be introduced. If you are considering to use it for production, make sure to render the result to file before closing DAW.
β2: Reset behavior is fixed.
β1: Reset behavior is not tested, so reopening the project may break the settings in some way.
This one is the same synthesizer showed in the video in previous blog post, which was PluckSynth. Name is changed to be more descriptive.
The CPU load is high. To reduce CPU load, decrease `nVoice` parameter on bottom left. CPU load also spikes at note on, either if the note is in resting state, or `Reset at Note On` parameter is checked.
Some tips to make percussion sounds:
Make oscillator to resemble the hit of stick.
Switch `FDN` to check the raw oscillator output.
Shorten `Decay` to less than 0.01 second.
Emphasize higher overtones by changing `Denom. Slope` and `OT Amp.`
Tune FDN well.
Increase `Identity` for more cross feedback between delays.
Change `OT` parameters to tune delay time. OT stands for overtone.
Change lowpass or highpass. Q is as important as cutoff.
Add accent with Envelope.
Shorten `Decay` to around 0.1 second.
Press Shift + R on `Envelope Wave` to randomize, then press F to smooth.
MiniCliffEQ is a FIR filter with 2^15 = 32768 taps. Because of this too many taps, latency is massive that it exceeds 1 second in 48000 Hz sampling rate. The primary purpose is to suppress direct current. It can also be used as very sharp low-pass, high-pass, low-shelf, and high-shelf filter.
Edited on 2022-06-11: Experimental macOS build is available now. Note that all the explicit SIMD options on FFTW3 are disabled, so it may runs slow. The manual is also work in progress.
This is made as an experiment to see how efficient FFT convolution (overlap-add method) is. That many number of taps is used to enable lower cutoff frequency. The filter design method is windowed sinc. Nuttall window is used.
The range of gain is ±144.5 dB, which is slightly above/below 24bit dynamic range. This can be useful to catch dither, and subtle discontinuity. Two common subtle discontinuities are caused by transition of envelope state (attack to decay, and so on), and integer arithmetic. This is sometimes useful to guess the internal of plugins.
Note that the build is experimental, and as same as previous releases, it wasn't tested on macOS. If the plugins are working on your environment, please let me know. (Edit on 2022-06-10: nekotaro6 reported that they are working on M1 mac. Thank you nekotaro6!)
ParallelComb and PitchShiftDelay are not up to date. They are built from beta code.
Below is a list of missing plugins from current macOS build.
The primary goal of this call is to make some money to purchase M1 mac, so that I can port my plugins to latest macOS. Keep in mind that I can't promise the macOS port because it's uncertain to get enough funding.
Even if you are not interested in funding, but would like to port my plugins to macOS, feel free to contact me. I can answer questions regarding to the plugin code. My goal is not to make money, but to fuel the development.
Links below are some samples made only by using Uhhyou Plugins.