Пікірлер
@shinyless
@shinyless 9 күн бұрын
best explanation of pitch shifting I've seen so far, this is a 3blue1brown level of quality video, awesome work !!
@Joshua_Griffin
@Joshua_Griffin 20 күн бұрын
Very nice
@therockafire
@therockafire Ай бұрын
Well, that clears that up! (For Albert Einstein!)
@roeesi-personal
@roeesi-personal 3 ай бұрын
Hey nightcore doesn't really need a complicated pitch shifting algorithm (except what you do is just Fourier and then fine I guess but I expect you to keep the rhythm the same if you're really talking about a *pitch* shifter). You just need to play the samples a bit faster and you're golden.
@roeesi-personal
@roeesi-personal 3 ай бұрын
Yup turns out you met and even exceeded my expectation, and I think this even sounds better than what's in librosa. Just shows what you can get when you think really well about your problems and code a solution yourself instead of relying on existing tools.
@michaelpeets8444
@michaelpeets8444 4 ай бұрын
Very cool. How challenging would it be to turn the python code into a function that could be called from javascript to effect a pitch shift of x semi-tones against an mp3 instrument or vocal track?
@DKDiveDude
@DKDiveDude 5 ай бұрын
Very nice video. I would really like to see the code C or C++, maybe even using the JUCE platform.
@nika_251
@nika_251 6 ай бұрын
nice
@dittilio
@dittilio 6 ай бұрын
Excellent video. I really hope the phases didn't smother your interest in making more videos. Instant subscription.
@kaishang6406
@kaishang6406 6 ай бұрын
Thank you very much, the ideas in this video are useful for more than just music.
@noharahien
@noharahien 6 ай бұрын
Very helpful. Thank you!
@riccardorosso2795
@riccardorosso2795 6 ай бұрын
Do more video like this one please!! Incredible work!
@Rajkumz
@Rajkumz 7 ай бұрын
Wonderful video. Excellent idea to calculate the volume ❤❤
@MrAlgorytmid
@MrAlgorytmid 7 ай бұрын
i love yo man
@raisingjakestudios1371
@raisingjakestudios1371 7 ай бұрын
Something I don't understand - it seems that shifting the windows to provide phase alignment from one frame to the next is also affecting the Hop size from one frame to the next. I would expect this variation in hop size to produce a fluctuation in the shifted pitch, i.e., a chorusing side effect, but your audio example doesn't seem to do that. What am I missing here?
@dathandsometroll1852
@dathandsometroll1852 7 ай бұрын
This is awesome! I have been planning an onboard active pitch shifter for my electric guitar for about a month, so thanks for the video. Now would you happen to know how one would make this work on an Arduino micro?
@commiekiller3000
@commiekiller3000 8 ай бұрын
I like how almost every hurdle in audio processing comes back to phase when you trace it back far enough.
@pepedecoatza
@pepedecoatza 8 ай бұрын
What a video. I just saw its your first video in your channel, so, congratulations and keep it up!
@mikecase2033
@mikecase2033 8 ай бұрын
I love when I see something I take for granted (viewing youtube at x1.5) has a ton of math behind it. Awesome video
@ubza1234
@ubza1234 8 ай бұрын
I found a fun but primitive way of stretching audio with some old tablet software. (modplug) all I'd so is play the audio for two ticks, then reverse the audio for one tick, then forward again two ticks etc. If it ran fast enough, it sounded passable, especially with some manual echo.
@MysteryPancake
@MysteryPancake 8 ай бұрын
6:28 The reason pitch modification is listed as "yes" for PSOLA is because it's the only algorithm that doesn't change the formant, which is important to produce natural sounding speech. Unlike SOLA and WSOLA, it doesn't introduce a chipmunk effect when speech is sped up. Because of this, it's heavily used in many autotune plugins today. It's possible to tell if a plugin uses PSOLA by shifting the vocal down: - If the formant sounds the same and there's gaps in the waveform, this indicates PSOLA was used, as it has no way to fill in those gaps. - If the formant sounds the same and there's no gaps, this indicates a frequency-based approach was used, as it can fill in those gaps. - if the formant sounds different, it's likely another approach was used.
@Aio-Project
@Aio-Project 9 ай бұрын
the amount of math videos i had to rewatch before returning to this
@DanielHauser
@DanielHauser 9 ай бұрын
Very nice! I would love for you to make a video on the fast fourier transform. It's my personal white whale. I just can't understand intuitively how it works.
@AndrewJohnClive
@AndrewJohnClive 9 ай бұрын
I’m not sure why my tiny mind thought lifting this stone would be a good idea…🙂❤️
@hughmathimati
@hughmathimati 9 ай бұрын
Yo, I remember you from Khan Academy! Keep making awesome stuff dude.
@turtleparty7241
@turtleparty7241 9 ай бұрын
Fact: the voice of this video is AI generated.
@turtleparty7241
@turtleparty7241 9 ай бұрын
It took me a minute to realize something was off with the narrator voice, then I realized the obvious discrepancies. Pretty spooky.
@nanke1987
@nanke1987 9 ай бұрын
what notebook are you using to run code snippets?
@samuelthecamel
@samuelthecamel 9 ай бұрын
This explains why KZfaq's speed changing feature makes the audio sound so bad
@Tabu11211
@Tabu11211 9 ай бұрын
Ah is that first naive approach how you get that jungle dnb sound?!
@amp4105
@amp4105 9 ай бұрын
6:34 yeah.. nah, im just a producer bro 😆
@amp4105
@amp4105 9 ай бұрын
I always wondered why pitch shifting up sounds worse than down
@amp4105
@amp4105 9 ай бұрын
this is complete conjecture but i think it could be referred to as hanning because you're using hann's technique therefore you are "hanning it"
@Photosounder
@Photosounder 9 ай бұрын
3:30 your envelope normalisation doesn't take into account the incoherent averaging between each chunk. If you took care of that correctly you wouldn't have "flutter" 9:01 It's not half the frequency, it wraps around between -0.5 and 0.5, so a frequency of 0.9 (1 being the sampling rate) will come out as -0.1.
@theparadox42
@theparadox42 9 ай бұрын
Were you on Khan Academy programming for a while?
@yuvalne
@yuvalne 9 ай бұрын
the demonstration are what really make this video. truly well done.
@1.4142
@1.4142 9 ай бұрын
It's not a phase, mom!
@1.4142
@1.4142 9 ай бұрын
I've noticed how much better chrome is than safari at 2x speed audio
@TheRunicorn
@TheRunicorn 9 ай бұрын
A bit late, but my assumption is people say "Hanning" window due to the linguistic similarities to "Hamming" window
@amp4105
@amp4105 9 ай бұрын
why would people purposefully call something that of which it could be confused with?
@mumiemonstret
@mumiemonstret 9 ай бұрын
That was a concise walkthrough of the steps necessary to pitch shift. I never thought there were so many, and apparently you left some out. I can say that your end result still sounded way better than what Cool Edit Pro (predecessor to Adobe Audition) could accomplish. Of the left out steps, I would like to see formant preservation as the topic of a follow-up. It would be interesting to hear what happens when you move formants and pitch independently in a vocal sample.
@limbaksa
@limbaksa 9 ай бұрын
Anyone listening to the time-shifted version of the time-shifted audio?😂
@zorggn
@zorggn 9 ай бұрын
I wish i found this video sooner tbh, would have saved me some time, i believe. :3 After toiling for quite a bit of time trying to implement a realtime pitch shifter/time stretcher (hence i didn't want to touch fft or other things that would eat performance), i arrived at a solution where i only ever use two windows overlapping exactly 50%, but for each step to generate a new chunk, the windows are both resized to a size that's the chosen one plus/minus a small (uniformly or normally, i tried both) random deviation; Considering that a static window size was producing a very noticeable tone with my code with window sizes that were small enough to make the crossover points fast enough to go into audible pitch territory, the randomness introduced seemed to make that less noticeable quite nicely, basically akin to turning a pure tone into white noise. I still have issues with fluttering though, that i couldn't find time to implement a fix for yet.
@karlkastor
@karlkastor 9 ай бұрын
Great video! I always thought pitch shifting was just translation in the frequency domain. I like how you explained the problems with the example.
@vilkillian
@vilkillian 9 ай бұрын
5:32. To be precise, auto-correlation is a convolution between signal and itself, but delayed, this is what auto- means, in this case it is just "correlation"
@acurara0113
@acurara0113 9 ай бұрын
nice video! I always wondered about how exactry convolution reverbe works (yes, maybe I'm the only one wondering), could you do the video about that?
@jacquesdebruyn7884
@jacquesdebruyn7884 9 ай бұрын
Very interesting, I tried lots of phase shifters and none give me an good result. With what module can I use your shifter program? I'm using the ESP32 on a steel guitar that control the string tensions, and it would be great to use Pitch shifting instead of string stretching.
@apotheotic
@apotheotic 9 ай бұрын
Excellent video, I hope to see more from you soon
@a.w.n.i.s
@a.w.n.i.s 10 ай бұрын
i would not have the balls to do such a well made video at 1,7k followers
@georgeabraham7256
@georgeabraham7256 10 ай бұрын
Changing the pitch without affecting ADSR ❤
@georgeabraham7256
@georgeabraham7256 10 ай бұрын
Improve the dft samle to include the ascention/descention figure for each frequency?
@charleslambert3368
@charleslambert3368 10 ай бұрын
Can you pitch-shift with wavelets?