Four Ways To Write A Pitch-Shifter - Geraint Luff - ADC22

Поделиться
HTML-код
  • Опубликовано: 24 авг 2024
  • audio.dev/ -- @audiodevcon
    Four Ways To Write A Pitch-Shifter - Geraint Luff - ADC22
    We look at some approaches to pitch-shifting music, and the related problem of time-stretching, with intuitive visual explanations, code and audio examples. We start with a simple overlap-add approach, explore the mechanics of FFT-based effects and frequency-domain approaches, and finish with the design used in a new open-source polyphonic pitch/time C++ library.
    Slides: link will be updated when available.
    _
    Geraint Luff
    Geraint grew up with a strong interest in music, maths and programming. He now heads up Signalsmith Audio, a small company which provides custom audio/DSP algorithm design and implementation, as well as developing their own line of audio plugins.
    _
    Streamed & Edited by Digital Medium Ltd - online.digital-medium.co.uk
    _
    Organized and produced by JUCE: juce.com/
    _
    Special thanks to the ADC22 Team:
    Lina Berzinskas
    Sophie Carus
    Derek Heimlich
    Andrew Kirk
    Bobby Lombardi
    Tom Poole
    Ralph Richbourg
    Jim Roper
    Jonathan Roper
    #audiodevcon #audiodev #audio

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

  • @Signalsmith
    @Signalsmith Год назад +55

    Based on the ideas from this talk (the 4th method in particular) after this talk I released Signalsmith Stretch, an open-source C++ pitch/time library, and there's a blog post that looks into that more detail.

    • @stevekang1804
      @stevekang1804 Год назад +2

      Thank you for your presentation. I have a question about 4-ways for pitch-shifting. Is there a required minimum latency ( ex:512 samples or 4096 samples) for each processing?

    • @geraintluff
      @geraintluff Год назад +2

      ​​@@stevekang1804All of the main approaches discussed here process things in blocks, and the latency is determined by block size. As said for the first approach (7:22) these blocks need to be long enough to capture frequency or pitch information, and that requirement carries over to the other methods as well.
      Simpler inputs could work with shorter blocks, but I've personally not got most of these to sound great below 50ms of latency. For lower latency, my guess is you might need adaptive block sizes or something similar.

    • @made.online2149
      @made.online2149 6 месяцев назад

      Thank you very much! It seems there's currently no 'real-time' harmonizer or pitch-corrector that supports MTS-ESP or Scala files for alternate tunings- nor one that can accept MPE to have pitches defined via MIDI pitch bends- and so I've set out to make my own. I was worried about the DSP but this helps a lot!

  • @abuzzedwhaler7949
    @abuzzedwhaler7949 8 месяцев назад +8

    First reverb then pitch shifting, Geraint is teaching us to build shimmer one talk at a time 😳

  • @lorenzosala9289
    @lorenzosala9289 3 месяца назад +1

    This lecture is full of useful intuitions, thanks!

  • @valdiorn
    @valdiorn 11 месяцев назад +2

    This video has been incredibly valuable to me. Thank you so much for the amazing presentation!

  • @imagiromusic
    @imagiromusic Год назад +10

    fantastic talk! made such a complicated task actually followable for my smooth brain

  • @poweruser64
    @poweruser64 9 месяцев назад +4

    watching this at 2x speed

  • @obineg5752
    @obineg5752 Год назад +5

    while we all know such applications and how to make the algorithm, i was not aware of the official scientific terminology "vase phocoder".
    i will write it down and try to keep it in my mind. :P

    • @made.online2149
      @made.online2149 6 месяцев назад +2

      you laugh, but there are actual scientific words like 'quefrency' and 'cepstrum'

  • @loveforallbxlmannif
    @loveforallbxlmannif Год назад +1

    Very thanks and very interesting ! So the phase might be adjusted and i have to watch again the video to understand more how.
    But what about detecting only the magnitude and tune of the frequency then create a sin osc that have is own phase ?
    (it never adjust phase but only tune and magnitude from the detector)

  • @rich_in_paradise
    @rich_in_paradise Год назад +4

    From his name, he should be doing a talk on loudness maximisation lol

    • @rich_in_paradise
      @rich_in_paradise Год назад +6

      Joking aside, that was a brilliant talk - best I've seen from ADC and a better explanation of different pitch-shifting techniques than I've read anywhere. I only wish there was time to go into more detail. Hopefully Geraint can do a followup talk some time.

  • @DmitryIvanovDfcreative
    @DmitryIvanovDfcreative Год назад +3

    Would love to hear about paulstretch, which category it belongs to

    • @obineg5752
      @obineg5752 Год назад +1

      it is basically phase vocoding, but uses a gaussian noise type distribution of windows.

    • @geraintluff
      @geraintluff Год назад +3

      I had to cut that for time as well 😅
      PaulStretch randomises the phase, disrupting both vertical and horizontal phase changes. Disrupting the vertical ones produces a diffuse sound (dropping time info). Disrupting the horizontal phase changes produces a detuned sound within each sub-band (dropping frequency info).

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

      So it could be viewed as either a phase-vocoder or counterpart (vase-phocoder) approach, with additional randomisation - but I'm not sure the taxonomy is key.

  • @user-jq6go6hv8j
    @user-jq6go6hv8j 2 месяца назад

    Why is my phase vocoder always making a annoying ringing noise when I try to shift 12 semitones up but sounds good when shifting tunes down? Does it often occur on traditional phase vocoder? Which part should I improve?

  • @eusunteu9483
    @eusunteu9483 Год назад +1

    12:26

  • @oeerturk
    @oeerturk Год назад +2

    yooooooooomggggggggggggg this is what i was looking forrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr for a yeeeeeeeeeeeeeeeear......................................... funny i was just watching your reverb video and wanted to see if you have some other stuff and how is the codebase(i was looking for an understandable bloatfree dsp libs in c~) and these are perfect!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! thank you Geraint & signalsmith!!!!