Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DSP Discussion #32

Open
BillyDM opened this issue Mar 24, 2022 · 0 comments
Open

DSP Discussion #32

BillyDM opened this issue Mar 24, 2022 · 0 comments

Comments

@BillyDM
Copy link

BillyDM commented Mar 24, 2022

Here are my current thoughts about what we should do for DSP.

Note that we should reference the GNU fork of the Vital plugin called Vitalium and not Vital itself. This is so we can safely assure that any code we are borrowing is GPL licensed.

Basic DSP that needs done before MVP:

  • Stereo Panning with preferably circular pan law (we can add more pan laws too)
  • Sub-sample interpolator. This will allow us to create much needed effects such as resampling and doppler stretching, as well as future effects such as delay and wavetables. I've heard good things about the "optimal" designs described in this paper: https://github.com/BillyDM/Awesome-Audio-DSP/blob/main/deip.pdf
  • We could also look into using bindings to the libsamplerate library for high-quality offline resampling.

Other framework DSP needed at some point (not MVP):

  • Fast integer oversampling/downsampling. This is commonly used for anti-aliasing non-linear effects such as distortion.
  • The common digital filter types: high shelf, low shelf, high pass, low pass, bell, peak, bandpass, and allpass
    • I have heard great things about the SVF filter design, which can be used in place of the biquad filter design, and I would like to incorporate it as much as possible.
    • As for calculating filter coefficients, I'm not sure if we should develop our own design, or if we should borrow this from existing plugins. Potential plugins that come into mind are Vitalium, x42 Equalizer (aka fil4.lv2), and Ardour's EQ.
    • These filters should not "cramp" on the high end, which has a noticeable effect on the sound quality of the filter.

Internal plugins I would like to have (but not MVP):

A long term goal of this project is to have a complete suite of "fairly good quality" internal plugins that can be used to mix and master a track. Therefore I would like to focus more on effect plugins rather than synth plugins.

We of course don't have the resources to create industry-leading quality plugins. But I do want it to the point where musicians can get a satisfying mix without needing to reach for 3rd party plugins.

For each of these listed plugins, we could either choose to develop it ourself or we can borrow the DSP from one of the listed sources:

Higher priority plugins:

  • EQ
  • Basic Compressor
  • Multiband Splitter
  • Mid/Side Splitter
  • Multiband Compressor
    • This will just be the basic compressor but one for each band.
  • Basic Gate Plugin
  • Basic Limiter
  • Soft Clipper/Hard Clipper/Waveshaper
    • Vitalium - Has common built-in waveshapers including soft clip
    • It would also be nice to have pre/post filters
  • Spectrometer (For use in EQ plugins & as its own plugin)
  • Chorus
    • YK Chorus - A really nice chorus effect based on a certain well-known analog synthesizer
    • Vitalium - This has a built-in chorus effect
  • Phaser/Flanger
    • Vitalium - This has a built-in phaser/flanger effect
  • Comb Filter
    • Vitalium - This has a built-in comb filter
  • Delay
    • Tal-Dub-3 - Very nice sounding delay plugin
    • Vitalium - This also has a delay effect
  • Reverb
  • Bus Compressor
    • This is probably the hardest one. This is pretty essential in getting a satisfying mix, but there is no open-source plugin I know of we can reference.
  • Sampler Instrument
  • Basic Subtractive Synth (akin to 3xOSC in FL Studio)
    • This is mainly just to have some-kind of built in synth to begin with. If we already have an EQ,
      chorus, phaser, compressor, delay, and reverb implemented, then we're already most of the way there.

Not as high priority plugins:

  • Convolver
    • (There are a bunch of algorithms for this online)
  • Shimmering Reverb
    • Cloud Reverb - A port of the amazing CloudSeed reverb. This sounds amazing as is.
  • OTT Compressor
    • Vitalium - The built-in multiband compressor is pretty much this
  • Tube Distortion
  • Tape Saturation
    • ToTape5 - Really nice sounding tape saturation plugin
  • Vocal Exciter
  • Dynamic Equalizer (We can pretty much just add our compressor to our EQ once we have those)
  • Desser (Pretty much a dynamic equalizer but focused on the high-end)
  • "Aggressive" Compressor
    • Pressure4 - Really nice punchy and aggressive compressor
  • Guitar Amp
  • Graph-based Waveshaper
    • Wolf Shaper - A really nice and powerful graph-based waveshaper plugin
  • Analogue-modeled/Mastering EQ
    • Luftikus - Pretty nice sounding mastering EQ. Although the bands are fixed, but maybe we can change that?
  • Goniometer (Shows a polar graph representing stereo phase correlation)
  • Drum Sampler (This will be easy once we have the sampler instrument)
  • Drum synth?
  • Advanced subtractive synth?
  • Wavetable synth?
  • Additive synth?
  • Soundfont/SFZ sampler?
  • Linear Phase EQ?
  • Vocal Compressor?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant