Re: An idea for an entirely new effect -- warning, long post
Robert Hänggi <[email protected]> Sun, 16 May 2021 21:47:21 +0200
| Newsgroups | gmane.comp.audio.audacity.devel |
|---|---|
| Message-ID | <CAJhgUZ0ysNdf7F7mDenAO=AU7UUj1PgJXtLERsxLSxEE4V3NRw@mail.gmail.com> |
I don't think that there's FFT involved. Of course, you could but the coefficients given are for a plain convolution. Also, if some sort of Hilbert transformation is involved, you need the full FFT spectrum and Nyquist gives you only positive frequencies. Convolution and multiplication with sine/cosine are more or less trivial. What bothers me is the feedback part. A normal Biquad section would probably not do because of the limited number of coefficients. However, snd-allpoles should do the trick. It is a pity that you need IHT instead of HT. I've written an IIR for the latter. Besides, I would rather go with Octave than Python to design the filter or just stay in Nyquist. I'm also blind and examine the samples in the Nyquist output all the time. Cheers Robert On 16/05/2021, Steve Fiddle <[email protected]> wrote: > Nyquist does have FFT and IFFT, but they are quite tricky to use. > The Nyquist manual documentation is here: > http://www.cs.cmu.edu/~rbd/doc/nyquist/part11.html#index912 > but if you intend using these functions, then I would highly recommend > reading the "demos/fft_tutorial.htm", which is part of the standard > Nyquist release. > > Steve > > On Sun, 16 May 2021 at 19:10, freddyjohn via audacity-devel > <[email protected]> wrote: >> >> I’ve only wrote a few time domain effects and have only recently started >> messing around with the frequency domain so take my word with a grain of >> salt. It’s trivial to start playing with your idea in Python with numpy, >> scipy, and matplotlib. Then when you have working implementation you can >> extract the core logic into a language of your choice. >> >> Numpy can help you generate waveforms >> >> import numpy as np >> t=np.linspace(0,5,5*48000) >> y=np.sin(44*t) >> >> And then turn 5 second 44hz sampled at 48000 sps to 16 bit pcm >> >> pcm=y.astype(np.short).tobytes() >> >> want to go into frequency domain and back again? >> >> from scipy.fft import fft, ifft >> frequency_domain = fft(y) >> time_domain = ifft( frequency_domain) >> >> You can visualize what is happening in either domain with matplotlib >> >> from matplotlib import pyplot as plt >> >> plt.plot(y) >> plt.show() >> >> >> >> Sent from ProtonMail for iOS >> >> >> On Sun, May 16, 2021 at 2:05 AM, Petr Pařízek via audacity-devel >> <[email protected]> wrote: >> >> I wrote: >> >> > - C) we sum the two products to get the frequency-shifted signal, >> >> Oops, my fault. After summing them, we obviously need to skip the first >> n*2 or n*2-1 samples because that's by how much our IP and Q signals >> were delayed. >> (Gosh, I knew I would forget something.) >> >> Petr >> >> >> -- >> Tento e-mail byl zkontrolován na viry programem AVG. >> http://www.avg.cz >> >> >> >> _______________________________________________ >> audacity-devel mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/audacity-devel >> >> >> >> _______________________________________________ >> audacity-devel mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/audacity-devel > > > _______________________________________________ > audacity-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/audacity-devel > _______________________________________________ audacity-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/audacity-devel