Hello @zynthianers. I am opening a collateral topic of the main JV880 thread (JV880/JUCE on raspberry), to specifically highlight a subject that has been the occasional object of discussion:
how to improve the overall frequency spectrum output of a digital synthesis algorithm, originally designed to run on a device with 32Khz of DAC resolution.
Following suggestions from @piattica and others, I set to reconstruct on Zynthian (Oram) an FX chain for VirtualJV previously experimented with some success on a Mac-Cubase installation of the plugin. The goal was to bestow more hi-fi presence and upper spectrum brilliance, to the audio output of a rompler synth which tends to sound objectively a little dull, to contemporary ears used to the generous timbral response of modern samplers and libraries.
As a premise, I confirm the @ricard’s point that VirtualJV as it is sounds definitely better - without acoustic artifacts added by conversion between different sample rates - after setting the Zynthian’s DAC duty cycle at the same nominal frequency of the original hardware’s converters (i.e. at 32000 Hz).
If, conversely, one wants to add color and richness to the higher spectrum, the audio resolution of the FX processors becomes essential, and therefore setting Zynthian at 48000 (or even 96000, if sustainable according to snapshot complexity) is required. Otherwise, at lower rates the effects stage will introduce undesirable noises and artifacts, in pretty audible quantities.
For the FX design, I have employed a serial pre-fader chain, consisting of:
1] Calf Filter, with a 12 Db/Oct slope and a cutoff point between 15K and 16K Hz.
2] Tap Tubewarmth amplifier simulator, with overall delicate settings and a drive amount in the 0.2-0.5 range.
3] Calf Multi Chorus, with slow oscillation frequency and quite discrete amounts, voices addition and gains.
4 Dragonfly Hall Reverb.
In the attached snapshot, I have layered in active mode two versions of the same orchestral strings preset, slightly panned L-R ±30%: one is the untreated VirtualJV output, the other is the same sound passed through the FX chain. You can mute/unmute the two chains to listen selectively to the single outcome.
Overall, I think that this effects design works extremely well, providing better frequency response across the spectrum, added presence and an improved sense of three-dimensional depth of the sound stage. The layered patch delivers majesty and symphonic weight straight away, with better subjective clarity of the internal voices if you play polyphonically, at least to my ears.
I encourage you to try different timbres and layerings. Experimenting with this, I have come to detect that for brass presets it is advisable to disable the Multi Chorus, unless a synth-like output is desirable for its own sonic quality.
Depending on timbre and sound design objectives, the chorus is the FX element that more confers artificiality, while obviously does marvels and works brilliantly with stringed timbres, which are based on waveforms of the saw/ramp type.
I hope it is of any use ![]()
Have fun, cheers! ![]()
020-Aethermind_Virtual JV FX chain.zss (9.5 KB)
PS: Of course, there is a setup to possibly experiment with: analog audio outputs of a Zynthian set at 32000 with VirtualJX passed through the FX chain on the analog inputs of another Zynthian set at 96000!