GroovyDSP: More Phase Distortion!

Поделиться
HTML-код
  • Опубликовано: 1 янв 2025

Комментарии • 14

  • @TheGreatPizzaMasterpiece
    @TheGreatPizzaMasterpiece 3 года назад +7

    Fun fact that not a lot of synth nerds or musicians know: the hallowed “Reese” bass sound was made on a Casio CZ. “The Reese” was originally produced by Kevin “Master Reese” Saunderson of Detroit on a techno track called ‘Just Want Another Chance’ (released in 1988) and is a multi-oscillator detuned beast of a sound with extremely distinct and complex harmonics. In 1994, British musician Ray Keith aka Renegade sampled the bass sound from Saunderson’s record, low-pass filtered it a bit, and released what turned out to be an incredibly popular Drum and Bass track called ‘Terrorist’. The British musicians of the time loved this bass sound so much it became sampled, imitated and emulated hundreds, if not thousands of times over, even to the point where common lore is that the original patch was made on an (analog!) Alpha Juno. It was not until fairly recently that Kevin Saunderson himself confirmed that he used a Casio CZ-3000 for the original sound, eventually creating an entirely new piece of musical vocabulary beloved by many so many fans of dance music. There is some real magic to be had behind those mashable CZ buttons and this sonic algebra!

  • @Elizabeth-vh6il
    @Elizabeth-vh6il Год назад +1

    This video's one of the best on RUclips in my opinion, possibly by virtue of being one of the most obscure. I initially stumbled across phase distortion synthesis by accident on RUclips but now I'm seriously thinking about building something with it. I set out trying to build a pure FM synth in a high level framework and have most of it working but I did run into a few problems. The framework I'm using doesn't permit direct manipulation of phase, so my synth is "Through Zero Linear FM" rather than phase modulation. My operator feedback feature isn't working properly. I read that true FM requires a DC blocking filter in the feedback path to prevent pitch drift. I implemented one of those but it still doesn't work because the framework processes audio in blocks of 128 samples so I can't create a feedback loop tighter than that, at least not without resorting to reimplementing oscillators with my own low level code. But then I discovered that the 0 through 5 settings for feedback on Yamaha synths are practically identical to the cosinesaw transformation on Casio CZs (ignoring the longer multi-operator feedback loops found in a small number of algorithms on the higher end Yamaha models). Setting 6 is the same as the resonant saw waveform and setting 7 is near enough white noise.
    Although I can't directly manipulate phase, I've managed to implement PD in a roundabout way by taking a phase transfer function like the ones shown in your graphs and differentiating phase to obtain frequency, then turning that function into a looped sample and using it to frequency modulate a source oscillator with a centre frequency of 0Hz. I'm not sure yet how I will implement the DCW envelope, since if I encode that information into the sample then the envelope will speed or slow down for different notes.
    I'm wondering how to visualize phase distortion in the most general way. These graphs seem a pretty good way but then how to visualize the envelope? We have these points and they need to move towards the y=x line in order to "decay" the tonality (though if the wave is symmetrical around x=PI then 50% forward in 50% time and then backward forms the same neutral shape). Your phrase "Cocking it back" is intuitive. So the points could move towards y=x by moving horizontally but they could also move vertically, or some combination of the two. But their vectors mustn't cross, since that's ill defined. I wonder if phase transfer functions more complex than piecewise linear segments would be beneficial in terms of creating nice tones, for example connecting points using Bezier curves?
    I'm trying to think of what the next step in complexity is when going beyond the 8 Casio presets but one stopping short of a fully customizable graph. What are the standard formulae for phase distortion? Your video demonstrates some of them but are there more and what are their general forms? So far, I have:
    "Half slow, Half Fast" { (0, 0), (a, 0.5), (1, 1) }
    Transforms cosine into a PD sawtooth and abs(sin(x)) into a double sine.
    "Finish Early" { (0, 0), (a, 1), {1, 1} }
    Transforms functions where f(0) = 0 such as sine into functions with a width control, like Yamaha's "Sine, even periods only". Transforms cosine into a saw-pulse and square into a pulse.
    "Hard Sync" { (0, 0), (a, a), (a + delta, round(a)) }
    Useful for synths where hard sync isn't implemented in another way. Where delta is the minimum amount required to prevent aliasing.
    "Alternate Waveforms" { (0, 0), ... (a, 1), ... (2, 2) }
    For cases where the input wave to the distortion is the same for both waveforms.

  • @Beatsbasteln
    @Beatsbasteln 2 года назад

    came for dsp advice. stayed for good music and digits

  • @TheGreatPizzaMasterpiece
    @TheGreatPizzaMasterpiece 3 года назад

    Background music at 9:10 is awesome!

  • @Slurkz
    @Slurkz Год назад

    Very enlightening! Thanks a lot.💜

  • @fragmare
    @fragmare 6 лет назад +3

    So THIS is how you push chip music to the full Extent Of The Jam. ;)

  • @parisgraphics
    @parisgraphics 6 лет назад +1

    Nice! Gonna have to check your other videos too. Thanks for the plug on the music too :)

    • @groovydsp1716
      @groovydsp1716  6 лет назад +1

      Thanks so much for letting me use it! :)

  • @johnpalermo9481
    @johnpalermo9481 5 лет назад

    Great channel. I'm trying to build an arduino pd synth with pwm analog out and this helps a lot.

  • @rot_studios
    @rot_studios 6 лет назад

    Some good knowledge being shown here and Digits is very fun to play with, sounds good too :D

  • @mas2477
    @mas2477 3 года назад

    What is "x2" in the code?

  • @system64_MC
    @system64_MC Год назад

    Hi, what happens when you select one of CZ's waveforms? I'm a bit confused because I know in Phase Modulation (or FM) an actual square is used, is it still the case with Phase Distortion?

  • @amycatass
    @amycatass 2 года назад

    I’m thinking about PD in a Modular synth context… wondering if I can create a vco module with a PD algorithm built around sliding coordinates on a plane, with more than just linear functions on the piecewise expression. Also, using external signals not necessarily synced with the phase / frequency of the sine / cosine vco as the modulating PDFs… Any advice on how to approach that, just on a theory level? PD is just as exciting and interesting to me as PM/FM.

    • @SomeOne-pd6vm
      @SomeOne-pd6vm 7 месяцев назад

      let me know if you've figured this out ! i'm attempting the same, except noise instead of unsynched oscs.