In general, wondering which is generally easier to implement, or if they are about equal. This way can focus studies:) ****For info on why this is posted::****** I am NOT a pro DSP person - have been into audio/music for awhile, and am still green to programming.(JAVA) For my 1st program to really "use" - plan to integrate a "Time Shifter/Exander/Compressor" (whatever term is proper) Go here for examples: http://www.dspdimension.com/html/timepitch.html#audiocomp If you have WinXP and you have Windows Media Player 9+ then you can see an example of such a simple component 1)Go to the VIEW menu 2)Go to ENHANCEMENTS 3)Choose Play Speed Settings (They used a poor algorithm in comparison to SMB it seems/could be wrong/but their's would be fine for me.) To clarify, just looking to develop a simple component to integrate in a Java program that can adjust the PLAYBACK SPEED WIHOUT affecting the PITCH. ****Previously I had posted and for some moronic reason(OE) I kept stating "pitch shifter" - I apologize; great resources were received in any case. Additionaly, purchased the book by Craig Lindley but the source does not do what it was designed to do(unless it is because of some conflict). Thank you.
Phase Vocoder vs. TDHS for "Time Stretching / Expanding / Compressing"
Started by ●December 23, 2004
Reply by ●December 24, 20042004-12-24
time-domain is much easier to code. it requires some sort of period detection (or waveform similarity measurement, usually some kind of autocorrelation or AMDF is used) but no need to FFT and iFFT. it might not sound as good as frequency domain time-scaling for rich, full bandwidth signals (whole orchestra), but might sound better than frequency-domain for monophonic sounds (single voice or single tonal instrument). there are tricks to make time-domain sound better or frequency-domain run faster and those tricks are often considered trade secrets by the people that have them. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge." in article 1103853649.027927.243310@f14g2000cwb.googlegroups.com, javasojava@yahoo.com at javasojava@yahoo.com wrote on 12/23/2004 21:00:> In general, wondering which is generally easier to implement, or if > they are about equal. This way can focus studies:) >...
Reply by ●January 12, 20052005-01-12
Hey there, thanks for replying (Saw it way back when....just was expecting more feedback and did not want to flood the post with Thank you's) :) But....didn't want to wait too much longer to say THANK YOU! for replying. I do hope more reply, just wanted to say THANK YOU for taking the time to reply, it truly does help. robert bristow-johnson wrote:> time-domain is much easier to code. it requires some sort of period > detection (or waveform similarity measurement, usually some kind of > autocorrelation or AMDF is used) but no need to FFT and iFFT. itmight not> sound as good as frequency domain time-scaling for rich, fullbandwidth> signals (whole orchestra), but might sound better thanfrequency-domain for> monophonic sounds (single voice or single tonal instrument). thereare> tricks to make time-domain sound better or frequency-domain runfaster and> those tricks are often considered trade secrets by the people thathave> them. > > > -- > > r b-j rbj@audioimagination.com > > "Imagination is more important than knowledge." > > > in article 1103853649.027927.243310@f14g2000cwb.googlegroups.com, > javasojava@yahoo.com at javasojava@yahoo.com wrote on 12/23/200421:00:> > > In general, wondering which is generally easier to implement, or if > > they are about equal. This way can focus studies:) > > > ...
Reply by ●January 12, 20052005-01-12
in article 1105547766.031502.275390@f14g2000cwb.googlegroups.com, javasojava@yahoo.com at javasojava@yahoo.com wrote on 01/12/2005 11:36:> I do hope more reply, just wanted to say THANK YOU for taking the time > to reply, it truly does help.i'm not inclined to "simply" spell out whatever algorithm. i can answer most questions that don't take me into any proprietary territory. did you take a look at http://www.dspdimension.com/ ? are you reading other lit? so you understand how to make a copy of your sound, offset the copy relative to the original, then crossfade from the original to the copy? that's the basic idea. AMDF or autocorrelation will help you in selecting a good offset amount. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
Reply by ●January 13, 20052005-01-13
Oh, I understand that....the only reason I hope more respond is just like search results/tutorials ...it's always(for me)beneficial when more than one thing presents itself. I do appreciate your time, it DOES help....txt posts can be weird and just don't want you to think I'm ungrateful. Yes, that is basically my #1 site for this topic. I am still learning java, and am concentrating on progressing there, while basically just going to read up more on DSP at least once per week. Once my Java catches up, will start trying these things out. Bought a book made for Java Audio that says it does something like this... but it appears NOT to.. (bad algorithm) Since the community is (relatively, compared to java) for learning...I thought it'd be best to keep asking questions early, that way when my programming skills catch up(not too much longer)...I can implement things with theory, not needing a step by step.(hopefully) The program for Time Stretching in this book (1999) was said to use the following method to slow playback speed by 1/2, but keep the same pitch - quoted, "Double the frequency of the incoming audio, and then cut the playback rate in half by doubling the number of samples." Problem is the program itself did not do what it said it could do....it recorded audio - but did not do what it said. Not currently reading other literature, because it seems I can comprehend the (most fundamental)methods to do this...just can't implement them yet w/out the understanding of the Java language more...(could be wrong) will still probably pick up a book now though.. Thank you again! robert bristow-johnson wrote:> in article 1105547766.031502.275390@f14g2000cwb.googlegroups.com, > javasojava@yahoo.com at javasojava@yahoo.com wrote on 01/12/200511:36:> > > I do hope more reply, just wanted to say THANK YOU for taking thetime> > to reply, it truly does help. > > i'm not inclined to "simply" spell out whatever algorithm. i cananswer> most questions that don't take me into any proprietary territory.did you> take a look at http://www.dspdimension.com/ ? are you reading otherlit?> > so you understand how to make a copy of your sound, offset the copyrelative> to the original, then crossfade from the original to the copy?that's the> basic idea. AMDF or autocorrelation will help you in selecting agood> offset amount. > > -- > > r b-j rbj@audioimagination.com > > "Imagination is more important than knowledge."
Reply by ●January 13, 20052005-01-13
in article 1105638851.981506.161180@c13g2000cwb.googlegroups.com, javasojava@yahoo.com at javasojava@yahoo.com wrote on 01/13/2005 12:54:> The program for Time Stretching in this book (1999) was said to use the > following method to slow playback speed by 1/2, but keep the same pitch > - quoted, "Double the frequency of the incoming audio, and then cut the > playback rate in half by doubling the number of samples."that's the "pitch-shift first, slow it down second" approach. the problem is how one does the pitch-shifting? normally, the way i think about it is that pitch-shifting is a combination of time-scaling and resampling (the speed changing). so then you're in a circular problem. i would suggest staying with time-scaling without referring to pitch-shifting until you got yourself a time-scaler. think: translate (shift in time) and splice, translate and splice. that's how you do time-scaling (and conceptually that's how it's done in the frequency domain, except each frequency component is translated independently). -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."