How to Change Audio Speed without Changing its Pitch?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nicebasic
    New Member
    • Aug 2010
    • 91

    How to Change Audio Speed without Changing its Pitch?

    I have written a small VB Application to play my Audio Files the way I like. But, up to now, I haven't been able to change the speed of the audio file without changing its pitch.

    As you know, it's easy the change the speed of the Media/Audio file being played with MediaPlayer.Rat e using Windows Classic Media Player whose OCX file has this name: "msdxm.ocx".

    The value for Rate ranges from 75 to 150.

    But, when you change the rate of audio file, its pitch changes as well.

    Is there any method to change the speed but preserve pitch unchanged?

    Thank you very much.
  • Stewart Ross
    Recognized Expert Moderator Specialist
    • Feb 2008
    • 2545

    #2
    Hi. Professional audio suites such as Sony Soundforge provide limited facilities for timestretching audio without pitch changing, but even though these are very carefully designed these always introduce artifacts into the final product.

    This is because stretching or compressing the time without altering the pitch requires interpolation of certain waveform values and throwing away others. This loss of information becomes worse the more extreme the variation made, introducing audible clicks and pops into the final result at anything more than around a 6% adjustment either way.

    That's a long winded way to tell you that there is no inherent method in VB for speeding up or down an audio file without changing its pitch, and even if you devised an algorithm to do so it would inherently introduce artifacts into the final product which distort the original unacceptably above small adjustments.

    -Stewart

    Comment

    • nicebasic
      New Member
      • Aug 2010
      • 91

      #3
      Thank you for your reply.

      You're quite right. But I posted this question with this hope that maybe someone knows a way to implement this in Visual Basic.

      As you mentioned, for values greater than 6%, the sound might get distorted.

      But, maybe there is a way to do this through DirectX.

      I saw a programmer using DirectX and NOT embedded Media Player to play several video files simultaneously in Visual Basic.

      I hope I can find a method to implement this.

      Thank you again for your informative reply.

      Comment

      Working...