perfect thanks, that makes sense.
> On 05 Aug 2016, at 00:04, Claude Heiland-Allen <[email protected]> wrote: > > Hi Simon, list, > > On 04/08/16 22:51, Simon Iten wrote: >> hi claude, >> >> your bandlimited project works/sounds great! very nice sounds from handdrawn >> waves. > > thanks! > >> >> however i am having trouble getting your example to work. probably just >> stupidity from my side. >> >> i suppose i don’t understand your: >> >>> "set appropriate block size, turn off dsp, bang to execute 1 block” >> >> message. if you find the time, can you have a look at it? > > sure, just a [loadbang]--"0"--[switch~] - this turns off dsp for the > canvas (so you might want to put it all in a subpatch unless you're > using it as an abstraction). see attached, works for me > >> >> do i not need to run a bang into tabplay in this special one block send >> scenario? >> >> with my patch i get “kind" of the right thing. >> >> 1) the table “spectrum” only updates once i click into the table (after i >> hit >> the bang). > > mm, seems to be a Pd bug or other infelicity. the attached includes a > workaround using [tabwrite] which updates the GUI > >> 2) i get only 64 values, so i guess my blocksize is still 64? > > no, it's that for real signals the second half of the rfft~ output is > symmetric to the first, so Pd sets it to 0 and ignores it in rifft~ to > avoid confusion. > >> 3) if i send a bang to switch~ when dsp is off, i get an error on the >> console: >> >> bang to block~ or on-state switch~ has no effect. > > you have to switch it off with "0" first, and have global dsp on (afaik). > >> >> >> >> cheers > > hth, > > > Claude > -- > https://mathr.co.uk > >> >> >> >> >> >>> On 04 Aug 2016, at 18:01, Claude Heiland-Allen <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Hi Simon, >>> >>> On 04/08/16 09:54, Simon Iten wrote: >>>> ah sorry, yes >>>> >>>> i want to read a wavetable, say 128 steps and calculate the gain structure >>>> to >>>> aproximate this wavetable with sine waves. >>>> the idea behind this is to get a different sound from wavetables, use low >>>> resolution wavetables to get nice sounds (waldorf microwave xt) >>>> >>>> so for a saw wave i would want the following numbers. >>>> >>>> 1 0.5 0.3333 0.25 0.2 and so on… >>>> >>>> how to do this for an arbitrary input wavetable? >>>> >>>> i looked at the fft examples but it is not clear to me how i would do this >>>> with a single wavetable (of known size) >>> >>> You could do something like this with [rfft~], but you lose phase >>> information which might be important depending on what you are doing >>> (use fixed-width font to see diagram): >>> >>> "set appropriate block size, turn off dsp, bang to execute 1 block" >>> | >>> [switch~] >>> >>> [tabplay~ wavetable] >>> | >>> [rfft~ ] >>> ^ ^ >>> [*~] [*~] >>> \ / >>> [+~] >>> | >>> [sqrt~] >>> | >>> [tabsend~ spectrum] >>> >>>> or if there is a “simpler” (without fft) possibility that would be great. >>> >>> I don't think you'll get simpler than FFT here. As a bonus you can also >>> get phase information (sinesum has all phases 0, cosinesum all phases >>> pi/2, general wavetable can have arbitrary phases). >>> >>> You could use [rifft~] instead of sinesum to generate your wavetable, >>> too. Note there may be some issues with normalization (fft->ifft has an >>> amplitude gain equal to the blocksize, iirc). >>> >>> For a more advanced use of oneshot FFT and IFFT for wave tables, see my >>> bandlimited project: >>> https://mathr.co.uk/blog/2015-02-12_bandlimited_wavetables.html >>> >>> >>> Claude >>> -- >>> https://mathr.co.uk <https://mathr.co.uk/> >>> >>> >>> _______________________________________________ >>> [email protected] <mailto:[email protected]>mailing list >>> UNSUBSCRIBE and account-management >>> ->https://lists.puredata.info/listinfo/pd-list >> > > <wavetablefft2.pd> _______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
